[~]# /usr/bin/dig +recurs @MYIP www.facebook.com
; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.10.rc1.el6_3.5 <<>> +recurs @MYIP www.facebook.com
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: REFUSED, id: 31758
;; flags: qr rd; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0
;; WARNING: recursion requested but not available
;; QUESTION SECTION:
;www.facebook.com. IN A
;; Query time: 24 msec
;; SERVER: MYIP#53(MYIP)
;; WHEN: Tue Apr 2 22:39:24 2013
;; MSG SIZE rcvd: 34
和
options {
/* make named use port 53 for the source of all queries, to allow
* firewalls to block all ports except 53:
*/
// query-source port 53;
/* We no longer enable this by default as the dns posion exploit
has forced many providers to open up their firewalls a bit */
// Put files that named is allowed to write in the data/ directory:
directory "/var/named"; // the default
pid-file "/var/run/named/named.pid";
dump-file "data/cache_dump.db";
statistics-file "data/named_stats.txt";
/* memstatistics-file "data/named_mem_stats.txt"; */
allow-transfer {"none";};
recursion no;
};
这是否意味着我可以免受基于 DNS 的攻击?以及像反射器这样的攻击?
答案1
你的问题提错了。正确的表述应该是“我的 DNS 服务器是否配置正确,不会放大 DNS 反射器攻击?”。——这是因为,重要的是要意识到攻击者不会攻击 DNS 服务器,他们滥用 DNS 服务器来攻击选定的受害者,当然,当我们处理 DNS 反射器/放大器类型的滥用时(是的,受害者仍然可以是运行 DNS 的主机,但这有点无关紧要)。
因此,如果您的问题仅仅是这个,您可以运行tcpdump
并比较 DNS 请求和响应大小,但是是的,由于您已禁用递归,这意味着您的服务器不会发送与其自身区域无关的任何数据。但是,如果它托管的区域有一些非常长的记录,正如您可能理解的那样,它仍然可以作为放大器(根据定义)响应欺骗性的简短答案。虽然与开放递归服务器相比,攻击者以这种方式使用它会更困难一些,但仍然是可能的。
缓解此类攻击的唯一正确方法是从分发层开始,在所有可能的层级实施反欺骗保护。对于单独的 DNS 服务器来说,通常为时已晚 — 通常它无法确定自己是否响应了欺骗的 IP 源。
更新:实际上,您可以查看有关此主题的 IETF 备忘录:https://www.rfc-editor.org/rfc/rfc5358