Linux

iptables:“-p udp –state ESTABLISHED”

  • October 2, 2020

讓我們看看這兩個經常用於允許傳出 DNS 的 iptables 規則:

iptables -A OUTPUT -p udp --sport 1024:65535 --dport 53 
  -m state --state NEW,ESTABLISHED -j ACCEPT

iptables -A INPUT -p udp --sport 53 --dport 1024:65535
  -m state --state ESTABLISHED -j ACCEPT

我的問題是:我應該如何理解 UDP 中的 ESTABLISHED 狀態?UDP 是無狀態的。

這是我的直覺-我想知道這是否不正確或在哪裡不正確:

手冊頁告訴我:

狀態

該模組與連接跟踪結合使用時,允許訪問
此數據包的連接跟踪狀態。

 - 狀態 ...

所以,iptables 基本上記住了用於傳出數據包的埠號*(它還能記住什麼 UDP 數據包?),然後允許在短時間內發回的第一個傳入數據包?攻擊者必須猜測埠號(這真的太難了嗎?)*

關於避免衝突:

核心會跟踪哪些埠被阻止(被其他服務或之前的傳出 UDP 數據包),以便這些埠不會在時間範圍內用於新的傳出 DNS 數據包?(如果我不小心在該時間範圍內嘗試在該埠上啟動服務會發生什麼 - 該嘗試會被拒絕/阻止嗎?)

請找出以上文本中的所有錯誤 :-) 謝謝,

克里斯

所以,iptables 基本上記住了用於傳出數據包的埠號(它還能記住 UDP 數據包的什麼?),

我很確定對於 UDP,源和目標埠和地址都已儲存。

如果要檢查狀態表,請安裝 conntrack 和/或 netstat-nat。

(如果我不小心在該時間範圍內嘗試在該埠上啟動服務會發生什麼 - 該嘗試會被拒絕/阻止嗎?)

由於您使用的是 OUTPUT 和 INPUT,因此您正在談論本地服務。該埠已被使用我不相信您的系統將允許您啟動另一個服務,因為該埠上已經有一些東西正在偵聽。我想如果你真的想要的話,你可以停止第一個服務並啟動另一個服務,在這種情況下,響應可能會到達你的服務。服務對數據包做什麼取決於數據包的內容是什麼,以及它是什麼服務。

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