| 導購 | 订阅 | 在线投稿
分享
 
 
 

BIND8+ 域名服務器安全增強

來源:互聯網  2011-12-03 10:53:06  評論

爲什麽要寫這篇文章?第一個原因當然就是前段時間出現的BIND 8.2.x TSIG安全漏洞(還有去年公布的BIND 8.1.x/8.2.x NXT安全漏洞),直到目前爲止,國內也還沒有關于DNS服務安全配置方面的較爲完整的文章(即使是國外也不多見)。另一個原因是經過調查發現,幾乎任何一種Unix家族的操作系統,都使用BIND軟件作爲其DNS的唯一實現,比起其它諸如ftp/http/pop3等網絡服務有各種各樣的發行版本,所以一旦被發現有安全問題,則受影響的主機之多也是其它漏洞很難比擬的。所以覺得應該寫一份針對BIND DNS服務軟件的安全配置資料,充分利用BIND自身已經實現的保護功能,加強BIND安全性,從而能抵禦目前已知的BIND安全漏洞,並使潛在的安全漏洞所可能對服務器造成的影響盡可能地減少。

配置環境:

FreeBSD 4.1-RELEASE

BIND 8.2.3

---[[ 啓動安全選項 ]]---------------------------------------------------

named進程啓動選項:

-r:關閉域名服務器的遞歸查詢功能(缺省爲打開)。該選項可在配置文件的options中使用"recursion"選項覆蓋。

-u <user_name>和-g <group_name>:定義域名服務器運行時所使用的UID和GID。這用于丟棄啓動時所需要的root特權。

-t <directory>:指定當服務器進程處理完命令行參數後所要chroot()的目錄。

---[[ 配置文件中的安全選項 ]]-------------------------------------------

1、假如希望記錄安全事件到文件中,但同時還希望保持原有的日志模式,可以添加以下內容:

logging {

channel my_security_channel {

file "my_security_file.log" versions 3 size 20m;

severity info;

};

category security {

my_security_channel;

default_syslog; default_debug; };

}

其中my_security_channel是用戶自定義的channel名字,my_security_file.log 是安全事件日志文件,可包含全路徑(否則是以named進程工作目錄爲當前目錄)。安全事件日志文件名爲my_security_file.log,保存三個最近的備份(my_security_file.log0、my_security_file.log1、my_security_file.log2),日志文件的最大容量爲20MB(如果達到或超這一數值,直到該文件被再次打開前,將不再記錄任何日志消息。缺省(省略)時是沒有大小限制。)

2、在options節中增加自定義的BIND版本信息,可隱藏BIND服務器的真正版本號。

version "Who knows?";

// version 9.9.9;

此時如果通過DNS服務查詢BIND版本號時,返回的信息就是"Who knows?"。^_^

3、要禁止DNS域名遞歸查詢,在options(或特定的zone區域)節中增加:

recursion no;

fetch-glue no;

4、要增加出站查詢請求的ID值的隨機性,在options節中增加:

use-id-pool yes;

則服務器將跟蹤其出站查詢ID值以避免出現重複,並增加隨機性。注意這將會使服務器多占用超過128KB內存。(缺省值爲no)

爲什麽要寫這篇文章?第一個原因當然就是前段時間出現的BIND 8.2.x TSIG安全漏洞(還有去年公布的BIND 8.1.x/8.2.x NXT安全漏洞),直到目前爲止,國內也還沒有關于DNS服務安全配置方面的較爲完整的文章(即使是國外也不多見)。另一個原因是經過調查發現,幾乎任何一種Unix家族的操作系統,都使用BIND軟件作爲其DNS的唯一實現,比起其它諸如ftp/http/pop3等網絡服務有各種各樣的發行版本,所以一旦被發現有安全問題,則受影響的主機之多也是其它漏洞很難比擬的。所以覺得應該寫一份針對BIND DNS服務軟件的安全配置資料,充分利用BIND自身已經實現的保護功能,加強BIND安全性,從而能抵禦目前已知的BIND安全漏洞,並使潛在的安全漏洞所可能對服務器造成的影響盡可能地減少。 配置環境: FreeBSD 4.1-RELEASE BIND 8.2.3 ---[[ 啓動安全選項 ]]---------------------------------------------------   named進程啓動選項: -r:關閉域名服務器的遞歸查詢功能(缺省爲打開)。該選項可在配置文件的options中使用"recursion"選項覆蓋。 -u <user_name>和-g <group_name>:定義域名服務器運行時所使用的UID和GID。這用于丟棄啓動時所需要的root特權。 -t <directory>:指定當服務器進程處理完命令行參數後所要chroot()的目錄。 ---[[ 配置文件中的安全選項 ]]------------------------------------------- 1、假如希望記錄安全事件到文件中,但同時還希望保持原有的日志模式,可以添加以下內容: logging { channel my_security_channel { file "my_security_file.log" versions 3 size 20m; severity info; }; category security { my_security_channel; default_syslog; default_debug; }; }   其中my_security_channel是用戶自定義的channel名字,my_security_file.log 是安全事件日志文件,可包含全路徑(否則是以named進程工作目錄爲當前目錄)。安全事件日志文件名爲my_security_file.log,保存三個最近的備份(my_security_file.log0、my_security_file.log1、my_security_file.log2),日志文件的最大容量爲20MB(如果達到或超這一數值,直到該文件被再次打開前,將不再記錄任何日志消息。缺省(省略)時是沒有大小限制。) 2、在options節中增加自定義的BIND版本信息,可隱藏BIND服務器的真正版本號。 version "Who knows?"; // version 9.9.9;   此時如果通過DNS服務查詢BIND版本號時,返回的信息就是"Who knows?"。^_^ 3、要禁止DNS域名遞歸查詢,在options(或特定的zone區域)節中增加: recursion no; fetch-glue no; 4、要增加出站查詢請求的ID值的隨機性,在options節中增加: use-id-pool yes;   則服務器將跟蹤其出站查詢ID值以避免出現重複,並增加隨機性。注意這將會使服務器多占用超過128KB內存。(缺省值爲no)
󰈣󰈤
王朝萬家燈火計劃
期待原創作者加盟
 
 
 
>>返回首頁<<
 
 
 
 
 熱帖排行
 
 
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有