http://mtaalamu.ru
pfctl -t badhosts -T show
Заканчивалась вот таким сообщением:
No ALTQ support in kernel
ALTQ related functions disabled
No ALTQ support in kernel
Будем пересобирать ядро. Это кстати намного проще и удобнее, чем в Linux. Делаем вот что:]]>
Правим /etc/rc.conf:
pf_enable="YES"
Создаем/правим файл /etc/pf.conf:
# re0 - сетевой интерфейс
net_if1="re0"
# пропускаем все на локальном интерфейсе
set skip on lo
# список tcp портов, которые будут открыты со внешки
tcp_services = "{22, 80, 8080, 443}"
# блокируем все входящие соединения, но разрешаем исходящие
block in all
pass out all
# разрешаем доступ со внешки к вышеперечисленным портам
# ключевое слово quick означает, что после этого правила
# никакие другие правила к пакетам применяться не будут
pass in quick on $net_if1 inet proto tcp from any to $net_if1 port $tcp_services
Стартуем (кстати, если делаете это на удаленном сервере, ssh соединение будет разорвано после старта pf).
/etc/rc.d/pf start
Вот такой минимализм. Работают только определенные TCP порты, ICMP отключен.
Также пример настроек для работы ftp сервера в пассивном режиме:
]]>net_if1="re0"
set skip on lo
tcp_services = "{20, 21, 22, 1222, 80, 8080, 443, 6969, 5222, 5223, 9090, 9091}"
block in all
pass out all
pass in quick on $net_if1 inet proto tcp from any to $net_if1 port $tcp_services
pass in quick on $net_if1 inet proto tcp from any to $net_if1 port 49512 >< 65535