X-Git-Url: https://git.distorted.org.uk/~mdw/firewall/blobdiff_plain/f0033e0790c7f01b23f24504d3685cbaffc90f1f..3b250fe6986bd168aa7e4f46336b3a43b2735b37:/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