Иметь виртуальную частную сеть (VPN) – это обязательно в этой эпохе технологий. VPN становятся все более важными для личного использования, особенно для бизнеса и предприятий. И если вы все еще решаете, на какое решение VPN поставить, почему бы не рассмотреть VPN OpenConnect?
VPN OpenConnect – это бесплатное решение VPN с производительностью и функциями корпоративного уровня. И в этом руководстве вы узнаете, как настроить и подключиться к серверу VPN OpenConnect (ocserv).
Читайте дальше и держите подальше от вашей сети зловредные сущности!
Предварительные требования
Это руководство включает практические демонстрации. Чтобы следовать за ним, убедитесь, что у вас есть следующее:
- A Linux server running Debian- This tutorial uses a Debian 11 Bullseye with hostname ocserv-debian.
- Административный пользователь или пользователь без root-прав, но с sudo/root-правами.
- A domain name pointed to your Linux server IP address – This tutorial uses a domain name vpn.atadomain.io.
- A client machine like Windows 10 or Linux Desktop – This tutorial uses a Windows 10 machine.
Установка сервера VPN OpenConnect
Сервер VPN OpenConnect – это сервер VPN на основе SSL с открытым исходным кодом для Linux, доступный на большинстве дистрибутивов Linux, таких как Debian, Ubuntu, RHEL/CentOS и Fedora.
Сервер VPN OpenConnect поддерживает большинство клиентов от настольных компьютеров до мобильных устройств (Android и iOS). Также сервер VPN OpenConnect поддерживает несколько бэкендов аутентификации, таких как Radius, OpenID, Kerberos и Smart Card.
Но прежде чем воспользоваться этими возможностями, вам нужно установить сервер VPN OpenConnect следующим образом:
1. Подключитесь по SSH к вашему серверу и выполните следующую команду apt update
, чтобы обновить и обновить индекс пакетов. Эта команда гарантирует, что у вас есть последняя информация о пакете.

2. Затем выполните следующую команду apt install
для установки пакета ocserv
.
После завершения установки новый сервис systemd под названием ocserv
будет запущен и

3. Теперь выполните следующие команды systemctl
, чтобы убедиться, что сервис ocserv
работает.
Как видно из вывода, статус службы ocserv
включен и работает.

Генерация SSL/TLS-сертификатов
Установив OpenConnect VPN Server, следующим шагом является обеспечение безопасного подключения к OpenConnect VPN Server. Как? Первый шаг – создание SSL/TLS-сертификатов через Certbot и LetsEncrypt.
Но прежде чем генерировать сертификаты, убедитесь, что у вас есть адрес электронной почты для регистрации в Let’s Encrypt, и имя домена указано на IP-адресе сервера Debian.
Для генерации сертификатов SSL/TLS:
1. Запустите следующую команду для установки certbot
на вашем сервере Linux.

2. Затем выполните нижеприведенную команду certbot
, чтобы сгенерировать сертификаты SSL/TLS. Убедитесь, что вы измените адрес электронной почты ([email protected]
) и имя домена (vpn.atadomain.io
) соответственно.

3. Наконец, выполните следующую команду, чтобы проверить, что сгенерированные сертификаты SSL/TLS существуют в вашем директории домена.
Если успешно, вы увидите публичные (fullchain.pem) и приватные (privkey.pem) ключи, как показано ниже.

Настройка сервера VPN OpenConnect
Даже имея сертификаты SSL/TSL в вашем распоряжении, они просто лежат без дела, пока вы не настроите сервер VPN OpenConnect. Вам нужно изменить конфигурацию сервера VPN OpenConnect по умолчанию (/etc/ocserv/ocserv.conf) следующим образом:
- Измените метод аутентификации по умолчанию.
- Отключите UDP на сервере VPN OpenConnect.
- Измените сертификаты SSL/TLS по умолчанию.
- Настройте имя домена и внутреннюю сеть или IP-адрес для клиентов.
Чтобы настроить сервер VPN OpenConnect, выполните следующие шаги:
1. Сначала выполните команду cp
ниже, чтобы создать резервную копию конфигурации сервера OpenConnect VPN (ocserv.conf
) в файле ocserv.conf.orig
, хранящемся в каталоге /etc/ocserv
.
2. Затем откройте конфигурацию сервера OpenConnect VPN (/etc/ocserv/ocserv.conf) с помощью вашего предпочтительного редактора.
3. Измените значение параметра auth
на plain[passwd=/etc/ocserv/ocpasswd]
, как показано ниже. Это заменяет стандартную аутентификацию с использованием файлов паролей.
auth = "plain[passwd=/etc/ocserv/ocpasswd]"

