如果我們必須記住 IP 地址來查找內容,互聯網就不會那么有趣了。這就是域名系統的用武之地,它將域名與托管內容的 IP 連接起來。但是 DNS 有一個大問題:安全性。
最近引入的 DNSSEC 有助于防止通過您的 IP 進行的攻擊。DNSSEC 代表域名系統安全擴展。它是一組安全規范,通過使用公鑰和私鑰對區域文件和注冊表級別之間的名稱服務器進行身份驗證,幫助防止客戶端級別的 DNS 欺騙。
DNS 欺騙或 DNS 緩存中毒是最常見的攻擊,它基本上迫使傳入流量盲目地轉到另一個 IP,在該 IP 通常將惡意內容下載到訪問者的計算機上。
如果您與域名注冊商*合作,如果他們支持,他們可以在內部實施 DNSSEC。如果您擁有單獨的 DNS專用服務器(或名稱服務器),您可以自己做。
- 了解使用名稱服務器如何減少高流量站點使用的資源
DNSSEC 如何保護我的網站?
DNSSEC 通過使用公鑰加密對記錄進行數字簽名來保護 DNS 數據。域所有者可以與他們的域注冊商合作,在域注冊的根區域設置 DNSSEC 公鑰。查找過程如下:
- 首先,解析器(配置為遵循 DNSSEC)注意到 DNS 查詢中的“DO”標志位
- 然后解析器在根區域驗證 DS 和 DNSKEY 記錄
- 使用在根區域找到的頂級域的 DS 記錄,它驗證該區域中的 DNSKEY 記錄
- 然后檢查 TLD 區域中域的 DS 記錄
- 如果存在,解析器使用 DS 記錄來驗證在域的區域文件中找到的 DNSKEY 記錄
- 最后,它將驗證在 DNS 區域文件的 A 記錄中找到的 RRSIG 記錄
如何安裝 DNSSEC?
您可以按照以下步驟在 CentOS 上安裝 DNSSEC。說明因您的 Linux 發行版而異。
步驟 1:修改命名的配置選項。
vi /etc/bind/named.conf.options
在選項中設置以下內容:
dnssec-啟用是;
dnssec 驗證是的;
dnssec-后備自動;
第 2 步:導航到您的區域文件。
cd /var/cache/bind
第 3 步:創建區域簽名密鑰。
dnssec-keygen -a NSEC3RSASHA1 -b 2048 -n ZONE?example.com
第 4 步:創建密鑰簽名密鑰
dnssec-keygen -f KSK -a NSEC3RSASHA1 -b 4096 -n ZONE example.com
該目錄現在將有 4 個密鑰 - ZSK 和 KSK 的私有/公共對。
第 5 步:使用以下 for 循環將公鑰添加到區域文件:
用于 `ls Kexample.com*.key` 中的鍵
做
echo “\$INCLUDE $key”>> example.com.zone
完畢
第6步:簽署區域,用隨機的東西代替鹽。
dnssec-signzone -3 <salt> -A -N INCREMENT -o <zonename> -t <zonefilename>
這將創建一個名為 example.com.zone.signed 的新文件,其中包含每個 DNS 記錄的 RRSIG 記錄。
第 7 步:加載簽名區域。
納米 /etc/bind/named.conf.local
更改 zone { } 部分內的文件選項。
區域“example.com” IN {
類型大師;
文件“example.com.zone.signed”;
允許轉移 { 2.2.2.2;?};
允許更新{無;};
};
第 8 步:保存文件并重新加載綁定
服務綁定9重新加載
第 9 步:在您的域名注冊商處添加 DS 記錄。
在此過程的早期創建了一個名為 dsset-example.com 的文件。此文件包含您可以帶到您的域注冊商的 DS 記錄。
測試您的 DNS 安全工作
您可以使用此處的工具來測試您的 DNSSEC 是否在您的域上正確配置。DNSSEC 是一個相當新的工具,但實施它可以對您的專用服務器安全性產生巨大影響。
*根據ICANN的規定,只有部分域名注冊商支持“最終用戶 DNSSEC 管理,包括輸入 DS 記錄” 。