版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
為什么要寫這篇文章?第一個原因當(dāng)然就是前段時間出現(xiàn)的BIND8.2.xTSIG安全漏洞(還有去年公布的BIND8.1.x/8.2.xNXT安全漏洞),直到目前為止,國內(nèi)也還沒有關(guān)于DNS服務(wù)安全配置方面的較為完整的文章(即使是國外也不多見)。另一個原因是經(jīng)過調(diào)查發(fā)現(xiàn),幾乎任何一種UNIX家族的操作系統(tǒng),都使用BIND軟件作為其DNS的唯一實(shí)現(xiàn),比起其它諸如ftp/http/pop3等網(wǎng)絡(luò)服務(wù)有各種各樣的發(fā)行版本,所以一旦被發(fā)現(xiàn)有安全問題,則受影響的主機(jī)之多也是其它漏洞很難比擬的。所以覺得應(yīng)該寫一份針對BINDDNS服務(wù)軟件的安全配置資料,充分利用BIND自身已經(jīng)實(shí)現(xiàn)的保護(hù)功能,加強(qiáng)BIND安全性,從而能抵御目前已知的BIND安全漏洞,并使?jié)撛诘陌踩┒此赡軐Ψ?wù)器造成的影響盡可能地減少。配置環(huán)境:FreeBSD4.1-RELEASEBIND8.2.3---[[啟動安全選項(xiàng)]] named進(jìn)程啟動選項(xiàng):-r:關(guān)閉域名服務(wù)器的遞歸查詢功能(缺省為打開)。該選項(xiàng)可在配置文件的options中使用"recursion”選項(xiàng)覆蓋。-u<user_name>和迫<group_name>:定義域名服務(wù)器運(yùn)行時所使用的UID和GID。這用于丟棄啟動時所需要的root特權(quán)。-t〈directory〉:指定當(dāng)服務(wù)器進(jìn)程處理完命令行參數(shù)后所要chroot()的目錄。---[[配置文件中的安全選項(xiàng)]] 1、 假如希望記錄安全事件到文件中,但同時還希望保持原有的日志模式,可以添加以下內(nèi)容:logging(channelmy_security_channel{file"my_security_file.log"versions3size20m;severityinfo;};categorysecurity{my_security_channel;default_syslog;default_debug;};}其中my_security_channel是用戶自定義的channel名字,my_security_file.log是安全事件日志文件,可包含全路徑(否則是以named進(jìn)程工作目錄為當(dāng)前目錄)。安全事件日志文件名為my_security_file.log,保存三個最近的備份(my_security_file.log。、my_security_file.log1、my_security_file.log2),日志文件的最大容量為20MB(如果達(dá)到或超這一數(shù)值,直到該文件被再次打開前,將不再記錄任何日志消息。缺?。ㄊ÷裕r是沒有大小限制。)2、在options節(jié)中增加自定義的BIND版本信息,可隱藏BIND服務(wù)器的真正版本號。version"Whoknows?";//version9.9.9;此時如果通過DNS服務(wù)查詢BIND版本號時,返回的信息就是"Whoknows?”。A_A3、 要禁止DNS域名遞歸查詢,在options(或特定的zone區(qū)域)節(jié)中增加:recursionno;fetch-glueno;4、 要增加出站查詢請求的ID值的隨機(jī)性,在options節(jié)中增加:use-id-poolyes;則服務(wù)器將跟蹤其出站查詢ID值以避免出現(xiàn)重復(fù),并增加隨機(jī)性。注意這將會使服務(wù)器多占用超過128KB內(nèi)存。(缺省值為no)5、 要限制對DNS服務(wù)器進(jìn)行域名查詢的主機(jī),在options(或特定的zone區(qū)域)節(jié)中增加:allow-query{<address_match_list>};address_match_list是允許進(jìn)行域名查詢的主機(jī)IP列表,如”;5.6.7/24;”。6、 要限制對DNS服務(wù)器進(jìn)行域名遞歸查詢的主機(jī),在options(或特定的zone區(qū)域)節(jié)中增加:allow-recursion{<address_match_list>};address_match_list是允許進(jìn)行域名遞歸查詢的主機(jī)IP列表,如”;5.6.7/24;”。7、 要指定允許哪些主機(jī)向本DNS服務(wù)器提交動態(tài)DNS更新,在options(或特定的zone區(qū)域)節(jié)中增加:allow-update{<address_match_list>};address_match_list是允許向本DNS服務(wù)器提交動態(tài)DNS更新的主機(jī)IP列表,如";5.6.7/24;”。缺省時為拒絕所有主機(jī)的提交。8、 要限制對DNS服務(wù)器進(jìn)行區(qū)域記錄傳輸?shù)闹鳈C(jī),在options(或特定的zone區(qū)域)節(jié)中增加:allow-transfer{<address_match_list>};address_match_list是允許進(jìn)行區(qū)域記錄傳輸?shù)闹鳈C(jī)IP列表,如”;5.6.7/24;”。9、 要指定不接受哪些服務(wù)器的區(qū)域記錄傳輸請求,在options(或特定的zone區(qū)域)節(jié)中增加:blackhole{<address_match_list>};address_match_list是不接受區(qū)域記錄傳輸請求的主機(jī)IP列表,如”;5.6.7/24;”。10、 在options節(jié)中還有一些資源限制選項(xiàng),不同用戶可根據(jù)實(shí)際情況靈活設(shè)置,但一定要注意不當(dāng)?shù)脑O(shè)置會損失DNS服務(wù)的性能。coresize<size_spec>;//coredump的最大值。缺省為defaultodatasize<size_spec>;//服務(wù)器所使用的最大數(shù)據(jù)段內(nèi)存。缺省為defaultofiles<size_spec>;//服務(wù)器能同時打開的最大文件數(shù)。缺省為//unlimited(不限制)。//(注意,并非所有操作系統(tǒng)都支持這一選項(xiàng)。)max-ixfr-log-size<size_spec>;//(目前版本暫不使用。)限制增量區(qū)域記錄傳輸時會話日志的大小。stacksize<size_spec>;//服務(wù)器所使用的最大堆棧段內(nèi)存。缺省為defaulto11、 定義ACL地址名(即用于上面的<address_match_list>)。注意,如果要使用這里定義的列表名,必須先定義,后使用!例如:aclintranet{192.168/16;};aclpartner{!;172.16/12;//除外/12網(wǎng)絡(luò)中其它主機(jī)};BIND已內(nèi)置以下四個ACL:all//允許所有主機(jī)none//禁止所有主機(jī)localhost//本機(jī)的所有網(wǎng)絡(luò)接口localnets//本機(jī)所在網(wǎng)絡(luò)12、 BIND域名服務(wù)器的一個有用功能(慎用?。。。嚎刂乒芾斫涌赾ontrols節(jié)語法格式:controls{[inetip_addrportip_portallow{<address_match_list>;};][unixpath_namepermnumberownernumbergroupnumber;]};controls節(jié)提供管理接口。如果使用第一種(inet),則在指定IP(接口)和端口上監(jiān)聽,但只允許在allow中限定允許與其連接的IP地址列表。如果使用第二種(unix),則產(chǎn)生一個FIFO的控制管道,權(quán)限、屬主和用戶組都由其參數(shù)限定。---[[通過TSIG對區(qū)域記錄傳輸進(jìn)行認(rèn)證和校驗(yàn)]] 首先請確保你的BIND域名服務(wù)器軟件已更新到最新版本!在BIND8.2+中,能夠使用事務(wù)簽名(TransactionSignatures,即TSIG?。﹣韺^(qū)域記錄數(shù)據(jù)進(jìn)行驗(yàn)證和校驗(yàn)。它要求在主域名服務(wù)器和輔助域名服務(wù)器上配置好加密密鑰,并通知服務(wù)器使用該密鑰與其它域名服務(wù)器通訊。(注意,TSIG的使用要求域名服務(wù)器必須進(jìn)行時鐘同步?。〢、 如果需要用TSIG簽名來進(jìn)行安全的DNS數(shù)據(jù)庫手工更新,具體操作步驟很簡單:1、使用BIND自帶的dnskeygen工具生成TSIG密鑰。#dnskeygen-H128-h-ntsig-key.則會生成兩個文件?!疜tsig-key.+157+00000.key'內(nèi)容如下:tsig-key.INKEY5133157awwLOtRfpGE+rRKF2+DEiw=='Kvip-key.+157+00000.private'內(nèi)容如下:Private-key-format:v1.2Algorithm:157(HMAC)Key:awwLOtRfpGE+rRKF2+DEiw==注意這些密鑰都已經(jīng)過BASE64編碼了。將它們放到本地域名服務(wù)器的配置文件中。例如:keytsig-key.{algorithmhmac-md5;secret"awwLOtRfpGE+rRKF2+DEiw==";};zone""{......allow-update{keytsig-key.;};}記住要重啟named守護(hù)進(jìn)程。然后將這兩個密鑰文件復(fù)制到客戶端系統(tǒng)(或輔助域名服務(wù)器),例如為/var/named/tsig目錄。最后運(yùn)行如下命令即可:nsupdate-k/var/named/tsig:tsig-key.B、 如果需要對區(qū)域記錄傳輸(自動或手工)進(jìn)行TSIG簽名,則:1、 用dnskeygen生成TSIG密鑰,方法同上。2、 主域名服務(wù)器配置文件的內(nèi)容(節(jié)選)如下://定義認(rèn)證的方法和共享密鑰keymaster-slave{algorithmhmac-md5;secret"mZiMNOUYQPMNwsDzrX2ENw==";};//定義輔助域名服務(wù)器的一些特性server8{transfer-formatmany-answers;keys{master-slave;};};//區(qū)域記錄定義zone"”{typemaster;file;allow-transfer{8;};};3、輔助域名服務(wù)器配置文件的內(nèi)容(節(jié)選)如下://定義認(rèn)證的方法和共享密鑰keymaster-slave{algorithmhmac-md5;secret"mZiMNOUYQPMNwsDzrX2ENw==";};//定義與主域名服務(wù)器通訊時的一些特性server9{transfer-formatmany-answers;keys{master-slave;};};//區(qū)域記錄定義zone""{typeslave;file"";masters{9;};allow-transfer{none;};};---[[實(shí)施DNSSec功能]] 說實(shí)在的,我一直在考慮需不需要在目前的版本中實(shí)施DNSSec功能。因?yàn)殡m然ISC早已在BIND8.1.x版本后增加了DNSSec的實(shí)現(xiàn),但實(shí)際的應(yīng)用卻不常見,而且去年公布的NXT遠(yuǎn)程安全漏洞和DNSSec有關(guān)(實(shí)際上NXT就屬于DNSSec實(shí)現(xiàn)的功能之一)。最后我決定在本文不討論如何實(shí)施DNSSec安全功能。但不可否認(rèn),DNSSec確實(shí)是一項(xiàng)很好的安全技術(shù),它通過加密DNS數(shù)據(jù)來提高了DNS服務(wù)的安全性。主加密密鑰用于對第一級域名的加密密鑰進(jìn)行加密簽字,第一級域名(.com,.cn等)密鑰用于對自身數(shù)據(jù)及其子域名密鑰進(jìn)行加密簽名,以此類推。例如,的域名服務(wù)器由.com域密鑰簽名,域密鑰則用于對域名進(jìn)行加密簽名。---[[實(shí)現(xiàn)BIND的chroot]] (以FreeBSD系統(tǒng)平臺為例)步驟一:BIND-8的最新源代碼版本獲取和安裝請到ISCFTP站點(diǎn)下載BIND的最新版本。BIND8:/products/BIND/bind8.htmlBIND9:/products/BIND/bind9.html
步驟二:構(gòu)造靜態(tài)(static)的named和named-xfer二進(jìn)制文件在編譯和安裝后,你需要構(gòu)造可執(zhí)行文件的靜態(tài)鏈接版本。只要對 %BIND%/src/port/freebsd目錄下的Makefile.set文件稍加修改后即可。修改文件內(nèi)容:'CDEBUG=-O2-g'替換為:'CDEBUG=-O2-static'切換到BIND的源代碼路徑,執(zhí)行”makeclean”和"make”命令。在下面的步驟中將會把這些文件復(fù)制到chroot()目錄下。cd/tmp/bind/srcmakeclean;make本步驟構(gòu)造的靜態(tài)鏈接執(zhí)行文件在運(yùn)行時無需裝載動態(tài)鏈接庫。在chroot()環(huán)境中,這種“獨(dú)立”可執(zhí)行文件可避免出現(xiàn)缺少鏈接庫文件問題。它在chroot()環(huán)境中無需任何靜態(tài)鏈接庫,可使服務(wù)配置簡單化。其它所有的網(wǎng)絡(luò)守護(hù)進(jìn)程也可以編譯和使用這種靜態(tài)鏈接版本。步驟三:構(gòu)造BIND目錄為chroot()環(huán)境構(gòu)造BIND目錄。這個目錄將在chroot()環(huán)境中被BIND當(dāng)作系統(tǒng)根目錄。在這里我使用/chroot/bind作為chroot后的根目錄。cd/chroot/bindmkdir/chrootmkdir/chroot/devmkdir/chroot/etcmkdir/chroot/etc/namedbmkdir/chroot/usrmkdir/chroot/usr/sbinmkdir/chroot/varmkdir/chroot/var/run需要復(fù)制以下文件到其下的相應(yīng)子目錄中,和進(jìn)行一些必要的處理:cp/etc/namedb/named.conf/chroot/bind/etc/cp/etc/localtime/chroot/bind/etc/grepbind/etc/group>/chroot/bind/etc/groupcp-R/etc/namedb//chroot/bind/etc/namedb/mknod/chroot/bind/dev/nullc22chmod666/chroot/bin/dev/null#cp/tmp/bind/src/bin/named/named/chroot/bind/usr/sbin/#cp/tmp/bind/src/bin/named-xfer/named-xfer/chroot/bind/另外還可根據(jù)需要指定日志記錄目錄(如/var/log),請參考下面的章節(jié)或named.conf的手冊頁。步驟四:添加bind用戶和組(如果沒有的話。如果已經(jīng)有bind或named之類的用戶和組,請?zhí)^本步驟。)在/etc/passwd和/etc/group文件中添加bind用戶和組。它們是DNS服務(wù)器運(yùn)行時的UID/GID。此時,你可以到chroot環(huán)境中執(zhí)行”chown-Rbind.bind/chroot/bind/etc/namedb"命令。這樣當(dāng)你向系統(tǒng)發(fā)送中斷信號(kill-INT)時,named進(jìn)程能夠保存服務(wù)器緩存和統(tǒng)計(jì)信息。如果該目錄為root所有則named進(jìn)程無法將輸出寫到目錄中,但不會影響named服務(wù)器功能。另一個選擇是僅改變目錄權(quán)限(使named用戶具有寫權(quán)限),而屬主仍然是root。這種方法也是可行的,但必須小心設(shè)置,確保其它用戶不會修改named記錄!不要用一個已存在的UID/GID(如"nobody")運(yùn)行named。記住,以chroot環(huán)境中使用任何已存在的UID/GID都可能會影響到服務(wù)的安全性。必須養(yǎng)成在chroot環(huán)境中為每一個守護(hù)進(jìn)程提供獨(dú)立的UID/GID的習(xí)慣。步驟五:其它必要調(diào)整***重要警告******重要警告***如果在named.conf中還指定了另外的目錄和文件,也要相應(yīng)地在chroot()環(huán)境中(在本例中即/chroot/bind/目錄)進(jìn)行設(shè)置。步驟六:調(diào)試1、 終止系統(tǒng)中原有的syslogd和named守護(hù)進(jìn)程。killallsyslogdnamed2、 用適當(dāng)?shù)膮?shù)重新啟動syslogd守護(hù)進(jìn)程。syslogd-s-p/chroot/bind/var/run/log3、 用適當(dāng)參數(shù)重新啟動named守護(hù)進(jìn)程。/chroot/bind/named-ubind-gbind-t/chroot/bind4、 檢查syslogd/named守護(hù)進(jìn)程、監(jiān)聽端口是否正常,和/var/log/messages文件中named進(jìn)程啟動時是否正常。psauwx|grepsyslogdroot58960.01.7896508??Ss9:44PM0:00.10syslogd-s-p/chroot/bind/var/run/logpsauwx|grepnamedbind59410.04.916521444??Is9:52PM0:00.01/chroot/bind/usr/sbin/named-ubind-gbind-t/chroot/bindnetstat-an|grep53tcp400.53*.*LISTENtcp4009.53*.*LISTENudp400.53*.*udp4009.53*.*步驟七:修改系統(tǒng)啟動腳本對于FreeBSD系統(tǒng),在/etc/r
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度農(nóng)村土地承包經(jīng)營權(quán)流轉(zhuǎn)與農(nóng)業(yè)科技創(chuàng)新與應(yīng)用合同
- 二零二五年度文化旅游合作協(xié)議樣本3篇
- 2025年度農(nóng)業(yè)農(nóng)機(jī)安全監(jiān)管與服務(wù)合同3篇
- 2025年度能源企業(yè)運(yùn)維檢修派遣服務(wù)合同模版3篇
- 二零二五年度高空作業(yè)安全事故處理與保障協(xié)議3篇
- 2025年度農(nóng)機(jī)購置與農(nóng)業(yè)廢棄物資源化利用合同3篇
- 2025編號建設(shè)工程設(shè)計(jì)合同
- 二零二五年度公積金租房管理服務(wù)協(xié)議范本3篇
- 2025年度兼職協(xié)議書-電子商務(wù)平臺運(yùn)營助手服務(wù)合同3篇
- 二零二五年度農(nóng)村山塘承包合同(水資源保護(hù)與農(nóng)業(yè)現(xiàn)代化)3篇
- 鐵路工程-軌道工程施工工藝及方案
- 福建省福州市各縣區(qū)鄉(xiāng)鎮(zhèn)行政村村莊村名明細(xì)及行政區(qū)劃代碼
- 《高中語文文言斷句》一等獎優(yōu)秀課件
- 上海市中小學(xué)生學(xué)籍信息管理系統(tǒng)
- (完整版)自動感應(yīng)門施工方案
- [QC成果]提高剪力墻施工質(zhì)量一次合格率
- 8站小車呼叫的plc控制
- _ 基本粒子與宏觀物體內(nèi)在聯(lián)系
- 象棋比賽積分編排表
- 小學(xué)贛美版六年級美術(shù)上冊第二十課向往和平課件(16張)ppt課件
- DPP4抑制劑比較篇PPT課件
評論
0/150
提交評論