Security

是否接受 iptables 中所有來源的 RELATED,ESTABLISHED 被認為“太開放”?

  • April 11, 2022

我經常看到應用的規則-A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT。雖然我不是專家,但那條線與我有關。很明顯,該規則允許所有流量,唯一的例外是必須已建立連接或與已建立的連接相關。

設想

  • 22我將允許從子網中的伺服器 LAN192.168.0.0/16或其他任何地方連接到預設 SSH 埠。
  • SuperInsecureApp®在 port 上公開一些東西1337,我將其添加到我的INPUT鏈中。
  • 我添加了conntrack接受ESTABLISHEDRELATED來自所有來源的規則
  • 連鎖政策是DROP

所以基本上該配置應該只允許來自 LAN 的 SSH 連接,同時允許來自世界的埠 1337 上的入站流量。

這就是我的困惑綻放的地方。是否會conntrack以任何方式暴露一個安全漏洞,允許人們在 1337 上建立連接(因為它是世界開放的),然後利用該連接來訪問 SSH 埠(或任何其他埠)?

我不會認為 ESTABLISHED 和 RELATED 流量太開放。您可以省略 RELATED,但絕對應該允許 ESTABLISHED。這兩個流量類別都使用 conntrack 狀態。

ESTABLISHED 連接已被另一條規則驗證。這使得實現單向規則變得更加簡單。這僅允許您在同一埠上繼續交易。

RELATED 連接也由另一個規則驗證。它們不適用於很多協議。它們再次使配置規則變得更加簡單。它們還確保它們適用的連接的正確順序。這實際上使您的規則更加安全。雖然這可能使連接到不同的埠成為可能,但該埠應該只是相關程序的一部分,如 FTP 數據連接。允許哪些埠由協議特定的 conntrack 模組控制。

通過允許 ESTABLISHED 和 RELATED 連接,您可以專注於希望防火牆接受哪些新連接。它還避免了旨在允許返回流量但允許新連接的破壞規則。

鑑於您已將埠 1337 上的程序歸類為不安全程序,應使用專用的非 root 使用者 ID 啟動它。如果他們確實設法破解他的應用程序並獲得增強的訪問權限,這將限制某人可能造成的損害。

埠 1337 上的連接不太可能用於遠端訪問埠 22,但是到埠 1337 的連接有可能用於代理到埠 22 的連接。

您可能希望確保 SSH 得到深度保護:

  • 除了防火牆限制之外,使用 hosts.allow 來限制訪問。
  • 防止 root 訪問,或者至少需要使用密鑰並在 authorized_keys 文件中限制它們的訪問。
  • 審核登錄失敗。日誌掃描器可以定期向您發送異常活動的報告。
  • 考慮使用類似 fail2ban 的工具在重複訪問失敗時自動阻止訪問。

引用自:https://unix.stackexchange.com/questions/323546