Linux
允許出站流量,但不允許入站到網路
我有網路 A(遠端)和網路 B(本地)。
網路 B 需要能夠訪問網路 A,但沒有人應該能夠訪問網路 B。我將如何在路由器中為網路 B 設置一個 IPTABLES 規則來執行此操作?
嘗試添加入站規則以丟棄子網的流量:
# iptables -A INPUT -s 192.168.100.0/24 -j DROP
可以使用 來執行此操作
iptables
,但您需要注意連接狀態。您必須允許來自網路 A 的回複數據包,而不允許它們向網路 B 發起新連接。這樣的事情應該做:
iptables -A FORWARD -i eth_netA -o eth_netB -s 10.1.2.3/24 -d 10.4.5.6/24 -m state --state=established,related -j ACCEPT # if your default policy is ALLOW: iptables -A FORWARD -i eth_netA -o eth_netB -s 10.1.2.3/24 -d 10.4.5.6/24 -j DROP # if your default policy is DROP: iptables -A FORWARD -i eth_netB -o eth_netA -s 10.4.5.6/24 -d 10.1.2.3/24 -j ACCEPT
請注意,我們在
FORWARD
這裡使用的是表格,而不是INPUT
. 這是因為您的機器正在網路之間路由數據包,並且您想要擷取未綁定到路由器本身的數據包。如果您只想將這些規則應用於通過這兩個介面轉發的所有流量,則可以省略-s
and語句。-d
請注意,這依賴於 iptables 的連接跟踪功能(如果您有任何規則,它已經載入),如果您來回發送大量數據包
-t nat
,您可能需要對參數進行一些調整。ip_conntrack
最常見的警告標誌是table full, dropping packet
syslog 中的消息。