iptables:何時使用 LAN 連線的輸入或輸出?

iptables:何時使用 LAN 連線的輸入或輸出?

在後面有 LAN 的 SSH 伺服器/防火牆 (192.168.2.3) 中,例如 192.168.2.1/30,防火牆會將 192.168.2.1/30 網路的內部電腦所做的連線嘗試解釋為傳入或傳出連線?

如果它們被讀取為傳入或傳出,我是否必須指定目標或來源位址區塊 (192.168.2.1/30)?或到底什麼時候需要 -d 或 -s 選項?

我的理解是:如果我希望這些內在機器與外在世界建立任何新的連接,規則是這樣的。

iptables -A OUTPUT -s 192.168.2.8/30 -m state --state NEW -j ACCEPT

如果 SSH 伺服器想要與外界建立新的 ssh 連接,規則將是這樣的

iptables -A OUTPUT -p tcp --sport 22 -m state --state NEW -j ACCEPT

在這種情況下,我應該忽略 ssh 伺服器 IP 位址還是將其包含在規則中?

非常感謝。

答案1

INPUT並且OUTPUT僅針對iptables正在運行的系統進行定義。換句話說,iptables不關心其介面上是什麼類型的系統;它並不關心介面是否連接到您信任的 LAN、DMZ,或裝滿筆記型電腦的鯊魚。

INPUT總是指流量進入來自外部的接口,旨在本地終止。 OUTPUT指源自本地且即將抵達的流量離開透過接口。 FORWARD指的是傳入一個介面並直接傳出另一個介面的流量。

上面引用的第一個192.168.2.0/30在一個介面上調解從 LAN 到另一個介面上的外部世界的流量,因此兩者都應該在FORWARD鏈中。第二個調解從防火牆到世界的流量,所以就目前情況而言是可以的。

不過我可以順便補充一下,這並不是一個 LAN,您可能應該檢查該網路掩碼,因為防火牆在 LAN 上下文中具有無效位址(它是廣播位址,不應將其分配給單一主機) )。看我們著名的 ipv4 子網劃分的規範問題以供進一步討論。

相關內容