Знатоки PF подскажите...

Проблемы установки, настройки и работы Правильной Операционной Системы

Модератор: terminus

Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Аватара пользователя
24rus
мл. сержант
Сообщения: 75
Зарегистрирован: 2008-09-27 16:04:59
Откуда: Красноярск
Контактная информация:

Знатоки PF подскажите...

Непрочитанное сообщение 24rus » 2009-01-12 8:22:00

Есть: шлюз (фри7), сервер2008 терминалов. К шлюзу подключен инет (статический), есть подключение по vpnc с другим фииалом(1)..
Проблема: Сделан проброс RDP для подключения юзеров из дома и второго филиала(2), вот этот проброс периодически теряется..., то есть с утра работает, все подключаются, в обед проброс падает, комментируем # Block all все опять работает, вечером (все домой ушли), отключаю tun0, перестартую /etc/netstart , включаю block all, и все работает..., до обеда следующего дня....

вот конфиг pf
# MACROS ----------------------------------------------
int_if="sk0"
ext_if="re0"
ext_if_vpn="tun0"
lan_net="192.168.0.0/24"
server="192.168.0.5"
icmp_types="{ echoreq, unreach }"
non_route_nets_inet="{ 127.0.0.0/8, 192.168.0.0/16, 172.16.0.0/12, 10.0.0.0/8, / 169.254.0.0/16, 192.0.2.0/24, 0.0.0.0/8, 240.0.0.0/4 }"

# TABLES -----------------------------------------------
table <BRUTEFORCERS> persist

# SET -------------------------------------------------
set block-policy return
set skip on Lo0
set loginterface $ext_if
set fingerprints "/etc/pf.os"
set limit { states 20000, frags 20000, src-nodes 2000 }
set timeout { frag 10, tcp.established 4800 }
scrub on $ext_if all random-id reassemble tcp fragment reassemble
scrub on $int_if all reassemble tcp

# NAT --------------------------------------------------
nat on $ext_if from $int_if:network to any -> ($ext_if)
nat on $ext_if_vpn from $int_if:network to any -> ($ext_if_vpn)
rdr on $ext_if proto tcp from any to any port rdp -> $server

# BLOCK & PASS ----------------------------------------
block all
block return
block log quick inet6 all
antispoof log quick for { $ext_if, $int_if }
block drop in log quick on $ext_if from $non_route_nets_inet to any
block drop in log quick on $int_if from !$int_if:network to any
block drop in log quick on { $int_if, $ext_if } proto tcp from any to any port smtp
block drop log quick from <BRUTEFORCERS>
pass out all keep state
pass in on $int_if proto tcp from $int_if:network to $int_if port ssh synproxy state /
( max-src-conn-rate 5/300, overload <BRUTEFORCERS> flush global )
pass in on $ext_if proto tcp from any to $ext_if port ssh synproxy state /
( max-src-conn-rate 5/300, overload <BRUTEFORCERS> flush global )

pass quick on tun0 all modulate state flags S/SA
pass out on $ext_if proto tcp all modulate state flags S/SA
pass out on $ext_if proto { udp, icmp } all keep state
pass in on $int_if inet proto udp from $int_if:network to $int_if port 53 keep state
pass in inet proto icmp all icmp-type $icmp_types keep state

pass out on $int_if from any to $lan_net
pass in on $int_if from $lan_net to any
Show must go on !

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

paradox
проходил мимо
Сообщения: 11620
Зарегистрирован: 2008-02-21 18:15:41

Re: Знатоки PF подскажите...

Непрочитанное сообщение paradox » 2009-01-17 12:29:30

выключайте сервер
что бы он отсыпался ночью
а днём работал

kirgudu
сержант
Сообщения: 185
Зарегистрирован: 2009-01-16 23:14:00

Re: Знатоки PF подскажите...

Непрочитанное сообщение kirgudu » 2009-01-17 18:51:11

Была проблема. Т.к. tun0 переодически пропадает у pf крыша едет. Некоторое время назад в freebsd-pf активно дискутировали на эту тему. Рекомендую обновться до последней версии Free, если не поможет - используйте IP адреса, а не интерфейс в правилах фаервола.

Мне помогло последнее.

Использование PF должно быть очень выборочным и аргументированым, т.к. он медленнее ipfw и у него есть некоторые неприятные особенности. В штатных случаях ipfw хватает за глаза, тем более у него сейчас есть и kernel nat.

По возможности избегайте quick - дурной тон, если так же не аргуметировано. Поставте логгирование на каждое block правило и затем tcpdump'ом смотрите по какой причине пакет попал в даун.
Последний раз редактировалось kirgudu 2009-01-17 19:01:21, всего редактировалось 1 раз.

