我的 DNS 服务器正在推动 20mbps,为什么?

Rus*_*ony 22 domain-name-system linux bind amazon-ec2

我在 EC2 中运行 DNS 服务器,昨天当我检查我的计费仪表板并发现本月使用了 1.86 TB 的数据时,它正在推动大约 20mbps。这对我的小型项目实验室来说是一笔不小的开支。我以前从未注意到性能下降,也没有费心设置流量阈值,但现在我已经注意到了,因为这已经花费了我 200 美元以上的带宽费用。

似乎有人使用我的 DNS 服务器作为放大攻击的一部分,但是我不知道如何进行。

配置如下。

// BBB.BBB.BBB.BBB = ns2.mydomain.com ip address

options {
        listen-on port 53 { any; };
//      listen-on-v6 port 53 { ::1; };
        directory "/var/named";
        dump-file "/var/named/data/cache_dump.db";
        statistics-file "/var/named/data/named_stats.txt";
        memstatistics-file "/var/named/data/named_mem_stats.txt";
        allow-transfer { BBB.BBB.BBB.BBB; };
        allow-query-cache { BBB.BBB.BBB.BBB; };
        allow-query { any; };
        allow-recursion { none; };

        empty-zones-enable no;
        forwarders { 8.8.8.8; 8.8.4.4; };

        fetch-glue no;
        recursion no;

        dnssec-enable yes;
        dnssec-validation yes;

        /* Path to ISC DLV key */
        bindkeys-file "/etc/named.iscdlv.key";

        managed-keys-directory "/var/named/dynamic";
};

logging {
        channel default_debug {
                file "data/named.run";
                severity dynamic;
        };
};

zone "." IN {
        type hint;
        file "named.ca";
};

zone "mydomain.com" IN {
        type master;
        file "zones/mydomain.com";
        allow-transfer { BBB.BBB.BBB.BBB; localhost; };
};
Run Code Online (Sandbox Code Playgroud)

鉴于此配置,我不应该回答对我不在本地托管的区域的任何查询,对吗?该服务器是一些域的 SOA,但不用于查找我的其他服务器的任何内容(每个人都针对 OpenDNS 或 Google 进行解析)。我在这里有什么指令错了,还是我忘记了?我的日志 (63MB+) 充满了以下内容:

client 58.215.173.155#4444: query (cache) 'cpsc.gov/ANY/IN' denied
client 58.215.173.155#4444: query (cache) 'cpsc.gov/ANY/IN' denied
client 58.215.173.155#4444: query (cache) 'cpsc.gov/ANY/IN' denied
client 58.215.173.155#4444: query (cache) 'cpsc.gov/ANY/IN' denied
client 58.215.173.155#4444: query (cache) 'cpsc.gov/ANY/IN' denied
client 58.215.173.155#4444: query (cache) 'cpsc.gov/ANY/IN' denied
client 218.93.206.228#4444: query (cache) 'cpsc.gov/ANY/IN' denied
client 218.93.206.228#4444: query (cache) 'cpsc.gov/ANY/IN' denied
client 218.93.206.228#4444: query (cache) 'cpsc.gov/ANY/IN' denied
client 218.93.206.228#4444: query (cache) 'cpsc.gov/ANY/IN' denied
client 218.93.206.228#4444: query (cache) 'cpsc.gov/ANY/IN' denied
client 218.93.206.228#4444: query (cache) 'cpsc.gov/ANY/IN' denied
client 50.19.220.154#4444: query (cache) 'cpsc.gov/ANY/IN' denied
client 50.19.220.154#4444: query (cache) 'cpsc.gov/ANY/IN' denied
client 50.19.220.154#4444: query (cache) 'cpsc.gov/ANY/IN' denied
client 50.19.220.154#4444: query (cache) 'cpsc.gov/ANY/IN' denied
client 50.19.220.154#4444: query (cache) 'cpsc.gov/ANY/IN' denied
client 50.19.220.154#4444: query (cache) 'cpsc.gov/ANY/IN' denied
client 123.207.161.124#4444: query (cache) 'cpsc.gov/ANY/IN' denied
client 123.207.161.124#4444: query (cache) 'cpsc.gov/ANY/IN' denied
client 123.207.161.124#4444: query (cache) 'cpsc.gov/ANY/IN' denied
client 123.207.161.124#4444: query (cache) 'cpsc.gov/ANY/IN' denied
client 123.207.161.124#4444: query (cache) 'cpsc.gov/ANY/IN' denied
Run Code Online (Sandbox Code Playgroud)

Sha*_*den 20

即使您的服务器设置为仅像您一样回答权威查询,它仍然有可能被用于放大攻击 -ANY针对区域根的查询可能会触发相当重的 UDP 响应,因为区域根往往具有许多记录,尤其是 SPF/DKIM/DNSSEC。

这可能是您系统上发生的事情 - 用于tcpdump确认。如果他们在放大攻击中使用你的权威记录,你最好的选择是简单地移动到一个新的 IP 并希望他们不要跟随,更改你的区域根记录以使其成为一个不太有效的放大向量,或者实施响应速率限制(如果您的 BIND 支持它)。

  • 只需确保您的速率限制不会变成 DoS 攻击向量:如果攻击者用尽了响应限制,合法缓存(例如 OpenDNS 和 google)也可能无法解析您的名称。 (6认同)
  • @RussellAnthony 对于您看到的日志条目,是的,我相信它正在丢弃它们-但是,对于成功的攻击流量,不会创建日志条目,因此就日志而言,带宽使用是不可见的。如果攻击仍在继续(仍然获得新的日志条目?)我敢打赌,除了这些失败的查询之外,还有一堆成功的“ANY”查询。 (4认同)
  • 添加了 `rate-limit { 响应每秒 1; };` 并且它似乎已经减少了相当多的流量。我不知道绑定可以从内部进行 RRL。 (2认同)