Linux
iptables:“-p udp –state ESTABLISHED”
讓我們看看這兩個經常用於允許傳出 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,因此您正在談論本地服務。該埠已被使用我不相信您的系統將允許您啟動另一個服務,因為該埠上已經有一些東西正在偵聽。我想如果你真的想要的話,你可以停止第一個服務並啟動另一個服務,在這種情況下,響應可能會到達你的服務。服務對數據包做什麼取決於數據包的內容是什麼,以及它是什麼服務。