Jump to content
Калькуляторы

поднятие туннеля PPTP через NAT на Debian

Добрый день.

Столкнулся с такой проблемой и не получается понять в чем дело. На Debian 7 работало поднятие туннеля VPN (PPTP) через сервер за NAT а уже на Debian 9 не работает.

Возможно кто то еще сталкивался с этой проблемой, нашел ее решение и может подсказать что надо сделать что бы устранить эту проблему?

Share this post


Link to post
Share on other sites

что в логах , какую ошибку возвращает ? 

 

P.S. проверьте файервол

Share this post


Link to post
Share on other sites
21 час назад, orlik сказал:

что в логах , какую ошибку возвращает ? 

 

P.S. проверьте файервол

под windows

 

просто зависает при попытке подключиться без какой либо ошибки

 

под linux

 

Sep  8 14:02:40 vixen pppd[503]: pppd 2.4.7 started by izolda, uid 0
Sep  8 14:02:40 vixen kernel: [10656.181181] PPP generic driver version 2.4.2
Sep  8 14:02:40 vixen pppd[503]: Using interface ppp0
Sep  8 14:02:40 vixen pppd[503]: Connect: ppp0 <--> /dev/pts/1
Sep  8 14:02:43 vixen pppd[503]: Modem hangup
Sep  8 14:02:43 vixen pppd[503]: Connection terminated.
Sep  8 14:02:43 vixen pppd[503]: Exit.

 

в фаерволе только это

 

iptables -F
iptables -t nat -F
iptables -t mangle -F
iptables -X

iptables -t nat -A POSTROUTING -s 192.168.0.0/24 ! -d 10.0.0.0/8 -o eth0 -j SNAT --to-source 213.24.76.23

 

при tcpdump proto 47 при подключении повторяющийся в цикле

 

11:40:54.557068 IP 192.168.0.2 > host-213.24.75.18: GREv1, call 67, seq 0, length 37: LCP, Conf-Request (0x01), id 0, length 23

...

 

Share this post


Link to post
Share on other sites
21 час назад, orlik сказал:

что в логах , какую ошибку возвращает ?

root@vixen:/# pon test debug dump logfd 2 updetach

using channel 1
Using interface ppp0
Connect: ppp0 <--> /dev/pts/1
sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0xedd3663a> <pcomp> <accomp>]
sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0xedd3663a> <pcomp> <accomp>]
sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0xedd3663a> <pcomp> <accomp>]
sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0xedd3663a> <pcomp> <accomp>]
sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0xedd3663a> <pcomp> <accomp>]
sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0xedd3663a> <pcomp> <accomp>]
^CTerminating on signal 2
Child process pptp 213.24.75.18 --nolaunchpppd (pid 455) terminated with signal 2
Modem hangup
Connection terminated.

Share this post


Link to post
Share on other sites

в ppp.options добавьте debug тогда будет видно на чем именно валится

Share this post


Link to post
Share on other sites

На Debian попробуйте подгрузить

modprobe ip_gre
modprobe ip_nat_pptp
modprobe ip_conntrack_pptp
 

Share this post


Link to post
Share on other sites
В 08.09.2017 в 16:02, orlik сказал:

в ppp.options добавьте debug тогда будет видно на чем именно валится

добавил и вывод такой же в логах

 

 

 

В 08.09.2017 в 17:35, Avad0n сказал:

На Debian попробуйте подгрузить

modprobe ip_gre
modprobe ip_nat_pptp
modprobe ip_conntrack_pptp
 

 

вот что загружено в системе и поднятие vpn не работает

 

lsmod | grep -P "gre|pptp"
nf_nat_pptp            16384  0
nf_nat_proto_gre       16384  1 nf_nat_pptp
nf_conntrack_pptp      16384  1 nf_nat_pptp
nf_conntrack_proto_gre    16384  1 nf_conntrack_pptp
nf_nat                 28672  2 nf_nat_pptp,nf_nat_proto_gre
nf_conntrack          114688  4 nf_nat_pptp,nf_conntrack_pptp,nf_conntrack_proto_gre,nf_nat
ip_gre                 24576  0
ip_tunnel              28672  1 ip_gre
gre                    16384  1 ip_gre

 

Share this post


Link to post
Share on other sites

dmesg что кажет?. Вот только я из самой проблемы не понял. Нужен pptp+nat или всё же pptp over nat? Снова вопрос - nat чем создается? Если nat создан другим pptp, то pptp over pptp достаточно геморройная штука и будет работать только в том случае, если первый pptp натится на реальный IP, а не на серый.

Share this post


Link to post
Share on other sites
В 13.09.2017 в 13:19, default_vlan сказал:

