萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 作業系統 >  >> Linux 教學

Linux BIND DNS 伺服器部署與安全加固完整指南

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

Chroot 隔離環境部署

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 內檔案,無法觸及系統核心目錄。

named.conf 關鍵安全配置範本

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 記錄

運維檢查清單

  1. 語法驗證:named-checkconf -z /etc/named.conf、named-checkzone example.com /var/named/example.com.db
  2. 日誌監控:tail -f /var/log/messages | grep named 觀察啟動錯誤、區域載入、安全事件。
  3. DNSSEC 部署:dnssec-keygen -a RSASHA256 -b 2048 -n ZONE example.com、dnssec-signzone -o example.com -k Kexample.com.+008+12345 example.com.db
  4. 備份與同步:定期備份 /var/named/、/etc/named.conf、TSIG 金鑰;從伺服器啟用 zone-statistics yes 監控同步延遲。
  5. 防火牆規則:
    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 基礎設施。

copyright © 萬盛學電腦網 all rights reserved