和其它大型軟件一樣,BIND(DNS服務(wù)器)也因其體積龐大和功能繁雜而存在許多問題。因此針對BIND安全漏洞的系統(tǒng)入侵數(shù)量也在大幅度上升,最嚴重的甚至可獲取目標主機的所有遠程控制權(quán)。由于DNS服務(wù)器主機對網(wǎng)絡(luò)系統(tǒng)有著很大的影響,如何避免這些系統(tǒng)入侵也變得至關(guān)重要了。
這篇短文的主旨是講述如何利用chroot環(huán)境在RedHatLinux(或類似系統(tǒng))中建立安全的BIND8.x服務(wù)器。本文內(nèi)容主要來自于AdamShostack和他在這方面的文章(Solaris版本)。
步驟一:軟件獲取和安裝
請到ISCFTP站點下載BIND的最新版本(本文內(nèi)容在BIND8.x版本中經(jīng)過測試)。
到ObtuseSystemFTP站點下載本文必需的免費軟件:holelogd(及其它有用的工具)。該軟件用于在chroot環(huán)境中建立/dev/log套接字(socket),從而使syslogd能夠記錄named進程的日志。OpenBSD系統(tǒng)的syslogd已內(nèi)建了這一功能("syslogd-a/chroot/dev/log"),但Linux系統(tǒng)尚未實現(xiàn)這一功能。Holelogd軟件就是用來模仿OpenBSD的這個功能。
按照軟件文檔安裝holelogd(通常被安裝到/usr/local/sbin)。
步驟二:構(gòu)造靜態(tài)(static)的named和named-xfer二進制文件
在編譯和安裝后,你需要構(gòu)造可執(zhí)行文件的靜態(tài)鏈接版本。只要對%BIND%/src/port/linux目錄下的Makefile.set文件稍加修改后即可。
'CDEBUG=-O2-g' 替換為: 'CDEBUG=-O2-static' |
本步驟構(gòu)造的靜態(tài)鏈接執(zhí)行文件在運行時無需裝載動態(tài)鏈接庫。在chroot()環(huán)境中,這種“獨立”可執(zhí)行文件可避免出現(xiàn)缺少鏈接庫文件問題。它在chroot()環(huán)境中無需任何靜態(tài)鏈接庫,可使服務(wù)配置簡單化。其它所有的網(wǎng)絡(luò)守護進程也可以編譯和使用這種靜態(tài)鏈接版本。
步驟三:構(gòu)造BIND目錄
為chroot()環(huán)境構(gòu)造BIND目錄。這個目錄將在chroot()環(huán)境中被BIND當作系統(tǒng)根目錄。
/dev /etc /namedb /usr /sbin /var /run |
/
無
/etc
復(fù)制系統(tǒng)/etc目錄下的named.conf文件
復(fù)制系統(tǒng)/etc目錄下的localtime文件(為syslog提供正確的named日志記錄時間)
創(chuàng)建僅包含namedGID的/etc/group文件
/etc/namedb
復(fù)制系統(tǒng)/etc/namedb目錄下的所有“區(qū)(zone)”數(shù)據(jù)庫和文件
/dev
mknod./nullc13;chmod666null(請參閱相應(yīng)版本的mknod命令)
/usr/sbin
復(fù)制系統(tǒng)%BIND%/src/bin/named目錄和系統(tǒng)%BIND%/src/bin/named-xfer目錄下的named和named-xfer二進制文件(靜態(tài)鏈接版本)
/var/run
無
另外還可根據(jù)需要指定日志記錄目錄(如/var/log)。
共2頁: 1 [2] 下一頁 | ||
|