paradox
проходил мимо
Сообщения: 11620
Зарегистрирован: 2008-02-21 18:15:41

Re: Знатоки PF подскажите...

Непрочитанное сообщение paradox » 2009-01-17 19:01:05

проще было уйти от tun

kirgudu
сержант
Сообщения: 185
Зарегистрирован: 2009-01-16 23:14:00

Re: Знатоки PF подскажите...

Непрочитанное сообщение kirgudu » 2009-01-17 19:02:43

paradox писал(а):проще было уйти от tun
Согласен, tun для pptp уже не годится. Только разницы нет. Будет ng и что? Они так же динамически созаются mpd и такие же проблемы останутся.

NecAway
проходил мимо
Сообщения: 7
Зарегистрирован: 2008-11-25 20:40:30

Re: Знатоки PF подскажите...

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

Решил похожую проблему прописыванием скриптов в mdp.
Выглядело это так:
Есть 2 конфига для pf. Первый с правилами по умочанию (без интерфейсов ng или tun), второй с правилами. Как только туннель поднимался применялся второй конфиг, если туннель рвался или ещё не был поднят - то первый...

Вариант вполне рабочий, но если собирается статистика через pf всё становиться сложнее...

paradox
проходил мимо
Сообщения: 11620
Зарегистрирован: 2008-02-21 18:15:41

Re: Знатоки PF подскажите...

Непрочитанное сообщение paradox » 2009-01-18 13:11:51

читать мануалы в pf нужно
есть такая штука вот ее нужно ко всем местам где используеться динамический интерфейс

kirgudu
сержант
Сообщения: 185
Зарегистрирован: 2009-01-16 23:14:00

Re: Знатоки PF подскажите...

Непрочитанное сообщение kirgudu » 2009-01-18 15:58:22

paradox писал(а):читать мануалы в pf нужно
есть такая штука вот ее нужно ко всем местам где используеться динамический интерфейс
Читай не читай, практика показывает, оно работает не ахти.

paradox
проходил мимо
Сообщения: 11620
Зарегистрирован: 2008-02-21 18:15:41

Re: Знатоки PF подскажите...

Непрочитанное сообщение paradox » 2009-01-18 16:04:23

я вашего конфига не видел
а в конфигах топика это видно
что не юзаеться

NecAway
проходил мимо
Сообщения: 7
Зарегистрирован: 2008-11-25 20:40:30

Re: Знатоки PF подскажите...

Непрочитанное сообщение NecAway » 2009-01-19 4:05:31

Скобки, конечное, удобная штука... но они бесполезны, если интерфейс, к которому они применяются - отсутствует в системе. А вот, если он был и правила со скобками были применены, а после он исчез(у меня это был модем от skylink, интерфейс ng и usb устройство) так система могла и в корку упасть...

P.S. углядел такую штуку
24rus писал(а): int_if="sk0"
Если это сетевуха D-Link DGE-530T срочно на замену! лучше на интел(соотношение цена/качество)... я таких интересных глюков с ними нагляделся...

Аватара пользователя
24rus
мл. сержант
Сообщения: 75
Зарегистрирован: 2008-09-27 16:04:59
Откуда: Красноярск
Контактная информация:

Re: Знатоки PF подскажите...

Непрочитанное сообщение 24rus » 2009-01-19 13:18:35

В общем так, наполовину проблему решил...
1) Пересборка ядра...
2) замена D-link на 3СОМ...
3) переписал немного конфиг PF.

На данный момент имею, такую проблему:
1) Если в конфиге PF разкоментить block return то тунель вообще не поднимаеться..., если block return закоментировать, то все работает...
2) ssh работает только внутри сети..., из-вне пробывал подключиться из разных мест..., бесполезно в "putty" только черный экран, хотя по
( Telnet xx.xx.xx.xx 22 ) подключается, интересно что с VDS (там сайт, наш висит) заходит по ssh...

Юзаем: FreeBSD 7.0, тунель поднимаеться "vpnc".



# MACROS ----------------------------------------------
int_if="re0"
ext_if="xl0"
ext_if_vpn="tun0"
lan_net="192.168.0.0/24"
server="192.168.0.5"
icmp_types="{ echoreq, unreach }"
non_route_nets_inet="{ 127.0.0.0/8, 192.168.0.0/16, 172.16.0.0/12, 10.0.0.0/8, \
169.254.0.0/16, 192.0.2.0/24, 0.0.0.0/8, 240.0.0.0/4 }"

