![]() |
Проброс портов Freebsd 9, mpd, pf
Ситуация такая:
Провайдер билайн, в качестве впн клиента (L2TP) использую mpd, собственно его же использую и в качестве ната на внешний интерфейс, а проброс портов возложил на pf. Проблема 1: (по сути не столь критичная, но если кто сталкивался, был бы не прочь услышать мнение): при использовании pf в качестве ната на внешний интерфейс (который создает mpd) постоянно дисконнектит инет, чуть ли не каждые 5 минут (хотя при использовании mpd всё работает и натится отлично). Проблема 2: Не работает проброс портов, который осуществляется pf, хотя если посмотреть в лог пакет фильтра, проброс происходит, но на тачку на которую осуществляется проброс ничего не приходит. На данный момент uname: $ uname -a FreeBSD serv 9.1-PRERELEASE FreeBSD 9.1-PRERELEASE #0: Sun Sep 23 16:02:34 NOVT 2012 adm@serv:/usr/obj/usr/src/sys/mykern120923 amd64 Те же проблемы испытывал и на stable ветке 9.0 rc.conf Код:
keymap="ru.koi8-r.win.kbd" Код:
########################### Код:
startup: |
актуально
|
Abadd0N, вам по идее нужен NAT на интерфейсе ng0, т.к. он и является инерфейсом, через который ваша система взаимодействует с внешним миром.
Правила NAT применяются в PF по первому совпадению (не так как правила фильтрации). Попробуйте привести свои правила трансляции к следующему виду: Код:
nat on $vpn_if from $int_if:network to !($ext_if:network) -> ($vpn_if) pass all - не есть хорошо, этим правилом вы разрешаете прохождение пакетов по всем возможным направлениям, включая доступ к внутренним ресурсам сети. |
artem_, по поводу ната - нат на внешний интерфейс осуществляется с помощью mpd
Цитата:
по поводу pass all - установлено на время тестирования. P.S. Есть идея, что mpd конфиктит с pf, вскоре попробую l2tpd в качестве vpn клиента |
не знаю почему покеты застревают внутри хоста (проборос портов во внутрь), но по поводу l2tp выяснил такую фишку, мне очень долго не удавалось поднять l2tp клиен на линуксах/BSD, проблема оказалась в самом протоколе, он должен видеть vpn сервер всё время, решается статическим маршрутом к сети провайдера, а так же исключением в правиле NAT внутри pf. Сам так делал и работало стабильно без всяких проблем. Моё провило для нат выглядило так
Код:
nat on $vpn_if from $lan to !$isp_net -> $vpn_if Код:
nat on $ext_if from $lan to $isp_net -> $ext_if Никакого нат в mpd я не использую, связка такая же FreeBSD90 +mpd5 + pf (w NAT) работает по сей день (правда по техническим причинам я сейчас на ADSL, но vpn клиен тот-же mpd5) Мой mpd5.conf: Код:
isp_l2tp: В моём случае все пробросы работали и работают по сей день без всяких проблем... Надеюсь это немного поможет (хотя много времени прошло, может уже не актуально) PS я тут видел в некоторых манулах от pf: redirect указывают раньше правил NAT, не знаю если это может иметь значение, но попробуйте поменять (хотя наверное глупость) и кстати я в редайректах указывал ещё и адрес на который приходит запрос Код:
rdr on $vpn_if proto { tcp udp } from any to $wan_ip port { 6881:6889 } -> $nas |
Всем спасибо, проблему таки решил, а была она в какомто косяке netgraph, убрал его из ядра, перекомпилил, теперь всё ок и пф норм работает и не дисконнектит и порты пробрасывает.
В ядре было: Код:
# ================== Enable NETGRAPH ======================= |
Время: 18:49. |
Время: 18:49.
© OSzone.net 2001-