Страница 1 из 1
Pf anchor управление pfctl - не срабатывает
Добавлено: 2013-07-10 16:32:27
Dmitriy_3206
Код: Выделить всё
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
Re: Pf anchor управление pfctl - не срабатывает
Добавлено: 2013-07-11 12:45:47
skeletor
потому что надо так:
- что бы посмотреть правила rdr+nat.
но если хотите All, то аналогично
Re: Pf anchor управление pfctl - не срабатывает
Добавлено: 2013-07-11 17:39:54
Dmitriy_3206
Ну даже если бы я не правильно смотрел - то они хотя бы работали
Ну в общем без изменений
Re: Pf anchor управление pfctl - не срабатывает
Добавлено: 2013-07-12 13:05:34
skeletor
Не факт, что они у вас вообще правильно составлены.
Re: Pf anchor управление pfctl - не срабатывает
Добавлено: 2013-07-12 20:58:55
Dmitriy_3206
Правила проходят тестирование
Правила собирающиеся динамически и вставляемые в главный файл, плюс перезапуск всего проходит нормально. Но хочется реализовать якорем что бы не передергивать PF целиком. Не в правилах дело а в управлении. Скорее всего я что то не понимаю, или в новой версии что то поменялось
Re: Pf anchor управление pfctl - не срабатывает
Добавлено: 2013-07-13 14:51:46
olga89kk
Да проблема в правилах RDR, так что в эту сторону копайте. Без доступа к OS сложно что-то более конкретное говорить.
Re: Pf anchor управление pfctl - не срабатывает
Добавлено: 2013-07-14 11:14:43
Dmitriy_3206
Я повторюсь:
Если я собираю динамически правило 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
Re: Pf anchor управление pfctl - не срабатывает
Добавлено: 2013-07-14 11:16:34
Dmitriy_3206
ну вот не исправил ip 192.168.244 на 192.168.2 в форум и "раскрыл" какими подсетями я пользуюсь

Re: Pf anchor управление pfctl - не срабатывает
Добавлено: 2013-07-14 14:12:16
Dmitriy_3206
Отображает мои RDR - похоже надо сюда же перенести правила фильтрации на tun интерфейсах
Re: Pf anchor управление pfctl - не срабатывает
Добавлено: 2013-07-14 15:27:40
Dmitriy_3206
В общем ничего не ясно
Код: Выделить всё
/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 по тунелю не проходит
Не фига мне не понятно.....
Re: Pf anchor управление pfctl - не срабатывает
Добавлено: 2013-07-14 15:30:06
Dmitriy_3206
Есть хоть у кого нибудь удачный/работающий опыт работы с якорями?
Re: Pf anchor управление pfctl - не срабатывает
Добавлено: 2013-07-15 16:08:14
skeletor
У меня. Я работал я якорями, как напрямую, так и через 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
Re: Pf anchor управление pfctl - не срабатывает
Добавлено: 2013-07-16 1:42:47
Dmitriy_3206
Код: Выделить всё
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
Re: Pf anchor управление pfctl - не срабатывает
Добавлено: 2013-07-16 13:59:47
skeletor
Может дело в маршрутизации? Или шлюз на хосте не прописан?
Re: Pf anchor управление pfctl - не срабатывает
Добавлено: 2013-07-16 16:38:33
Dmitriy_3206
Дело в том что при прописывании не посредственно в "главном" конфиге все получается. Собственно циитата в пред сообщении и есть тот вариант когда статически в конфиг вписаны правила. Но правила при старте системы когда тунели еще не "поднялись". Т.е. при статических правилах я передергиваю вручную, либо переосбираю конфиг цликом и перечитываю его целиком.
Re: Pf anchor управление pfctl - не срабатывает
Добавлено: 2013-07-16 16:56:48
skeletor
Я не могу понять, почему не использовать якоря так, как они описаны в доке? Зачем эти извраты с load anchor rdr_tun from?
В главном файле pf.conf описать
...
...
а потом подгружать скриптом, налету прямо в якорь:
Код: Выделить всё
$pf -a $anchor -D ext_if_2=$ext_if_2 -D gw_2=$gw_2 -f $pf_config
Re: Pf anchor управление pfctl - не срабатывает
Добавлено: 2013-07-16 18:10:51
Dmitriy_3206
Использование load описанно именно в официальной доке и позволяет загрузить существующий якорь
А с помощью команды pfctl -a name_anchor -f file_name согласно документации перегрузить якорь налету. Синтаксиса что вы указали я нигде не встречал
Re: Pf anchor управление pfctl - не срабатывает
Добавлено: 2013-07-17 15:19:35
skeletor
Упрямо хотите своим load... подгружать якоря и ждёте, что вам подскажут какой-то ключик? tcpdump вам в помощь.
Re: Pf anchor управление pfctl - не срабатывает
Добавлено: 2013-07-18 0:21:38
Dmitriy_3206
Уважаемый скелетор - я перепробовал и с лоад и без - и все что я опробовал я описал выше. ВЫ даже не сильно вчитываясь начинаете заявлять что я хочу только так и не иначе.... Я пытаюсь что бы работало 0 пока единственный способ у меня сборка правил и перезагрузка целиком. Через я коря у меня везде все рисует что в порядке, а по факту пшик. Что показывает tcpdump я тоже привёл