日本a√视频在线,久久青青亚洲国产,亚洲一区欧美二区,免费g片在线观看网站

        <style id="k3y6c"><u id="k3y6c"></u></style>
        <s id="k3y6c"></s>
        <mark id="k3y6c"></mark>
          
          

          <mark id="k3y6c"></mark>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 建立安全的DNS服務器

          建立安全的DNS服務器

          作者: 時間:2016-09-12 來源:網(wǎng)絡 收藏

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

          本文引用地址:http://yuyingmama.com.cn/article/201609/304897.htm

          這篇短文的主旨是講述如何利用chroot()環(huán)境在RedHat Linux(或類似系統(tǒng))中建立安全的BIND 8.x服務器。本文內(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ǎng)絡守護進程也可以編譯和使用這種靜態(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

          復制系統(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(請參閱相應版本的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服務器運行時的UID/GID。

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

          *** 重要警告***

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

          步驟五:編輯啟動腳本

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

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

          位置的參數(shù),它應該是在上面步驟中創(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,

          它也應該是在上面步驟中特別創(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。

          步驟六:服務器測試

          輸入如下命令啟動holelogd進程

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

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

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

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

          現(xiàn)在輸入:

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

          如果一切正常,named進程將啟動,日志文件將記錄named服務器Ready to answer queries.。


          上一頁 1 2 下一頁

          關鍵詞:

          評論


          相關推薦

          技術(shù)專區(qū)

          關閉