Iptables
/16 子網的 iptables 與 /24 異常
簡單地說,我想使用這些規則:
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