Код: Выделить всё
#!/bin/sh
ext_if="em0"
ext_ip="192.168.0.7"
portsentry_tcp="1,....."
portsentry_udp="1,....."
FwCMD="/sbin/ipfw"
${FwCMD} -f flush # сбрасываем все правила
${FwCMD} -f pipe flush # сбрасываем все pipe
${FwCMD} -f queue flush # сбрасываем все очереди
${FwCMD} add check-state # проверяем - соответствует ли пакет динамическим правилам
${FwCMD} add allow ip from any to any via lo0 # разрешаем весь трафик по внутреннему интерфейсу (петле)
${FwCMD} add deny ip from table\(1\) to me # portsentry
${FwCMD} add deny ip from table\(2\) to me # brute
${FwCMD} add deny icmp from any to any frag # запретить фрагментированные icmp
${FwCMD} add deny icmp from any to 255.255.255.255 in via ${ext_if} # запретить широковещательные icmp на внешнем интерфейсе
${FwCMD} add deny icmp from any to 255.255.255.255 out via ${ext_if} # запретить широковещательные icmp на внешнем интерфейсе
${FwCMD} add deny ip from any to 127.0.0.0/8 # запрещаем попытки обращения к lo0
${FwCMD} add deny ip from 127.0.0.0/8 to any # запрещаем попытки обращения из lo0
${FwCMD} add deny ip from 10.0.0.0/8 to any out via ${ext_if} # запретить частные сети на внешнем интерфейсе
${FwCMD} add deny ip from 172.16.0.0/12 to any out via ${ext_if}
${FwCMD} add deny ip from 192.168.0.0/16 to any out via ${ext_if}
${FwCMD} add deny ip from 0.0.0.0/8 to any out via ${ext_if}
${FwCMD} add deny ip from 169.254.0.0/16 to any out via ${ext_if} # запретить автокон. частную сеть
${FwCMD} add deny ip from 224.0.0.0/4 to any out via ${ext_if} # запретить мультикастовые рассылки
${FwCMD} add deny ip from 240.0.0.0/4 to any out via ${ext_if} # запретить мультикастовые рассылки
${FwCMD} add allow tcp from any to any established # разрешить все установленные соединения
${FwCMD} add allow ip from ${ext_ip} to any out xmit ${ext_if} keep-state # разрешить весь исходящий трафик (для сервера)
${FwCMD} add allow icmp from any to any icmptypes 0,8,11 # ICMP
${FwCMD} add allow udp from any to ${ext_ip} 53 via ${ext_if} # DNS
${FwCMD} add allow tcp from any to ${ext_ip} 53 via ${ext_if} # DNS
${FwCMD} add allow udp from any to ${ext_ip} 123 via ${ext_if} # NTP
${FwCMD} add allow tcp from any to ${ext_ip} 22 via ${ext_if} # SSH
${FwCMD} add allow tcp from any to ${ext_ip} 80 via ${ext_if} # HTTP
${FwCMD} add allow tcp from any to ${ext_ip} 25 via ${ext_if} # SMTP
${FwCMD} add allow tcp from any to ${ext_ip} 110 via ${ext_if} # POP
${FwCMD} add allow tcp from any to ${ext_ip} 143 via ${ext_if} # IMAP
${FwCMD} add allow tcp from any to ${ext_ip} 21 via ${ext_if} # FTP control
${FwCMD} add allow tcp from any to ${ext_ip} 10000-65535 via ${ext_if} # FTP passive
${FwCMD} add allow tcp from any to any ${portsentry_tcp} via ${ext_if} # TCP portsentry
${FwCMD} add allow udp from any to any ${portsentry_udp} via ${ext_if} # UDP portsentry
${FwCMD} add deny ip from any to any # запретить все
Этого достаточно или надо добавить еще ограничений?
Нет ли в нем потенциальных ошибок и неточностей?