# TABLES -----------------------------------------------
table <BRUTE> persist

# SET -------------------------------------------------
set block-policy drop
set skip on lo0
set loginterface $ext_if
set timeout { frag 10, tcp.established 4800 }
set fingerprints "/etc/pf.os"
scrub on $ext_if all random-id reassemble tcp fragment reassemble
scrub on $int_if all reassemble tcp

# NAT --------------------------------------------------
no rdr on $ext_if from <BRUTE>
rdr on $ext_if proto tcp from any to any port rdp -> $server port rdp
no nat on $ext_if from <BRUTE> to any
nat on $ext_if from $int_if:network to any -> $ext_if
nat on $ext_if_vpn from $int_if:network to any -> ($ext_if_vpn)

# BLOCK ---------------------------------------------------

#block return
block inet6 all
antispoof quick for { $ext_if, $int_if }
block drop in log quick on $ext_if from $non_route_nets_inet to any
block drop in log quick on $int_if from !$int_if:network to any
block drop in log quick from any os nmap to any
block drop in log quick on $ext_if inet proto tcp from any to any flags /SFRA
block drop in log quick on $ext_if inet proto tcp from any to any flags FUP/FUP
block drop log quick from <BRUTE>

# PASS --------------------------------------------------------
pass in on $ext_if proto tcp from any to $ext_if port ssh synproxy state \
(max-src-conn 3,max-src-conn-rate 5/3, overload <BRUTE> flush global )
pass in on $ext_if proto tcp from any to $ext_if port rdp flags S/SA keep state \
(max-src-conn 3, max-src-conn-rate 5/3, overload <BRUTE> flush global)
pass in on $ext_if proto { tcp, udp } from any to $ext_if port 53 flags S/SA keep state \
(max-src-conn 7, max-src-conn-rate 7/3, overload <BRUTE> flush global)
pass in on $ext_if proto { tcp, udp } from any to $ext_if port 25 flags S/SA keep state \
(max-src-conn 7, max-src-conn-rate 7/3, overload <BRUTE> flush global)

pass quick on tun0 all modulate state flags S/SA

pass out on { $ext_if, $int_if } proto { tcp, udp, icmp } all modulate state flags S/SA
pass in inet proto icmp all icmp-type $icmp_types keep state

# LAN in SERVER in LAN ---------------------------------------
pass out on $int_if from any to $lan_net
pass in on $int_if from $lan_net to any
Show must go on !

kirgudu
сержант
Сообщения: 185
Зарегистрирован: 2009-01-16 23:14:00

Re: Знатоки PF подскажите...

Непрочитанное сообщение kirgudu » 2009-01-19 13:51:20

На другой стороне Cisco 3000 vpn? если нет, тогда выкитываем vpnc и tun в топку.

На какой интерфейс должен ssh коннектится?

Аватара пользователя
freeman
лейтенант
Сообщения: 734
Зарегистрирован: 2007-03-18 5:13:25

Re: Знатоки PF подскажите...

Непрочитанное сообщение freeman » 2009-01-19 17:12:18

kirgudu писал(а):Использование PF должно быть очень выборочным и аргументированым, т.к. он медленнее ipfw и у него есть некоторые неприятные особенности. В штатных случаях ipfw хватает за глаза, тем более у него сейчас есть и kernel nat.
Можно узнать откуда такое отношение к PF ? Всегда читал что он лучше во всём, кроме того, чего у него нет (или вернее уже не которого не было - работу с MAC).
Сам юзаю именно pf и pptp и всё Ок.
Про проблемы с ipfw читал не менее, чем на PF, тем более это было когда он только появился в ядре.
Остатся должен только один ...

kirgudu
сержант
Сообщения: 185
Зарегистрирован: 2009-01-16 23:14:00

Re: Знатоки PF подскажите...

Непрочитанное сообщение kirgudu » 2009-01-19 17:15:11

freeman писал(а):
kirgudu писал(а):Использование PF должно быть очень выборочным и аргументированым, т.к. он медленнее ipfw и у него есть некоторые неприятные особенности. В штатных случаях ipfw хватает за глаза, тем более у него сейчас есть и kernel nat.
Можно узнать откуда такое отношение к PF ? Всегда читал что он лучше во всём, кроме того, чего у него нет (или вернее уже не которого не было - работу с MAC).
Сам юзаю именно pf и pptp и всё Ок.
Про проблемы с ipfw читал не менее, чем на PF, тем более это было когда он только появился в ядре.
Из личного опыта. А ну ка скормите ng_netflow все пакеты от ip 111.111.111.111 при помощи pf? Или зашейпите 1000 юзеров и кажому дайте 128k? В добавок ведет себя не адекватно при пропадании интерфейся, аля tun, ng, gre и появлении заново. Не так давно был kernel panic от этого, пофиксили только в августе.

