
我運行一個伺服器,其中使用tinydns作為DNS,使用axfrdns來處理來自我們的輔助DNS(另一個系統)的傳輸請求。據我所知,tinydns 在 UDP 上使用連接埠 53,axfrdns 在 TCP 上使用連接埠 53。
我已將 axfrdns 配置為僅允許來自我同意的輔助主機的連線。我運行 logcheck 來監控我的日誌,每天我都會在連接埠 53 (TCP) 上看到來自看似隨機主機的虛假連線。它們通常來自 ADSL 連接。
我的問題是;這些請求是無害的還是安全風險?我很高興使用 iptables 來阻止重複犯罪者,但不想阻止我託管的網站之一的無辜用戶。
謝謝,達倫。
答案1
我假設您正在使用該伺服器作為網域的權威 DNS 伺服器。如果是這種情況,任何需要解析您的伺服器有權存取的名稱的用戶端只需要使用 UDP。 TCP 將用於區域傳輸。
我還假設您不希望世界能夠進行區域傳輸。雖然區域傳輸本身不存在安全風險,但通常只允許到輔助/備份 DNS 伺服器。大多數 dns 軟體還具有 ACL 來控制允許伺服器進行區域傳輸,因此您還有第二種限制方法。但由於我認為安全性只允許需要的內容,因此我建議您在連接埠 53 上封鎖不需要進行區域傳輸的主機的 tcp。
附帶說明一下,來自 tcp 連接埠 53 上的隨機 adsl 主機的 tcp 連線具有惡意意圖。這是因為任何合法客戶端都不需要從您那裡進行區域傳輸。他們可能試圖存取與您的網路相關的機密信息,或試圖利用某些 DNS 軟體的漏洞。
雖然這不是什麼值得偏執的事情,但你應該要意識到這一點。
答案2
TCP 是不是僅用於區域傳輸。
如果您的 DNS 伺服器傳回截斷的 (TC=1) UDP 回應,則 TCP 是 DNS 用戶端使用的預設回退。如果您在單一資料包中提供超過 512 位元組的任何數據,就會發生這種情況。
如果您正在執行 DNS 伺服器,那麼它應該接受來自 DNS 用戶端的 TCP 連接,這樣做不存在固有的安全風險。 DNS 伺服器遭受 DoS 攻擊的風險非常小,但對於任何面向公眾的服務都是如此。
看草案 ietf-dnsext-dns-tcp-要求應該在下個月內作為 RFC 發布。
看RFC 5966更多細節。
Ob 免責聲明 - 我寫了那個 RFC。
答案3
唯一應該使用您的主機作為 DNS 伺服器的是
- 本機
- 您將該主機設定為 DNS 伺服器的網路上的計算機
封鎖「其他所有內容」最簡單的方法是停用該服務偵聽該位址。如果您自己的裝置位於「您的網路」之外,請使用防火牆規則(iptables
或其他規則)僅接受來自外部網路位址的連線。如果它們沒有修復,您可能需要 VPN 或其他安全隧道將外部主機引入「您的網路內部」。
請記住,針對您的內部名稱伺服器的任意 DNS 查詢可能會將您的整個網路對應到外部方,並提供攻擊向量或洩露您不希望其他人存取的資訊。 「隨機 ADSL 連線」很容易被殭屍殭屍網路機器用來策劃針對您的惡意活動。
答案4
向名稱伺服器開放傳入的 TCP 會帶來許多安全風險 - 任何不這樣做的人都是不理智的。只需查看根洩露歷史即可 - 大多數是透過使用 TCP 與 UDP 結合完成的。舊的 MUST 和 SHOULD RFC 是由了解安全性的人所寫的。如果您的 DNS 區域不使用 TC=1 位元(或超過 512 位元組) - 不要啟用傳入 TCP,讓白痴將來這樣做。