BIND 9漏洞和解决方案 - 补丁BIND以避免缓存中毒(Fedora / CentOS)

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_2P1表示包是一个打补丁。

在我的系统修补后,我得到这个结果..

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服务器上执行相同的过程。

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

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

支付宝扫一扫打赏

微信扫一扫打赏