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

Вопросы настройки и работы с этой ОС.
Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35454
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

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

Непрочитанное сообщение Alex Keda » 2009-03-16 12:24:20

давай
Убей их всех! Бог потом рассортирует...

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

Аватара пользователя
itux
мл. сержант
Сообщения: 114
Зарегистрирован: 2008-11-09 12:37:55
Откуда: Kemerovo
Контактная информация:

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

Непрочитанное сообщение itux » 2009-03-18 13:24:48

пока только выкладываю резалку на пф по скорости:

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

int_if="rl0" // Local net
ext_if="rl1" // Internet

table <users128> persist file "/etc/internet/users128.table"

set optimization aggressive
set state-policy if-bound
scrub in all

# Users 128Kbit/s unlimited
altq on $ext_if cbq bandwidth 100Mb queue {inet128_out}
queue inet128_out bandwidth 128Kb {user128_out}
queue user128_out cbq(default)
altq on $int_if cbq bandwidth 100Mb queue {inet128_in}
queue inet128_in bandwidth 128Kb {user128_in}
queue user128_in cbq(default)

# Politics
pass out quick on $int_if proto tcp from any to <users128> flags S/SA keep state queue (user128_in)
pass out quick on $int_if proto udp from any to <users128> keep state queue (user128_in)
pass out quick on $ext_if proto tcp from <users128> to any flags S/SA keep state queue (user128_out)
pass out quick on $ext_if proto udp from <users128> to any keep state queue (user128_out)



Работает прекрасно (через прокси, если нужно прозрачное, надо добавить NAT), но вот второй конфиг (тот что динамично режет канал 1Мбит на 30 компов) пока тупит
Чуток попозже выложу, на обсуждение, некогда забрать съездить... :(
несу чушь, не дорого... звонить +7903.......

bespredel-mina
проходил мимо

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

Непрочитанное сообщение bespredel-mina » 2009-04-26 19:41:36

настраивал mrtg через ipfw, по статье http://forum.lafox.net/index.php?showtopic=13143
В итоге:
# /usr/local/bin/mrtg /usr/local/etc/mrtg/mrtg.cfg
2009-04-26 20:38:02: ERROR: Target[89.111.172.23][_IN_] ' $target->[0]{$mode} ' evaluated to 'NaN' instead of a number

Мой конфиг

EnableIPv6: no

Interval: 5
Forks: 12
Refresh: 300
Interval: 5
Options[_]: bits,unknaszero,avgpeak
Target[*.*.*.*]: `/usr/local/etc/mrtg/fire_get.sh 1000 2000`
Title[*.*.*.*]: MRTG for *.*.*.*
WithPeak[*.*.*.*]: ymw
YTics[*.*.*.*]: 10
MaxBytes[*.*.*.*]: 1250000
PageTop[*.*.*.*]: <H1>MRTG for *.*.*.*</H1>


где *.*.*.* мой клнфиг.
Подскажите в чем может быть проблема :st:


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

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

Непрочитанное сообщение nanit » 2009-05-31 17:54:04

В процессе познавания "дао" pf, возник вопрос.

Учитывая вот это

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

set skip on $int_if ## полностью пропускаем проверку на интерфейсе,
и вот это

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

nat on $ext_if_cheap from $trusted_lan to any -> ($ext_if_cheap) 
,

я правильно понимаю, что вот эта строка

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

pass out on $ext_if_cheap from $trusted_lan to any keep state 
как бы и не нужна, при условии, что есть вот эта

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

pass out on $ext_if_cheap from $ext_if_cheap to any keep state
?

При конфиге аналогичном статейному

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

pfctl -vvsr
показывает, что пакеты из локалки идут по правилу

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

pass out on $ext_if_cheap from $ext_if_cheap to any keep state

Аватара пользователя
Alex III ™
рядовой
Сообщения: 34
Зарегистрирован: 2009-08-05 14:23:44
Откуда: Ялта
Контактная информация:

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

Непрочитанное сообщение Alex III ™ » 2009-11-21 1:15:28

Подскажите пожалуйста правило для PF !!! никак не могу родить ))
Есть 2 интерфейса в одной сети rl0 (192.168.1.1 комп под виндой) и ral0 (192.168.1.2 ноут под виндой) соединенных в бридж. Как заставить их видеть друг друга (пинга нет) Помогите пожалуйста!
Ты сказал - я поверил, ты повторил - я засомневался, ты стал настаивать и я понял, что ты лжешь.
Либо помогай жить, либо умереть — нельзя все сразу ©

