這是七月底的消息了,也已有 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 是相同的

最後修改日期: 2015 年 08 月 07 日

作者

留言

撰寫回覆或留言

發佈留言必須填寫的電子郵件地址不會公開。