Iptables

允許網關路由器(iptables)上的區域網路介面上的所有 INPUT 和 OUTPUT 數據包安全

  • October 20, 2020

我的主網關路由器(也是我的 LAN 的 DHCP 和 DNS 伺服器)讓我可以通過 ssh 登錄並配置 iptables。幾乎每天我都在讓它提供更多服務,如 NTP、DNS、FTP 等,我想允許我的 LAN 介面/子網上的所有流量和埠進出我的路由器,以確保這些服務可以被任何設備訪問我的區域網路。

基本上禁用了我的 LAN 端防火牆。

但是,由於這也是我的網關路由器,我不想以允許網際網路流量利用我的 iptables 配置的方式配置這些 iptables。

我的私有 IP 範圍是 192.168.50.0/24,並自動分配了一個 br0 介面。

這是我用來允許所有 LAN 流量的 iptables 命令。

iptables --append INPUT --in-interface br0 --jump ACCEPT
iptables --append INPUT --source 192.168.50.0/24 --jump ACCEPT
iptables --append OUTPUT --out-interface br0 --jump ACCEPT
iptables --append OUTPUT --source 192.168.50.0/24 --jump ACCEPT

我不是路由或 iptables 方面的專家,但是當我將其解釋為“接受 192.168.50.0/24 中的所有輸出”時,這讓我認為來自網際網路的流量通過我的網關路由後,所有這些都被接受到任何地方我的區域網路。

下面簡單介紹一下iptables防火牆:

INPUT will allow or deny traffic destined to the gateway/firewall host
OUTPUT will allow or deny traffic leaving the gateway/firewall host
FORWARD will allow or deny traffic going through the gateway/firewall host

在您的情況下,您需要FORWARD 192.168.50.0/24啟用偽裝,允許返回相關流量,最後丟棄所有內容。假設br0介面直接連接到本地網路 (LAN) 而br1面向網際網路 (WAN)

在 Linux 網關/防火牆上啟用路由

$ sudo echo "1" > /proc/sys/net/ipv4/ip_forward 

僅將 LAN 子網轉發192.168.50.0/24到 Internet

$ sudo iptables -A FORWARD -i br0 -o br1 -s 192.168.50.0/24 -j ACCEPT

啟用偽裝 (NAT)

$ sudo iptables -t nat -A POSTROUTING -o br1 -j MASQUERADE

允許從 WAN 到 LAN 的返回流量

$ sudo iptables -A FORWARD -i br1 -o br0 -m state --state ESTABLISHED,RELATED -j ACCEPT

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