
在後面有 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 子網劃分的規範問題以供進一步討論。