====== ipfw ======= ===== allow forwarding ===== ^ /etc/rc.conf ^ | gateway_enable="YES" | sysctl net.inet.ip.forwarding=1 ===== allow L2 filtering===== sysctl net.link.ether.ipfw=1 $ipfw add allow all from any to any layer2 mac-type arp in $ipfw add allow all from any to any layer2 mac-type arp out $ipfw add deny all from any to me mac any 00:a0:98:f5:4c:fb $ipfw add allow all from me to any mac any any $ipfw add allow all from any to me mac any any * silent mode ipfw="ipfw -q" ===== Limit packet size ===== $ipfw add deny icmp from any to me in iplen 500-65535 ===== stateful firewall ===== * //check-state// checks for dynamically created rules by //keep-state// * //setup// matches TCP packets that have SYN flag on, but no ACK (new connections) $ipfw add check-state :FORWARD $ipfw add deny tcp from any to any established $ipfw add allow tcp from $lan_net to any setup keep-state :FORWARD $ipfw add deny tcp from any to any $ipfw add allow udp from $lan_net to any keep-state :FORWARD $ipfw add deny udp from any to any $ipfw add allow ip from $lan_net to any keep-state :FORWARD $ipfw add deny ip from any to any ===== anti-spoofing ===== $ipfw add deny ip from any to any not verrevpath in $ipfw add deny ip from any to any not antispoof in