Iptables

/16 子網的 iptables 與 /24 異常

  • February 11, 2021

簡單地說,我想使用這些規則:

iptables -I FORWARD -i br0.105 -d 192.168.0.0/16 -j DROP
iptables -I FORWARD -s 192.168.0.0/16 -i br0.105 -j DROP

但 192.168.99.0/24 子網除外。

有沒有辦法在上面的行中指定它?-j accept我不希望為-subnet添加例外規則.99,因為還有其他規則引用該特定子網。

使用新鏈條。有多種方法可以做到這一點,我的偏好是:

iptables -N DROP_BAD_HOSTS
iptables -A DROP_BAD_HOSTS -s 192.168.99.0/24 -j RETURN
iptables -A DROP_BAD_HOSTS -i br0.105 -d 192.168.0.0/16 -j DROP
iptables -A DROP_BAD_HOSTS -i br0.105 -s 192.168.0.0/16 -j DROP
iptables -A FORWARD -j DROP_BAD_HOSTS

請注意,如果源是您要排除的 /24,則第一條規則會執行 RETURN。

另一種方法是這樣,但不太靈活,因為您不能在將來添加另一個要排除的範圍:

iptables -N DROP_BAD_HOSTS
iptables -A DROP_BAD_HOSTS -i br0.105 -d 192.168.0.0/16 -j DROP
iptables -A DROP_BAD_HOSTS -s 192.168.0.0/16 -i br0.105 -j DROP
iptables -A FORWARD ! -s 192.168.99.0/24 -j DROP_BAD_HOSTS

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