Статья о PF. Пинайте

Вопросы настройки и работы с этой ОС.
Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Аватара пользователя
BlackCat
прапорщик
Сообщения: 469
Зарегистрирован: 2007-10-16 22:40:42

Re: Статья о PF. Пинайте

Непрочитанное сообщение BlackCat » 2010-12-11 3:39:56

balamut, пожалуйста, создайте новую тему, например в форуме NETWORKS (http://forum.lissyara.su/viewforum.php?f=4) и в ней опишите сложившуюся ситуацию. Ваш вопрос относится больше к теме построения сетей, чем к теме конкретной настройке pf.
В ней подробнее опишите как построена сеть (комутаторы, подсети) и какие имена имеются в виду (NetBIOS или DNS).

Хостинговая компания 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/

balamut
рядовой
Сообщения: 33
Зарегистрирован: 2010-11-25 11:34:43

Re: Статья о PF. Пинайте

Непрочитанное сообщение balamut » 2010-12-11 21:08:33

пожалуйста, создайте новую тему, например в форуме NETWORKS (viewforum.php?f=4) и в ней опишите сложившуюся ситуацию. Ваш вопрос относится больше к теме построения сетей, чем к теме конкретной настройке pf.
В ней подробнее опишите как построена сеть (комутаторы, подсети) и какие имена имеются в виду (NetBIOS или DNS).
у меня щас так работает на вингейте(достал меня уже слетать) все пингуется и так далее. я думаю дело в маршрутизации..

Аватара пользователя
BlackCat
прапорщик
Сообщения: 469
Зарегистрирован: 2007-10-16 22:40:42

Re: Статья о PF. Пинайте

Непрочитанное сообщение BlackCat » 2010-12-12 18:57:18

balamut писал(а):у меня щас так работает на вингейте(достал меня уже слетать) все пингуется и так далее.
Вы так и не рассказали, как "так" у вас работает. Ничего, кроме утверждения, что оно работает.
balamut писал(а):я думаю дело в маршрутизации..
Тогда зачем задавать вопрос в теме, посвящённой настройке МСЭ?

korg80
рядовой
Сообщения: 34
Зарегистрирован: 2011-01-05 17:46:43
Откуда: сын Одессы и Ростова

Re: Статья о PF. Пинайте

Непрочитанное сообщение korg80 » 2011-01-05 18:09:03

Подскажите пожалуйста, начал разбираться с pf столкнулся с такой же проблемой как и Игорь : “ делаю все по статье, но при block all блокируется доступ в интернет для локалки, даже если разрешено ниже. Естественно если закомментировать block all, то интернет доступен из локалки. У меня FreeBSD 8.0-RELEASE, что то в этой версии может отличается в работе pf?”
Вот мой pf.conf :

ext_if="tun0"
int_if="x10"
lan_net="192.168.0.0/24"
localnet="127.0.0.0/8"
icmp_types="{echoreq, unreach}"

set block-policy return
set skip on lo0
set skip on $int_if

scrub in all

nat on $ext_if from $lan_net to any -> ($ext_if)

antispoof quick for $ext_if

block all

pass out on $ext_if from $ext_if to any keep state
pass out on $ext_if from $lan_net to any keep state

pass log inet proto icmp all icmp-type $icmp_types

Va_ советовал Игорю: “Игорь, вижу что в конфиге нету правил pass in. Входящий трафик отбрасывается.” Я добавил в конце строку:

pass in on $ext_if proto { tcp, udp } from any to $lan_net

но инета в локальной сети так и не появилось, пршлось опять закомментировать block all, подскажите пожалуйста где туплю буду очень благодарен.

korg80
рядовой
Сообщения: 34
Зарегистрирован: 2011-01-05 17:46:43
Откуда: сын Одессы и Ростова

Re: Статья о PF. Пинайте

Непрочитанное сообщение korg80 » 2011-01-06 14:06:25

Похоже что моя проблема в том что pf перекрывает внутренний интерфейс который смотрит в локалку, т.к. с включением правила block all на компе в локальной сети пропадает не только интернет но и доступ с samba серверу, правда пинг идет. Пробовал:
pass in on $int_if from $lan_net to any
pass out on $int_if from any to $lan_net
и
pass quick on $int_if
ничего не получилось, почему то правила не работают, куда копать?

Dark_ASU
сержант
Сообщения: 258
Зарегистрирован: 2009-10-31 22:13:04
Контактная информация:

Re: Статья о PF. Пинайте

Непрочитанное сообщение Dark_ASU » 2011-01-07 21:52:21

Для начала не pass out on $ext_if from $ext_if to any keep state
а pass out on $ext_if from $int_if to any keep state
а то у Вас получается запрет на выход внутреннему интерфейсу в нет, а через него все проходит.

korg80
рядовой
Сообщения: 34
Зарегистрирован: 2011-01-05 17:46:43
Откуда: сын Одессы и Ростова

Re: Статья о PF. Пинайте

Непрочитанное сообщение korg80 » 2011-01-08 11:39:19

Поменял:
pass out on $ext_if from $ext_if to any keep state
pass out on $ext_if from $int_if to any keep state
А в ответ - no ip address found for x10
/etc/pf.conf:20:could not parse host specification

korg80
рядовой
Сообщения: 34
Зарегистрирован: 2011-01-05 17:46:43
Откуда: сын Одессы и Ростова

Re: Статья о PF. Пинайте

Непрочитанное сообщение korg80 » 2011-01-08 11:49:30

Поменял:
pass out on $ext_if from $ext_if to any keep state на:
pass out on $ext_if from ($int_if) to any keep state
ошибка ушла но интенет так и не появился в локальной сети

Аватара пользователя
BlackCat
прапорщик
Сообщения: 469
Зарегистрирован: 2007-10-16 22:40:42

Re: Статья о PF. Пинайте

Непрочитанное сообщение BlackCat » 2011-01-10 0:18:36

korg80, ошибка в вашем первоначальном конфиге простая: вы разрешаете своими правилами трафик на внешнем интерфейсе с внутренних адресов на выход, но сначала пакеты проходят NAT и только потом правила фильтрации, следовательно, пакеты проходящие фильтрацию уже имеют обратным адресом адрес внешнего интерфейса и не попадают под разрешающие правила и блокируются. tcpdump(8) должен был показать это.
=====
И зачем начинать со сложных конфигураций со множеством условий? Начните с чего нибудь простого, на подобии такой конфигурации:

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

# Interfaces
ext_if="tun0"
int_if="xl0"

# NAT rule
match out on $ext_if from !($ext_if) nat-to ($ext_if)

# Default - block all
block all

# Allow all outgoing traffic
pass out quick keep state

# Allow all local traffic
pass in quick on $int_if keep state
А потом добавляйте себе в удовольствие дополнительные условия и правила.
=====
И последнее, но не в последнюю очередь: пожалуйста, используйте тег/кнопку [code][/code] при оформлении сообщений, подробности в FAQ (http://forum.lissyara.su/viewtopic.php?f=53&t=28751).

korg80
рядовой
Сообщения: 34
Зарегистрирован: 2011-01-05 17:46:43
Откуда: сын Одессы и Ростова

Re: Статья о PF. Пинайте

Непрочитанное сообщение korg80 » 2011-01-10 22:48:03

Скопировал в pf.conf предложенную выше вами конфигурацию, бьет ошибку: /etc/pf.conf:5: syntax error судя по всему на эту строку:
match out on $ext_if from !($ext_if) nat-to ($ext_if)
Подскажите что не так? Заранее спасибо.

Аватара пользователя
BlackCat
прапорщик
Сообщения: 469
Зарегистрирован: 2007-10-16 22:40:42

Re: Статья о PF. Пинайте

Непрочитанное сообщение BlackCat » 2011-01-11 0:48:07

korg80 писал(а):Скопировал в pf.conf предложенную выше вами конфигурацию, бьет ошибку: /etc/pf.conf:5: syntax error судя по всему на эту строку:
Моя ошибка. Это была конфигурация с OpenBSD - синтаксис немного отличается. Попробуйте в предложенной конфигурации заменить строку:

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

match out on $ext_if from !($ext_if) nat-to ($ext_if)
вот такой конструкцией:

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

nat on $ext_if from !($ext_if) -> ($ext_if)

korg80
рядовой
Сообщения: 34
Зарегистрирован: 2011-01-05 17:46:43
Откуда: сын Одессы и Ростова

Re: Статья о PF. Пинайте

Непрочитанное сообщение korg80 » 2011-01-12 7:44:15

to BlackCat
огромное человеческое спасибо все работает, теперь можно начать эксперементировать с правилами pf

korg80
рядовой
Сообщения: 34
Зарегистрирован: 2011-01-05 17:46:43
Откуда: сын Одессы и Ростова

Re: Статья о PF. Пинайте

Непрочитанное сообщение korg80 » 2011-01-22 14:53:46

Добрый день возник вот такой вопрос упустил какуюто мелочь, что не так не пойму..
Поставил PF c ALTQ настроил шейпирование все работает, но после перегрузки или включения компа pf не запускается на команды:
pfctl –s rules
pfctl –sq -vv
не реагирует, ввожу pfctl -f /etc/pf.conf и все в порядке все работает.
В /etc/pf.conf строчки pf_enable="YES" и pflog_enable="YES" есть

korg80
рядовой
Сообщения: 34
Зарегистрирован: 2011-01-05 17:46:43
Откуда: сын Одессы и Ростова

Re: Статья о PF. Пинайте

Непрочитанное сообщение korg80 » 2011-01-22 15:07:00

pf enable в процессе загрузки пишет. Добавил pf_rules="/etc/pf.conf" в rc.conf ничего не изменилось

wilful
проходил мимо

Re: Статья о PF. Пинайте

Непрочитанное сообщение wilful » 2011-03-23 9:48:11

Добрый день!

Вопрос совершенно простой, но покоя не дает:

установил минимальную конфигурацию FBSD-8.2, уже крутятся несколько сервисов и по этом понадобилось мне сделать связку squid+pf.
После первой загрузки я обнаружил init-скрипты (/etc/rc.d/pf, утилиты pfctl). Будучи злостным дебианщиком меня немного смутило тот факт, что уже какая-то часть фильтра есть и видимо как то работает.
Первым делом я пошел на этот сайт, мною очень уважаемый. Нашел установку pf с помощью пересборки ядра и включением сего продукта в его само. Вопрос:
Собственно как PF мог работать без пересборки ядра (подгрузки модулей не нашел в скрипте, да и в ядре ничего не появлялось, см. через kldstatus)?
Что изменится после пересборки, т.е. как именно этот мистический pf, доступный после установки, будет взаимодействовать с вкомпиленным в ядро?
И еще не помешало бы узнать как проверить работает ли PF с модуля или с ядра, работает ли вообще.

Спасибо.

Дмитрий Уфа
проходил мимо

Re: Статья о PF. Пинайте

Непрочитанное сообщение Дмитрий Уфа » 2011-05-26 9:01:14

wilful писал(а):Добрый день!

Вопрос совершенно простой, но покоя не дает:

установил минимальную конфигурацию FBSD-8.2, уже крутятся несколько сервисов и по этом понадобилось мне сделать связку squid+pf.
После первой загрузки я обнаружил init-скрипты (/etc/rc.d/pf, утилиты pfctl). Будучи злостным дебианщиком меня немного смутило тот факт, что уже какая-то часть фильтра есть и видимо как то работает.
Первым делом я пошел на этот сайт, мною очень уважаемый. Нашел установку pf с помощью пересборки ядра и включением сего продукта в его само. Вопрос:
Собственно как PF мог работать без пересборки ядра (подгрузки модулей не нашел в скрипте, да и в ядре ничего не появлялось, см. через kldstatus)?
Что изменится после пересборки, т.е. как именно этот мистический pf, доступный после установки, будет взаимодействовать с вкомпиленным в ядро?
И еще не помешало бы узнать как проверить работает ли PF с модуля или с ядра, работает ли вообще.

Спасибо.
Для работы pf в вре-8,2 достаточно в rc.conf прописать его автозапуск. Ну, форвардинг надо будет включить еще. После установки в ядро начнет работать ALTQ и все на этом, конфликтов не должно быть.

Игорь Фролов
проходил мимо
Сообщения: 1
Зарегистрирован: 2014-12-12 18:59:18

Re: Статья о PF. Пинайте

Непрочитанное сообщение Игорь Фролов » 2014-12-12 19:27:53

Здравствуйте!

Конструкцию вроде
nat on $ext_if from !($ext_if) -> ($ext_if)
встречал во многих местах. И она действительно работает. Я же умудрился наступить на грабли. Причем сначала даже не понял куда копать.

Симптомы: В некоторых веб-сервисах с авторизацией (личные кабинеты магазинов, Интернет-банки и т. д.) как водится все идет через SSL. Пользователи стали не сильно настойчиво жаловаться что авторизация слетает. Никто сильно не переживал, но меня тревожило возрастающее количество обращений, а главное непонятно откуда копать. SSL соединения сомнений не вызывали, сертификаты правильные. Пакеты не теряются, но личные кабинеты упорно выкидывали всех на авторизацию. И, что самое противное, иногда можно было побродить по кабинету на несколько страниц, а иногда выбивало сразу же.

Обращения в банк, чтобы они посмотрели почему их сервис прерывает авторизацию, результатов не дали. Убрал сервер из цепочки, подключившись напрямую к провайдеру - все нормально. Пришла мысль посмотреть на состояния pf (pfctl -s state). И вот тут обнаружилось, что я идиот. Мануалы читать надо всегда :)

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

self tcp 192.168.0.100:2025 -> xxx.xxx.xxx.10:62978 -> yyy.yyy.yyy.yyy:443       ESTABLISHED:ESTABLISHED
self tcp 192.168.0.100:2021 -> xxx.xxx.xxx.11:61768 -> yyy.yyy.yyy.yyy:443       ESTABLISHED:ESTABLISHED
На внешнем интерфейсе несколько IP адресов. Конструкция "-> ($ext_if)" говорит: "отправлять с адреса интерфейса $ext_if"
- А тут их несколько. С какого?
- А какой в прошлый раз был?
- xxx.xxx.xxx.10
- Ну тогда пусть будет xxx.xxx.xxx.11

А веб-сервисы частенько открытую сессию пользователя привязывают к IP. И, в таком случае, требуют авторизации при каждом обращении с другого адреса.

ИМХО лучше что-нибудь типа

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

nat on $ext_if from !($ext_if) -> ($ext_if) sticky-address