Перейти к содержимому
Калькуляторы

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

Добрый день.

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

...

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

modprobe ip_gre
modprobe ip_nat_pptp
modprobe ip_conntrack_pptp
 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

В 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

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

В 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} - в таком варианте не работает

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

В 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 просто тишина и ничего не работает

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

На 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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Резюмирую.

В общем случае в 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.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Про виртуалки речи нигде не было ))

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

В 27.09.2017 в 14:37, tugik сказал:

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

sysctl -w net.netfilter.nf_conntrack_helper=1

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

В 27.09.2017 в 14:37, tugik сказал:

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

sysctl -w net.netfilter.nf_conntrack_helper=1

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

Зарегистрировался тут что бы сказать тебе огромное человеческое спасибо ! Debian 10 две сетевухи ( одна в мир, вторая в во внутрь ) из внутренней подсети не мог сконнектиться с внешним PPTP сервером. Эта команда сделала мой день ! Низкий поклон, пусть твои ручки будут здоровы ))))))

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

17 hours ago, TorrensOdUa said:

Зарегистрировался тут что бы сказать тебе огромное человеческое спасибо ! Debian 10 две сетевухи ( одна в мир, вторая в во внутрь ) из внутренней подсети не мог сконнектиться с внешним PPTP сервером. Эта команда сделала мой день ! Низкий поклон, пусть твои ручки будут здоровы ))))))

Справедливости ради - этот вариант конфигурации могут при очередном обновлении закопать

 

Правильный вариант - добавить подобное правило в iptables:

iptables -t raw -A PREROUTING -p tcp --dport 1723 -j CT --helper pptp

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Добрый день, собираю новый NAT сервер на Debian 11.2, столкнулся с проблемой когда включаю helper:

 

sysctl -w net.netfilter.nf_conntrack_helper=1

 

Сервер через некоторое время при нагрузке зависает, на мониторе ничего, в логах тоже пусто, приходится дергать питание, после чего загружается.

 

Так как в штатном ядре не собирается модуль ipt_NETFLOW пришлось обновить ядро (поддержка модуля работает с версии 5.15)

 

Ради эксперимента поставил систему на другое железо, ядро обновил через репозитории - https://cyber-x.ru/устанавливаем-ядро-linux-5-14-в-debian-11/

Перевел трафик на нат сервер примерно 2 gbit, запустил ping до nat сервера ожидая падения, но сервер продолжал работать (на предыдущем железе падение было через 5-10 секунд), обрадовавшись победе

подкинул трафика еще 3gbit но это привело к падению, при 2 gbit загрузка cpu была до 10%.

 

 lsmod | grep nf

Spoiler

binfmt_misc            24576  1
nf_conntrack_netlink    57344  1
nf_reject_ipv4         16384  1 ipt_REJECT
nft_counter            16384  36
nft_chain_nat          16384  4
nft_compat             20480  18
nf_tables             266240  96 nft_compat,nft_counter,nft_chain_nat
nfnetlink              20480  4 nft_compat,nf_conntrack_netlink,nf_tables,ip_set
nf_nat_pptp            20480  0
nf_conntrack_pptp      20480  1 nf_nat_pptp
nf_nat                 57344  3 xt_nat,nf_nat_pptp,nft_chain_nat
nf_conntrack          176128  6 nf_nat,nf_conntrack_pptp,ipt_NETFLOW,xt_nat,nf_nat_pptp,nf_conntrack_netlink
nf_defrag_ipv6         24576  1 nf_conntrack
nf_defrag_ipv4         16384  1 nf_conntrack
configfs               57344  1
x_tables               53248  10 nft_compat,xt_multiport,xt_ratelimit,xt_tcpudp,ipt_NETFLOW,xt_nat,xt_comment,xt_set,ipt_REJECT,ip_tables
libcrc32c              16384  4 nf_conntrack,nf_nat,nf_tables,raid456


modinfo nf_conntrack
 

Spoiler

