Авторизация

НАСТРОЙКА СОЕДИНЕНИЯ ПО ПРОТОКОЛУ OPENCONNECT

для сервера VPNKI и клиента на ОС Debian/Ubuntu

Удаленный доступ Openconnect соединение, Debian Ubuntu настроить туннель

Подключение по протоколу Openconnect

Для подключения к системе VPNKI по протоколу Openconnect вам необходимо:

  • иметь логин/пароль туннеля в личном кабинете;
  • иметь установленный клиент Openconnect на вашем устройстве;
  • иметь корректный IP адрес туннеля для работы Openconnect в VPNKI;
  • настроенные маршруты для клиента Openconnect на вашем устройстве.

 

Но обо всем по порядку ...

 

 

Настройки в личном кабинете

Здесь вы можете создать новый туннель или использовать уже существующий.

Есть только один нюанс - для корректной работы подключения по протоколу Openconnect в нашей системе необходимо, чтобы IP адрес туннеля в сети VPNKI (сеть 172.16.x.x) находился в нужном поддиапазоне.

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

Туннель для Openconnect ничем не отличается от туннелей, подключающихся по PPTP, L2TP, L2TP/IPsec, IKEv2/IPsec, SSTP и OpenVPN.

 

 

Клиент Openconnect

Установите клиента Openconnect для вашего устройства. В нашем примере мы будем использовать клиент для Ubuntu.

Установите его командами:

 

apt-get update
apt-get install -y openconnect

На этом все.

 

 

Изменение IP адреса туннеля

Как было сказано выше, для корректной работы соединения Openconnect с сервером VPNKI необходимо изменить IP адрес туннеля.

Это необходимо для корректной маршуртизации на сервере. Адрес туннеля должен находиться в диапазоне 172.16.0.34 - 172.16.0.62.

Адрес VPN сервера после подключения будет 172.16.0.33.

 

После изменения адреса ваш туннель по-прежнему сможет подключаться и по другим протоколам (PPTP, L2TP, L2TP/IPsec, IKEv2/IPsec, SSTP, OpenVPN).

Однако, перед изменением IP адреса, стоит оценить насколько изменение IP адреса туннеля повлияет на уже эксплуатируемую вами систему.

Если изменение IP адреса не повредит или вы создали новый туннель только с целью использования Openconnect, то переходите в личный кабинет на страницу изменения IP адреса.

Меню "Мои настройки" - "Для Openconnect".

На скриншоте показаны три туннеля. Два из которых уже обладают нужными IP адресами, а для одного туннеля можно изменить IP адрес.

 

Изменить IP адрес для Openconnect соединение в системе VPNKI

Туннель, подключаемый по протоколу Openconnect, может подключаться и с маршрутизатора. В этом смысле он не отличается от других ваших туннелей.

После изменения IP адреса существующего туннеля имеет смысл проверить подключение пока тестовой командой:

 

sudo openconnect msk.vpnki.ru:46000 --user=userXXXXX --passwd-on-stdin --background --interface=tun0

 

Вместо userXXXXX используйте логин туннеля из личного кабинета. Система попросит ввести пароль подключения.

 

После успешного подключения стоит проверить что интерфейс tun0 в вашей системе создался:

 

sudo ifconfig

 

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

sudo ip route

 

Среди маршрутов вы найдете как минимум два маршрута к сети VPNKI:

172.16.0.0/16 dev tun0 scope link
172.16.0.32/27 dev tun0 scope link

 

*** А в идеальной ситуации к этим маршрутам добавятся и маршруты к другим вашим сетям, указанным как "сеть за туннелем" на главной странице настройки туннелей. Например:

192.168.0.0/24 dev tun0 scope link

 

Попробуйте выполнить пинг VPN сервера по адресу 172.16.0.33.

ping 172.16.0.33

 

И по адресу 172.16.0.1

ping 172.16.0.1

 

И по адресу, например, 192.168.0.1 (если такая сеть существует за каким-либо другим вашим туннелем).

ping 192.168.0.1

 

Пока этого достаточно.

 

После проверки отключите соединение командой

sudo pkill -SIGINT openconnect

*** почему в идельной ситуации? Дело в том, что когда вы меняете настройки туннелей на главной странице системы, то маршруты к сетям "за туннелем" должны быть доступны и для сервера Openconnect. Однако, пока нам добиться этого в автоматическом режиме не удалось. Пришлось сделать специальную кнопку для обновления данных в сервере Openconnect.

Воспользуйтесь ей на всякий случай.

 

openconnect update

 

 

Сервис Openconnect для systemd

Бывает, что пользоваться скриптом openconnect.sh и обрывом соединения при помощи pkill не очень удобно.

