Linux

允許出站流量,但不允許入站到網路

  • March 14, 2013

我有網路 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. 這是因為您的機器正在網路之間路由數據包,並且您想要擷取未綁定到路由器本身的數據包。如果您只想將這些規則應用於通過這兩個介面轉發的所有流量,則可以省略-sand語句。-d

請注意,這依賴於 iptables 的連接跟踪功能(如果您有任何規則,它已經載入),如果您來回發送大量數據包-t nat,您可能需要對參數進行一些調整ip_conntrack最常見的警告標誌是table full, dropping packetsyslog 中的消息。

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