filename:       /lib/modules/5.16.0-5-amd64/kernel/net/netfilter/nf_conntrack.ko
license:        GPL
alias:          nf_conntrack-10
alias:          nf_conntrack-2
alias:          ip_conntrack
depends:        nf_defrag_ipv6,libcrc32c,nf_defrag_ipv4
retpoline:      Y
intree:         Y
name:           nf_conntrack
vermagic:       5.16.0-5-amd64 SMP preempt mod_unload modversions
sig_id:         PKCS#7
signer:         Debian Secure Boot CA
sig_key:        4B:6E:F5:AB:CA:66:98:25:17:8E:05:2C:84:66:7C:CB:C0:53:1F:8C
sig_hashalgo:   sha256
signature:      39:74:00:92:B9:00:E1:AA:08:46:F9:30:F0:31:6F:BA:F2:CD:C0:4A:
                15:07:32:B9:7B:A1:E8:74:9B:04:6C:0C:63:B8:09:5C:A5:3F:85:9C:
                2A:16:A1:0E:A1:9D:C2:E7:C7:6C:E4:9A:C8:C2:9B:50:F8:92:16:2C:
                4D:78:53:D0:60:23:78:AC:C9:44:B5:1C:54:09:CD:11:AF:6F:6E:00:
                00:71:24:55:6E:D7:85:F4:82:2F:27:03:23:B4:89:6C:E8:E0:D9:C3:
                EF:B4:4C:5B:89:F7:64:07:04:47:69:8B:BA:CB:F5:24:36:8A:75:3A:
                F8:8E:D7:85:A6:45:AA:57:49:7C:81:6D:DF:EB:96:80:91:D8:86:36:
                3D:3E:B6:C1:04:20:0A:89:8E:E2:D0:17:F6:C4:67:51:52:4A:00:96:
                F3:2E:EF:68:00:9D:6B:C4:B9:2F:C2:0C:02:C5:E8:7A:F3:8E:0E:D9:
                81:36:E6:3E:C7:FE:7A:B3:ED:CD:98:B5:6A:E1:9A:70:C3:69:DA:A3:
                3A:C9:35:B8:17:F3:68:F2:0A:60:CB:1E:19:94:19:B7:94:D2:44:A0:
                57:D3:F1:0D:FA:57:4A:15:F6:7E:C0:29:89:31:AE:9D:B5:D1:E4:7B:
                A7:A9:AB:B1:BC:3F:CD:73:6C:31:05:C7:BD:15:D6:42
parm:           tstamp:Enable connection tracking flow timestamping. (bool)
parm:           acct:Enable connection tracking flow accounting. (bool)
parm:           nf_conntrack_helper:Enable automatic conntrack helper assignment (default 0) (bool)
parm:           expect_hashsize:uint
parm:           enable_hooks:Always enable conntrack hooks (bool)

Пробовал включать helper так, результат тот же:

iptables -t raw -A PREROUTING -p tcp -m tcp --dport 1723 -j CT --helper pptp

 

В чем может быть проблема? Кто-то "натит" уже на свежей debian 11?

Изменено пользователем jimbarello

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

On 3/25/2022 at 12:07 PM, jimbarello said:

на мониторе ничего

А до зависания, там чего на мониторе? Графику (иксы) надеюсь не ставили? Если текстовая консоль, и зависание без кернел-паника на экране, то я бы сказал "так не бывает", или проблемы с железом.

Попробуйте настроить netconsole - отправку сообщений ядра на другой хост.

Вот даже пакет есть: https://packages.debian.org/search?keywords=netconsole

Но максимум, чем это всё поможет, вы получите бэктрейс, который нужно будет отправить разработчикам ядра и ждать исправления.

Поэтому как вариант, для начала попробовать ядро 5.17, проверить, есть ли и с ним та же проблема.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

On 3/25/2022 at 8:32 PM, rm_ said:

Графику (иксы) надеюсь не ставили?

Естественно нет) Подключил монитор клавиатуру чтобы глянуть что "высыпало", но просто черный экран.

 

On 3/25/2022 at 8:32 PM, rm_ said:

то я бы сказал "так не бывает", или проблемы с железом

Грешил на проблемы с железом, но собрали вторую машинку и она ведет себя точно также, за исключением того что смогла "переварить" 2Gbit трафика, а когда добавил еще 2 произошло тоже самое.

Стоит отметить что если установить значение sysctl -w net.netfilter.nf_conntrack_helper=0, то сервер прекрасно перемалывает и 10Gbit, работает длительный период абсолютно стабильно, 

как первый, так и второй. Эта же схема доступа работает у меня на 8-ом и 9-ом debiane без нареканий много лет, появилась необходимость добавить машинку и столкнулся с такой проблемой.

Где-то на просторах встречал уже такую проблему, но там решения нет...

 

в общем повторный перевод трафика с этого же маршрутизатора свалил машину за 5 секунд, попробовал включить хелпер через опцию модуля - options nf_conntrack nf_conntrack_helper=1, перезагрузил машину, убедился что 

хелпер в значении 1, подкинул трафик - потерял машину...

Изменено пользователем jimbarello

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

В 26.03.2022 в 09:36, jimbarello сказал:

Грешил на проблемы с железом, но собрали вторую машинку и она ведет себя точно также, за исключением того что смогла "переварить" 2Gbit трафика, а когда добавил еще 2 произошло тоже самое.

 

 

Были подобные проблемы,  с 6 центосом на старом железе. Лечилось оставлением одной планки памяти из 4, хотя мемтестом вся установленная память успешно проверялась. Но скорее всего у вас другой случай.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

On 3/26/2022 at 12:00 PM, No_name said:

Были подобные проблемы,  с 6 центосом на старом железе. Лечилось оставлением одной планки памяти из 4, хотя мемтестом вся установленная память успешно проверялась. Но скорее всего у вас другой случай.

Память стоит 2*16 на 2666Ghz в каналах A1 B1, если ничего не получится попробую одну вытащить, проблема в том что оба сервера ведут себя одинаково, стоит выключить helper и все работает прекрасно...

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 смайлов.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.