The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"pppd рвется соединение (forticlientsslvpn )"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Открытые системы на сервере (VPN / Linux)
Изначальное сообщение [ Отслеживать ]

"pppd рвется соединение (forticlientsslvpn )"  +/
Сообщение от AlexeyMish email(ok) on 12-Апр-16, 10:32 
CentOS, 64bit
Клиент дал параметры подключения к его серверу.
Для подключения предлагается ставить FortiClient на рабочие места наших сотрудников (Windows).
Посмотрел клиента, ужаснулся.
Решил попробовать настроить vpn на отдельном сервере и запилить его в качестве шлюза.
Поставил клиент отсюда (http://dekiwiki.ties2.net/Fortinet/Fortinet_SSL_VPN_Client_I...)
туннель поднимается, доступ до нужного сервера есть, но ровно через 5 минут соединение рвется.
В логах forticlientsslvpn.log
route -n add -net 192.168.1.0 netmask 255.255.255.0 gw 10.212.134.201
04/11/2016 14:13:24 [30167] ssl read failed[error:00000005:lib(0):func(0):DH lib]:[Success]
04/11/2016 14:13:24 [30167] io finished, kill pppd
04/11/2016 14:13:24 [30167] kill_child:30170
04/11/2016 14:13:24 [30167] tunnel finished, killing session
04/11/2016 14:13:24 [30167] killing pppd ...
04/11/2016 14:13:24 [30167] kill_child:30187

В логах pppd
using channel 25
Using interface ppp0
Connect: ppp0 <--> /dev/pts/1
sent [LCP ConfReq id=0x1 <mru 1354> <magic 0x325f9c2b>]
rcvd [LCP ConfReq id=0x1 <magic 0x65c2a21e>]
sent [LCP ConfAck id=0x1 <magic 0x65c2a21e>]
rcvd [LCP ConfAck id=0x1 <mru 1354> <magic 0x325f9c2b>]
sent [CCP ConfReq id=0x1 <deflate 15> <deflate(old#) 15>]
sent [IPCP ConfReq id=0x1 <compress VJ 0f 01> <addr 0.0.0.0> <ms-dns1 0.0.0.0> <ms-dns2 0.0.0.0>]
rcvd [IPCP ConfReq id=0x1 <addr 178.207.157.170>]
sent [IPCP ConfNak id=0x1 <addr 1.1.1.1>]
rcvd [LCP ProtRej id=0x2 80 fd 01 01 00 0c 1a 04 78 00 18 04 78 00 9c 2b]
Protocol-Reject for 'Compression Control Protocol' (0x80fd) received
rcvd [IPCP ConfRej id=0x1 <compress VJ 0f 01> <ms-dns1 0.0.0.0> <ms-dns2 0.0.0.0>]
sent [IPCP ConfReq id=0x2 <addr 0.0.0.0>]
rcvd [IPCP ConfReq id=0x2 <addr 178.207.157.170>]
sent [IPCP ConfNak id=0x2 <addr 1.1.1.1>]
.....
sent [IPCP ConfRej id=0x65 <addr 178.207.157.170>]
rcvd [IPCP ConfReq id=0x66 <addrs 178.207.157.170 10.212.134.201>]
sent [IPCP ConfRej id=0x66 <addrs 178.207.157.170 10.212.134.201>]
rcvd [IPCP ConfReq id=0x67]
sent [IPCP ConfAck id=0x67]
local  IP address 10.212.134.201
remote IP address 1.1.1.1
Script /etc/ppp/ip-up started (pid 30185)
Script /etc/ppp/ip-up finished (pid 30185), status = 0x0
Terminating on signal 2
Connect time 5.0 minutes.
Sent 0 bytes, received 0 bytes.
Script /etc/ppp/ip-down started (pid 30245)
sent [LCP TermReq id=0x2 "User request"]
Modem hangup
Connection terminated.
Waiting for 1 child processes...
  script /etc/ppp/ip-down, pid 30245
Script /etc/ppp/ip-down finished (pid 30245), status = 0x0


Подскажите, куда смотреть, что можно настроить, чтоб соединение не рвалось?
Пока в голову только тупой вариант лезет, по крону запускать скрипт, который будет переподнимать тунель при падении.

PS Клиент на винде работает. Тунель поднимается, соединение не рвется.

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "pppd рвется соединение (forticlientsslvpn )"  +/
Сообщение от ACCA (ok) on 13-Апр-16, 02:07 
> Подскажите, куда смотреть, что можно настроить, чтоб соединение не рвалось?

Позвонить/написать в техподдержку Fortinet и задать вопрос. Их левая шняга ну ни разу не открытая система.

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "pppd рвется соединение (forticlientsslvpn )"  +/
Сообщение от keir (ok) on 13-Апр-16, 16:27 
Очень подозрительны эти 2 строчки:
> Connect time 5.0 minutes.
> Sent 0 bytes, received 0 bytes.

Канал видимо отключается по таймауту неактивности. Проверяйте, почему через него не ходит трафик.

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

3. "pppd рвется соединение (forticlientsslvpn )"  +/
Сообщение от AlexeyMish email(ok) on 14-Апр-16, 13:01 
> Очень подозрительны эти 2 строчки:
>> Connect time 5.0 minutes.
>> Sent 0 bytes, received 0 bytes.
> Канал видимо отключается по таймауту неактивности. Проверяйте, почему через него не ходит
> трафик.

огромное спасибо, за то, что ткнули носом в мою ошибку!
Проверил, если трафик гонять через соединение -- оно не рвется.
Можно спросить в этой же теме, чтоб не плодить новые, как написать скрипт, на поддержание соединения?
При выполнении в шеле
yes | /usr/src/forticlientsslvpn/forticlientsslvpn_cli --server 178.207.157.170:10443 --vpnuser calluser > /dev/null
Появляется предложение ввести пароль
Password for VPN:

Ввожу его, поднимается vpn тунель.
Задача написать скрипт и сунуть его в крон, для поддержания жизни vpn.
Вот тут у меня начинаются сложности.
1) При выполнении
#!/bin/sh
### BEGIN INIT INFO
# Provides:  pppd
# Required-Start: $all
# Required-Stop: $all
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Forticlient bkk
# Description: Connect bkk forticlient.
### END INIT INFO
cd /usr/src/forticlientsslvpn/
#empty -f -i in -o out cd /usr/src/forticlientsslvpn/
empty -f -i in -o out yes | /usr/src/forticlientsslvpn/forticlientsslvpn_cli --server 178.207.157.170:10443 --vpnuser user > /dev/null

forticlientsslvpn_cli пытается найти сертификаты в директории /root/.fctsslvpn_trustca, там их ессно нет. Как заставить выполняться скрипт в контексте выполнения из каталога /usr/src/forticlientsslvpn/, чтобы он искал сертификаты как в нем прописано, в каталоге ./helper/ (т.е. /usr/src/forticlientsslvpn/helper/)?
2) как передать скрипту пароль, на подключение к vpn, чтобы не требовалось вводить его вручную?
Вопрос про передачу пароля думал решить с помощью expect (www.osnews.com/story/10929) либо empty (empty.sourceforge.net/), но не уверен, что сходу осилю.

Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

4. "pppd рвется соединение (forticlientsslvpn )"  +/
Сообщение от keir (ok) on 14-Апр-16, 15:29 
> Задача написать скрипт и сунуть его в крон, для поддержания жизни vpn.

#!/bin/bash

let "PING=`/bin/ping 192.168.1.1 -c 3 -W 2 | /bin/grep received | /usr/bin/awk {' print $4'}`" 2 > /dev/null

if [ "$PING" -eq "0" ]; then
  /usr/src/forticlientsslvpn/forticlientsslvpn_cli --server 178.207.157.170:10443 --vpnuser calluser > /dev/null
fi

Вместо 192.168.1.1 надо написать ip, который доступен только тогда, когда vpn-туннель работает. Запихиваете в крон ежеминутно и в случае отсутствия пинга выполнится команда на поднятие туннеля.

> forticlientsslvpn_cli пытается найти сертификаты в директории /root/.fctsslvpn_trustca,
> там их ессно нет.

Если у вас есть сертификаты, положите их туда. Нормальная практика, когда программа ищет файлы в домашнем каталоге пользователя, от которого она запускается.
Еще можно переопределить переменную $HOME, но что бы вы не указали, в этом каталоге все равно должен быть каталог .fctsslvpn_trustca

> Как заставить выполняться скрипт в контексте выполнения
> из каталога /usr/src/forticlientsslvpn/, чтобы он искал сертификаты как в нем прописано,
> в каталоге ./helper/ (т.е. /usr/src/forticlientsslvpn/helper/)?

Т.к. не встречался с этим vpn клиентом, не могу знать, что у него за принципы настройки и расположения файлов.

> 2) как передать скрипту пароль, на подключение к vpn, чтобы не требовалось
> вводить его вручную?
> Вопрос про передачу пароля думал решить с помощью expect (www.osnews.com/story/10929)
> либо empty (empty.sourceforge.net/), но не уверен, что сходу осилю.