По всем тестам он медленнее ipfw, а тем более iptables (сейчас меня сожгут как еретика. ;))

Вот например, при редиректе около 200 тысяч пакетов в секунду и нате в обратную сторону - фря уходит в кернель паник... Сам юзаю pf только на машинах, где это аргументировано: мегагиморойный шлюз (ipfw kernel net еще не было), или хитрое распределение нагрузки.

Аватара пользователя
freeman
лейтенант
Сообщения: 734
Зарегистрирован: 2007-03-18 5:13:25

Re: Знатоки PF подскажите...

Непрочитанное сообщение freeman » 2009-01-19 17:25:11

kirgudu писал(а):В добавок по всем тестам он медленнее ipfw, а тем более iptables (сейчас меня сожгут как еретика. ;))
Про медленее можно тесты ?
А про 1000 юзеров с нарезкой скорости при неизвестном и постоянно меняющемся числе юзеров и т.п. давно уже обсасывалось, не работа это для PF. Тут ШЕЙПЕР нужен и кто с ним хорошо дружит, тот же Dumminet.
Остатся должен только один ...

paradox
проходил мимо
Сообщения: 11620
Зарегистрирован: 2008-02-21 18:15:41

Re: Знатоки PF подскажите...

Непрочитанное сообщение paradox » 2009-01-19 17:28:01

Вот например, при редиректе около 200 тысяч пакетов в секунду и нате в обратную сторону - фря уходит в кернель паник... Сам юзаю pf только на машинах,
а нет бы баг репорт написать ага?

kirgudu
сержант
Сообщения: 185
Зарегистрирован: 2009-01-16 23:14:00

Re: Знатоки PF подскажите...

Непрочитанное сообщение kirgudu » 2009-01-19 17:36:54

freeman писал(а):
kirgudu писал(а):В добавок по всем тестам он медленнее ipfw, а тем более iptables (сейчас меня сожгут как еретика. ;))
Про медленее можно тесты ?
А про 1000 юзеров с нарезкой скорости при неизвестном и постоянно меняющемся числе юзеров и т.п. давно уже обсасывалось, не работа это для PF. Тут ШЕЙПЕР нужен и кто с ним хорошо дружит, тот же Dumminet.
Найти не могу, летом на гугле было по запросу примерно pf ifpw iptables gate performance

kirgudu
сержант
Сообщения: 185
Зарегистрирован: 2009-01-16 23:14:00

Re: Знатоки PF подскажите...

Непрочитанное сообщение kirgudu » 2009-01-19 17:37:48

paradox писал(а):
Вот например, при редиректе около 200 тысяч пакетов в секунду и нате в обратную сторону - фря уходит в кернель паник... Сам юзаю pf только на машинах,
а нет бы баг репорт написать ага?
Вот вы прикрутили к user-ppp mppe во FreeBSD-7? и где оно в системе?

paradox
проходил мимо
Сообщения: 11620
Зарегистрирован: 2008-02-21 18:15:41

Re: Знатоки PF подскажите...

Непрочитанное сообщение paradox » 2009-01-19 17:42:53

а он там без надобности в pppd+if_ppp
а патчи и прочие лежат для общего доступа на сайте
к томуже есть станное поведение в учете in/out байт при pppd+pptp
и когда я его сделал уже активно поднимался mpd
и я полностью перешел на него

pppd можно юзать токо с диалап пулами на реальных ком модемах
щас это неактуально

поэтому итого
pppd+mppe неактуально ну никак
оно нужно токо под линухом
в других бсд ака нетбсд в которых нет mpd

Аватара пользователя
24rus
мл. сержант
Сообщения: 75
Зарегистрирован: 2008-09-27 16:04:59
Откуда: Красноярск
Контактная информация:

Re: Знатоки PF подскажите...

Непрочитанное сообщение 24rus » 2009-01-20 9:13:05

На другой стороне Cisco 3000 vpn? если нет, тогда выкитываем vpnc и tun в топку.
На какой интерфейс должен ssh коннектится?
На другой стороне Cisco asa 5510..., а чем можно в таком случае заменить vpnc ?
Да, если в конфиге "vpnc" прописать "Interface mode tap", то фришка ругаеться "can't initialise tunnel interface: No such file or directory"

C "SSH" разобрался сам...
Show must go on !