Документация: ПО Факел — разрабатываемая версия

Сервер OpenConnect

Обзор

ПО Факел поддерживает работу маршрутизатора в режиме OpenConnect VPN сервера. Данный сервер позволяет установить с маршрутизатором SSL/TLS соединение и обеспечить полный доступ к защищаемой (корпоративной) сети. Такой подход к организации VPN объединяет конечных пользователей и ресурсы в защищаемой (корпоративной) сети в виртуальную сеть с контролем доступа, основанным только на информации сетевого уровня, такой как IP адрес отправителя и номер порта. Таким образом достигается необходимая степень защиты всех типов трафика для устройств между открытыми и защищаемыми (корпоративными) сетями, а также шифрование с помощью протоколов SSL/TLS.

Удаленный пользователь с помощью VPN клиента с поддержкой OpenConnect подключается к маршрутизатору и получает IP адрес из заданного пула адресов, получая доступ к ресурсам защищаемой (корпоративной) сети.

Примечание

Сертификат сервера, закрытый ключ сервера и сертификаты УЦ хранятся в конфигурации PKI (pki certificate, pki ca). Для сервера OpenConnect они задаются по имени командами ssl certificate и ssl ca-certificate.

Контроль работы

Команда show openconnect-server sessions выводит активные сеансы сервера. Команды show openconnect-server user <user> otp … выводят параметры одноразовых паролей (OTP) локального пользователя, для которого выбран способ аутентификации otp или password-otp: секретный ключ в шестнадцатеричном виде (key-hex) и в кодировке Base32 (key-b32), адрес otpauth:// (uri), QR-код (qrcode) или все сведения сразу (full). Эти сведения передают пользователю, чтобы он добавил учетную запись в приложение-аутентификатор.

Предупреждение

Вывод команд show openconnect-server user <user> otp … содержит секретный ключ OTP пользователя. Передавайте его только самому пользователю по защищенному каналу.

Команда restart openconnect-server перезапускает сервер OpenConnect. Если сервер не настроен, команда выводит сообщение vpn openconnect server is not configured. Команда доступна только пользователю уровня «Администратор» (см. Уровни пользователей).

Ключ OTP для локального пользователя генерируют команды generate openconnect username <username> otp-key hotp-time …. Команда выводит ключ в кодировке Base32, адрес otpauth:// и QR-код для приложения-аутентификатора, а также команды set, которые задают ключ (otp key) и, если они отличаются от значений по умолчанию, интервал действия пароля (otp interval, по умолчанию 30 секунд) и длину пароля (otp otp-length, по умолчанию 6 цифр). Сама команда конфигурацию не изменяет: выполните выведенные команды в режиме «Конфигурирование» и зафиксируйте конфигурацию. Если длина пароля задана вне диапазона от 6 до 8 цифр, команда выводит сообщение The number of digits in the one-time password must be between '6' and '8', если интервал вне диапазона от 5 до 86400 секунд — Time token interval must be between '5' and '86400' seconds. Команды доступны только пользователю уровня «Администратор» (см. Уровни пользователей).

Пример настройки

В первую очередь необходимо сформировать сертификат сервера, который будет удостоверять подлинность маршрутизатора для пользователей, пытающихся получить доступ к ресурсам защищаемой (корпоративной) сети через SSL/TLS туннели. Подлинность самих пользователей проверяется в режиме аутентификации, заданном командой authentication mode (локальные пользователи или RADIUS сервер). Следующие команды позволяют создать сертификат УЦ и сертификат сервера, выпущенные внутренним центром сертификации, и добавить их в конфигурацию PKI.

Создание сертификатов:

Шаг

Команда

Описание

1

run generate pki ca install OC-CA

Генерирует сертификат УЦ OC-CA и закрытый ключ и добавляет их в конфигурацию PKI

2

run generate pki certificate sign OC-CA install OC-SERVER

Генерирует сертификат сервера OC-SERVER и закрытый ключ, подписывает сертификат сертификатом УЦ OC-CA и добавляет их в конфигурацию PKI

Команды выполняются в режиме Конфигурирования (с префиксом run), запрашивают параметры сертификата и добавляют сертификаты в конфигурацию PKI, после чего изменения необходимо зафиксировать командой commit.

