Debian

iptables -P OUTPUT DROP 失去 SSH 連接,儘管有例外規則

  • September 20, 2022

我想在 OUTPUT 上嘗試 DROP 預設策略。

我添加了一個例外以仍然為我的 SSH 連接提供服務:

iptables -A OUTPUT -p tcp -m tcp --dport 22 -j ACCEPT

但是在我更改預設策略的那一刻,我被踢了出去,需要重新啟動伺服器才能再次獲得訪問權限。

iptables -P OUTPUT DROP

我什至在刪除輸出之前嘗試過這個,但仍然是同樣的問題。

iptables -A OUTPUT -p tcp -m conntrack --ctstate RELATED,ESTABLISHED --dport 22 -j ACCEPT

請問我錯過了什麼?

sport/dport 參數指的是(這裡:tcp)數據包,而不是連接。

ssh 伺服器的角度來看,傳出(OUTPUT)數據包來自埠 22,但不太可能發送到ssh 客戶端電腦上的同一埠。

嘗試這個:

iptables -A OUTPUT -p tcp --sport 22 -m conntrack --ctstate ESTABLISHED -j ACCEPT
iptables -P OUTPUT DROP

這些數據包的目標埠很可能是在客戶端機器或其 NAT 網關上任意分配了一些未使用的埠(例如埠 42123)。只有數據包ssh 埠離開您的伺服器是已知的。

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