dmesg что кажет?. Вот только я из самой проблемы не понял. Нужен pptp+nat или всё же pptp over nat? Снова вопрос - nat чем создается? Если nat создан другим pptp, то pptp over pptp достаточно геморройная штука и будет работать только в том случае, если первый pptp натится на реальный IP, а не на серый.

есть сервер один

есть сервер два

 

за первым сервером есть компьютера

за вторым сервером есть компьютеры

 

за первым сервером компьютеры сидят по технологии NAT и второй сервер их видит через сетевой адрес самого сервера

 

на самом первом сервере правило NAT

iptables -t nat -A POSTROUTING -s 192.168.1.0/24 ! -d 10.0.0.0/8 -o eth0 -j SNAT --to-source $REAL_IP

 

при таком варианте не работает поднятие VPN с компьютера за первым сервером на компьютер на котором VPN-server и компьютер находиться за вторым сервером

 

если использовать на первом сервере правило NAT

iptables -t nat -A POSTROUTING -s 192.168.1.0/24 ! -d $SERVER2_NETWORK -o eth0 -j SNAT --to-source $REAL_IP

и сделать маршрут видимости абонентов второго сервера без NAT

 

то тогда работает поднятие VPN с компьютера за первым сервером на компьютер на котором VPN-server и компьютер находиться за вторым сервером

но проблема в том что такой вариант правила NAT мы использовать не можем и пока не нашли способа как сделать правило с исключением NAT для двух подсетей ! -d {$NETWORK1 $NETWORK2} - в таком варианте не работает

Share this post


Link to post
Share on other sites

Для двух и более сетей есть, как минимум, ipset.

Share this post


Link to post
Share on other sites
В 13.09.2017 в 15:19, default_vlan сказал:

dmesg что кажет?. Вот только я из самой проблемы не понял. Нужен pptp+nat или всё же pptp over nat? Снова вопрос - nat чем создается? Если nat создан другим pptp, то pptp over pptp достаточно геморройная штука и будет работать только в том случае, если первый pptp натится на реальный IP, а не на серый.

pptp over nat не работает. без nf_nat_pptp он он ругается на

conntrack: generic helper won't handle protocol 47. Please consider loading the specific helper module.

с nf_nat_pptp просто тишина и ничего не работает

Share this post


Link to post
Share on other sites

Нихрена из описания непонятно, где какой НАТ, рисуйте схему, но на всякий случай скажу сразу, если pptp-сервак сидит за НАТ'ом, то помимо ната ip протокола, надо ещё натить и 47-й.

Share this post


Link to post
Share on other sites

pptp_client<--->(локалка)<--->linux_server<--->(inet)<--->pptp_server

 

т.е. клиент сидит на NAT, сервер в public.

 

модули: nf_nat_pptp со всей обвзякой и ip_gre загружены

 

в sysctl: net.netfilter.nf_conntrack_helper=1

 

в iptables: -A PREROUTING -p tcp -m tcp --dport 1723 -j CT --helper pptp

 

сам nat обычный snat: -A POSTROUTING -s 10.xxx.xxx.0/24 -o eth0 -j SNAT --to-source yy.yy.yy.yy

Share this post


Link to post
Share on other sites

На Debian 8  все работало  с подгруженными модулями

modprobe nf_conntrack_pptp
modprobe nf_conntrack
modprobe ip_gre
modprobe ip_nat_pptp

на Debian 9   не работало до тех пор пока не добавил

sysctl -w net.netfilter.nf_conntrack_helper=1

и все заработало!
 

Share this post


Link to post
Share on other sites
12 минут назад, tugik сказал:

На Debian 8  все работало  с подгруженными модулями

modprobe nf_conntrack_pptp
modprobe nf_conntrack
modprobe ip_gre
modprobe ip_nat_pptp

на Debian 9   не работало до тех пор пока не добавил

sysctl -w net.netfilter.nf_conntrack_helper=1

и все заработало!
 

Оно уже есть. GRE все так же падает в UNREPLIED

Share this post


Link to post
Share on other sites

Резюмирую.

В общем случае в 9 debian'е достаточно:

modprobe nf_nat_pptp
sysctl -w net.netfilter.nf_conntrack_helper=1

В моём кейсе это не помогло, потому что я напоролся вот на такое дерьмо

https://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=2061834

 

В итоге проблема решилась заменой E1000 на VMXNET3.

Share this post


Link to post
Share on other sites
В 27.09.2017 в 14:37, tugik сказал:

на Debian 9   не работало до тех пор пока не добавил

sysctl -w net.netfilter.nf_conntrack_helper=1

и все заработало!

сnасибо тебе , добрый человек!

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now