absolutely prevent forwarding carp or NFS/rpc using the shiny new
received-on any.

can only minimally test that here. need at least one carp and one
diskless test. 

Index: rc
===================================================================
RCS file: /cvs/src/etc/rc,v
retrieving revision 1.420
diff -u -p -r1.420 rc
--- rc  19 Jan 2014 09:39:04 -0000      1.420
+++ rc  21 Jan 2014 01:53:59 -0000
@@ -335,13 +335,14 @@ if [ X"${pf}" != X"NO" ]; then
                RULES="$RULES\npass out inet6 proto udp from any port 
dhcpv6-client to any port dhcpv6-server"
                RULES="$RULES\npass in inet6 proto udp from any port 
dhcpv6-server to any port dhcpv6-client"
        fi
-       RULES="$RULES\npass proto carp keep state (no-sync)"
+       RULES="$RULES\npass in proto carp keep state (no-sync)"
+       RULES="$RULES\npass out proto carp !received-on any keep state 
(no-sync)"
        case `sysctl vfs.mounts.nfs 2>/dev/null` in
        *[1-9]*)
                # don't kill NFS
                RULES="set reassemble yes no-df\n$RULES"
                RULES="$RULES\npass in proto { tcp, udp } from any port { 111, 
2049 } to any"
-               RULES="$RULES\npass out proto { tcp, udp } from any to any port 
{ 111, 2049 }"
+               RULES="$RULES\npass out proto { tcp, udp } from any to any port 
{ 111, 2049 } !received-on any"
                ;;
        esac
        echo $RULES | pfctl -f -

Reply via email to