Можно также получить сертификат с помощью инструмента certbot - простого в использовании клиента, который получает сертификат из Let’s Encrypt - открытого центра сертификации, созданного консорциумом организаций, и размещает его на веб-сервере.

sudo certbot certonly --standalone --preferred-challenges http -d <domain name>

Содержимое полученных файлов сертификата и закрытого ключа необходимо добавить в конфигурацию PKI командами set pki certificate <name> certificate <certificate> и set pki certificate <name> private key <key>.

После того, как сертификат подготовлен, можно переходить к настройке сервера OpenConnect.

  • Используется локальный пользователь с логином user4 и паролем SecretPassword.

  • VPN клиенту выделяется IP адрес из пула 100.64.0.0/24.

  • Сертификат сервера OC-SERVER и сертификат УЦ OC-CA берутся из конфигурации PKI.

Настройка OpenConnect:

Шаг

Команда

Описание

1

set vpn openconnect authentication local-users username user4 password SecretPassword

Создает локального пользователя user4 с паролем SecretPassword

2

set vpn openconnect authentication mode local password

Включает локальную аутентификацию пользователей по паролю

3

set vpn openconnect network-settings client-ip-settings subnet 100.64.0.0/24

Задает подсеть 100.64.0.0/24, из которой клиентам выдаются IP-адреса

4

set vpn openconnect network-settings name-server 10.1.1.1

Добавляет DNS сервер 10.1.1.1 в список серверов для клиентов

5

set vpn openconnect network-settings name-server 10.1.1.2

Добавляет DNS сервер 10.1.1.2 в список серверов для клиентов

6

set vpn openconnect ssl ca-certificate OC-CA

Задает сертификат УЦ OC-CA из конфигурации PKI

7

set vpn openconnect ssl certificate OC-SERVER

Задает сертификат сервера OC-SERVER из конфигурации PKI

После применения изменений, внесенных в конфигурацию, необходимо убедиться в том, что подключение VPN клиента выполнено успешно. Список подключенных клиентов выводится командой show openconnect-server sessions в режиме Администрирования.

Пример работы команды show openconnect-server sessions:

fakel@fakel:~$ show openconnect-server sessions

Interface    Username    IP            Remote IP      RX        TX        State      Uptime
-----------  ----------  ------------  -------------  --------  --------  ---------  --------
sslvpn0      user4       100.64.0.105  xx.xxx.49.253  127.3 KB  160.0 KB  connected  12m:28s

Примечание

В качестве совместимого VPN клиента может использоваться клиент Cisco (R) AnyConnect (R).

Список команд


Режим «Конфигурирование»


vpn openconnect authentication local-users username <username> password <password>

Описание:
Создает локального пользователя и задает его пароль. Локальные пользователи используются при аутентификации в режиме local.
Пароль обязателен для каждого локального пользователя, если выбран способ аутентификации password или password-otp.

Синтаксис:

  • set vpn openconnect authentication local-users username <username> password <password>

  • delete vpn openconnect authentication local-users username <username> password <password>

  • show vpn openconnect authentication local-users username <username> password

Аргументы:

  • <username> — имя пользователя. Формат: строка.

  • <password> — пароль пользователя. Формат: строка.

Режим: «Конфигурирование».


vpn openconnect authentication mode local <method>

Описание:
Включает аутентификацию локальных пользователей и задает ее способ. Локальные пользователи создаются командой authentication local-users username, необходимо настроить хотя бы одного пользователя.
Режимы аутентификации local и radius взаимоисключающие: в конфигурации можно оставить только один из них.

Синтаксис:

  • set vpn openconnect authentication mode local <method>

  • delete vpn openconnect authentication mode local <method>

  • show vpn openconnect authentication mode local

Аргументы:

  • <method> — способ локальной аутентификации. Возможные значения: password — только по паролю; otp — только по одноразовому паролю (OTP); password-otp — по паролю и одноразовому паролю (OTP), сначала проверяется пароль. Для способов otp и password-otp у каждого локального пользователя должен быть задан ключ OTP.

Режим: «Конфигурирование».


vpn openconnect authentication mode radius

Описание:
Включает аутентификацию пользователей средствами RADIUS сервера. В этом режиме необходимо настроить хотя бы один RADIUS сервер.
Режимы аутентификации local и radius взаимоисключающие: в конфигурации можно оставить только один из них.

