Код: Выделить всё
#!/bin/sh
fwcmd="/sbin/ipfw -q"
inet_out="re0" # Внешняя сетевая карта
ip_out="xxx.xxx.xxx.xxx" # Мой IP
inet_out1="xxx.xxx.xxx.xxx/28"
lan_in="re1" # Внутренняя сетевая карта
lan_ip="192.168.1.0/24" # Внутренний IP локальной сети
serv_ip="192.168.1.1" # Внутренний IP сервера
${fwcmd} -f flush
${fwcmd} add 97 pass all from any to any via lo0
${fwcmd} add 98 deny all from any to 127.0.0.0/8
${fwcmd} add 99 deny ip from 127.0.0.0/8 to any
##########################Запрещающие правила до 2000########################################
# Stop spoofing
#${fwcmd} add 250 deny all from 192.168.1.0/24 to any in via ${inet_out}
#${fwcmd} add 300 deny all from 83.234.14.127 to any in via ${inet_out}
# Незнаю как это назвать но пусть будет
${fwcmd} add 350 deny tcp from any to ${ip_out} in via ${inet_out} tcpflags syn,!ack
# Stop RFC1918 nets on the outside interface
${fwcmd} add 400 deny all from any to 10.0.0.0/8 via ${inet_out}
${fwcmd} add 450 deny all from any to 172.16.0.0/12 via ${inet_out}
${fwcmd} add 500 deny all from any to 192.168.0.0/16 via ${inet_out}
# Stop draft-manning-dsua-03.txt (1 May 2000) nets (includes RESERVED-1,
# DHCP auto-configuration, NET-TEST, MULTICAST (class D), and class E), on the outside interface
${fwcmd} add 550 deny all from any to 0.0.0.0/8 via ${inet_out}
${fwcmd} add 600 deny all from any to 169.254.0.0/16 via ${inet_out}
${fwcmd} add 650 deny all from any to 192.0.2.0/24 via ${inet_out}
${fwcmd} add 700 deny all from any to 224.0.0.0/4 via ${inet_out}
${fwcmd} add 750 deny all from any to 240.0.0.0/4 via ${inet_out}
# Broadcasts and muticasts
${fwcmd} add 800 deny ip from any to 255.255.255.255 via ${inet_out}
${fwcmd} add 850 deny ip from any to 224.0.0.0/24 in via ${inet_out}
# Если не наша сеть всё дропаем без исключения
${fwcmd} add 900 deny ip from not ${lan_ip} to any in recv ${inet_out}
# Запрещаем прохождение фрагментированных пакетов
${fwcmd} add 950 deny icmp from any to any frag
# рубим широковещательные icmp на внешнем интерфейсе
${fwcmd} add 1000 deny log icmp from any to 255.255.255.255 out via ${inet_out}
# рубим пакеты `типа от внутренней сети, но на внешнем интерфейсе`
${fwcmd} add 1100 deny ip from ${lan_ip} to any in via ${inet_out}
# рубим пакеты `типа от внешней сети, но на внутреннем интерфейсе`
${fwcmd} add 1200 deny ip from ${inet_out1} to any in via ${lan_in}
${fwcmd} add 3400 divert natd all from ${lan_ip} to any in
${fwcmd} add 3450 divert natd all from any to ${lan_ip} out
${fwcmd} add 3500 allow all from any to any