VPN-подключение IP-устройств

Материал из TekonWiki
Перейти к навигацииПерейти к поиску


Введение

В данной статье рассматриваются вопросы настройки 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 удобно поступать следующим образом:

  1. отключить опцию PPTP
  2. включить доступ по SHH в меню Контроль доступа
  3. перезагрузить устройство
  4. подключиться по SHH с помощью, например Putty

(для КУН-IPM данный способ не работает).

Далее в консоли набрать

$ 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 ...

Анализ возможных ошибок и их причины см. в статье:

  1. PPTP Client Diagnosis HOWTO http://pptpclient.sourceforge.net/howto-diagnosis.phtml


PPPoE

Настройка

В самом простом случае в WEB-интерфейсе устройства достаточно указать

  • включить PPPoE
  • имя пользователя
  • пароль
  • IP-адрес сервера
  • MTU = 1492

Диагностика

Практического тестирование работы PPPoE подключений на объектах нашими специалистами на данный момент не проводилось.

Настройка и диагностика OpenVPN