如何修补BIND9对DNS Cache Poison在Debian蚀刻

如何补丁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!

赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