Синтаксис:

  • set vpn openconnect authentication mode radius

  • delete vpn openconnect authentication mode radius

  • show vpn openconnect authentication mode radius

Режим: «Конфигурирование».


vpn openconnect network-settings client-ip-settings subnet <subnet>

Описание:
Задает подсеть, из которой VPN клиентам выдаются IP-адреса.

Синтаксис:

  • set vpn openconnect network-settings client-ip-settings subnet <subnet>

  • delete vpn openconnect network-settings client-ip-settings subnet <subnet>

  • show vpn openconnect network-settings client-ip-settings subnet

Аргументы:

  • <subnet> — подсеть клиентов. Формат: IPv4-префикс (x.x.x.x/x).

Режим: «Конфигурирование».


vpn openconnect network-settings name-server <name-server>

Описание:
Задает адрес DNS сервера, который должен использовать подключенный клиент.

Синтаксис:

  • set vpn openconnect network-settings name-server <name-server>

  • delete vpn openconnect network-settings name-server <name-server>

  • show vpn openconnect network-settings name-server

Аргументы:

  • <name-server> — адрес DNS сервера. Формат: IPv4-адрес (x.x.x.x) или IPv6-адрес (h:h:h:h:h:h:h:h). Можно задать несколько значений.

Режим: «Конфигурирование».


vpn openconnect ssl ca-certificate <ca-certificate>

Описание:
Задает сертификат УЦ (цепочку сертификатов УЦ) из конфигурации PKI.

Синтаксис:

  • set vpn openconnect ssl ca-certificate <ca-certificate>

  • delete vpn openconnect ssl ca-certificate <ca-certificate>

  • show vpn openconnect ssl ca-certificate

Аргументы:

  • <ca-certificate> — имя сертификата УЦ в конфигурации PKI (pki ca). Формат: строка. Можно задать несколько значений.

Режим: «Конфигурирование».


vpn openconnect ssl certificate <certificate>

Описание:
Задает сертификат сервера OpenConnect из конфигурации PKI. Закрытый ключ сервера берется из того же сертификата PKI. Параметр обязателен для работы сервера OpenConnect.

Синтаксис:

  • set vpn openconnect ssl certificate <certificate>

  • delete vpn openconnect ssl certificate <certificate>

  • show vpn openconnect ssl certificate

Аргументы:

  • <certificate> — имя сертификата сервера в конфигурации PKI (pki certificate). Формат: строка.

Режим: «Конфигурирование».


Режим «Администрирование»


openconnect-server sessions

Описание:
Показывает список активных сеансов OpenConnect сервера и их параметры.

Синтаксис:

  • show openconnect-server sessions

Режим: «Администрирование».


openconnect-server user <user> otp full

Описание:
Выводит все сведения об одноразовых паролях (OTP) пользователя, чтобы передать ему: имя пользователя, секретный ключ в кодировке Base32, адрес otpauth:// и QR-код для приложения-аутентификатора.

Синтаксис:

  • show openconnect-server user <user> otp full

Аргументы:

  • <user> — имя локального пользователя сервера OpenConnect.

Режим: «Администрирование».


openconnect-server user <user> otp key-b32

Описание:
Выводит секретный ключ OTP пользователя в кодировке Base32 — в таком виде его вводят в мобильное приложение-аутентификатор.

Синтаксис:

  • show openconnect-server user <user> otp key-b32

Аргументы:

  • <user> — имя локального пользователя сервера OpenConnect.

Режим: «Администрирование».


openconnect-server user <user> otp key-hex

Описание:
Выводит секретный ключ OTP пользователя в шестнадцатеричном виде — в таком виде он задается в конфигурации ПО Факел.

Синтаксис:

  • show openconnect-server user <user> otp key-hex

Аргументы:

  • <user> — имя локального пользователя сервера OpenConnect.

Режим: «Администрирование».


openconnect-server user <user> otp qrcode

Описание:
Выводит QR-код с параметрами OTP пользователя для сканирования приложением-аутентификатором.

Синтаксис:

  • show openconnect-server user <user> otp qrcode

Аргументы:

  • <user> — имя локального пользователя сервера OpenConnect.

Режим: «Администрирование».


openconnect-server user <user> otp uri

Описание:
Выводит адрес otpauth:// с параметрами OTP пользователя: имя, ключ, число цифр и период смены пароля.

