|
Компьютерный форум OSzone.net » Linux и FreeBSD » Общий по FreeBSD » FreeBSD - Проброс портов Freebsd 9, mpd, pf |
|
FreeBSD - Проброс портов Freebsd 9, mpd, pf
|
Новый участник Сообщения: 19 |
Ситуация такая:
Провайдер билайн, в качестве впн клиента (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" dumpdev="AUTO" synchronous_dhclient="YES" defaultrouter="10.59.0.1" ifconfig_em1="DHCP" ifconfig_em0="inet 192.168.1.1 netmask 255.255.0.0" hostname="serv" pf_enable="YES" pf_rules="/etc/pf.conf" pflog_enable="YES" pflog_logfile="/var/log/pflog" pfsync_enable="NO" # Expose pf state to other hosts for syncing pfsync_syncdev="" # Interface for pfsync to work through pfsync_syncpeer="" # IP address of pfsync peer host pfsync_ifconfig="" ftpproxy_enable="YES" ftpproxy_flags="-D 0" mpd_enable="YES" mpd_flags="-b" sshd_enable="YES" apache22_enable="YES" mysql_enable="YES" mysql_limits="NO" mysql_dbdir="/var/db/mysql" mysql_args="--log" linux_enable="YES" accounting_enable="YES" ########################### # Variables # #+++++++++++++++++++++++++# int_if="em0" ext_if="em1" vpn_if="ng0" desk="192.168.1.2" intnet="192.168.0.0/16" #+++++++++++++++++++++++++# #set block-policy return set skip on lo #scrub all #set optimization aggressive #scrub in all fragment reassemble #scrub out all random-id max-mss 1400 nat on $ext_if from $int_if:network to $ext_if:network -> ($ext_if) #проброс в локальную сеть провайдера #nat on $vpn_if from $int_if:network to any -> ($vpn_if) rdr pass log on $vpn_if proto tcp from any to any port 18888 -> 192.168.1.2 port 18888 rdr pass log on $vpn_if proto tcp from any to any port 80 -> 192.168.1.3 port 80 rdr pass log on $vpn_if proto tcp from any to ($vpn_if) port 81 -> 192.168.1.3 port 80 pass all startup: #Log sobitiy log +ALL -EVENTS -FRAME default: load L2TP #load PPTP L2TP: create bundle static L2TP set ipcp no vjcomp set iface idle 0 set iface enable nat set iface enable tcpmssfix set iface up-script /usr/local/etc/mpd5/up.sh set iface down-script /usr/local/etc/mpd5/down.sh create link static L2 l2tp set link action bundle L2TP # set link mtu 1400 set link mtu 1460 set link latency 0 set link max-redial 0 set link redial-delay 60 set link accept chap set link keep-alive 10 75 set l2tp peer tp.internet.beeline.ru set auth authname login set auth password passwd open |
|
Отправлено: 23:08, 25-09-2012 |
Новый участник Сообщения: 19
|
Профиль | Отправить PM | Цитировать актуально
|
Отправлено: 00:17, 28-09-2012 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Старожил Сообщения: 444
|
Профиль | Отправить PM | Цитировать Abadd0N, вам по идее нужен NAT на интерфейсе ng0, т.к. он и является инерфейсом, через который ваша система взаимодействует с внешним миром.
Правила NAT применяются в PF по первому совпадению (не так как правила фильтрации). Попробуйте привести свои правила трансляции к следующему виду: nat on $vpn_if from $int_if:network to !($ext_if:network) -> ($vpn_if) nat on $ext_if from $int_if:network to $ext_if:network -> ($ext_if) pass all - не есть хорошо, этим правилом вы разрешаете прохождение пакетов по всем возможным направлениям, включая доступ к внутренним ресурсам сети. |
Отправлено: 10:47, 01-10-2012 | #3 |
Новый участник Сообщения: 19
|
Профиль | Отправить PM | Цитировать artem_, по поводу ната - нат на внешний интерфейс осуществляется с помощью mpd
Цитата:
по поводу pass all - установлено на время тестирования. P.S. Есть идея, что mpd конфиктит с pf, вскоре попробую l2tpd в качестве vpn клиента |
|
Отправлено: 02:48, 22-10-2012 | #4 |
Старожил Сообщения: 157
|
Профиль | Отправить PM | Цитировать не знаю почему покеты застревают внутри хоста (проборос портов во внутрь), но по поводу l2tp выяснил такую фишку, мне очень долго не удавалось поднять l2tp клиен на линуксах/BSD, проблема оказалась в самом протоколе, он должен видеть vpn сервер всё время, решается статическим маршрутом к сети провайдера, а так же исключением в правиле NAT внутри pf. Сам так делал и работало стабильно без всяких проблем. Моё провило для нат выглядило так
а следом правило для прова, тоже вроде как NAT (правда в моём случае второго NAT не было, потому что провайдер поставил свой Modem-router, который собственно и делал второй нат, который в моём случае и так не нужен был, но отключить возможности не было). На самом деле я не знаю если сеть провайдера нужно натить... Никакого нат в mpd я не использую, связка такая же FreeBSD90 +mpd5 + pf (w NAT) работает по сей день (правда по техническим причинам я сейчас на ADSL, но vpn клиен тот-же mpd5) Мой mpd5.conf: isp_l2tp: create bundle static L2TPNV set bundle disable compression round-robin encryption crypt-reqd bw-manage set bundle enable ipcp set iface disable proxy-arp set ipcp yes vjcomp req-pri-dns req-sec-dns set iface mtu 1492 set iface enable tee on-demand set iface idle 0 set iface enable tcpmssfix set iface up-script /usr/local/etc/mpd5/up.sh set iface down-script /usr/local/etc/mpd5/down.sh # set iface route 212.143.206.0/24 create link static L2NV l2tp set link action bundle L2TPNV set link latency 0 set link max-redial 0 set link disable acfcomp check-magic protocomp shortseq set link deny chap-msv2 chap-msv1 eap acfcomp set link enable multilink passive set link mtu 1492 set link keep-alive 60 180 set l2tp peer "isp.vpn.server" set auth authname "username" set auth password "password" set l2tp enable length set l2tp self xl0 open В моём случае все пробросы работали и работают по сей день без всяких проблем... Надеюсь это немного поможет (хотя много времени прошло, может уже не актуально) PS я тут видел в некоторых манулах от pf: redirect указывают раньше правил NAT, не знаю если это может иметь значение, но попробуйте поменять (хотя наверное глупость) и кстати я в редайректах указывал ещё и адрес на который приходит запрос Да и вот, я сейчас вспомнил, я так же сталкнулся с тем что редайрект не работал на интерфейсе где не было NAT, пытался завернуть 80-ый порт на squid, но через pf, оно ни в какую нихотело работать, вернее работало, но только в одну сторону (т.е. пакеты доходили до squid, но обратной дороги не находили). Разруливал через ipfw... возможно что в этом и кроется причина ;-) |
|
------- Последний раз редактировалось Smoke2k, 07-11-2012 в 07:04. Отправлено: 06:47, 07-11-2012 | #5 |
Новый участник Сообщения: 19
|
Профиль | Отправить PM | Цитировать Всем спасибо, проблему таки решил, а была она в какомто косяке netgraph, убрал его из ядра, перекомпилил, теперь всё ок и пф норм работает и не дисконнектит и порты пробрасывает.
В ядре было: # ================== Enable NETGRAPH ======================= options NETGRAPH options NETGRAPH_ASYNC options NETGRAPH_BPF options NETGRAPH_BRIDGE options NETGRAPH_CISCO options NETGRAPH_DEFLATE options NETGRAPH_ECHO options NETGRAPH_ETHER options NETGRAPH_FRAME_RELAY options NETGRAPH_GIF options NETGRAPH_GIF_DEMUX options NETGRAPH_HOLE options NETGRAPH_IFACE options NETGRAPH_IP_INPUT options NETGRAPH_KSOCKET options NETGRAPH_L2TP options NETGRAPH_LMI # MPPC Для MPPC компрессии требуются специальные лицензионные файлы, которые не прилагаются в ядро #=== options NETGRAPH_MPPC_COMPRESSION options NETGRAPH_MPPC_ENCRYPTION options NETGRAPH_ONE2MANY options NETGRAPH_PPP options NETGRAPH_PPTPGRE options NETGRAPH_RFC1490 options NETGRAPH_SOCKET options NETGRAPH_TCPMSS options NETGRAPH_TEE options NETGRAPH_TTY options NETGRAPH_UI options NETGRAPH_VJC #=================================================== |
Отправлено: 23:49, 19-12-2012 | #6 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Debian/Ubuntu - ПРоброс портов GRE | ~user~ | Общий по Linux | 2 | 10-02-2012 12:47 | |
FreeBSD - [решено] Проброс портов из FreeBSD через другой шлюз в сети в Интернет. | Призрак | Общий по FreeBSD | 3 | 02-06-2011 11:59 | |
Интернет - Проброс портов | VbInt | Сетевые технологии | 0 | 10-10-2010 18:33 | |
FreeBSD - проброс портов FreeBSD | pashos | Общий по FreeBSD | 2 | 22-09-2010 09:41 | |
FreeBSD - Проброс портов через NAT kernel FreeBSD 7.2 во внутренюю сеть | dmitriadis | Общий по FreeBSD | 2 | 02-09-2009 21:29 |
|