Статья о PF. Пинайте
Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
- BlackCat
- прапорщик
- Сообщения: 469
- Зарегистрирован: 2007-10-16 22:40:42
Re: Статья о PF. Пинайте
balamut, пожалуйста, создайте новую тему, например в форуме NETWORKS (http://forum.lissyara.su/viewforum.php?f=4) и в ней опишите сложившуюся ситуацию. Ваш вопрос относится больше к теме построения сетей, чем к теме конкретной настройке pf.
В ней подробнее опишите как построена сеть (комутаторы, подсети) и какие имена имеются в виду (NetBIOS или DNS).
В ней подробнее опишите как построена сеть (комутаторы, подсети) и какие имена имеются в виду (NetBIOS или DNS).
Услуги хостинговой компании Host-Food.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/
Тарифы на виртуальные сервера (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/
-
- рядовой
- Сообщения: 33
- Зарегистрирован: 2010-11-25 11:34:43
Re: Статья о PF. Пинайте
у меня щас так работает на вингейте(достал меня уже слетать) все пингуется и так далее. я думаю дело в маршрутизации..пожалуйста, создайте новую тему, например в форуме NETWORKS (viewforum.php?f=4) и в ней опишите сложившуюся ситуацию. Ваш вопрос относится больше к теме построения сетей, чем к теме конкретной настройке pf.
В ней подробнее опишите как построена сеть (комутаторы, подсети) и какие имена имеются в виду (NetBIOS или DNS).
- BlackCat
- прапорщик
- Сообщения: 469
- Зарегистрирован: 2007-10-16 22:40:42
Re: Статья о PF. Пинайте
Вы так и не рассказали, как "так" у вас работает. Ничего, кроме утверждения, что оно работает.balamut писал(а):у меня щас так работает на вингейте(достал меня уже слетать) все пингуется и так далее.
Тогда зачем задавать вопрос в теме, посвящённой настройке МСЭ?balamut писал(а):я думаю дело в маршрутизации..
-
- рядовой
- Сообщения: 34
- Зарегистрирован: 2011-01-05 17:46:43
- Откуда: сын Одессы и Ростова
Re: Статья о PF. Пинайте
Подскажите пожалуйста, начал разбираться с 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, подскажите пожалуйста где туплю буду очень благодарен.
Вот мой 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, подскажите пожалуйста где туплю буду очень благодарен.
-
- рядовой
- Сообщения: 34
- Зарегистрирован: 2011-01-05 17:46:43
- Откуда: сын Одессы и Ростова
Re: Статья о PF. Пинайте
Похоже что моя проблема в том что 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
ничего не получилось, почему то правила не работают, куда копать?
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
ничего не получилось, почему то правила не работают, куда копать?
-
- сержант
- Сообщения: 258
- Зарегистрирован: 2009-10-31 22:13:04
- Контактная информация:
Re: Статья о PF. Пинайте
Для начала не pass out on $ext_if from $ext_if to any keep state
а pass out on $ext_if from $int_if to any keep state
а то у Вас получается запрет на выход внутреннему интерфейсу в нет, а через него все проходит.
а pass out on $ext_if from $int_if to any keep state
а то у Вас получается запрет на выход внутреннему интерфейсу в нет, а через него все проходит.
-
- рядовой
- Сообщения: 34
- Зарегистрирован: 2011-01-05 17:46:43
- Откуда: сын Одессы и Ростова
Re: Статья о PF. Пинайте
Поменял:
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
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
-
- рядовой
- Сообщения: 34
- Зарегистрирован: 2011-01-05 17:46:43
- Откуда: сын Одессы и Ростова
Re: Статья о PF. Пинайте
Поменял:
pass out on $ext_if from $ext_if to any keep state на:
pass out on $ext_if from ($int_if) to any keep state
ошибка ушла но интенет так и не появился в локальной сети
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. Пинайте
korg80, ошибка в вашем первоначальном конфиге простая: вы разрешаете своими правилами трафик на внешнем интерфейсе с внутренних адресов на выход, но сначала пакеты проходят NAT и только потом правила фильтрации, следовательно, пакеты проходящие фильтрацию уже имеют обратным адресом адрес внешнего интерфейса и не попадают под разрешающие правила и блокируются. tcpdump(8) должен был показать это.
=====
И зачем начинать со сложных конфигураций со множеством условий? Начните с чего нибудь простого, на подобии такой конфигурации:А потом добавляйте себе в удовольствие дополнительные условия и правила.
=====
И последнее, но не в последнюю очередь: пожалуйста, используйте тег/кнопку [code][/code] при оформлении сообщений, подробности в FAQ (http://forum.lissyara.su/viewtopic.php?f=53&t=28751).
=====
И зачем начинать со сложных конфигураций со множеством условий? Начните с чего нибудь простого, на подобии такой конфигурации:
Код: Выделить всё
# 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).
-
- рядовой
- Сообщения: 34
- Зарегистрирован: 2011-01-05 17:46:43
- Откуда: сын Одессы и Ростова
Re: Статья о PF. Пинайте
Скопировал в pf.conf предложенную выше вами конфигурацию, бьет ошибку: /etc/pf.conf:5: syntax error судя по всему на эту строку:
match out on $ext_if from !($ext_if) nat-to ($ext_if)
Подскажите что не так? Заранее спасибо.
match out on $ext_if from !($ext_if) nat-to ($ext_if)
Подскажите что не так? Заранее спасибо.
- BlackCat
- прапорщик
- Сообщения: 469
- Зарегистрирован: 2007-10-16 22:40:42
Re: Статья о PF. Пинайте
Моя ошибка. Это была конфигурация с OpenBSD - синтаксис немного отличается. Попробуйте в предложенной конфигурации заменить строку:korg80 писал(а):Скопировал в pf.conf предложенную выше вами конфигурацию, бьет ошибку: /etc/pf.conf:5: syntax error судя по всему на эту строку:
Код: Выделить всё
match out on $ext_if from !($ext_if) nat-to ($ext_if)
Код: Выделить всё
nat on $ext_if from !($ext_if) -> ($ext_if)
-
- рядовой
- Сообщения: 34
- Зарегистрирован: 2011-01-05 17:46:43
- Откуда: сын Одессы и Ростова
Re: Статья о PF. Пинайте
to BlackCat
огромное человеческое спасибо все работает, теперь можно начать эксперементировать с правилами pf
огромное человеческое спасибо все работает, теперь можно начать эксперементировать с правилами pf
-
- рядовой
- Сообщения: 34
- Зарегистрирован: 2011-01-05 17:46:43
- Откуда: сын Одессы и Ростова
Re: Статья о PF. Пинайте
Добрый день возник вот такой вопрос упустил какуюто мелочь, что не так не пойму..
Поставил PF c ALTQ настроил шейпирование все работает, но после перегрузки или включения компа pf не запускается на команды:
pfctl –s rules
pfctl –sq -vv
не реагирует, ввожу pfctl -f /etc/pf.conf и все в порядке все работает.
В /etc/pf.conf строчки pf_enable="YES" и pflog_enable="YES" есть
Поставил PF c ALTQ настроил шейпирование все работает, но после перегрузки или включения компа pf не запускается на команды:
pfctl –s rules
pfctl –sq -vv
не реагирует, ввожу pfctl -f /etc/pf.conf и все в порядке все работает.
В /etc/pf.conf строчки pf_enable="YES" и pflog_enable="YES" есть
-
- рядовой
- Сообщения: 34
- Зарегистрирован: 2011-01-05 17:46:43
- Откуда: сын Одессы и Ростова
Re: Статья о PF. Пинайте
pf enable в процессе загрузки пишет. Добавил pf_rules="/etc/pf.conf" в rc.conf ничего не изменилось
-
- проходил мимо
Re: Статья о PF. Пинайте
Добрый день!
Вопрос совершенно простой, но покоя не дает:
установил минимальную конфигурацию FBSD-8.2, уже крутятся несколько сервисов и по этом понадобилось мне сделать связку squid+pf.
После первой загрузки я обнаружил init-скрипты (/etc/rc.d/pf, утилиты pfctl). Будучи злостным дебианщиком меня немного смутило тот факт, что уже какая-то часть фильтра есть и видимо как то работает.
Первым делом я пошел на этот сайт, мною очень уважаемый. Нашел установку pf с помощью пересборки ядра и включением сего продукта в его само. Вопрос:
Собственно как PF мог работать без пересборки ядра (подгрузки модулей не нашел в скрипте, да и в ядре ничего не появлялось, см. через kldstatus)?
Что изменится после пересборки, т.е. как именно этот мистический pf, доступный после установки, будет взаимодействовать с вкомпиленным в ядро?
И еще не помешало бы узнать как проверить работает ли PF с модуля или с ядра, работает ли вообще.
Спасибо.
Вопрос совершенно простой, но покоя не дает:
установил минимальную конфигурацию FBSD-8.2, уже крутятся несколько сервисов и по этом понадобилось мне сделать связку squid+pf.
После первой загрузки я обнаружил init-скрипты (/etc/rc.d/pf, утилиты pfctl). Будучи злостным дебианщиком меня немного смутило тот факт, что уже какая-то часть фильтра есть и видимо как то работает.
Первым делом я пошел на этот сайт, мною очень уважаемый. Нашел установку pf с помощью пересборки ядра и включением сего продукта в его само. Вопрос:
Собственно как PF мог работать без пересборки ядра (подгрузки модулей не нашел в скрипте, да и в ядре ничего не появлялось, см. через kldstatus)?
Что изменится после пересборки, т.е. как именно этот мистический pf, доступный после установки, будет взаимодействовать с вкомпиленным в ядро?
И еще не помешало бы узнать как проверить работает ли PF с модуля или с ядра, работает ли вообще.
Спасибо.
-
- проходил мимо
Re: Статья о PF. Пинайте
Для работы pf в вре-8,2 достаточно в rc.conf прописать его автозапуск. Ну, форвардинг надо будет включить еще. После установки в ядро начнет работать ALTQ и все на этом, конфликтов не должно быть.wilful писал(а):Добрый день!
Вопрос совершенно простой, но покоя не дает:
установил минимальную конфигурацию FBSD-8.2, уже крутятся несколько сервисов и по этом понадобилось мне сделать связку squid+pf.
После первой загрузки я обнаружил init-скрипты (/etc/rc.d/pf, утилиты pfctl). Будучи злостным дебианщиком меня немного смутило тот факт, что уже какая-то часть фильтра есть и видимо как то работает.
Первым делом я пошел на этот сайт, мною очень уважаемый. Нашел установку pf с помощью пересборки ядра и включением сего продукта в его само. Вопрос:
Собственно как PF мог работать без пересборки ядра (подгрузки модулей не нашел в скрипте, да и в ядре ничего не появлялось, см. через kldstatus)?
Что изменится после пересборки, т.е. как именно этот мистический pf, доступный после установки, будет взаимодействовать с вкомпиленным в ядро?
И еще не помешало бы узнать как проверить работает ли PF с модуля или с ядра, работает ли вообще.
Спасибо.
-
- проходил мимо
- Сообщения: 1
- Зарегистрирован: 2014-12-12 18:59:18
Re: Статья о PF. Пинайте
Здравствуйте!
Конструкцию вроде
Симптомы: В некоторых веб-сервисах с авторизацией (личные кабинеты магазинов, Интернет-банки и т. д.) как водится все идет через SSL. Пользователи стали не сильно настойчиво жаловаться что авторизация слетает. Никто сильно не переживал, но меня тревожило возрастающее количество обращений, а главное непонятно откуда копать. SSL соединения сомнений не вызывали, сертификаты правильные. Пакеты не теряются, но личные кабинеты упорно выкидывали всех на авторизацию. И, что самое противное, иногда можно было побродить по кабинету на несколько страниц, а иногда выбивало сразу же.
Обращения в банк, чтобы они посмотрели почему их сервис прерывает авторизацию, результатов не дали. Убрал сервер из цепочки, подключившись напрямую к провайдеру - все нормально. Пришла мысль посмотреть на состояния pf (pfctl -s state). И вот тут обнаружилось, что я идиот. Мануалы читать надо всегда
На внешнем интерфейсе несколько IP адресов. Конструкция "-> ($ext_if)" говорит: "отправлять с адреса интерфейса $ext_if"
- А тут их несколько. С какого?
- А какой в прошлый раз был?
- xxx.xxx.xxx.10
- Ну тогда пусть будет xxx.xxx.xxx.11
А веб-сервисы частенько открытую сессию пользователя привязывают к IP. И, в таком случае, требуют авторизации при каждом обращении с другого адреса.
ИМХО лучше что-нибудь типа
Конструкцию вроде
встречал во многих местах. И она действительно работает. Я же умудрился наступить на грабли. Причем сначала даже не понял куда копать.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
- А тут их несколько. С какого?
- А какой в прошлый раз был?
- xxx.xxx.xxx.10
- Ну тогда пусть будет xxx.xxx.xxx.11
А веб-сервисы частенько открытую сессию пользователя привязывают к IP. И, в таком случае, требуют авторизации при каждом обращении с другого адреса.
ИМХО лучше что-нибудь типа
Код: Выделить всё
nat on $ext_if from !($ext_if) -> ($ext_if) sticky-address