如何补丁BIND9在DNS Cache PoisonDebian Etch
版本1.0
作者:Falko Timme
本文介绍如何在Debian蚀刻系统上修复BIND9Nameservers,使其不再受到DNS Cache Poison的影响 。
本文档不附带任何形式的保证! 我不会保证这将为您工作!
1检查BIND是否易受影响
对您的Nameservers运行以下命令,以确定它是否易受攻击(将ns1.example.com
替换为您自己的Nameservers地址):
dig +short @ns1.example.com porttest.dns-oarc.net TXT
mh1:~# dig +short @ns1.example.com porttest.dns-oarc.net TXT
z.y.x.w.v.u.t.s.r.q.p.o.n.m.l.k.j.i.h.g.f.e.d.c.b.a.pt.dns-oarc.net.
"1.2.3.4 is POOR: 26 queries in 4.4 seconds from 1 ports with std dev 0.00"
mh1:~#
POOR
表示BIND很脆弱。 在这种情况下,您必须补丁BIND。
如果您没有得到任何答案,这意味着您的DNS服务器不是递归解析器,这意味着它不会回答对它不具有权威性的域的查询。 在这种情况下,您不容易受到缓存中毒的影响,但我强烈建议更新BIND!
2补丁BIND
这不是一个补丁,而是一个更新。 只需运行
apt-get install bind9 bind9-host
这将从Debian存储库安装更新的BIND软件包。
然后打开/etc/bind/named.conf
并修改选项
部分。 如果您不需要递归解析器(即,如果您的域名服务商仅应对其负责的域应答查询),请添加allow-recursion {none;
};
。 这样你可以关闭其他域的缓存。 你应该添加的第二行是dnssec-enable yes;
- 这使得BIND在随机端口上回答对于黑客更难猜测的查询(请记住我们在第1章中的dig命令的答案: [...]从1个端口4.4秒中查询26个查询[...]
- BIND为只在一个端口上回答...)。
更正:我刚收到以下来自Alan Clegg的电子邮件:
美好的一天!
我只是读了你的写作:
https://www.youcl.com/how-to-patch-bind-to-avoid-cache-poisoning-debian-etch
并有几个意见。
首先,感谢你写这个。 我们需要尽可能多的人来解决这个问题
问题尽可能。其次,应该纠正一个小错误。 你说:
“你应该添加的第二行是dnssec-enable yes; - 这样做
BIND在随机端口上回答查询,这些端口对于黑客来说难以猜到“实际上,这一行使服务器能够响应DNSSEC记录
当问题被设置为“DO”(DNSSEC OK)位时。你想让人们寻找的是一个声明,如:
查询源[...]端口XX;
哪里的XX是一个固定的端口号,来自此的查询
系统将被发送。 这消除了新版本的所有内容
BIND做随机化的UDP源端口。如果您有任何问题,请随时发送电子邮件。
艾伦·克莱格
互联网系统联盟(ISC)
培训和支持
vi /etc/bind/named.conf
[...] options { pid-file "/var/run/bind/run/named.pid"; directory "/etc/bind"; auth-nxdomain no; allow-recursion { none; }; dnssec-enable yes; /* * If there is a firewall between you and nameservers you want * to talk to, you might need to uncomment the query-source * directive below. Previous versions of BIND always asked * questions using port 53, but BIND 8.1 uses an unprivileged * port by default. */ // query-source address * port 53; }; [...] |
之后重启BIND:
/etc/init.d/bind9 restart
(如果您使用ISPConfig,您的更改将被ISPConfig覆盖,为了防止这种情况,我们将named.conf模板文件/root/ispconfig/isp/conf/named.conf.master
,如上所示进行修改,将修改的模板保存在/ root / ispconfig / isp / conf / customize_templates
目录=> /root/ispconfig/isp/conf/customized_templates/named.conf.master
中,还请修改/etc/bind/named.conf
,如上所示在此之上。)
3再次检查BIND
现在我们再次从第1章运行查询:
dig +short @ns1.example.com porttest.dns-oarc.net TXT
如果一切顺利,现在应该显示GOOD
而不是POOR
,它应该使用不止一个端口:
mh1:~# dig +short @ns1.example.com porttest.dns-oarc.net TXT
z.y.x.w.v.u.t.s.r.q.p.o.n.m.l.k.j.i.h.g.f.e.d.c.b.a.pt.dns-oarc.net.
"1.2.3.4 is GOOD: 26 queries in 4.4 seconds from 26 ports with std dev 20195.32"
mh1:~#
恭喜,你刚刚修正了BIND!
您还可以对ISP的域名服务器运行dig命令,以查明其Nameservers是否仍然易受攻击。 如果是,您应该敦促您的ISP更新其Nameservers!