Синтаксис:

  • show openconnect-server user <user> otp uri

Аргументы:

  • <user> — имя локального пользователя сервера OpenConnect.

Режим: «Администрирование».


restart openconnect-server

Описание:
Перезапускает сервер OpenConnect. Если сервер не настроен, команда выводит сообщение vpn openconnect server is not configured.

Синтаксис:

  • restart openconnect-server

Режим: «Администрирование».

Уровень привилегий: «Администратор».


generate openconnect username <username> otp-key hotp-time

Описание:
Генерирует новый ключ OTP для локального пользователя сервера OpenConnect и выводит его в Base32, адрес otpauth, QR-код и команды конфигурирования, которые добавляют ключ в конфигурацию. Сама команда конфигурацию не изменяет. Интервал действия пароля — 30 секунд, длина пароля — 6 цифр.

Синтаксис:

  • generate openconnect username <username> otp-key hotp-time

Аргументы:

  • <username> — имя локального пользователя сервера OpenConnect (vpn openconnect authentication local-users username <username>).

Режим: «Администрирование».

Уровень привилегий: «Администратор».


generate openconnect username <username> otp-key hotp-time interval <interval>

Описание:
Генерирует новый ключ OTP для локального пользователя сервера OpenConnect и выводит его в Base32, адрес otpauth, QR-код и команды конфигурирования, которые добавляют ключ в конфигурацию. Сама команда конфигурацию не изменяет. Длина пароля — 6 цифр.

Синтаксис:

  • generate openconnect username <username> otp-key hotp-time interval <interval>

Аргументы:

  • <username> — имя локального пользователя сервера OpenConnect (vpn openconnect authentication local-users username <username>);

  • <interval> — длительность интервала действия одноразового пароля в секундах. Формат: целое число от 5 до 86400.

Режим: «Администрирование».

Уровень привилегий: «Администратор».


generate openconnect username <username> otp-key hotp-time interval <interval> digits <digits>

Описание:
Генерирует новый ключ OTP для локального пользователя сервера OpenConnect и выводит его в Base32, адрес otpauth, QR-код и команды конфигурирования, которые добавляют ключ в конфигурацию. Сама команда конфигурацию не изменяет.

Синтаксис:

  • generate openconnect username <username> otp-key hotp-time interval <interval> digits <digits>

Аргументы:

  • <username> — имя локального пользователя сервера OpenConnect (vpn openconnect authentication local-users username <username>);

  • <interval> — длительность интервала действия одноразового пароля в секундах. Формат: целое число от 5 до 86400;

  • <digits> — число цифр одноразового пароля. Формат: целое число от 6 до 8.

Режим: «Администрирование».

Уровень привилегий: «Администратор».


generate openconnect username <username> otp-key hotp-time digits <digits>

Описание:
Генерирует новый ключ OTP для локального пользователя сервера OpenConnect и выводит его в Base32, адрес otpauth, QR-код и команды конфигурирования, которые добавляют ключ в конфигурацию. Сама команда конфигурацию не изменяет. Интервал действия пароля — 30 секунд.

Синтаксис:

  • generate openconnect username <username> otp-key hotp-time digits <digits>

Аргументы:

  • <username> — имя локального пользователя сервера OpenConnect (vpn openconnect authentication local-users username <username>);

  • <digits> — число цифр одноразового пароля. Формат: целое число от 6 до 8.

Режим: «Администрирование».

Уровень привилегий: «Администратор».


generate openconnect username <username> otp-key hotp-time digits <digits> interval <interval>

Описание:
Генерирует новый ключ OTP для локального пользователя сервера OpenConnect и выводит его в Base32, адрес otpauth, QR-код и команды конфигурирования, которые добавляют ключ в конфигурацию. Сама команда конфигурацию не изменяет.

Синтаксис:

  • generate openconnect username <username> otp-key hotp-time digits <digits> interval <interval>

Аргументы:

  • <username> — имя локального пользователя сервера OpenConnect (vpn openconnect authentication local-users username <username>);

  • <digits> — число цифр одноразового пароля. Формат: целое число от 6 до 8;

  • <interval> — длительность интервала действия одноразового пароля в секундах. Формат: целое число от 5 до 86400.

Режим: «Администрирование».

Уровень привилегий: «Администратор».