Debian
iptables -P OUTPUT DROP 失去 SSH 連接,儘管有例外規則
我想在 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 埠離開您的伺服器是已知的。