Аватара пользователя
UBRIUM
мл. сержант
Сообщения: 125
Зарегистрирован: 2009-11-16 4:05:34
Откуда: Ростов-на-Дону
Контактная информация:

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

Непрочитанное сообщение UBRIUM » 2010-01-17 15:59:27

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

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

##--Интерфейсы
inet_if="ng0"           ## VPN
ext_if="rl0"            ## BeeLine
int_if="rl1"            ## LAN

##--Сети и хосты
lan_net="{ 192.168.10/24 }"

icmp_types="{ echoreq, unreach}" ## разрешенные типы icmp сообщений.

##--Глобальные опции
set block-policy return   ## сбрасываем соединение вежливо
set skip on lo0         ## Пропуск проверки петли
set skip on $int_if     ## Пропуск проверки локальной сети
scrub in all            ## нормализуем все входящие пакеты на всех
                        ## интерфейсах.

##--Разрешаем локальным компам ходить через канал(ng0)
nat on $inet_if from $lan_net to any -> ($inet_if)

##--Правила фильтрации. Включает простейший антиспуфинг.
antispoof quick for $inet_if
antispoof quick for $ext_if

block all              ## запрет всего по-умолчанию

##--Разрешаем весь исходящий трафик с локальной машины в интернет
pass out on $inet_if from $inet_if to any keep state

##--Разрешаем весь трафик от нашей локальной сети в интернет
pass out on $inet_if from $lan_net to any keep state

## разрешаем icmp трафик установленных типов.
pass log inet proto icmp all icmp-type $icmp_types
Естественно если закомментировать block all, то интернет доступен из локалки.
У меня FreeBSD 8.0-RELEASE, что то в этой версии может отличается в работе pf?
FreeBSD 9.0-RELEASE amd64
CPU: AMD Athlon 64 X2 Dual Core Processor 4400+ (2294.95 K8-class CPU)
real memory = 4294967296 (4096 MB)
da0: 7660MB <JetFlash Transcend 8GB 8.07>
ad2: 114343MB <Seagate ST3120022A 8.01>

Va_
рядовой
Сообщения: 36
Зарегистрирован: 2008-10-07 14:44:36

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

Непрочитанное сообщение Va_ » 2010-02-16 11:06:33

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

Аватара пользователя
UBRIUM
мл. сержант
Сообщения: 125
Зарегистрирован: 2009-11-16 4:05:34
Откуда: Ростов-на-Дону
Контактная информация:

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

Непрочитанное сообщение UBRIUM » 2010-03-12 4:03:05

Va_ писал(а):Игорь, вижу что в конфиге нету правил pass in. Входящий трафик отбрасывается.
Спасибо, поправил! :)

Помогите с ситуёвиной справиться, ломаю свой моск, читал уже и тут http://www.openbsd.org/faq/pf/ru/index.html но что то не как не помогает вовсе. Но все же пиняю на мой моск!

Есть 3 интерфейса на машине с FreeBSD:
ng0 - pptp, внешка интернет
rl0 - локалка провайдера
rl2 - моя локалка

Ситуация сложилась скверная, надо пробросить порт от DC, программу юзаю FlyLinkDC, в локалку провайдера ибо он цепляется на внешку.
Так же есть трекер локальный провайдера, хотелось бы его тоже.
Дальше есть два сайта которые тоже хотелось бы открывать с локалки провайдера, а не с внешки!

pf ставил по статье с сайта.

Вообще все варианты испробовал, и даже которые немыслимые... что то не получается. Буду благодарен за помощь.
FreeBSD 9.0-RELEASE amd64
CPU: AMD Athlon 64 X2 Dual Core Processor 4400+ (2294.95 K8-class CPU)
real memory = 4294967296 (4096 MB)
da0: 7660MB <JetFlash Transcend 8GB 8.07>
ad2: 114343MB <Seagate ST3120022A 8.01>

