當前位置:首頁 > 嵌入式 > 嵌入式軟件
[導讀] 和其它大型軟件一樣,BIND(DNS服務(wù)器)也因其體積龐大和功能繁雜而存在許多問題。因此針對BIND安全漏洞的系統(tǒng)入侵數(shù)量也在大幅度上升,最嚴重的甚至可獲取目標主機的所有遠

 和其它大型軟件一樣,BIND(DNS服務(wù)器)也因其體積龐大和功能繁雜而存在許多問題。因此針對BIND安全漏洞的系統(tǒng)入侵數(shù)量也在大幅度上升,最嚴重的甚至可獲取目標主機的所有遠程控制權(quán)。由于DNS服務(wù)器主機對網(wǎng)絡(luò)系統(tǒng)有著很大的影響,如何避免這些系統(tǒng)入侵也變得至關(guān)重要了。

這篇短文的主旨是講述如何利用chroot()環(huán)境在RedHat Linux(或類似系統(tǒng))中建立安全的BIND 8.x服務(wù)器。本文內(nèi)容主要來自于Adam Shostack和他在這方面的文章(Solaris版本)。

步驟一:軟件獲取和安裝

請到ISC FTP站點下載BIND的最新版本(本文內(nèi)容在BIND 8.x版本中經(jīng)過測試)。

到Obtuse System FTP站點下載本文必需的免費軟件: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文件稍加修改后即可。

修改文件內(nèi)容:

'CDEBUG= -O2 -g'

替換為:

'CDEBUG= -O2 -static'

切換到BIND的源代碼路徑,執(zhí)行"make clean"和"make"命令。在下面的步驟中將會把這些文件復制到chroot()目錄下。

本步驟構(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

需要復制以下文件到其下的相應(yīng)子目錄中,和進行一些必要的處理:

/

/etc

復制系統(tǒng)/etc目錄下的named.conf文件

復制系統(tǒng)/etc目錄下的localtime文件(為syslog提供正確的named日志記錄時間)

創(chuàng)建僅包含named GID的/etc/group文件

/etc/namedb

復制系統(tǒng)/etc/namedb目錄下的所有“區(qū)(zone)”數(shù)據(jù)庫和文件

/dev

mknod ./null c 1 3; chmod 666 null(請參閱相應(yīng)版本的mknod命令)

/usr/sbin

復制系統(tǒng)%BIND%/src/bin/named目錄和系統(tǒng)%BIND%/src/bin/named-xfer目錄下的named和named-xfer二進制文件(靜態(tài)鏈接版本)

/var/run

另外還可根據(jù)需要指定日志記錄目錄(如/var/log)。

步驟四:添加named用戶和組

在/etc/passwd和/etc/group文件中添加named用戶和組。它們是DNS服務(wù)器運行時的UID/GID。

此時,你可以到chroot環(huán)境中執(zhí)行"chown -R named.named /etc/namedb"命令。這樣當你向系統(tǒng)發(fā)送中斷信號(kill -INT )時,named進程能夠保存服務(wù)器緩存和統(tǒng)計信息。如果該目錄為root所有則named進程無法將輸出寫到目錄中,但不會影響named服務(wù)器功能。另一個選擇是僅改變目錄權(quán)限(使named用戶具有寫權(quán)限),而屬主仍然是root。這種方法也是可行的,但必須小心設(shè)置,確保其它用戶不會修改named記錄!

*** 重要警告***

不要用一個已存在的UID/GID(如"nobody")運行named。記住,以chroot環(huán)境中使用任何已存在的UID/GID都可能會影響到服務(wù)的安全性。必須養(yǎng)成在chroot環(huán)境中為每一個守護進程提供獨立的UID/GID的習慣。

步驟五:編輯啟動腳本

Linux使用SYS V風格的init文件,所以有幾個地方都可以放置運行named的命令。(大多數(shù)情況下)最好將named初始化腳本放置到/etc/rc.d/init.d/named中。在其中你會找到有關(guān)named啟動的那一節(jié)內(nèi)容。我們需要添加和修改其中的某些行。

1、在運行named前插入一行以啟動holelogd。需要向holelogd提供遠程套接字

位置的參數(shù),它應(yīng)該是在上面步驟中創(chuàng)建的chroot named dev目錄。命令行

內(nèi)容如下:

# Start daemons.

echo -n "Staring holelogd: "

daemon /usr/local/sbin/holelogd /chroot/named/dev/log

echo

echo -n "Starting named: "

daemon named

echo

touch /var/lock/subsys/named

;;

2、另外還需要修改BIND的啟動參數(shù)。BIND 8.x版本允許指定運行用戶ID和組ID,

它也應(yīng)該是在上面步驟中特別創(chuàng)建的UID/GID:

# Start daemons.

echo -n "Staring holelogd: "

daemon /usr/local/sbin/holelogd /chroot/named/dev/log

echo

echo -n "Starting named: "

daemon /chroot/named/usr/sbin/named -u named -g named -t /chroot/named

echo

touch /var/lock/subsys/named

;;

3、named附帶的"ndc"腳本可用于控制named的工作。需要編輯這個文件以將PID

文件位置從/var/run/named.pid修改為/chroot/named/var/run/named.pid。

步驟六:服務(wù)器測試

輸入如下命令啟動holelogd進程

/usr/local/sbin/holelogd /chroot/named/dev/log

進入/chroot/named/dev/目錄并輸入ls -al。應(yīng)該得到與下面類似的輸出:

srw-rw-rw- 1 root wheel 0 Jan 01 12:00 log

設(shè)定的"s"位指示這是一個套接字(socket)文件。chroot()環(huán)境中的named進程將通過該套接字與syslog通訊。

現(xiàn)在輸入:

/chroot/named/usr/sbin/named -u named -g named -t /chroot/named

如果一切正常,named進程將啟動,日志文件將記錄named服務(wù)器"Ready to answer queries."。[!--empirenews.page--]

進行適當?shù)?strong>DNS測試以確保服務(wù)器能正確工作,然后重新啟動系統(tǒng)并檢驗所有配置。BIND正常啟動后會報告其chroot()目錄和運行UID/GID。你可以使用lsof之類的程序列出主機中所有網(wǎng)絡(luò)套接字進行檢查。

當一切工作正常后,建議將/etc/namedb改名為/etc/namedb.orig或其它名字,同時chmod 000 /usr/sbin/named,這樣可以確保這些舊版本的named不會因偶然的失誤而使用。

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風險,如企業(yè)系統(tǒng)復雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