在 RHEL/CentOS 7 中安裝和配置僅快取 DNS 伺服器


介紹

DNS(域名系統)在將域名轉換為 IP 地址方面起著至關重要的作用,允許使用者使用人類可讀的 URL 訪問網站。為了提高 DNS 效能並減少網路延遲,實現僅快取 DNS 伺服器可以顯著提高 DNS 查詢的速度和效率。在本文中,我們將指導您在 RHEL/CentOS 7 中安裝和配置僅快取 DNS 伺服器的過程。

先決條件

在繼續之前,請確保您具備以下條件:

  • 執行 RHEL/CentOS 7 的伺服器。

  • 伺服器的 root 或 sudo 訪問許可權。

  • Linux 命令列的基本知識。

更新系統

首先,執行以下命令將系統軟體包更新到最新版本:

sudo yum update -y

安裝 BIND DNS 伺服器

BIND(伯克利網際網路名稱域名)是最廣泛使用的 DNS 軟體。使用以下命令安裝 BIND 軟體包:

sudo yum install bind bind-utils -y

配置 BIND DNS 伺服器

接下來,我們需要配置 BIND 以僅作為快取 DNS 伺服器執行。在文字編輯器中開啟 BIND 配置檔案:

sudo vi /etc/named.conf

在檔案中,將其內容替換為以下配置:

options {
   listen-on port 53 { any; };
   listen-on-v6 port 53 { any; };
   directory "/var/named";
   dump-file "/var/named/data/cache_dump.db";
   statistics-file "/var/named/data/named_stats.txt";
   memstatistics-file "/var/named/data/named_mem_stats.txt";
   recursion yes;
   dnssec-enable no;
   dnssec-validation no;
   allow-query { any; };
};

按 Esc 鍵,然後輸入 :wq 儲存並關閉檔案。

配置 DNS 轉發器

為了提高 DNS 解析速度,我們可以配置 BIND 使用 DNS 轉發器。開啟 BIND 選項檔案:

sudo vi /etc/named.rfc1912.zones

在檔案中新增以下轉發器配置:

zone "." IN {	
   type hint;
   file "named.ca";
};

zone "localhost" IN {
   type master;
   file "localhost.zone";
   allow-update { none; };
};

zone "0.0.127.in-addr.arpa" IN {
   type master;
   file "named.loopback";
   allow-update { none; };
};

zone "example.com" IN {
   type forward;
   forwarders { 8.8.8.8; 8.8.4.4; };
   forward only;
};

儲存並關閉檔案。

啟用並啟動 BIND 服務

要啟用 BIND 在系統啟動時自動啟動,請執行以下命令:

sudo systemctl enable named

然後,使用以下命令啟動 BIND 服務:

sudo systemctl start named

測試僅快取 DNS 伺服器

為了確保僅快取 DNS 伺服器正常執行,我們可以執行一些測試。以下是一些示例及其預期輸出:

示例 1:檢查 DNS 解析器

執行以下命令以檢查伺服器是否使用僅快取 DNS 伺服器作為解析器:

nslookup google.com

輸出

Server:         127.0.0.1
Address:        127.0.0.1#53

Non-authoritative answer:
Name:   google.com
Address: 172.217.12.14

示例 2:檢查快取的 DNS 條目

要驗證 DNS 伺服器是否正在快取 DNS 條目,請對同一域名執行兩次查詢:

nslookup example.com

輸出

Server:         127.0.0.1
Address:        127.0.0.1#53

Non-authoritative answer:
Name:   example.com
Address: 93.184.216.34

再次執行相同的命令,您應該會看到響應時間縮短,這表明 DNS 條目是從快取中提供的。

示例 3:檢查到 DNS 轉發器的轉發

為了確保 DNS 伺服器將查詢轉發到指定的 DNS 轉發器,請對未快取的域名執行查詢:

nslookup facebook.com

輸出

Server:         127.0.0.1
Address:        127.0.0.1#53

Non-authoritative answer:
Name:   facebook.com
Address: 31.13.65.36

響應應包含 DNS 轉發器提供的 IP 地址(在本例中為 Google DNS 伺服器)。

保護僅快取 DNS 伺服器

實施安全措施以保護您的僅快取 DNS 伺服器免受潛在攻擊至關重要。以下是一些建議:

防火牆配置 - 使用防火牆規則僅允許來自受信任來源的 DNS 流量。例如,要允許來自本地網路 (192.168.0.0/24) 的 DNS 查詢,請執行以下命令:

sudo firewall-cmd --zone=public --add-service=dns --permanent
sudo firewall-cmd --zone=public --add-source=192.168.0.0/24 --permanent
sudo firewall-cmd --reload

限制查詢速率 - 實施速率限制以防止 DNS 放大攻擊和來自單個來源的過度查詢。開啟 BIND 選項檔案 (/etc/named.conf) 並將以下配置新增到 options 塊中:

rate-limit {
   responses-per-second 5;
   nxdomains-per-second 5;
   errors-per-second 5;
};

DNSSEC - 考慮啟用 DNSSEC(域名系統安全擴充套件)以防止 DNS 欺騙和資料完整性攻擊。開啟 BIND 選項檔案 (/etc/named.conf) 並修改 dnssec-enable 和 dnssec-validation 選項,如下所示:

dnssec-enable yes;
dnssec-validation yes;

注意 - 啟用 DNSSEC 需要額外的配置,包括金鑰生成和簽名。

監控和日誌記錄

監控和記錄 DNS 活動可以提供有關伺服器效能和潛在問題的寶貴見解。以下是一些需要考慮的工具和技術:

BIND 統計資訊 - BIND 提供有關 DNS 伺服器效能和資源用量的統計資訊。透過執行以下命令訪問統計資訊:

sudo rndc stats

這會在 /var/named/data 目錄中生成一個統計檔案。

日誌檔案 - BIND 將 DNS 相關的事件和錯誤記錄到日誌檔案中。預設日誌檔案位置為 /var/log/messages。要檢視 BIND 特定的日誌,請使用以下命令:

sudo tail -f /var/log/messages | grep named

監控工具 - 考慮使用 dnstop 或 dnsmeter 等監控工具來收集詳細的 DNS 流量統計資訊並分析伺服器效能。

微調 DNS 伺服器配置

根據您的具體要求,您可能需要調整某些 DNS 伺服器引數以最佳化效能。以下是一些值得探索的配置選項:

快取大小 - 預設情況下,BIND 為 DNS 快取分配有限的記憶體。根據伺服器的可用資源和預期的查詢負載調整快取大小。開啟 BIND 選項檔案 (/etc/named.conf) 並根據需要修改 max-cache-size 選項。

TTL(生存時間) - DNS 記錄包含 TTL 值,該值指定客戶端和 DNS 伺服器可以快取多長時間。調整 TTL 值會影響從上游伺服器獲取 DNS 解析的頻率。請根據您的要求考慮修改 TTL 值。

區域傳送 - 如果你有輔助 DNS 伺服器,請配置區域傳送以使其與僅快取 DNS 伺服器保持同步。有關配置區域傳送的更多詳細資訊,請參閱 BIND 文件。

結論

透過遵循本文中概述的步驟,您已成功在 RHEL/CentOS 7 系統上安裝和配置了僅快取 DNS 伺服器。快取功能透過儲存經常訪問的域名解析來提高 DNS 查詢效能,從而減少網路延遲並增強整體瀏覽體驗。現在,您可以享受更快的 DNS 解析和更高的網路效率帶來的好處。

更新於:2023-07-17

777 次檢視

開啟你的 職業生涯

透過完成課程獲得認證

開始
廣告
© . All rights reserved.