Аватара пользователя
ban
мл. сержант
Сообщения: 145
Зарегистрирован: 2009-07-22 22:36:29
Откуда: г.Волжский Волг. обл.

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

Непрочитанное сообщение ban » 2010-03-15 14:23:28

Игорь писал(а):Ситуация сложилась скверная, надо пробросить порт от DC, программу юзаю FlyLinkDC, в локалку провайдера ибо он цепляется на внешку.
указывай во флайлинке адрес интерфейса rl0
вообще вот здесь глянь картинку работы DC, мож че прояснится....
Игорь писал(а):Дальше есть два сайта которые тоже хотелось бы открывать с локалки провайдера, а не с внешки!
может дело не в PF, а в DNS... у тебя кеширующий DNS сервер случайно для локалки не запущен? если нет и ты пользуешь DNSами из локалки, то у тебя сайты не должны открываться через pptp
кто никуда не торопится, тот везде успевает

Аватара пользователя
UBRIUM
мл. сержант
Сообщения: 125
Зарегистрирован: 2009-11-16 4:05:34
Откуда: Ростов-на-Дону
Контактная информация:

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

Непрочитанное сообщение UBRIUM » 2010-03-15 21:07:51

Я пользуюсь DNS провадера, свой днс давно не использую.
Указывал ip этого интыерфейса, не помогало. Вобщем немного перестроил сеть. Спасибо за картинку, покапаю.

В сети своей все компы в локалку провайдера подключил, но только указал шлюз своего сервера и им раздаю внешку только своим ip в локалке провайдера. А что бы работали ресурсы в локалке провайдера, прописал маршруты через его шлюз. Пока без проблем! :)

code_310
проходил мимо
Сообщения: 8
Зарегистрирован: 2009-12-07 13:21:17

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

Непрочитанное сообщение code_310 » 2010-03-16 13:16:02

Grishun_U_S , смотри ,

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

#!/bin/sh

pfctl -nf /usr/local/etc/pf-casual-rules.cfg
if test $? = 0; then
    pfctl -f /usr/local/etc/pf-casual-rules.cfg
    echo "rules reloaded"
else
    echo "there are some mistakes"
fi
это классный скрипт перезагрузки правил не вопрос, но я еще сбрасываю все таблицы состояний.
Допустим ты написал много правил , поработал с ними, уже в таблице состояний появились какие то записи .
Потом трафик который ты разрешил ты блокируешь,ты подгрузил новые правила а keep stat-ы остались.
Я ,чтобы избежать подобного еще делаю еще :

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

pfctl -F all 

Возможно я не прав, но пока меня никто не переубедил мне кажется что я прав.:)
P.S.: Статья классная,мне отч. понравилась.

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

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

Непрочитанное сообщение _FreeBSD » 2010-03-17 0:07:05

code_310 писал(а):...Потом трафик который ты разрешил ты блокируешь,ты подгрузил новые правила а keep stat-ы остались.
Я ,чтобы избежать подобного еще делаю еще :

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

pfctl -F all 

Возможно я не прав, но пока меня никто не переубедил мне кажется что я прав.:)
ты прав в своих условиях, но представь ситуацию, когда в якоря сторонними программами, загружено много строк правил.
Вот эта штука

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

pfctl -F all 
грохнет ВСЕ правила в якорях.
я бы не хотел такого...

code_310
проходил мимо
Сообщения: 8
Зарегистрирован: 2009-12-07 13:21:17

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

Непрочитанное сообщение code_310 » 2010-03-17 15:40:39

Согласен, о якорях не подумал .Остается сбрасывать отдельно.

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

-F nat	  #Сбросить правила nat
-F queue	  #Сбросить правила queue
-F rules	#Сбросить правила фильтрации
-F state	#Сбросить таблицу состояния (для nat и фильтрации)
-F Sources	  #Сбросить информацию о источниках пакетов 
-F info	#Сбросить статистическую информацию (не привязанную к правилам фильтрации)
-F Tables	#Сбросить содержимое всех таблиц
-F osfp	#Сбросить содержимое таблицы для пассивного детектирования операционной системы
-F all	        #Сбросить всё
Либо ваще не запариваться.

Аватара пользователя
Trojan
проходил мимо
Сообщения: 2
Зарегистрирован: 2010-05-24 10:27:25

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

