Набросал себе firewall
#!/bin/sh
cmd="ipfw -q add"
skip="skipto 500"
pif=rl0
lif=dc0
ks="keep-state"
good_tcpo="20,21,22,25,37,43,53,80,110,119,161,443"
add_tcpo="587,995,1431,1950,2022,2020,3130,4899,5190"
ipfw -q -f flush
# Разрешаем любой локальный траффик
$cmd 002 allow all from any to any via $lif
# Разрешаем любой траффик через loopback
$cmd 003 allow all from any to any via lo0
# Разрешаем входящий траффик на FTP и SSH
$cmd 010 $skip tcp from any to any 21,22 via $pif setup $ks
$cmd 011 $skip tcp from any 21 to any via $pif setup $ks
# Запрещаем весь NetBIOS
$cmd 020 deny all from any to any 137-138
$cmd 021 deny all from any to any 445
# Заворачиваем весь входящий на natd
$cmd 100 divert natd ip from any to any in via $pif
$cmd 101 check-state
# Разрешаем любые исходящие DNS запросы из внутренней сети.
$cmd 120 $skip tcp from any to any 53 out via $pif $ks
$cmd 121 $skip udp from any to any 53 out via $pif $ks
# Разрешаем все дружественные порты наружу
$cmd 130 $skip tcp from any to any $good_tcpo out via $pif setup $ks
$cmd 131 $skip udp from any to any $good_tcpo out via $pif setup $ks
# Разрешаем все дополнительные дружественные порты наружу
$cmd 140 $skip tcp from any to any $add_tcpo out via $pif setup $ks
$cmd 141 $skip udp from any to any $add_tcpo out via $pif setup $ks
# Открываем верхние порты для входящих соединений
$cmd 150 $skip tcp from any 20 to any 102-65535 in recv $pif
#$cmd 150 $skip tcp from any to any 1024-65535 in via $pif setup $ks
#$cmd 151 $skip udp from any to any 1024-65535 in via $pif setup $ks
# Разрешаем исходящий пинг
$cmd 160 $skip icmp from any to any out via $pif $ks
# Разрешаем исходящий NTP
$cmd 151 $skip udp from any to any 123 out via $pif $ks
# Deny all inbound traffic from non-routable reserved address spaces
$cmd 300 deny all from 192.168.0.0/16 to any in via $pif #RFC 1918 private IP
$cmd 301 deny all from 172.16.0.0/12 to any in via $pif #RFC 1918 private IP
$cmd 302 deny all from 10.0.0.0/8 to any in via $pif #RFC 1918 private IP
$cmd 303 deny all from 127.0.0.0/8 to any in via $pif #loopback
$cmd 304 deny all from 0.0.0.0/8 to any in via $pif #loopback
$cmd 305 deny all from 169.254.0.0/16 to any in via $pif #DHCP auto-config
$cmd 306 deny all from 192.0.2.0/24 to any in via $pif #reserved for docs
$cmd 307 deny all from 204.152.64.0/23 to any in via $pif #Sun cluster
$cmd 308 deny all from 224.0.0.0/3 to any in via $pif #Class D & E multicast
# Разрешаем входящий траффик на 80 порт но только для одного коннекта.
$cmd 420 allow tcp from any to me 80 in via $pif setup limit src-addr 1
# Закрываем все и вся
$cmd 450 deny log ip from any to any
# Заправляем все, что до сюда дошла на NATD и разрешаем все что не прошло на NATD.
$cmd 500 divert natd ip from any to any out via $pif
$cmd 510 allow ip from any to any
Вот теперь не могу заставить нормально работать passive FTP не открывая порты 1024-65535.
Как это можно организовать?
Вообще комментарии будут по толковости-бестолковости? Что-то мне тут не нравиться все на самом деле...
Заранее спасибо за ответы.