Pf anchor управление pfctl - не срабатывает

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

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

Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Dmitriy_3206
проходил мимо

Pf anchor управление pfctl - не срабатывает

Непрочитанное сообщение Dmitriy_3206 » 2013-07-10 16:32:27

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

uname -a
FreeBSD my-gw 9.1-RELEASE FreeBSD 9.1-RELEASE #0 r243826: Tue Dec  4 06:55:39 UTC 2012     root@obrian.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC  i386
В конфиг /etc/pf.conf после nat добавил:

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

anchor rdr_tun
load anchor rdr_tun from "/usr/local/etc/pf/anchor-rdr-tun"
При старте в файле /usr/local/etc/pf/anchor-rdr-tun ничего нет
Потом при поднятии интерфейса в /usr/local/etc/pf/anchor-rdr-tun добавляется строка

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

[b]cat /usr/local/etc/pf/anchor-rdr-tun [/b]
rdr pass on tun0 proto tcp from <trust_net> to 10.20.25.1 port = rdp -> 192.168.2.100
и выполняется команда:
/sbin/pfctl -a rdr_tun -f /usr/local/etc/pf/anchor-rdr-tun
потом проверяю:
/sbin/pfctl -s all | less


и никаких правил RDR там нет - ну и не работает rdr

Пробовал в pf.conf якорь объявлять через старый ситнтаксис
rdr-anchor rdr_tun
Последний раз редактировалось f_andrey 2013-07-10 16:39:46, всего редактировалось 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/

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

Re: Pf anchor управление pfctl - не срабатывает

Непрочитанное сообщение skeletor » 2013-07-11 12:45:47

потому что надо так:

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

pfctl -a rdr_tun -sn
- что бы посмотреть правила rdr+nat.
но если хотите All, то аналогично

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

pfctl -a rdr_tun -s all
"Винда съела дрова и резет здесь не фурычит."
"Все говорят, что у меня /dev/hands криво и я всё делаю через /dev/ass. А у меня этих фалов вообще нет!"

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

Re: Pf anchor управление pfctl - не срабатывает

Непрочитанное сообщение Dmitriy_3206 » 2013-07-11 17:39:54

Ну даже если бы я не правильно смотрел - то они хотя бы работали
Ну в общем без изменений

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

Re: Pf anchor управление pfctl - не срабатывает

Непрочитанное сообщение skeletor » 2013-07-12 13:05:34

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

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

Re: Pf anchor управление pfctl - не срабатывает

Непрочитанное сообщение Dmitriy_3206 » 2013-07-12 20:58:55

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

olga89kk
проходил мимо
Сообщения: 1
Зарегистрирован: 2013-07-13 14:50:00

Re: Pf anchor управление pfctl - не срабатывает

Непрочитанное сообщение olga89kk » 2013-07-13 14:51:46

Да проблема в правилах RDR, так что в эту сторону копайте. Без доступа к OS сложно что-то более конкретное говорить.

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

Re: Pf anchor управление pfctl - не срабатывает

Непрочитанное сообщение Dmitriy_3206 » 2013-07-14 11:14:43

Я повторюсь:
Если я собираю динамически правило RDR и вставляю в pf.conf после чего выполняю pfctl -f pf.conf, то все работает.
Скрипт на поднятие интерфейса VPN:
в качестве первого параметра передается имя интерфейса
<trust_net> таблица сетей

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

#!/bin/sh

cat /home/pf.conf_head > /home/pf.conf.target
echo "rdr pass on $1 proto tcp from <trust_net> to $4 port = rdp -> 192.168.2.100" >> /home/pf.conf.target
cat /home/pf.conf_podval >> /home/pf.conf.target

/sbin/pfctl -f /home/pf.conf.target
В случае если я использую якорь и пытаюсь перегрузить только якорь то ничего у меня не происходит - всё без ошибок

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

echo "rdr pass on $1 proto tcp from <trust_net> to $4 port = rdp -> 192.168.244.100" >> /usr/local/etc/pf/anchor-rdr-tun
/sbin/pfctl -a int_tun -f /usr/local/etc/pf/anchor-rdr-tun
Более того если я заполню якорь заранее то даже при pfctl -f pf.conf у меня не добавляются правила RDR

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

Re: Pf anchor управление pfctl - не срабатывает

Непрочитанное сообщение Dmitriy_3206 » 2013-07-14 11:16:34

ну вот не исправил ip 192.168.244 на 192.168.2 в форум и "раскрыл" какими подсетями я пользуюсь :)

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

Re: Pf anchor управление pfctl - не срабатывает

Непрочитанное сообщение Dmitriy_3206 » 2013-07-14 14:12:16

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

pfctl -a  int_tun -s all
Отображает мои RDR - похоже надо сюда же перенести правила фильтрации на tun интерфейсах

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

Re: Pf anchor управление pfctl - не срабатывает

Непрочитанное сообщение Dmitriy_3206 » 2013-07-14 15:27:40

В общем ничего не ясно

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

/etc#pfctl -a int_tun_filtr -sr
pass in quick on tun1 all flags S/SA keep state
pass out quick on tun1 all flags S/SA keep state
При этом ping по тунелю не проходит

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

ping: sendto: Operation not permitted
Не фига мне не понятно.....

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

Re: Pf anchor управление pfctl - не срабатывает

Непрочитанное сообщение Dmitriy_3206 » 2013-07-14 15:30:06

Есть хоть у кого нибудь удачный/работающий опыт работы с якорями?

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

Re: Pf anchor управление pfctl - не срабатывает

Непрочитанное сообщение skeletor » 2013-07-15 16:08:14