Непрочитанное сообщение Trojan » 2010-05-24 10:36:06

Структура сети такая: subnet_1 (Контроллер Домена+DHCP) - FreeBSD - subnet_2.

Какие порты нужно разрешить в PF для пропуска DHCP и LDAP трафика из subnet_2 в subnet_1 и обратно?
Best, Trojan!

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

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

Непрочитанное сообщение BlackCat » 2010-05-24 10:50:51

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

$grep "bootp\|ldap" /etc/services

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

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

Непрочитанное сообщение Radist » 2010-10-10 19:08:45

а можете подсказать как сделать 2 NATA?

есть stge0 - выход в инет через adsl модем
есть fxp0 - локалка 10/8
есть:
re0 - локалка_1 192.168.50/24
dc0 - локалка_2 192.168.60/24

как сделать два NAT'a для локалки 10/8 и интернерта в re0 и dc0

p.s. или как можно сделать тоже самое на ipfw nat
у меня:

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

${fw} add 230 pipe 2 ip from 192.168.60/24 to any via fxp0
${fw} pipe 2 config bw 40000kbit/s

${fw} add 240 pipe 4 ip from 192.168.50./24 to any via fxp0
${fw} pipe 4 config bw 10000kbit/s

${fw} add 250 nat 1 ip from any to any via fxp0
${fw} nat 1 config ip 10.10.241.241
${fw} add 260 pipe 3 ip from any to 192.168.60/24 via fxp0
${fw} pipe 3 config bw 10000kbit/s

