Такс, забыл еще дописать пару строчек, одна из которых обязательна отмечу красным.
*************************
/etc/pf.conf
#Макросы
ext_if = "rl0"
int_if = "rl1"
Me = "10.0.0.2"
table <router> {ext_if int_if }
nat pass on $ext_if inet from $Me -> ($ext_if)
antispoof quick for rl0 inet
antispoof quick for rl1 inet
block return log
block in from no-route
pass quick on lo0
pass in on $int_if inet from $Me to !<router> keep state
pass in inet proto icmp to <router> icmp-type echoreq keep state
pass in on $int_if inet proto tcp from $Me to $int_if port ssh keep state
pass out inet from {$ext_if $int_if } user 0 keep state
*************************
Добавил таблицу <router>, корорая содержит IP адреса нашего роутера (192.168.0.2 и 10.0.0.1). Для того, чтобы правила конкретней выгляд.
Добавил antispoof
Ну и самое главно, пропускать на вход весь трафик с IP 10.0.0.2 на внутренем интерфейсе через роутер.
Есть? Теперь перезагрузим pf следующей командой:
pfctl -Fr && pfctl -f /etc/pf.conf
pfctl -Fr - Flush the filter rules (Очищаем правила фаера)
pfctl -f /etc/pf.conf - Load the rules contained in file (Загружаем правила с файла)
PS: Перед перезагрузкой фаера рекомендую запускать pfctl -nf /etc/pf.conf - Do not actually load rules, just parse them (Не загружатет правила, а только проверяет на наличие ошибок)
Ну и pfctl -sr Show the currently loaded filter rules (Показывает текущие правила фильтра)
pfctl -sn Show the currently loaded NAT rules (Показывает текущие правила ната)
И для диагностики:
ping, tcpdump
tcpdump -n -e -ttt -i pflog0 - на интерфейс pflog0 сбрасываются логи правил, которые были отмечены log.
У нас это одно правило block return log, т.е. все, что запрещено будет сыпаться в лог (/var/log/pflog). Для просмотра лога тоже нужо юзать tcpdump с ключиком "-r"
tcpdmp -r /var/log/pflog

--------------------------------------------------
Этот пример можно назвать "настройка роутера за 10-15 минут"
