Domain-Name-System

NAT防火牆,自動添加到DNS查找觸發的白名單?

  • July 8, 2016

我有興趣設置防火牆。這將包括您通常的 NAT,以及用於傳入連接的埠轉發。

但是我希望傳出連接使用主機名白名單。我還希望同一設備充當我的 PC 使用的 DNS 伺服器,因此當 PC 嘗試連接到它時,它始終知道白名單上任何主機名的最新 IP。

這可以是 Cisco IOS(推薦的替代方案),也可以是實際的 Illumos 或 Linux 伺服器。我認為使用伺服器會給我更多的靈活性,但我願意接受建議。

這就是我想要發生的事情:(傳出連接,來自我網路上的使用者)

  1. 使用者的 PC 對給定站點(即 serverfault.com)執行 DNS 查找
  2. 防火牆伺服器將此與主機名白名單進行比較,如果允許,則將生成的 IP 地址傳回 PC。
  3. 如果允許 DNS 查找,則 IP 訪問列表會立即使用來自 DNS 的最新結果進行更新。(合理到期)
  • 如果 PC 啟動一個任意 IP 地址的連接,該地址未在任何已批准的 DNS 響應中列出,則可以拒絕任意數據包。
  1. (可選,但更可取)嗅探 TCP 連接以驗證 HTTP 或 HTTPS 連接的主機名。通過這種方式,我們可以防止訪問可能存在於共享的白名單 IP 上的非白名單站點。

我認為我可以使用 完成第 1-3 項ipfilter,並結合自定義編寫的 DNS 伺服器來處理白名單,並觸發對ipfilter. 這聽起來合理嗎,還是會不可避免地出現ipfilter無法立即辨識變化的問題?我很確定ipfilter可以使用 Linux/Illumos NAT。

是否有適用於 Linux 或 Illumos 的應用程序已經進行了 DNS 觸發的 IP 白名單?(阻止我重新發明輪子)

我沒有聽說過 IOS 執行 DNS 伺服器。Cisco IOS 中有解決此問題的解決方案嗎?是否有我應該知道的明顯解決方案,或者這只是一個不尋常的防火牆設置?

根據我們在評論中的討論,聽起來您可能會將防火牆的角色與透明代理的角色混淆。

  • 防火牆不依賴 DNS 解析來實施訪問策略。這有幾個原因,我之前已經介紹過。最重要的原因是:

    1. 依賴容易被欺騙的協議
    2. 從給定的輸入集中增加了軟體複雜性和非確定性功能(今天通過過濾器的可能不是明天通過過濾器的)
    3. 有效地將防火牆策略的管理委派給不同的設備和協議。
  • 透明代理通常攔截 HTTP+DNS 流量,並根據請求的主機名應用訪問控制。IP 地址不是這一層的考慮因素。如果請求的實體與允許的名稱不匹配,則直接從透明代理本身返回錯誤頁面,而不將請求路由到預期的資源。

主要區別在於這些設備執行所在的層。由於透明代理只需要關註名稱,而不是這些名稱解析到的 IP 地址,因此您不會遇到與防火牆相同的邏輯問題。

引用自:https://serverfault.com/questions/788763