${fw} add 270 pipe 1 ip from any to 192.168.50/24 via fxp0
${fw} pipe 1 config bw 40000kbit/s
пытаюсь сделать тоже самое и для stge0
не выходит:(

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

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

Непрочитанное сообщение BlackCat » 2010-10-11 1:50:01

Radist писал(а):а можете подсказать как сделать 2 NATA?

есть stge0 - выход в инет через adsl модем
есть fxp0 - локалка 10/8
есть:
re0 - локалка_1 192.168.50/24
dc0 - локалка_2 192.168.60/24

как сделать два NAT'a для локалки 10/8 и интернерта в re0 и dc0
NAT ставиться на выходе интерфейса и количество сетей которые находятся за NAT'ом в большенстве случаев роли не играет.
Если нет каких-то особых условий и вам нужет NAT для выхода в интернет и в 10.0.0.0/8, то попробуйте вот такие правила:

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

nat on stge0 from !(stge0) -> (stge0)
nat on fxp0 from !(fxp0) -> (fxp0)

Аватара пользователя
QweЯty
лейтенант
Сообщения: 796
Зарегистрирован: 2010-10-12 0:15:15
Откуда: Таганрог, Калининград
Контактная информация:

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

Непрочитанное сообщение QweЯty » 2010-10-12 16:36:53

BlackCat писал(а):
Radist писал(а):а можете подсказать как сделать 2 NATA?

есть stge0 - выход в инет через adsl модем
есть fxp0 - локалка 10/8
есть:
re0 - локалка_1 192.168.50/24
dc0 - локалка_2 192.168.60/24

как сделать два NAT'a для локалки 10/8 и интернерта в re0 и dc0
NAT ставиться на выходе интерфейса и количество сетей которые находятся за NAT'ом в большенстве случаев роли не играет.
Если нет каких-то особых условий и вам нужет NAT для выхода в интернет и в 10.0.0.0/8, то попробуйте вот такие правила:

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

nat on stge0 from !(stge0) -> (stge0)
nat on fxp0 from !(fxp0) -> (fxp0)
а такой вопрос..
я смогу резать траф через ipfw pipe

вот такая конфигурация примерно будет:
NAT:

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

nat on stge0 from !(stge0) -> (stge0)
nat on fxp0 from !(fxp0) -> (fxp0)
а ipfw pipe тогда такой будет?:

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

${fw} add pipe 7 ip from 192.168.1.241 to 192.168.60/24
${fw} pipe 7 config bw 128kbit/s

${fw} add pipe8 ip from 192.168.50/24 to 192.168.1.241
${fw} pipe 8 config bw 128kbit/s
в инет смотрит карточка stge0 ip 192.168.1.241

в существующем вариенте с ipnat резать не получается:( трафик не попадает в ipfw из ipnat
Инженер не смотрит порно. Он ведет расчет бабы на усталость © Федор Сумкин
Изображение

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

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

Непрочитанное сообщение BlackCat » 2010-10-13 12:15:30

QweЯty, я в ipfw не разбираюсь.
=====
Зачем вам использовать один МСЭ для трансляции адресов, а второй для ограничения полосы? Не проще всё настроить на одном и не разводить зоопарк? Для ipfw есть статья на сайте по настройке NAT. Настройка ограничения трафика средствами pf уже обсуждалась на форуме (парой сообщений выше в этой теме).

Аватара пользователя
QweЯty
лейтенант
Сообщения: 796
Зарегистрирован: 2010-10-12 0:15:15
Откуда: Таганрог, Калининград
Контактная информация:

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

Непрочитанное сообщение QweЯty » 2010-10-13 13:46:27

я уже запутался...
1. некоторые советуют использовать pf для ната и рулить им же
2. некоторые для ната pf остальное ipfw
3. сделать на natd и ipfw? хоть и сами ругаются на то что это не выход из положения
4. сделать все на ipfw nat + dumminet (что частичноу меня и реализовано)
5. сделать на ipnat и не маяться с трубами, рано еще:) но надо очень...

кому 4м из 5ти надо по мягкому месту надавать за дизинформацию?

p.s. а про ipfw я пока еще читаю статью... уж очень она большая и непонятная в некоторых местах....
Инженер не смотрит порно. Он ведет расчет бабы на усталость © Федор Сумкин
Изображение

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

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

Непрочитанное сообщение BlackCat » 2010-10-13 13:57:41

QweЯty писал(а):кому 4м из 5ти надо по мягкому месту надавать за дизинформацию?
Всем. Если бы было единственно верное решение, остальные бы просто не использовались. Точно сформулируйте для себя цель, задачи и просто решите их.
Мой довод за пользование одного МСЭ: чем меньше элементов, тем ниже вероятность того, что выйдет из строя вся система. Но это не больше, чем моё скромное мнение.

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

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

Непрочитанное сообщение balamut » 2010-12-09 1:25:44

Здравствуйте, помогите решить вопрос
на внешнем интерфейсе($ext_if) инет
на внутреннем($int_if) две локалки 10.10.1.0 и 192.168.0.0 = $trusted_lan
у внутреннего интерфейса 2 ипишника 10.10.1.132 и 192.168.0.132
при правиле nat on $ext_if from $trusted_lan to any -> ($ext_if)
пинг с локалки 10.10 на 192.168 идет и наоборот если указывать ИПИШНИК
пинга нет если пинговать с сети 10.10 и указывать имя сервера который в сети 192.168 и наоборот
кароч над сделать так чтоб сеть 10.10 видела сеть 192.168 и наоборот без всяких ограничений
подскажите что нужно для этого сделать?

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

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

Непрочитанное сообщение BlackCat » 2010-12-09 21:34:50

balamut писал(а):пинг с локалки 10.10 на 192.168 идет и наоборот если указывать ИПИШНИК
Так и должно быть, если правильно настроена маршрутизация IP-пакетов.
balamut писал(а):пинга нет если пинговать с сети 10.10 и указывать имя сервера который в сети 192.168 и наоборот
Не разрешаются имена в адреса? Или после удачного и правильного разрешения имён ICMP-пакеты перестают ходить?
balamut писал(а):кароч над сделать так чтоб сеть 10.10 видела сеть 192.168 и наоборот без всяких ограничений
подскажите что нужно для этого сделать?
Объясните, что вы понимаете под словом "видела"? Самый простой вариант: если у вас сети разделены условно (нет физического разделения по коммутаторам или VLAN'ам), то перенести адреса всех узлов в одну подсеть.

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

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

Непрочитанное сообщение balamut » 2010-12-11 2:15:05

вот сейчас так происходит.
Не разрешаются имена в адреса?
я пытался писать какие то правила и при пинге имени сервера покзывался ипишник но не пинговался...
Или после удачного и правильного разрешения имён ICMP-пакеты перестают ходить?
какое правило дописать чтоб пинг шел на имена?