配置環(huán)境:
FreeBSD 4.1-RELEASE
BIND 8.2.3
---[[ 啟動安全選項 ]]---------------------------------------------------
named進(jìn)程啟動選項:
-r:關(guān)閉域名服務(wù)器的遞歸查詢功能(缺省為打開)。該選項可在配置文件的options中使用"recursion"選項覆蓋。
-u <user_name>和-g <group_name>:定義域名服務(wù)器運行時所使用的UID和GID。這用于丟棄啟動時所需要的root特權(quán)。
-t <directory>:指定當(dāng)服務(wù)器進(jìn)程處理完命令行參數(shù)后所要chroot()的目錄。
---[[ 配置文件中的安全選項 ]]-------------------------------------------
1、假如希望記錄安全事件到文件中,但同時還希望保持原有的日志模式,可以添加以下內(nèi)容:
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進(jìn)程工作目錄為當(dāng)前目錄)。安全事件日志文件名為my_security_file.log,保存三個最近的備份(my_security_file.log0、my_security_file.log1、my_security_file.log2),日志文件的最大容量為20MB(如果達(dá)到或超這一數(shù)值,直到該文件被再次打開前,將不再記錄任何日志消息。缺省(省略)時是沒有大小限制。)
2、在options節(jié)中增加自定義的BIND版本信息,可隱藏BIND服務(wù)器的真正版本號。
version "Who knows?";
// version 9.9.9;
此時如果通過DNS服務(wù)查詢BIND版本號時,返回的信息就是"Who knows?"。^_^
3、要禁止DNS域名遞歸查詢,在options(或特定的zone區(qū)域)節(jié)中增加:
recursion no;
fetch-glue no;
4、要增加出站查詢請求的ID值的隨機(jī)性,在options節(jié)中增加:
use-id-pool yes;
則服務(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列表,如"1.2.3.4; 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列表,如"1.2.3.4; 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列表,如
"1.2.3.4; 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列表,如"1.2.3.4;
5.6.7/24;"。
9、要指定不接受哪些服務(wù)器的區(qū)域記錄傳輸請求,在options(或特定的zone區(qū)域)節(jié)中增加:
blackhole { <address_match_list> };
address_match_list是不接受區(qū)域記錄傳輸請求的主機(jī)IP列表,如"1.2.3.4;
5.6.7/24;"。
10、在options節(jié)中還有一些資源限制選項,不同用戶可根據(jù)實際情況靈活設(shè)置,但一定要注意不當(dāng)?shù)脑O(shè)置會損失DNS服務(wù)的性能。
coresize <size_spec> ; // core dump的最大值。缺省為default。
datasize <size_spec> ; // 服務(wù)器所使用的最大數(shù)據(jù)段內(nèi)存。缺省為default。
files <size_spec> ; // 服務(wù)器能同時打開的最大文件數(shù)。缺省為
// unlimited(不限制)。
// (注意,并非所有操作系統(tǒng)都支持這一選項。)
max-ixfr-log-size <size_spec> ; // (目前版本暫不使用。)限制增量區(qū)域記錄傳輸時會話日志的大小。
stacksize <size_spec> ; // 服務(wù)器所使用的最大堆棧段內(nèi)存。缺省為default。
11、定義ACL地址名(即用于上面的<address_match_list>)。注意,如果要使用這里定義的列表名,必須先定義,后使用!
例如:
acl intranet {
192.168/16;
};
acl partner {
!172.16.0.1;
172.16/12; // 除172.168.0.1外172.16.0.0/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ù)器的一個有用功能(慎用!!!):
控制管理接口controls節(jié)語法格式:
controls {
[ inet ip_addr
port ip_port
allow { <address_match_list>; }; ]
[ unix path_name
perm number
owner number
group number; ]
};
controls節(jié)提供管理接口。如果使用第一種(inet),則在指定IP(接口)和端口上監(jiān)聽,但只允許在allow中限定允許與其連接的IP地址列表。如果使用第二種(unix),則產(chǎn)生一個FIFO的控制管道,權(quán)限、屬主和用戶組都由其參數(shù)限定。
---[[ 通過TSIG對區(qū)域記錄傳輸進(jìn)行認(rèn)證和校驗 ]]---------------------------
首先請確保你的BIND域名服務(wù)器軟件已更新到最新版本!
在BIND 8.2+中,能夠使用事務(wù)簽名(Transaction Signatures,即TSIG!)來對區(qū)域記錄數(shù)據(jù)進(jìn)行驗證和校驗。它要求在主域名服務(wù)器和輔助域名服務(wù)器上配置好加密密鑰,并通知服務(wù)器使用該密鑰與其它域名服務(wù)器通訊。(注意,TSIG的使用要求域名服務(wù)器必須進(jìn)行時鐘同步!)
A、如果需要用TSIG簽名來進(jìn)行安全的DNS數(shù)據(jù)庫手工更新,具體操作步驟很簡單:
1、使用BIND自帶的dnskeygen工具生成TSIG密鑰。
# dnskeygen -H 128 -h -n tsig-key.
則會生成兩個文件。'Ktsig-key.+157+00000.key'內(nèi)容如下:
tsig-key. IN KEY 513 3 157 awwLOtRfpGE+rRKF2+DEiw==
'Kvip-key.+157+00000.private'內(nèi)容如下:
Private-key-format: v1.2 Algorithm: 157 (HMAC) Key:awwLOtRfpGE+rRKF2+DEiw==
注意這些密鑰都已經(jīng)過BASE64編碼了。將它們放到本地域名服務(wù)器的配置文件中。例如:
key tsig-key. { algorithm hmac-md5; secret "awwLOtRfpGE+rRKF2+DEiw=="; };
zone "dns.nsfocus.com" {
...
...
allow-update { key tsig-key. ; };
}
記住要重啟named守護(hù)進(jìn)程。
然后將這兩個密鑰文件復(fù)制到客戶端系統(tǒng)(或輔助域名服務(wù)器),例如為/var
/named/tsig目錄。最后運行如下命令即可:
nsupdate -k /var/named/tsig:tsig-key.
B、如果需要對區(qū)域記錄傳輸(自動或手工)進(jìn)行TSIG簽名,則:
1、用dnskeygen生成TSIG密鑰,方法同上。
2、主域名服務(wù)器配置文件的內(nèi)容(節(jié)選)如下:
// 定義認(rèn)證的方法和共享密鑰
key master-slave {
algorithm hmac-md5;
secret "mZiMNOUYQPMNwsDzrX2ENw==";
};
// 定義輔助域名服務(wù)器的一些特性
server 192.168.8.18 {
transfer-format many-answers;
keys { master-slave; };
};
// 區(qū)域記錄定義
zone "nsfocus.com" {
type master;
file db.nsfocus.com;
allow-transfer { 192.168.8.18; };
};
| 共2頁: 1 [2] 下一頁 | ||
|


