block all в pf

Простые/общие вопросы по UNIX системам. Спросите здесь, если вы новичок

Модераторы: vadim64, terminus

Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Аватара пользователя
carharot
рядовой
Сообщения: 29
Зарегистрирован: 2012-09-22 17:59:34

block all в pf

Непрочитанное сообщение carharot » 2012-09-22 20:36:49

Всем привет.

Люди. Помогите, пожалуйста настроить pf. Полный новичек в этом деле.
Ищу уже целый .. блин больше суток точно правило - почему block all стоит в pf не в конце, а (вот не найду хоть тресни!!!) где-то в середине правил.

Прочитал статью http://www.lissyara.su/articles/openbsd/pf/pf/ по настройке pf. Попробовал воспроизвести это дело, но постоянно сталкиваюсь с проблемой, что нет доступа с локальной машины, где этот pf стоит, в инет. При этом, клиентские локальные машины спокойно через нее в инет ходят.
Логично предположить, что правило "pass out on $ext_if_cheap from $ext_if_cheap to any" как бы ее пускать должно, но нет.

ping ya.ru
ping: cannot resolve ya.ru: Host name lookup failure

таблица двояка:

Код: Выделить всё

pfctl -sa
pfctl -sa
TRANSLATION RULES:
nat on tun0 inet from 192.168.1.0/24 to any -> (tun0) round-robin
nat on tun0 inet from 192.168.2.0/24 to any -> (tun0) round-robin

FILTER RULES:
scrub in all fragment reassemble
block drop in quick on ! tun0 inet from x.x.x.x to any
block drop in quick inet from x.x.x.x to any
block return all
pass out on tun0 inet from x.x.x.x to any flags S/SA keep state
pass out on tun0 inet from 192.168.1.0/24 to any flags S/SA keep state
pass out on tun0 inet from 192.168.2.0/24 to any flags S/SA keep state
pass log inet proto icmp all icmp-type echoreq keep state
pass log inet proto icmp all icmp-type unreach keep state

правила:
ext_if_cheap="tun0"
int_if="nfe0"
icmp_types="{ echoreq, unreach}"
trusted_lan="{ 192.168.1.0/24, 192.168.2.0/24 }"
untrusted_lan="10.0.0.0/8"
localnet="127.0.0.0/8"
set block-policy return
set skip on lo0
set skip on $int_if
scrub in all
nat on $ext_if_cheap from $trusted_lan to any -> ($ext_if_cheap)
antispoof quick for $ext_if_cheap
block all
pass out on $ext_if_cheap from $ext_if_cheap to any keep state
pass out on $ext_if_cheap from $trusted_lan to any keep state
pass log inet proto icmp all icmp-type $icmp_types
если выключить pf, пинг на внешние хосты идет.

почему pf не пускает локальную машину?
Последний раз редактировалось f_andrey 2012-09-22 20:51:32, всего редактировалось 1 раз.
Причина: Автору, выбирайте пожалуйста раздел соответствуюший тематике вашего сообщения, и оформляйте его по человечески.

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
carharot
рядовой
Сообщения: 29
Зарегистрирован: 2012-09-22 17:59:34

Re: block all в pf

Непрочитанное сообщение carharot » 2012-09-22 20:53:43

забыл добавить.
Пинг по адресам идет ок.
Проблема при обращении к именам хостов. выключаем pf, пинг по именам идет.
пинг dns адресов провайдера идет в обоих случаях.

Аватара пользователя
carharot
рядовой
Сообщения: 29
Зарегистрирован: 2012-09-22 17:59:34

Re: block all в pf

Непрочитанное сообщение carharot » 2012-09-22 21:02:36

разобрался, но не до конца.
локальная машина с поднятым dns
добавление в resolv.conf петли решило проблему.

это мой косяк
запрещено хождение с моего внешнего адреса на мой же внешний адрес.
кстати, если антиспуф в тех правилах убрать, то без изменения resolv.conf один фик не пускало. видимо, есть какие-то умолчания в самом pf.

Аватара пользователя
skeletor
майор
Сообщения: 2486
Зарегистрирован: 2007-11-16 18:22:04
Откуда: Kiev
Контактная информация:

Re: block all в pf

Непрочитанное сообщение skeletor » 2012-09-24 15:47:12

pf работает про принципу - последнее совпавшее правило, а не первое, как у многих файерволов. Но это можно так же изменить, если указать параметро quick. Тогда правило сработает сразу и остальные проверяться не будут.
"Винда съела дрова и резет здесь не фурычит."
"Все говорят, что у меня /dev/hands криво и я всё делаю через /dev/ass. А у меня этих фалов вообще нет!"