У меня. Я работал я якорями, как напрямую, так и через authpf - и никаких проблем нет.
Ещё раз прочёл ваши сообщения и есть несколько моментов:
1) что это за строка (откуда синтаксис такой)?

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

load anchor rdr_tun from "/usr/local/etc/pf/anchor-rdr-tun"
?
2) rdr правила должны добавляться как правила nat'a, а именно:
nat-anchor rdr_tun (в pf.conf), а не anchor rdr_tun (как у вас написано)
собственно правило якоря в - anchor-rdr-tun.conf
"Винда съела дрова и резет здесь не фурычит."
"Все говорят, что у меня /dev/hands криво и я всё делаю через /dev/ass. А у меня этих фалов вообще нет!"

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

Re: Pf anchor управление pfctl - не срабатывает

Непрочитанное сообщение Dmitriy_3206 » 2013-07-16 1:42:47

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

load anchor rdr_tun from "/usr/local/etc/pf/anchor-rdr-tun"
источник http://www.openbsd.org/faq/pf/anchors.html
смысл загружаются правила сразу при загрузке основных правил

Сделал ради интереса вместо rdr-anchors значение nat-anchors - визуально не изменилось:

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

pfctl -sn
nat on age0 inet from <all_hosts> to any -> (age0) port 1024:65535 round-robin
nat-anchor "int_tun_rdr/*" all

pfctl -a int_tun_rdr -sn
rdr pass on tun1 inet proto tcp from <trust_net> to 10.20.24.17 port = rdp -> 192.168.2.100


pfctl -a int_tun_filtr -sr
pass in quick on tun1 all flags S/SA keep state
pass out quick on tun1 all flags S/SA keep state
Т.е. выглядит что RDR есть
И правило фильтрации есть

При попытки подключении по RDP

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

pfctl -sa | grep 3389
all tcp 10.20.24.17:3389 <- 10.20.24.1:60621       TIME_WAIT:TIME_WAIT
all tcp 10.20.24.17:3389 <- 10.20.24.1:51481       TIME_WAIT:TIME_WAIT
all tcp 10.20.24.17:3389 <- 10.20.24.1:59094       TIME_WAIT:TIME_WAIT

tcpdump -nettt -i tun1 | grep 17.3389
00:00:00.507945 AF IPv4 (2), length 52: 10.20.24.1.59094 > 10.20.24.17.3389: Flags [S], seq 2009236445, win 8192, options [mss 
Т.е. выглядит пакет на tun1 приходит, а вот в таблице состояний нет упоминания про rdr
При нормальном RDR таблица состояний выглядит так
all tcp 192.168.2.100:3389 (10.20.24.17:3389) <- 10.20.24.1:52352 TIME_WAIT:TIME_WAIT
all tcp 10.20.24.1:52352 -> 192.168.2.100:3389 TIME_WAIT:TIME_WAIT
all tcp 192.168.2.100:3389 (10.20.24.17:3389) <- 10.20.24.1:54604 ESTABLISHED:ESTABLISHED
all tcp 10.20.24.1:54604 -> 192.168.2.100:3389 ESTABLISHED:ESTABLISHED

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

Re: Pf anchor управление pfctl - не срабатывает

Непрочитанное сообщение skeletor » 2013-07-16 13:59:47

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

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

Re: Pf anchor управление pfctl - не срабатывает

Непрочитанное сообщение Dmitriy_3206 » 2013-07-16 16:38:33

Дело в том что при прописывании не посредственно в "главном" конфиге все получается. Собственно циитата в пред сообщении и есть тот вариант когда статически в конфиг вписаны правила. Но правила при старте системы когда тунели еще не "поднялись". Т.е. при статических правилах я передергиваю вручную, либо переосбираю конфиг цликом и перечитываю его целиком.

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

Re: Pf anchor управление pfctl - не срабатывает

Непрочитанное сообщение skeletor » 2013-07-16 16:56:48

Я не могу понять, почему не использовать якоря так, как они описаны в доке? Зачем эти извраты с load anchor rdr_tun from?
В главном файле pf.conf описать
...

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

nat-anchor rdr_tun
...
а потом подгружать скриптом, налету прямо в якорь:

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

$pf -a $anchor -D ext_if_2=$ext_if_2 -D gw_2=$gw_2 -f $pf_config
"Винда съела дрова и резет здесь не фурычит."
"Все говорят, что у меня /dev/hands криво и я всё делаю через /dev/ass. А у меня этих фалов вообще нет!"

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

Re: Pf anchor управление pfctl - не срабатывает

Непрочитанное сообщение Dmitriy_3206 » 2013-07-16 18:10:51

Использование load описанно именно в официальной доке и позволяет загрузить существующий якорь
А с помощью команды pfctl -a name_anchor -f file_name согласно документации перегрузить якорь налету. Синтаксиса что вы указали я нигде не встречал

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

Re: Pf anchor управление pfctl - не срабатывает

Непрочитанное сообщение skeletor » 2013-07-17 15:19:35

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

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

Re: Pf anchor управление pfctl - не срабатывает

Непрочитанное сообщение Dmitriy_3206 » 2013-07-18 0:21:38

Уважаемый скелетор - я перепробовал и с лоад и без - и все что я опробовал я описал выше. ВЫ даже не сильно вчитываясь начинаете заявлять что я хочу только так и не иначе.... Я пытаюсь что бы работало 0 пока единственный способ у меня сборка правил и перезагрузка целиком. Через я коря у меня везде все рисует что в порядке, а по факту пшик. Что показывает tcpdump я тоже привёл