4. Теперь поставьте символ #
перед параметром udp-port
, чтобы отключить стандартные соединения UDP.
Вы будете использовать OpenConnect VPN только с протоколом TCP, что позволит увеличить скорость за счет параметров ядра.
tcp-port = 443
#udp-port = 443

5. Замените путь к файлу сертификата в параметре server-cert
на открытый ключ, а параметр server-key
на закрытый ключ.
server-cert = /etc/letsencrypt/live/vpn.atadomain.io/fullchain.pem
server-key = /etc/letsencrypt/live/vpn.atadomain.io/privkey.pem

6. Измените значение параметра try-mtu-discovery
на true
, чтобы включить обнаружение MTU. Это повысит скорость и производительность сервера VPN OpenConnect.
try-mtu-discovery = true

7. Затем введите имя домена для сервера VPN OpenConnect в параметр default-domain
и измените стандартный внутренний IP-адрес в параметре ipv4-network
.
В этом примере клиенты VPN будут использовать внутреннюю сеть 10.11.0.0/24
.
default-domain = vpn.atadomain.io
ipv4-network = 10.11.0.0

8. Закомментируйте стандартные параметры route
, добавив символ #
в начале каждой строки, чтобы отключить шлюз стандартного маршрута. После завершения сохраните файл и закройте редактор.
#route = 10.0.0.0/8
#route = 172.16.0.0/12
#route = 192.168.0.0/16
#route = fd00::/8
#route = default

9. Теперь выполните следующие команды, чтобы перезапустить
службу ocserv
, применить изменения и перечислить все открытые порты (ss
) на вашей системе.
Если сервер VPN OpenConnect работает, вы увидите порт 443 в состоянии LISTEN и используемый службой ocserv, как показано ниже.

Добавление пользователей на сервер VPN OpenConnect
С настроенным сервером VPN OpenConnect вам нужен способ подключиться к нему. Как? Создав и добавив пользователя VPN на сервер VPN OpenConnect.
Чтобы добавить пользователя на сервер OpenConnect VPN, вы создадите пользователя VPN и сгенерируете файл пароля с помощью утилиты ocpasswd
следующим образом:
Выполните следующую команду ocpasswd
, чтобы создать нового пользователя. При запросе введите новый пароль для пользователя и повторите его. В этом руководстве выбрано имя пользователя atauser
, но вы можете использовать своё собственное.
После создания пользователя будет также создан файл пароля (/etc/ocserv/ocpasswd
).

Теперь выполните следующую команду cat
, чтобы проверить детали файла пароля (/etc/ocserv/ocpasswd
).

Добавление правил брандмауэра UFW для открытия важных портов
На системе Debian используется брандмауэр IPTables по умолчанию, для настройки которого требуется глубокое понимание сетей. Почему бы не упростить процесс? В этом руководстве вы установите и настроите UFW как брандмауэр по умолчанию.
1. Выполните следующую команду для установки
UFW с автоматическим принятием всех запросов (-y
)

2. После установки UFW выполните следующие команды ufw
, чтобы открыть важные порты для корректной работы сервера OpenConnect VPN.
При запросе введите Y и нажмите Enter, чтобы выполнить операцию, как показано ниже.

3. Наконец, выполните следующую команду, чтобы проверить статус UFW и убедиться, что UFW работает.
Ниже приведен вывод активного статуса UFW и всех добавленных правил брандмауэра.

Включение перенаправления портов
При запущенном сервере VPN вы должны направлять трафик извне на ваш сервер, включив перенаправление портов. Вы разрешите перенаправление портов на вашем сервере Debian с помощью параметров ядра.
Чтобы включить перенаправление портов, выполните следующие шаги:
Выполните следующую команду, которая не выводит информацию на терминал, но создает новый файл под названием /etc/sysctl.d/60-ocserv.conf
. Этот файл содержит параметры ядра для включения перенаправления портов в вашей системе.
Теперь выполните следующую команду sysctl
, чтобы применить новые параметры ядра и включить перенаправление портов.

