View previous topic :: View next topic |
Author |
Message |
TangoFoxtrot n00b
Joined: 04 May 2013 Posts: 3
|
Posted: Mon May 20, 2013 10:54 am Post subject: stunnel + ppp |
|
|
Итак задача - сделать софтовый шлюз + прокся и чуть поозже еще и днс. На этом шлюзе будут жить 2 туннеля. Собственно к деталям: Все будет работать на виртуальной машине(хост esxi5 u1) с Gentoo (ядро 3.7.10-r1)
и туннели будут шифроваться средствами stunnel. Собственно проблема вот какая. Stunnel-и на обоих концах зацепляюстя друг за друга
Code: |
x.x.x.5.60495 > x.x.x.6.311: Flags [S], cksum 0x56f9 (correct), seq 3209597117, win 14600, options [mss 1460,sackOK,TS val 100029025 ecr 0,nop,wscale 7], length 0
x.x.x.6.311 > x.x.x.5.60495: Flags [S.], cksum 0x7634 (correct), seq 3485034658, ack 3209597118, win 14480, options [mss 1460,sackOK,TS val 94741290 ecr 100029025,nop,wscale 7], length 0
x.x.x.5.60495> x.x.x.6.311: Flags [.], cksum 0xdd1c (correct), seq 1, ack 1, win 115, options [nop,nop,TS val 100029026 ecr 94741290], length 0
|
# netstat
Code: |
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 160 X.X.X.5:ssh X.X.X.15:60009 ESTABLISHED
tcp 0 0 X.X.X.5:60495 X.X.X.6:311 ESTABLISHED
|
#ifconfig -a
Code: |
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet X.X.X.5 netmask 255.255.255.0 broadcast X.X.X.255
ether a4:0c:29:7f:3c:d3 txqueuelen 1000 (Ethernet)
RX packets 276 bytes 23276 (22.7 KiB)
RX errors 0 dropped 12 overruns 0 frame 0
TX packets 73 bytes 8034 (7.8 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 16436
inet 127.0.0.1 netmask 255.0.0.0
loop txqueuelen 0 (Local Loopback)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
|
но вот pppd уже сам туннель не поднимает.
/var/log/messages c клиента x.x.x.5
Code: |
013-05-20T14:30:08.352963+04:00 ShidzukuThrid stunnel: LOG5[3410:140688354506496]: Received signal 15; terminating
2013-05-20T14:30:08.407249+04:00 ShidzukuThrid stunnel: LOG5[3580:139830752294656]: stunnel 4.44 on x86_64-pc-linux-gnu platform
2013-05-20T14:30:08.407339+04:00 ShidzukuThrid stunnel: LOG5[3580:139830752294656]: Compiled/running with OpenSSL 1.0.1c 10 May 2012
2013-05-20T14:30:08.407514+04:00 ShidzukuThrid stunnel: LOG5[3580:139830752294656]: Threading:PTHREAD SSL:ENGINE Auth:none Sockets:POLL,IPv4
2013-05-20T14:30:08.407627+04:00 ShidzukuThrid stunnel: LOG5[3580:139830752294656]: Reading configuration from file /etc/stunnel/stunnel.conf
2013-05-20T14:30:08.407822+04:00 ShidzukuThrid stunnel: LOG6[3580:139830752294656]: Initializing SSL context for service ppp
2013-05-20T14:30:08.408518+04:00 ShidzukuThrid stunnel: LOG6[3580:139830752286464]: Local mode child started (PID=3582)
2013-05-20T14:30:08.409009+04:00 ShidzukuThrid stunnel: LOG6[3580:139830752286464]: connect_blocking: connecting x.x.x.6:311
2013-05-20T14:30:08.409574+04:00 ShidzukuThrid stunnel: LOG6[3580:139830752294656]: Peer certificate location /etc/stunnel/
2013-05-20T14:30:08.409763+04:00 ShidzukuThrid stunnel: LOG6[3580:139830752294656]: SSL context initialized
2013-05-20T14:30:08.409786+04:00 ShidzukuThrid stunnel: LOG5[3580:139830752294656]: Configuration successful
2013-05-20T14:30:08.410401+04:00 ShidzukuThrid pppd[3582]: Plugin rp-pppoe.so loaded.
2013-05-20T14:30:08.410489+04:00 ShidzukuThrid pppd[3582]: RP-PPPoE plugin version 3.8p compiled against pppd 2.4.5
2013-05-20T14:30:08.421527+04:00 ShidzukuThrid pppd[3582]: Plugin rp-pppoe.so loaded.
2013-05-20T14:30:08.421579+04:00 ShidzukuThrid pppd[3582]: RP-PPPoE plugin version 3.8p compiled against pppd 2.4.5
2013-05-20T14:30:08.421590+04:00 ShidzukuThrid pppd[3582]: pppd 2.4.5 started by root, uid 0
2013-05-20T14:30:08.421617+04:00 ShidzukuThrid pppd[3582]: Using interface ppp0
2013-05-20T14:30:08.421623+04:00 ShidzukuThrid pppd[3582]: Connect: ppp0 <--> /dev/pts/0
2013-05-20T14:30:38.454583+04:00 ShidzukuThrid pppd[3582]: LCP: timeout sending Config-Requests
2013-05-20T14:30:38.454713+04:00 ShidzukuThrid pppd[3582]: Connection terminated.
2013-05-20T14:30:38.460520+04:00 ShidzukuThrid pppd[3582]: Modem hangup
2013-05-20T14:30:38.460554+04:00 ShidzukuThrid pppd[3582]: Exit.
|
отдельный дебаг-лог pppd /var/log/ppp.log с клиента x.x.x.5
Code: |
2013-05-20T14:30:08.421527+04:00 ShidzukuThrid pppd[3582]: Plugin rp-pppoe.so loaded.
2013-05-20T14:30:08.421579+04:00 ShidzukuThrid pppd[3582]: RP-PPPoE plugin version 3.8p compiled against pppd 2.4.5
2013-05-20T14:30:08.421590+04:00 ShidzukuThrid pppd[3582]: pppd 2.4.5 started by root, uid 0
2013-05-20T14:30:08.421611+04:00 ShidzukuThrid pppd[3582]: using channel 23
2013-05-20T14:30:08.421617+04:00 ShidzukuThrid pppd[3582]: Using interface ppp0
2013-05-20T14:30:08.421623+04:00 ShidzukuThrid pppd[3582]: Connect: ppp0 <--> /dev/pts/0
2013-05-20T14:30:08.421683+04:00 ShidzukuThrid pppd[3582]: sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0xc2abe27d> <pcomp> <accomp>]
2013-05-20T14:30:11.424983+04:00 ShidzukuThrid pppd[3582]: sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0xc2abe27d> <pcomp> <accomp>]
2013-05-20T14:30:14.428330+04:00 ShidzukuThrid pppd[3582]: sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0xc2abe27d> <pcomp> <accomp>]
2013-05-20T14:30:17.431571+04:00 ShidzukuThrid pppd[3582]: sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0xc2abe27d> <pcomp> <accomp>]
2013-05-20T14:30:20.434928+04:00 ShidzukuThrid pppd[3582]: sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0xc2abe27d> <pcomp> <accomp>]
2013-05-20T14:30:23.438126+04:00 ShidzukuThrid pppd[3582]: sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0xc2abe27d> <pcomp> <accomp>]
2013-05-20T14:30:26.441370+04:00 ShidzukuThrid pppd[3582]: sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0xc2abe27d> <pcomp> <accomp>]
2013-05-20T14:30:29.444666+04:00 ShidzukuThrid pppd[3582]: sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0xc2abe27d> <pcomp> <accomp>]
2013-05-20T14:30:32.448045+04:00 ShidzukuThrid pppd[3582]: sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0xc2abe27d> <pcomp> <accomp>]
2013-05-20T14:30:35.451415+04:00 ShidzukuThrid pppd[3582]: sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0xc2abe27d> <pcomp> <accomp>]
2013-05-20T14:30:38.454583+04:00 ShidzukuThrid pppd[3582]: LCP: timeout sending Config-Requests
2013-05-20T14:30:38.454713+04:00 ShidzukuThrid pppd[3582]: Connection terminated.
2013-05-20T14:30:38.460520+04:00 ShidzukuThrid pppd[3582]: Modem hangup
2013-05-20T14:30:38.460554+04:00 ShidzukuThrid pppd[3582]: Exit.
|
Спустя 5 минут таймаута друг друга теряют и стуннели
В инете нашел кучу "манов" , документация https://www.stunnel.org/howto.html и тп зачитана до дыр. man pppd но както не сростается. Симлинк на ppp0 присутсвует
Тоннель пока что в качестве теста запускаю между этой машиной и ее клоном( адрес , мак и хостнейм на клоне естественно изменен), находящиймся на том же хосте виртуализации.
итак после запуска стуннеля
netstat сервера
Code: |
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 160 X.X.X.6:ssh X.X.X.15:60009 ESTABLISHED
tcp 0 0 X.X.X.6:311 X.X.X.5:60494 ESTABLISHED
Active UNIX domain sockets (w/o servers)
Proto RefCnt Flags Type State I-Node Path
unix 5 [ ] DGRAM 5079 /dev/log
unix 3 [ ] STREAM CONNECTED 8236
unix 3 [ ] DGRAM 4432
unix 3 [ ] STREAM CONNECTED 8232
unix 3 [ ] STREAM CONNECTED 8234
unix 3 [ ] STREAM CONNECTED 8237
unix 2 [ ] DGRAM 8240
unix 3 [ ] STREAM CONNECTED 8231
unix 3 [ ] STREAM CONNECTED 8235
unix 3 [ ] STREAM CONNECTED 8238
unix 2 [ ] DGRAM 5660
unix 2 [ ] DGRAM 5702
unix 3 [ ] STREAM CONNECTED 8239
unix 3 [ ] DGRAM 4433
unix 3 [ ] STREAM CONNECTED 8233
unix 3 [ ] STREAM CONNECTED 8230
|
кусок сислога с сервера
Code: |
013-05-20T15:06:22.983037+04:00 Shidzuku stunnel: LOG5[30419:139775453955840]: Received signal 15; terminating
2013-05-20T15:06:23.042347+04:00 Shidzuku stunnel: LOG5[30506:140212947224320]: stunnel 4.44 on x86_64-pc-linux-gnu platform
2013-05-20T15:06:23.042421+04:00 Shidzuku stunnel: LOG5[30506:140212947224320]: Compiled/running with OpenSSL 1.0.1c 10 May 2012
2013-05-20T15:06:23.042469+04:00 Shidzuku stunnel: LOG5[30506:140212947224320]: Threading:PTHREAD SSL:ENGINE Auth:none Sockets:POLL,IPv4
2013-05-20T15:06:23.042533+04:00 Shidzuku stunnel: LOG5[30506:140212947224320]: Reading configuration from file /etc/stunnel/stunnel.conf
2013-05-20T15:06:23.042637+04:00 Shidzuku stunnel: LOG6[30506:140212947224320]: Initializing SSL context for service ppp
2013-05-20T15:06:23.043316+04:00 Shidzuku stunnel: LOG6[30506:140212947224320]: Peer certificate location /etc/stunnel/
2013-05-20T15:06:23.043670+04:00 Shidzuku stunnel: LOG6[30506:140212947224320]: SSL context initialized
2013-05-20T15:06:23.043767+04:00 Shidzuku stunnel: LOG5[30506:140212947224320]: Configuration successful
2013-05-20T15:06:25.213986+04:00 Shidzuku stunnel: LOG5[30507:140212947216128]: Service ppp accepted connection from x.x.x.5:60495
|
stunnel.conf server side
Code: |
cert = /etc/stunnel/stunnel.pem
key = /etc/stunnel/stunnel.pem
pid = /chroot/stunnel.pid # /chroot пока с правами 777
socket = l:TCP_NODELAY=1
socket = r:TCP_NODELAY=1
debug = 7
output = /chroot/stunnel.log
client = no
[ppp]
client = no
accept = 311
exec = /usr/sbin/pppd
execargs = pppd local debug passive # без последнего аргуменат тоже пробовал
pty = yes
|
stunnel.conf client side
Code: |
cert = /etc/stunnel/stunnel.pem
key = /etc/stunnel/stunnel.pem
pid = /chroot/stunnel.pid
socket = l:TCP_NODELAY=1
socket = r:TCP_NODELAY=1
debug = 7
output = /var/log/stunnel.log
client = yes
[ppp]
connect = X.X.X.6:311
exec = /usr/sbin/pppd
execargs = pppd local debug 192.168.77.77:192.168.78.78
pty = yes
|
/etc/ppp/options
Code: |
lock
plugin rp-pppoe.so
noauth
|
Code: | net-misc/stunnel-4.44 USE="ssl -ipv6 -listen-queue (-selinux) -tcpd -xforward"
net-dialup/ppp-2.4.5-r3 USE="atm eap-tls -activefilter -dhcp -gtk -ipv6 -pam -radius" |
в ядре есть модули для поддержки туннеля и есть поддержка алгоритмов шифрования.
куда еще копать пока не знаю . |
|
Back to top |
|
|
Pinkbyte Retired Dev
Joined: 01 Jun 2012 Posts: 128 Location: Rostov-on-Don, Russia
|
Posted: Tue May 21, 2013 11:21 am Post subject: |
|
|
А stunnel обязателен? Почему бы не воспользоваться OpenVPN? |
|
Back to top |
|
|
TangoFoxtrot n00b
Joined: 04 May 2013 Posts: 3
|
Posted: Tue May 21, 2013 12:39 pm Post subject: |
|
|
В принципе не обязателен и я уже как раз смотрю в сторону альтернативных решений. но у меня уже есть пара туннелей поднятых на stunnel'е. Потому изначально выбор пал на него. Да и хочется всетаки понять почему на опенсусе все заводится из коробки. а на генте ни в какую. Что же я все таки упустил. |
|
Back to top |
|
|
Pinkbyte Retired Dev
Joined: 01 Jun 2012 Posts: 128 Location: Rostov-on-Don, Russia
|
Posted: Tue May 21, 2013 12:49 pm Post subject: |
|
|
TangoFoxtrot wrote: | В принципе не обязателен и я уже как раз смотрю в сторону альтернативных решений. но у меня уже есть пара туннелей поднятых на stunnel'е. Потому изначально выбор пал на него. Да и хочется всетаки понять почему на опенсусе все заводится из коробки. а на генте ни в какую. Что же я все таки упустил. |
Ясно, я думал это первая попытка настройки подобной связки. Сам я подобное не настраивал, но с pppd дело имею плотно. Судя по логам вы настраиваете PPPoE поверх данного туннеля, на серверной стороне процесс pppd подымается? Я вижу строчку service accepted connection, но судя по тому, что в логах нет никакого упоминания от pppd - клиент тупо отваливается по-таймауту, т.к. не смог согласовать линию... И еще - добавьте аргумент dump к вызову pppd с обоих сторон. И попробуйте всё-таки убрать passive. |
|
Back to top |
|
|
Pinkbyte Retired Dev
Joined: 01 Jun 2012 Posts: 128 Location: Rostov-on-Don, Russia
|
Posted: Tue May 21, 2013 12:51 pm Post subject: |
|
|
[quote="Pinkbyte"] TangoFoxtrot wrote: | В принципе не обязателен и я уже как раз смотрю в сторону альтернативных решений. но у меня уже есть пара туннелей поднятых на stunnel'е. Потому изначально выбор пал на него. Да и хочется всетаки понять почему на опенсусе все заводится из коробки. а на генте ни в какую. Что же я все таки упустил. |
Ясно, я думал это первая попытка настройки подобной связки. Сам я подобное не настраивал, но с pppd дело имею плотно. Судя по логам вы настраиваете PPPoE поверх данного туннеля, на серверной стороне процесс pppd подымается? Я вижу строчку service accepted connection, но судя по тому, что в логах нет никакого упоминания от pppd - клиент тупо отваливается по-таймауту, т.к. не смог согласовать линию... И еще - добавьте аргумент dump к вызову pppd с обоих сторон. И попробуйте всё-таки убрать passive. И указать адрес на серверной стороне(строчку видать ip:, то есть без указания remote-адреса туннеля)
Last edited by Pinkbyte on Thu May 23, 2013 8:24 am; edited 1 time in total |
|
Back to top |
|
|
TangoFoxtrot n00b
Joined: 04 May 2013 Posts: 3
|
Posted: Wed May 22, 2013 6:50 pm Post subject: |
|
|
В общем не заработало. Идея осталась только одна - припоминая я что иногда были грабли с вкомпиливанием компонентов в ядро или наоборот в сборке отдельными модулями. Перебирать все подряд в разных вариантах уже нет сил ( 3 недели курю доки и маны в этом направлении местами натыкаясь на полное отсутсвие информации ,да и начальство уже результат требует ) пока отложил в долгий ящик. За минут 40 все отлично завелось в виде ipip туннеля . Шифрование мне сейчас особо не требуется, да и если что, то вариант openvpn уже опробован и работает. Спасибо за внимание! |
|
Back to top |
|
|
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|