URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID10
Нить номер: 3859
[ Назад ]

Исходное сообщение
"pf на основе политик"

Отправлено urusha , 26-Июн-08 14:29 
Здравствуйте! Проблема такая: есть сеть 192.168.1.0/24, шлюз 192.168.1.1 с pf на freebsd 7.0, который натит и пускает в инет. Делаю фильтрацию в pf с помощью тэгов. Выделяю подобно iptables пакеты которые форвардятся с локалки в инет и пакеты идущие непосредственно со шлюза в инет:

block drop in on rl1 inet from 192.168.1.0/24 to ! 192.168.1.1 tag fwd_int_to_ext
block drop out on rl0 inet from xx.xx.xx.xx to any tag out_ext ! tagged fwd_int_to_ext

потом фильтрую по разным признакам, например:

pass quick inet proto tcp from any to 217.112.42.215 port = pop3 flags S/SA modulate state tagged fwd_int_to_ext
pass quick inet proto tcp from any to 217.112.42.215 port = smtp flags S/SA modulate state tagged fwd_int_to_ext
pass quick inet proto icmp all icmp-type echoreq keep state tagged fwd_int_to_ext

все что не нужно блочится, нужное ходит на ура, но захотелось мне пустить в инет по 123 udp порту только одну машинку 192.168.1.2, пишу:

pass quick inet proto udp from 192.168.1.2 to any port = ntp keep state tagged fwd_int_to_ext

в итоге под правило не попадает ни один udp пакет с 192.168.1.2 на 123 порт...
хотя так:

pass quick inet proto udp from any to any port = ntp keep state tagged fwd_int_to_ext

все работает, но доступ есть у всех, а это плохо...
я так понимаю pf просто не понимает что 192.168.1.2 содержится в 192.168.1.0/24 когда обрабатывает тэгированные пакеты... можно ли как-нибудь это обойти? или что-то не так я написал? спасибо


Содержание

Сообщения в этом обсуждении
"pf на основе политик"
Отправлено urusha , 26-Июн-08 16:11 
самое интересное, когда делаю на 192.168.1.2

$ ntpdate -q ru.pool.ntp.org
server 193.124.11.11, stratum 0, offset 0.000000, delay 0.00000
26 Jun 16:00:08 ntpdate[48431]: no server suitable for synchronization found

что значит до сервака не достучатся...
а на 192.168.1.1 при выводе команды pfctl -sr -v нахожу:

pass quick inet proto udp from 192.168.1.2 to any port = ntp keep state tagged fwd_int_to_ext
  [ Evaluations: 7111      Packets: 100       Bytes: 6600        States: 1     ]
  [ Inserted: uid 0 pid 4449 ]

то есть пакеты попадают под правило, состояние тоже сохраняется (States: 1)... непонятно


"pf на основе политик"
Отправлено urusha , 22-Июл-08 16:03 
вобщем, кому интересно, проблема решилась + родился конфиг удобный для администрирования. см. http://www.bsdportal.ru/viewtopic.php?t=18189

"pf на основе политик"
Отправлено Михаил Белевский , 23-Июл-08 17:14 

>http://www.bsdportal.ru/viewtopic.php?t=18189

Ага, полезный конфиг. Вот бы еще прозрачное проксирование прикрутить и ограничение скорости на основе ALTQ ;)


"pf на основе политик"
Отправлено urusha , 24-Июл-08 17:16 

>Ага, полезный конфиг. Вот бы еще прозрачное проксирование прикрутить и ограничение скорости
>на основе ALTQ ;)

читаем рецепт в том же месте...