BIND 9漏洞和解决方案 - 补丁BIND以避免缓存中毒(Fedora / CentOS)
我很确定你们中的大多数人都对BIND的脆弱性有所了解。 本月早些时候,丹·卡明斯基宣布了DNS的巨大的多供应商问题,可能会让攻击者破坏任何Nameservers - 客户端。
我想我会与您分享运行BIND 9的最快解决方案系统管理员之一,可以帮助他们解决这个漏洞,以防系统易受攻击。
经过3天的测试和使用我的DNS服务器,我发现似乎解决了我的问题,所以决定与大家分享。
我不知道这是否真的解决了这个问题,尽管它对我来说是有效的,因为测试结果很棒。 但您的建议和意见是值得欢迎的。
我的发现尽可能简单,只适用于在Centos 4或5上运行BIND 9的人以及Fedora核心系统和以上的...我在我办公室的所有这些盒子上进行了测试。
我们开始吧,我们呢?
先决条件和假设
- 您的防火墙(iptables NAT / PAT或PIX)必须以允许随机端口选择的方式打开端口53。
- 您必须在Centos 4或5或任何Fedora核心系统上运行BIND 9。
- 绑定必须以chroot模式运行,但不是先决条件,而是最佳做法。
- 在
/etc/named/named.conf
OR/etc/named.conf
文件中....必须禁用递归查询,还要添加一个acl,以允许其网络执行递归请求。 因此,系统管理员将减少缓存中毒到自己已知网络的机会。
acl "mynetworks" { 127/8; 172.16.0.0/12; 10.0.0.0/8; 192.168.0.0/16
view "internal" { match-clients { mynetwork; }; allow-query { mynetwork; }; allow-recursion { mynetwork; }; match-recursive-only yes;
view "external" { match-clients { any; }; allow-query { any; }; allow-recursion { none; }; match-recursive-only no;
现在修复BIND漏洞
第一步是通过运行下面的命令来检查他们的系统是否易受攻击,将其组织的TLD或ccTLD 替换
为ns1.youdomain.co.tz。
dig +short @ns1.youdomain.co.tz 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.
"192.168.1.3 is POOR: 26 queries in 20.0 seconds from 1 ports with std dev 0.00"
POOR
----->绝对表示所涉及的Nameservers或系统是易受攻击的,当然BIND软件运行也很老,需要被PATCHED ...
解
对于那些运行CentOS或Fedora系统的人,可以使用yum来修补系统。 CentOS 5开发人员已经发布了BIND软件的补丁,目前的版本是: bind-9.3.4-6.0.2.P1.el5_2
。 P1
表示包是一个打补丁。
在我的系统修补后,我得到这个结果..
rpm -q bind
bind-9.3.4-6.0.2.P1.el5_2
---->如果你的绑定版本没有修补,然后修补它。
应该做到这一点,以获得最新的软件和补丁。
yum update bind bind-chroot -y
应该编辑它们的named.conf文件并添加以下内容。 保存并重新加载BIND。
vi /etc/named.conf
options { directory "/var/named"; allow-transfer {192.168.1.4 ;}; query-source address * port 53; ##COMMENT or REMOVE THIS LINE.
它将允许随机端口选择。 只有在named.conf文件中的选项下启用了此参数,才能执行此操作。
dnssec-enable yes; ## ADD THIS OPTION TO ENABLE DNS-SEC.
上述行添加到您的named.conf
文件将启用DNS-SEC。 继续设置DNS-SEC,但记住,DNS-SEC不是这个漏洞的最终解决方案。
重新加载或重新启动BIND。
/etc/init.d/named reload
然后再次测试,看看你是否得到更好的结果。
dig +short @ns1.youdomain.co.tz 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.
"192.168.1.3 is GOOD: 26 queries in 19.6 seconds from 26 ports with std dev 16515.27"
GOOD
表示192.168.1.3中有问题的Nameservers似乎是安全的,但是必须确保列出的端口没有遵循明显的模式。 即具有标准偏差的端口。16515.27
...但如果您的测试时钟( 10000.00 std dev
),则您的DNS服务器更安全,您的客户端或用户不用担心。
应在组织中的所有DNS服务器上执行相同的过程。