Настройка NAT с UFW
Включение перенаправления портов – это только один из первых шагов. В этот раз вам необходимо обеспечить возможность подключения клиентов VPN к интернету или определенным сетям через сервер VPN OpenConnect. Как? Путем настройки NAT через UFW.
Для настройки NAT с использованием UFW для сервера OpenConnect VPN:
1. Выполните следующую команду, чтобы проверить список интерфейсов на вашей системе.
В данном примере интерфейс eth1 будет шлюзом NAT для клиентов VPN.

2. Затем откройте конфигурацию UFW (/etc/ufw/before.rules) с использованием вашего предпочтительного редактора и добавьте следующие строки перед опцией *filter
. Эти настройки будут выполнять NAT для пользователей VPN (указать исходный интерфейс) или внутренней сети к интерфейсу eth1
.
Не забудьте изменить подсеть (10.11.0.0/24
) на сети клиентов VPN и интерфейс (eth1
) на ваш сетевой интерфейс.
# NAT для сервера OpenConnect VPN
# с клиентской сетью 10.11.0.0/24
# на интерфейс eth1
*nat
:POSTROUTING ACCEPT [0:0]
-A POSTROUTING -s 10.11.0.0/24 -o eth1 -j MASQUERADE
COMMIT

3. Добавьте следующие строки ниже раздела ok icmp code for FORWARD
опций ufw-before-forward
, сохраните файл и выйдите из редактора.
Эти настройки позволяют пересылать (исходный и конечный пункты) сети клиентов VPN.
# разрешить пересылку сети клиентов VPN
-A ufw-before-forward -s 10.11.0.0/24 -j ACCEPT
-A ufw-before-forward -d 10.11.0.0/24 -j ACCEPT

4. После сохранения выполните следующую команду для перезагрузки правил UFW и перезапустите службу UFW. Это обеспечивает применение конфигурации NAT к системе.
5. Наконец, выполните следующую команду iptables
, чтобы проверить статус NAT на UFW, так как задней частью UFW является IPTables.
При успешном выполнении вы получите вывод, подобный приведенному ниже.

Подключение к серверу OpenConnect VPN через OpenConnect-GUI
Следуя инструкциям, у вас теперь должен быть полностью функциональный сервер виртуальной частной сети OpenConnect. Но после всей этой трудной работы наступил момент истины.
Сервер виртуальной частной сети OpenConnect может быть запущен, но есть только один лучший способ проверить — подключиться к серверу виртуальной частной сети OpenConnect.
Чтобы подключиться к серверу виртуальной частной сети OpenConnect, вам необходимо установить приложение OpenConnect-GUI:
1. Откройте ваш веб-браузер и посетите страницу OpenConnect-GUI на GitHub: OpenConnect-GUI.
2. Затем загрузите и установите приложение OpenConnect VPN для Windows.

3. Откройте клиент виртуальной частной сети OpenConnect-GUI и выберите в меню Файл → Профили → Новый профиль (расширенный) (или нажмите Ctrl+Shift+N). Появится небольшое окно, где вы можете заполнить данные нового профиля (шаг четыре).

4. Теперь заполните информацию о профиле VPN следующим образом:
- Имя – Укажите имя подключения (например, testvpn).
- Шлюз – Укажите доменное имя сервера виртуальной частной сети OpenConnect (например, https://vpn.atadomain.io).
- Имя пользователя – Пользователь добавленный (atauser) на сервер виртуальной частной сети OpenConnect.
После заполнения нажмите “Сохранить”, чтобы подтвердить информацию и создать профиль VPN.

5. Затем установите ваш новый профиль VPN (testvpn) как Сервер и нажмите Подключить, чтобы установить соединение с сервером VPN OpenConnect.

6. При запросе введите Пароль для вашего пользователя VPN и нажмите OK.

7. После установления соединения цвет замка изменится на зеленый, как показано ниже.

8. Наконец, нажмите вкладку Информация о VPN, чтобы получить подробный статус подключения. Вы должны увидеть внутренний IP-адрес, полученный от сервера VPN, DNS-сервер и используемую версию TLS.

Заключение
В ходе этого руководства вы научились настраивать сервер VPN OpenConnect. В то же время вы узнали, как использовать SSL/TSL-сертификаты и добавлять правила брандмауэра для установления безопасного соединения с сервером VPN OpenConnect.
С этим полученным знанием, почему бы не интегрировать сервер VPN OpenConnect с несколькими аутентификационными бекэндами, такими как Radius и OpenID? Или добавить дополнительный уровень безопасности для аутентификации клиентов через двухфакторную аутентификацию?