VPN-подключение IP-устройств
Введение
В данной статье рассматриваются вопросы настройки VPN-подключения следующих IP-устройств:
Настройка VPN-подключения осуществляется через WEB-интерфейс устройств.
Устройство при этом выполняет роль VPN-клиента и подключается к удаленному VPN-серверу.
В настоящее время поддерживается работа следующих типов протоколов:
- PPPTP
- PPPoE
- а также технологии OpenVPN
PPTP
Настройка
В самом простом случае в WEB-интерфейсе устройства достаточно указать
- включить PPTP
- имя пользователя
- пароль
- IP-адрес сервера
- MTU = 1474
Будьте аккуратны с опцией Отключить локальный интерфейс - т.к. соединение будет разрешено только через защищенный канал. В противном случае доступ к устройству возможен и через VPN и по "исходному IP-адресу". Данную опцию рекомендуется включать после тестовой проверки VPN-подключения.
Диагностика
Для диагностики подключения удобно использовать запрос log.cgi
В открывшемся логе нас интересуют только строки, содержащие pptp [xxx]:.
Корректное подключение может выглядеть, например следующим образом:
Jan 1 00:00:02 IPCUn daemon.notice pppd[68]: pppd 2.4.7 started by root, uid 0
Jan 1 00:00:02 IPCUn daemon.info pppd[68]: Using interface ppp0
Jan 1 00:00:02 IPCUn daemon.notice pppd[68]: Connect: ppp0 <--> /dev/pts/0
Jan 1 00:00:02 IPCUn daemon.notice pptp[74]: anon log[main:pptp.c:333]: The synchronous pptp option is NOT activated
Jan 1 00:00:03 IPCUn daemon.notice pptp[97]: anon log[ctrlp_rep:pptp_ctrl.c:258]: Sent control packet type is 1 'Start-Control-Connection-Request'
Jan 1 00:00:03 IPCUn daemon.notice pptp[97]: anon log[ctrlp_disp:pptp_ctrl.c:758]: Received Start Control Connection Reply
Jan 1 00:00:03 IPCUn daemon.notice pptp[97]: anon log[ctrlp_disp:pptp_ctrl.c:792]: Client connection established.
Jan 1 00:00:04 IPCUn daemon.notice pptp[97]: anon log[ctrlp_rep:pptp_ctrl.c:258]: Sent control packet type is 7 'Outgoing-Call-Request'
Jan 1 00:00:04 IPCUn daemon.notice pptp[97]: anon log[ctrlp_disp:pptp_ctrl.c:877]: Received Outgoing Call Reply.
Jan 1 00:00:04 IPCUn daemon.notice pptp[97]: anon log[ctrlp_disp:pptp_ctrl.c:916]: Outgoing call established (call ID 0, peer's call ID 17002).
Jan 1 00:00:06 IPCUn daemon.notice pptp[97]: anon log[ctrlp_disp:pptp_ctrl.c:980]: PPTP_SET_LINK_INFO received from peer_callid 0
Jan 1 00:00:06 IPCUn daemon.notice pptp[97]: anon log[ctrlp_disp:pptp_ctrl.c:983]: send_accm is 00000000, recv_accm is FFFFFFFF
Jan 1 00:00:06 IPCUn daemon.warn pptp[97]: anon warn[ctrlp_disp:pptp_ctrl.c:986]: Non-zero Async Control Character Maps are not supported!
Jan 1 00:00:06 IPCUn daemon.notice pppd[68]: CHAP authentication succeeded
Jan 1 00:00:10 IPCUn daemon.notice pppd[68]: MPPE 128-bit stateless compression enabled
Jan 1 00:00:11 IPCUn daemon.notice pppd[68]: local IP address 192.168.7.11
Jan 1 00:00:11 IPCUn daemon.notice pppd[68]: remote IP address 192.168.7.10
...
Где,
- в 16 строке указан IP-адрес, полученный устройством
- в 17 - IP-адрес VPN-сервера, к которому было осуществлено подключение
И далее периодически в логе могут возникать сообщения
Jan 1 00:01:03 IPCUn daemon.notice pptp[97]: anon log[logecho:pptp_ctrl.c:696]: Echo Request received.
Jan 1 00:01:03 IPCUn daemon.notice pptp[97]: anon log[ctrlp_rep:pptp_ctrl.c:258]: Sent control packet type is 6 'Echo-Reply'
Jan 1 00:02:03 IPCUn daemon.notice pptp[97]: anon log[logecho:pptp_ctrl.c:696]: Echo Request received.
Jan 1 00:02:03 IPCUn daemon.notice pptp[97]: anon log[ctrlp_rep:pptp_ctrl.c:258]: Sent control packet type is 6 'Echo-Reply
...
В случае проблем с подключением, будет отображена та или иная ошибка
Например:
May 23 14:33:16 unost pppd[165]: Using interface ppp0
May 23 14:33:16 unost pppd[165]: Connect: ppp0 <--> /dev/pts/0
May 23 14:33:16 unost pptp[303]: anon log[main:pptp.c:333]: The synchronous pptp option is NOT activated
May 23 14:33:16 unost pptp[309]: anon log[ctrlp_rep:pptp_ctrl.c:258]: Sent control packet type is 1 'Start-Control-Connection-Request'
May 23 14:33:16 unost pptp[309]: anon log[ctrlp_disp:pptp_ctrl.c:758]: Received Start Control Connection Reply
May 23 14:33:16 unost pptp[309]: anon log[ctrlp_disp:pptp_ctrl.c:792]: Client connection established.
May 23 14:33:17 unost pptp[309]: anon log[ctrlp_rep:pptp_ctrl.c:258]: Sent control packet type is 7 'Outgoing-Call-Request'
May 23 14:33:17 unost pptp[309]: anon log[ctrlp_disp:pptp_ctrl.c:877]: Received Outgoing Call Reply.
May 23 14:33:17 unost pptp[309]: anon log[ctrlp_disp:pptp_ctrl.c:916]: Outgoing call established (call ID 0, peer's call ID 0).
May 23 14:33:11 unost pptp[220]: anon log[ctrlp_disp:pptp_ctrl.c:952]: Call disconnect notification received (call id 0)
May 23 14:33:11 unost pptp[220]: anon log[ctrlp_error:pptp_ctrl.c:206]: Result code is 1 'Lost Carrier'. Error code is 0, Cause code is 0
May 23 14:33:11 unost pptp[220]: anon log[call_callback:pptp_callmgr.c:84]: Closing connection (call state)
May 23 14:33:11 unost pppd[165]: Modem hangup
May 23 14:33:11 unost pppd[165]: Connection terminated.
...
Для диагностики проблем подключений по PPTP для новый концентраторов КУН-IP8, КУН-IP4 (для КУН-IPM данный способ не работает) удобно поступать следующим образом:
- отключить опцию PPTP
- включить доступ по SHH в меню Контроль доступа
- перезагрузить устройство
- подключиться по SHH с помощью, например Putty
Далее в консоли набрать
$ pppd call pptp debug nodetach
И наблюдать более подробный лог, например:
using channel 1
Using interface ppp0
Connect: ppp0 <--> /dev/pts/1
sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0xe38a189e> <pcomp> <accomp>]
sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0xe38a189e> <pcomp> <accomp>]
sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0xe38a189e> <pcomp> <accomp>]
sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0xe38a189e> <pcomp> <accomp>]
sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0xe38a189e> <pcomp> <accomp>]
sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0xe38a189e> <pcomp> <accomp>]
sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0xe38a189e> <pcomp> <accomp>]
sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0xe38a189e> <pcomp> <accomp>]
sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0xe38a189e> <pcomp> <accomp>]
sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0xe38a189e> <pcomp> <accomp>]
Script pptp 185.41.42.22 --nolaunchpppd finished (pid 543), status = 0x0
Modem hangup
Connection terminated.
- ошибка, приведенная в примере, связана с отсутствием прохождения GRE-пакетов на маршрутизаторе, за которым установлен КУН-IP.
Для остановки нажать Ctrl+z
Далее можно по необходимости (в зависимости от отображаемой ошибки) можно поменять параметры, например: логин/пароль в WEB-интерфейсе, нажать сохранить, и не перегружая устройства повторить ввод команды pppd call ...
Анализ возможных ошибок и их причины см. в статье:
- PPTP Client Diagnosis HOWTO http://pptpclient.sourceforge.net/howto-diagnosis.phtml
PPPoE
Настройка
В самом простом случае в WEB-интерфейсе устройства достаточно указать
- включить PPPoE
- имя пользователя
- пароль
- IP-адрес сервера
- MTU = 1492
Диагностика
Практического тестирование работы PPPoE подключений на объектах нашими специалистами на данный момент не проводилось.