Кроме того, бывает необходимо выполнять подключение соединения при старте компьютера.

Чтобы это реализовать необходимо запускать openconnect на сервис для systemd. Для этого:

Создайте файл с описанием сервиса в директории /lib/systemd/system

nano /lib/systemd/system/openconnect.service

и добавьте туда следующие строки:

 

[Unit]
Description=Openconnect service
After=network.target

[Service]
Type=oneshot
PIDFile=/run/openconnect.pid
ExecStart=/home/путь к файлу/openconnect.sh
RemainAfterExit=yes
ExecStop=/bin/pkill -SIGINT openconnect

[Install]
WantedBy=multi-user.target

Только замените путь к файлу openconnect.sh на реальный путь в вашей ОС.

Сохраните Ctrl+X

 

Теперь дайте команду на обновление сервисов:

systemctl daemon-reload

 

и теперь попробуйте подключиться используя команду:

service openconnect start

 

Подождите несколько секунд и выполните команду:

service openconnect status

Вы должны увидеть успешный статус подключения.

 

Для обрыва соединения теперь можете использовать команду:

service openconnect stop

 

И в завершение, если вы хотите подключать соединение Openconnect при старте компьютера, то выполните команду:

systemctl enable openconnect.service

 

На этом все! 


 

И еще на всякий случай - если маршруты к другим вашим сетям не поступили, то их можно прописать локально в Ubuntu/Debian вот таким способом:

 

Настройка маршрутов на клиенте Openconnect

После установления соединения на ваше устройство поступали два маршрута:

  • 172.16.0.0/16 dev tun0 scope link
  • 172.16.0.32/27 dev tun0 scope link

Эти маршруты позволят вашему устройству иметь доступ к IP адресам сети VPNKI.

Однако этих маршрутов окажется недостаточно, если у вас где-то есть домашняя сеть, например, с адресом 192.168.1.0/24 и эта сеть уже доступна через другой ваш туннель VPNKI.

Чтобы на вашем клиенте Openconnect прописать новый маршрут необходимо после установления соединения выполнить скрипт, который выполнит эту работу на вашем устройстве.

В нашей системе маршруты на клиенте потребуется прописать самостоятельно.

Для этой цели можно использовать разные способы. Мы используем весьма простой скрипт.

Создайте в домашней директории пользователя Ubuntu файл.

sudo nano ./openconnect.sh

и добавьте в него строки:

#!/bin/bash
echo YouRpAssWoRdHerE | sudo /usr/sbin/openconnect msk.vpnki.ru:46000 --user=userXXXXX --pid-file /run/ocserv.pid --passwd-on-stdin --background --interface=tun0
sleep 2
sudo ip route add 192.168.1.0/24 via inet 172.16.0.33 dev tun0


Сохраните файл Ctrl+X

Небольшое пояснение:

1. Так как Openconnect всегда просит ввести пароль при установлении соединения, то, чтобы не делать это постоянно вручную, вы делаете команду echo с вашим паролем и передаете этот пароль в качестве входных данных для выполнения команды openconnect. Замените слово YouRpAssWoRdHerE на ваш пароль от туннеля из личного кабинета системы VPNKI.

2. Клиент устанавливает соединение с адресом msk.vpnki.ru и его портом TCP 46000

3. При этом клиент использует имя туннеля userXXXXX - замените XXXXX на имя вашего туннеля.

4. PID файл запущенного процесса будет находиться в файле  /run/ocserv.pid

5. --passwd-on-stdin - пароль вводим со стандартного ввода, в который, на самом деле, был отправлен вывод предыдущей команды echo

6. Клиент Openconnect запускается в режиме background, а консоль Ubuntu отдается вам после успешного старта.

7. После подключения в вашем устройстве будет создан VPN интерфейс tun0

8. sleep 2 - это команда ожидания в две секунды для подключения и создания интерфейса tun0

9. ip route add 192.168.1.0/24 via inet 172.16.0.33 dev tun0 - добавляем маршрут к вашей удаленной сети, которая будет теперь доступна через интерфейс tun0 и адрес сервера 172.16.0.33

 

Сделайте файл исполяемым, для этого выполните команду:

sudo chmod +x ./openconnect.sh

и теперь попробуйте выполнить подключение:

./openconnect.sh

Как обычно проверьте пинг сервера по двум адресам:

ping 172.16.0.33
ping 172.16.0.1

Если ваш другой туннель подключен и в нем настроена "сеть за маршрутизатором", то можете выполнить команду:

ping 192.168.1.1

Команду для отключения вы уже знаете:

sudo pkill -SIGINT openconnect