這是七月底的消息了,也已有 POC 程式,經測試可以輕易的掛掉一台 DNS 服務
CentOS 5 版的系統還可以 yum update bind
那如果是 CentOS 4 呢,就要自已來 compile 了
或者也可以用 iptables 來擋,但要 support hex-string (但 CentOS 4 預設不 support)
iptables -A INPUT -p udp --dport 53 -m string --algo bm --hex-string '|00F900FF|' -j LOG iptables -A INPUT -p udp --dport 53 -m string --algo bm --hex-string '|00F900FF|' -j DROP
由於 CentOS 4 的 BIND 是 9.2.4,我想把它升級像 CentOS 5 的 9.3.6,然後不影響原本的操作方式,比如仍然是 service named restart 或 zone 仍在 /var/named 底下
所以我下載 bind-9.3.6-P1.tar.gz 版本,再 patch 修補 CVE-2015-5477 漏洞,它只要在某一行加入 name = NULL; 即可
下載編譯
wget http://ftp.isc.org/isc//bind9/9.3.6-P1/bind-9.3.6-P1.tar.gz tar zxvf bind-9.3.6-P1.tar.gz cd bind-9.3.6-P1 sed -i '564a name = NULL;' lib/dns/tkey.c make clean ./configure --with-openssl --enable-threads --with-libxml2 --with-libtool --disable-openssl-version-check --prefix=/usr/local/bind9 make make install
產生 key
/usr/local/bind9/sbin/rndc-confgen -a -c /usr/local/bind9/etc/rndc.key chmod 640 /usr/local/bind9/etc/rndc.key chown root.named /usr/local/bind9/etc/rndc.key # or cp -rp /etc/rndc.key /usr/local/bind9/etc/rndc.key
建立使用者 (這步就不用了,因為我沿用原本的)
#groupadd named #useradd -d /var/named -g named -s /sbin/nologin named
chown
chown -R named.named /usr/local/bind9
再不關閉原本的 named 作測試 (沒什麼錯誤就好)
/usr/local/bind9/sbin/named -c /etc/named.conf -f -p 5353 -u named
LINK
sudo -u named ln -s /etc/named.conf /usr/local/bind9/etc/
更名 (這邊就正式停用舊的 named 了喔)
service named stop mv /usr/sbin/named /usr/sbin/named.old ln -s /usr/local/bind9/sbin/named /usr/sbin/named mv /usr/sbin/rndc /usr/sbin/rndc.old ln -s /usr/local/bind9/sbin/rndc /usr/sbin/rndc service named restart
測試 stats (如果有使用統計的話)
rndc stats # 有內容就 OK /var/named/data/named_stats.txt
不然如果出現
rndc: connection to remote host closed This may indicate that the remote server is using an older version of the command protocol, this host is not authorized to connect, or the key is invalid.
就
cp -rp /etc/rndc.key /usr/local/bind9/etc service named restart
或者
需要 /etc/named.conf 裡的 key “rndc-key” { 的 key 是跟 /usr/local/bind9/etc/rndc.key 是相同的
留言