BIND (Berkeley Internet Name Domain) 仍是全球部署最廣泛的權威 DNS 伺服器軟體。正確配置與安全加固是確保域名解析服務穩定、防範緩存投毒、放大攻擊與區域傳輸洩露的關鍵。
| 路徑 | 用途 | 備註 |
|---|---|---|
/etc/named.conf | 主配置檔,定義選項、區域、視圖、ACL、金鑰 | 語法檢查:named-checkconf |
/etc/sysconfig/named | 啟動參數,控制 chroot 目錄、額外選項 | RHEL/CentOS/Fedora 專用 |
/var/named/ | 區域資料庫檔預設目錄 | 動態更新需寫入權限 |
/var/run/named/ | PID 檔、Unix socket |
RHEL 系預設啟用 chroot,根目錄為 /var/named/chroot。實際生效路徑映射:
/etc/named.conf → /var/named/chroot/etc/named.conf (symlink)
/var/named/zone.db → /var/named/chroot/var/named/zone.db
/var/run/named/ → /var/named/chroot/var/run/named/
優勢:即使 named 進程被攻破,攻擊者僅能存取 chroot 內檔案,無法觸及系統核心目錄。
options {
directory "/var/named";
version "hidden"; // 隱藏版本號
recursion no; // 僅授權區域遞迴,防開放解析器濫用
allow-query { any; }; // 允許所有查詢
allow-transfer { key "tsig-key"; }; // 區域傳輸需 TSIG 金鑰
allow-recursion { trusted; }; // 僅信任網段遞迴
dnssec-validation auto; // 啟用 DNSSEC 驗證
response-policy { zone "rpz"; }; // RPZ 惡意域名阻斷
rate-limit {
responses-per-second 100; // 限流防放大攻擊
window 5;
};
};
acl "trusted" { 10.0.0.0/8; 192.168.0.0/16; localhost; };
key "tsig-key" {
algorithm hmac-sha256;
secret "base64-encoded-secret==";
};
zone "example.com" IN {
type master;
file "example.com.db";
allow-update { key "ddns-key"; }; // 動態更新需金鑰
notify yes;
also-notify { 192.168.1.2; }; // 從伺服器
};
$TTL 3600
@ IN SOA ns1.example.com. admin.example.com. (
2024010101 ; serial YYYYMMDDNN
3600 ; refresh
1800 ; retry
604800 ; expire
300 ; minimum TTL
)
IN NS ns1.example.com.
IN NS ns2.example.com.
IN MX 10 mail.example.com.
ns1 IN A 192.168.1.1
ns2 IN A 192.168.1.2
mail IN A 192.168.1.10
www IN A 192.168.1.100
; DNSSEC 簽署後自動產生 RRSIG/NSEC/NSEC3 記錄
named-checkconf -z /etc/named.conf、named-checkzone example.com /var/named/example.com.dbtail -f /var/log/messages | grep named 觀察啟動錯誤、區域載入、安全事件。dnssec-keygen -a RSASHA256 -b 2048 -n ZONE example.com、dnssec-signzone -o example.com -k Kexample.com.+008+12345 example.com.db/var/named/、/etc/named.conf、TSIG 金鑰;從伺服器啟用 zone-statistics yes 監控同步延遲。firewall-cmd --permanent --add-service=dns (UDP/TCP 53)firewall-cmd --permanent --add-port=953/tcp (rndc 控制通道)SERVFAIL:檢查正向/反向區域是否存在、權限正確、父域 NS 記錄是否正確委派。REFUSED:allow-query/allow-recursion ACL 不匹配客戶端 IP。AXFR 失敗:TSIG 金鑰不匹配、allow-transfer 未授權、防火牆阻擋 TCP 53。network unreachable resolving:IPv6 連線失敗,options { filter-aaaa-on-v4 yes; } 或確保 IPv6 路由通暢。遵循「最小權限、Chroot 隔離、TSIG 認證、DNSSEC 驗證、速率限制、集中日誌」六大原則,配合定期演練故障切換與區域簽署輪換,即可構建企業級高可用、高安全的 BIND DNS 基礎設施。