functions.m4, local.m4: Handle fragments in a useful way.
[firewall] / local.m4
index 56c2253..2b1b898 100644 (file)
--- a/local.m4
+++ b/local.m4
@@ -55,19 +55,19 @@ m4_divert(60)m4_dnl
 
 ## Allow ping from safe/noloop to untrusted networks.
 run iptables -A FORWARD -j ACCEPT \
-       -p icmp --icmp-type echo-request \
+       -p icmp ! -f --icmp-type echo-request \
        -m mark --mark $to_untrusted/$MASK_TO
 run iptables -A FORWARD -j ACCEPT \
-       -p icmp --icmp-type echo-reply \
+       -p icmp ! -f --icmp-type echo-reply \
        -m mark --mark $from_untrusted/$MASK_FROM \
        -m state --state ESTABLISHED
 
 ## Allow SSH from safe/noloop to untrusted networks.
 run iptables -A FORWARD -j ACCEPT \
-       -p tcp --destination-port $port_ssh \
+       -p tcp ! -f --destination-port $port_ssh \
        -m mark --mark $to_untrusted/$MASK_TO
 run iptables -A FORWARD -j ACCEPT \
-       -p tcp --source-port $port_ssh \
+       -p tcp ! -f --source-port $port_ssh \
        -m mark --mark $from_untrusted/$MASK_FROM \
        -m state --state ESTABLISHED
 
@@ -78,6 +78,7 @@ m4_divert(80)m4_dnl
 clearchain inbound
 
 ## Track connections.
+commonrules inbound
 conntrack inbound
 
 ## Allow incoming bootp.  Bootp won't be forwarded, so this is obviously a