Документация: ПО Факел — разрабатываемая версия
Сервер 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 |
Генерирует сертификат УЦ |
2 |
run generate pki certificate sign |
Генерирует сертификат сервера |
Команды выполняются в режиме Конфигурирования (с префиксом 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 |
Создает локального пользователя |
2 |
set vpn openconnect authentication mode local |
Включает локальную аутентификацию пользователей по паролю |
3 |
set vpn openconnect network-settings client-ip-settings subnet |
Задает подсеть |
4 |
set vpn openconnect network-settings name-server |
Добавляет DNS сервер |
5 |
set vpn openconnect network-settings name-server |
Добавляет DNS сервер |
6 |
set vpn openconnect ssl ca-certificate |
Задает сертификат УЦ |
7 |
set vpn openconnect ssl certificate |
Задает сертификат сервера |
После применения изменений, внесенных в конфигурацию, необходимо убедиться в том, что подключение 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¶
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>¶
Синтаксис:
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>¶
Синтаксис:
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>¶
Синтаксис:
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>¶
Синтаксис:
set vpn openconnect ssl certificate
<certificate>delete vpn openconnect ssl certificate
<certificate>show vpn openconnect ssl certificate
Аргументы:
<certificate>— имя сертификата сервера в конфигурации PKI (pki certificate). Формат: строка.
Режим: «Конфигурирование».
Режим «Администрирование»¶
openconnect-server sessions¶
Синтаксис:
show openconnect-server sessions
Режим: «Администрирование».
openconnect-server user <user> otp full¶
otpauth:// и QR-код для приложения-аутентификатора.Синтаксис:
show openconnect-server user
<user>otp full
Аргументы:
<user>— имя локального пользователя сервера OpenConnect.
Режим: «Администрирование».
openconnect-server user <user> otp key-b32¶
Синтаксис:
show openconnect-server user
<user>otp key-b32
Аргументы:
<user>— имя локального пользователя сервера OpenConnect.
Режим: «Администрирование».
openconnect-server user <user> otp key-hex¶
Синтаксис:
show openconnect-server user
<user>otp key-hex
Аргументы:
<user>— имя локального пользователя сервера OpenConnect.
Режим: «Администрирование».
openconnect-server user <user> otp qrcode¶
Синтаксис:
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¶
vpn openconnect server is not configured.Синтаксис:
restart openconnect-server
Режим: «Администрирование».
Уровень привилегий: «Администратор».
generate openconnect username <username> otp-key hotp-time¶
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>¶
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>¶
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>¶
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>¶
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.
Режим: «Администрирование».
Уровень привилегий: «Администратор».