我可以阻止 BIND 發送錯誤查詢的回應代碼嗎?

我可以阻止 BIND 發送錯誤查詢的回應代碼嗎?

我正在運行權威綁定 DNS 伺服器。我遵循所有建議的做法,並且我的伺服器僅具有權威性(非遞歸)並啟用了速率限制。

BIND 使用 REFUSE 程式碼回應對非授權區域的查詢。速率限制的作用是防止我的伺服器參與任何大規模的 udp 放大攻擊,但是,我更願意消除我不具有權威的區域的任何和所有回應。

有這方面的配置選項嗎?

答案1

雖然不響應您在問題中描述的確切場景(潛在放大攻擊中的欺騙查詢,或者探測您的伺服器在此類攻擊中是否可用)是可以的,因為沒有解析器實際上在等待您的回應,但問題是不回應查詢可能會導致真正的問題,並且您提出的解決方案比您首先描述的確切場景更廣泛(考慮到您實際上沒有的某些區域可能會被委託給您的名稱伺服器,無論是偶然還是有意)。

對於權威網域名稱伺服器來說,不回應查詢通常不被視為良好做法。其原因包括:

  • 解析器伺服器追蹤它們正在處理的權威伺服器的回應能力/可靠性,以提高它們自己的回應能力。這是在逐個伺服器的基礎上完成的,而不是在逐個查詢的基礎上完成的。也就是說,如果您最終不回應來自合法來源的(可能被誤導的)查詢,您可能會損害名稱伺服器當前感知的可靠性。可能會欺騙解析器認為您的名稱伺服器完全關閉(暫時的,但可能會一遍又一遍)
  • 如果不回應,最終也會影響「好的」查詢(例如,可能基於高查詢率?),這可能會導致乍一看可能並不明顯的其他問題,例如成功緩存中毒攻擊的風險增加您服務的任何未簽名區域(特別是如果攻擊者可以可靠地誘導您的查詢丟棄)

相反,您通常希望限制回應的大小,以免實際上提供攻擊者所尋求的放大(聽起來您已經在這樣做):

  • 與任何區域都不匹配的查詢(如您的示例中)應該得到空REFUSED響應(在過去,為根發送完整的引用響應是很常見的)
  • 實現速率限制,您可能希望發送空的截斷(TC設定)回應而不是不回應,如果實際的合法解析器伺服器最終受到速率限制,它們確實會收到回應,並且它被標記為截斷只會觸發它們重新發送其回應透過 TCP 查詢
  • 查詢ANY類型首先限制了實際用途,有時為了避免產生大量回應而進一步限制。 (喜歡minimal-any在綁定中)
  • (當然,絕對不允許整個互聯網遞歸)

至於使用 BIND 不響應,允許不響應的功能是響應速率限制 (RRL),它有一個slip配置參數來控制當有人達到速率限制時截斷與丟棄的比率。但是,請注意,刪除主要與解析器伺服器相關,而不是與權威伺服器相關(根據前面的解釋)。這也被注意到在BIND 手冊的 RRL 部分

(注意:來自權威伺服器的丟棄回應可能會降低第三方成功偽造對遞歸解析器的回應的難度。針對偽造回應的最佳安全措施是權威營運商使用DNSSEC 對其區域進行簽名,並讓解析器運作商驗證響應當這不是一個選項時,更關心響應完整性而不是洪水緩解的操作員可以考慮將滑差設為1,從而導致所有速率限制響應被截斷而不是丟棄,這會降低針對反射的速率限制的有效性。

如果您處於一種可怕的情況,而不同的權衡實際上是有意義的,您slip無論如何都可以考慮上面提到的旋鈕,或者俱有不同速率限制旋鈕集的某些工具,例如dnsdist
然而,如果這只是背景噪音的正常水平,那麼您可能會嘗試解決它而帶來新的問題,但收效甚微。

相關內容