Вы сами написали ответ - использовать expect или empty. Удачи ;)

Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

5. "pppd рвется соединение (forticlientsslvpn )"  +/
Сообщение от AlexeyMish email(ok) on 14-Апр-16, 15:53 
>[оверквотинг удален]
> #!/bin/bash
> let "PING=`/bin/ping 192.168.1.1 -c 3 -W 2 | /bin/grep received | /usr/bin/awk
> {' print $4'}`" 2 > /dev/null
> if [ "$PING" -eq "0" ]; then
>   /usr/src/forticlientsslvpn/forticlientsslvpn_cli --server 178.207.157.170:10443
> --vpnuser calluser > /dev/null
> fi
> Вместо 192.168.1.1 надо написать ip, который доступен только тогда, когда vpn-туннель работает.
> Запихиваете в крон ежеминутно и в случае отсутствия пинга выполнится команда
> на поднятие туннеля.

Примерно так и планировал, только в качестве критерия планировал выбрать ниличие или отсутствие ppp интерфейса

>> forticlientsslvpn_cli пытается найти сертификаты в директории /root/.fctsslvpn_trustca,
>> там их ессно нет.
> Если у вас есть сертификаты, положите их туда. Нормальная практика, когда программа
> ищет файлы в домашнем каталоге пользователя, от которого она запускается.
> Еще можно переопределить переменную $HOME, но что бы вы не указали, в
> этом каталоге все равно должен быть каталог .fctsslvpn_trustca

Я тут начал экспериментировать после чего, озадачился.
Суть: через шел все работает, запускается.
Через скрипт, вижу в логе forticlientsslvpn.log
04/13/2016 20:14:50 [8669] starting ssl vpn tunnel[4.0.2289]
gateway for 1.1.1.1:91.245.35.33 for 178.207.157.170:91.245.35.33
if has single route record for 1.1.1.1:0 for 178.207.157.170:1
04/13/2016 20:14:50 [8691] execl /usr/src/forticlientsslvpn/helper/get_fortisslvpn_info /usr/src/forticlientsslvpn/helper 178.207.157.170 10443   ...
04/13/2016 20:14:50 [8691] trusted CA dir: /root/.fctsslvpn_trustca
04/13/2016 20:14:50 [8691] set loglevel to 1
04/13/2016 20:14:50 [8691] Peer's certificate is not valid. action is 1
04/13/2016 20:14:50 [8691] peer's certificate:
        Version: 3 (0x2)$        Serial Number:$            da:f6:36:b4:43:d4:a5:8b$    Signature Algorithm: sha256WithRSAEncryption$        Issuer: C=US, ST=California, L=Sunnyvale, O=Fortinet, OU=Certificate Authority, CN=support/emai$
04/13/2016 20:14:50 [8691] peer certificate verify result: 19

04/13/2016 20:14:50 [8691] ssl connect failed
04/13/2016 20:14:50 [8669] rcv notice:1|SSL connect failed.

Скопировал папку все что можно, в каталог /root, картина не поменялась.
Что такое /root/.fctsslvpn_trustca, не имею представления. Ничего похоже в каталоге с приложением нет.
В /usr/src/forticlientsslvpn/ лежат forticlientsslvpn_cli и forticlientsslvpn
В /usr/src/forticlientsslvpn/helper/
cleanup.linux.sh  construct_trustca  fctrt                         forticlientsslvpn.log  fortisslclient.crt  License.txt     pppd.log   setup.linux.sh  subproc
config            fctrouternke.kext  forticlientsslvpn.backup.tmp  fortisslcacert.pem     fortisslclient.key  linux.rtbackup  printcert  showlicense     sysconfig.linux.sh

Чего не хватает этому поделию, для старта из скрипта, я не понимаю.


>> Как заставить выполняться скрипт в контексте выполнения
>> из каталога /usr/src/forticlientsslvpn/, чтобы он искал сертификаты как в нем прописано,
>> в каталоге ./helper/ (т.е. /usr/src/forticlientsslvpn/helper/)?
> Т.к. не встречался с этим vpn клиентом, не могу знать, что у
> него за принципы настройки и расположения файлов.
>> 2) как передать скрипту пароль, на подключение к vpn, чтобы не требовалось
>> вводить его вручную?
>> Вопрос про передачу пароля думал решить с помощью expect (www.osnews.com/story/10929)
>> либо empty (empty.sourceforge.net/), но не уверен, что сходу осилю.
> Вы сами написали ответ - использовать expect или empty. Удачи ;)

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

Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

6. "pppd рвется соединение (forticlientsslvpn )"  +/
Сообщение от keir (ok) on 14-Апр-16, 16:09 
В /root/.fctsslvpn_trustca должен лежать ssl-сертификат от удаленного сервера, к которому вы подключаетесь. Получить его можно от владельца сервера.

Но тут встает уже у меня вопрос - если у вас нет там сертификатов, почему при запуске из шелла все работает.

Показывайте лог успешного запуска тогда.

Ответить | Правка | ^ к родителю #5 | Наверх | Cообщить модератору

7. "pppd рвется соединение (forticlientsslvpn )"  +/
Сообщение от AlexeyMish email(ok) on 14-Апр-16, 16:46 
> В /root/.fctsslvpn_trustca должен лежать ssl-сертификат от удаленного сервера, к которому
> вы подключаетесь. Получить его можно от владельца сервера.
> Но тут встает уже у меня вопрос - если у вас нет
> там сертификатов, почему при запуске из шелла все работает.
> Показывайте лог успешного запуска тогда.

Там огромная простыня, причем я так думаю, что выкладывать ее не особо безопасно.
http://pastebin.com/MLe6Ngh4
лежит тут, частично покоцал, ибо показалось, что есть вещи, которые из нее в паблик выкладывать небезопасно. )

Насколько понял, тащит данные с сервера, по логину паролю. В логе увидел слова GUI, предполагаю костыль.

Ответить | Правка | ^ к родителю #6 | Наверх | Cообщить модератору

8. "pppd рвется соединение (forticlientsslvpn )"  +/
Сообщение от AlexeyMish email(ok) on 19-Апр-16, 14:47 
>[оверквотинг удален]
>> Но тут встает уже у меня вопрос - если у вас нет
>> там сертификатов, почему при запуске из шелла все работает.
>> Показывайте лог успешного запуска тогда.
> Там огромная простыня, причем я так думаю, что выкладывать ее не особо
> безопасно.
> http://pastebin.com/MLe6Ngh4
> лежит тут, частично покоцал, ибо показалось, что есть вещи, которые из нее
> в паблик выкладывать небезопасно. )
> Насколько понял, тащит данные с сервера, по логину паролю. В логе увидел
> слова GUI, предполагаю костыль.

up

Ответить | Правка | ^ к родителю #7 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру