X-Git-Url: https://git.distorted.org.uk/~mdw/firewall/blobdiff_plain/e6d64b676e9da834e9b0f6243a01e4362202b840..8b021091932977b8bae420b7845369018e301451:/icmp.m4 diff --git a/icmp.m4 b/icmp.m4 index d3a7507..460c838 100644 --- a/icmp.m4 +++ b/icmp.m4 @@ -30,16 +30,27 @@ clearchain check-icmp ## Ping needs inspecting on a host-by-host basis. for type in echo-request echo-reply; do run iptables -A check-icmp -p icmp --icmp-type $type -j RETURN + run ip6tables -A check-icmp -p icmpv6 --icmpv6-type $type -j RETURN done -## Certainly don't allow ping to broadcast addresses. -run iptables -A check-icmp -g forbidden \ - -p icmp --icmp-type echo-request \ - -m addrtype --dst-type BROADCAST +## Certainly don't allow ping to broadcast or multicast addresses. +case $forward in + 1) + run iptables -A FORWARD -g forbidden \ + -p icmp --icmp-type echo-request \ + -m addrtype --dst-type BROADCAST + run iptables -A FORWARD -g forbidden \ + -p icmp --icmp-type echo-request \ + -d 224.0.0.0/8 + run ip6tables -A FORWARD -g forbidden \ + -p icmpv6 --icmpv6-type echo-request \ + -d ff00::/16 + ;; +esac m4_divert(58)m4_dnl ## Other ICMP is basically benign, we claim. -run iptables -A check-icmp -j ACCEPT +run ip46tables -A check-icmp -j ACCEPT ## Done. for i in $inchains; do run ip46tables -A $i -p icmp -j check-icmp; done