Авторизация

НАСТРОЙКА СОЕДИНЕНИЯ ПО ПРОТОКОЛУ 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

 

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

ping 172.16.0.33

 

И по адресу 172.16.0.1

ping 172.16.0.1

 

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

 

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

sudo pkill -SIGINT openconnect

 

Настройка маршрутов на клиенте 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

 

Сервис 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

 

На этом все!