Verification: 0b1f825c59cb1802
:: База знаний :: База знаний

Базовая интеграция с OpenVPN

В данной статье рассматривается процесс интеграции AxelNAC с OpenVPN. Интеграция с OpenVPN может быть установлена и произведена при использовании метода аутентификации PAP (Password Authentication Protocol).

Схема аутентификации с помощью интеграции с OpenVPN:

Установка и конфигурация OpenVPN-сервера

 
Пример настройки ниже описывает установку и конфигурацию OpenVPN-сервера на Debian 11. Если у вас другая операционная система — скорректируйте настройку в соответствии с ней.

Шаг 1. В ОС Debian 11 перейдите в bash на машине, на которой собираетесь установить OpenVPN-клиент. Выполните команду для установки инструментов настройки VPN-сервера с использованием OpenVPN и создания сертификатов для шифрования соединений:

apt install libgcrypt20-dev openvpn easy-rsa

Шаг 2. Создайте сертификаты сервера. Вы можете использовать пример ниже или воспользоваться собственным центром сертификации для генерации сертификатов:

mkdir -p /etc/openvpn/server/certs
cd /etc/openvpn/server/certs
openssl genrsa -out ca.key 2048
openssl req -new -x509 -days 3650 -key ca.key -out ca.crt
openssl genrsa -out vpn.key 2048
openssl req -new -key vpn.key -out vpn.csr
openssl x509 -req -in vpn.csr -out vpn.crt -CA ca.crt -CAkey ca.key -CAcreateserial -days 365
openssl dhparam -out dh2048.pem 2048

Шаг 3. Отредактируйте файл конфигурации сервера OpenVPN /etc/openvpn/server.conf:

port 443
proto tcp4
dev tun
server 10.11.0.0 255.255.255.0 #Пул адресов, выдаваемых клиентам
ca /etc/openvpn/server/certs/ca.crt #Сертификат удостоверяющего центра
cert /etc/openvpn/server/certs/vpn.crt #Открытый ключ 
key /etc/openvpn/server/certs/vpn.key #Закрытый ключ
dh /etc/openvpn/server/certs/dh2048.pem #Ключ алгоритма Диффи-Хелмана
plugin /etc/openvpn/radiusplugin.so /etc/openvpn/radiusplugin.cnf #Плагин для аутентификации по RADIUS
persist-key
persist-tun
keepalive 10 60
reneg-sec 0
comp-lzo
tun-mtu 1468
tun-mtu-extra 32
mssfix 1400
auth SHA1
push "persist-key"
push "persist-tun"
push "redirect-gateway def1"
push "dhcp-option DNS 8.8.8.8"
push "dhcp-option DNS 8.8.4.4"
status /etc/openvpn/443.log
verb 3
verify-client-cert none

Шаг 4. Скачайте плагин для работы с RADIUS, реализующий поддержку аккаунтинга и аутентификации сервисом OpenVPN:

wget https://github.com/ValdikSS/openvpn-radiusplugin/archive/refs/heads/master.zip
unzip master.zip
cd openvpn-radiusplugin-master

Шаг 5. Отредактируйте плагин для OpenVPN:

diff -ruN openvpn-radiusplugin-master.orig/Config.cpp openvpn-radiusplugin-master/Config.cpp
--- openvpn-radiusplugin-master.orig/Config.cpp 2015-12-23 08:07:19.000000000 -0500
+++ openvpn-radiusplugin-master/Config.cpp      2021-11-09 11:17:21.759139003 -0500
@@ -240,6 +240,14 @@
                                                          this->clientcertnotrequired=true;
                                                  }
                                          }
+                                         if (param == "verify-client-cert")
+                                         {
+                                                 this->deletechars(&line);
+                                                 if (line == "verify-client-certoptional" || line == "verify-client-certnone")
+                                                 {
+                                                         this->clientcertnotrequired=true;
+                                                 }
+                                         }
                                          if (param == "username-as-common-name")
                                          {
                                                  this->deletechars(&line);

Шаг 6. Выполните компиляцию плагина:

make
cp radiusplugin.so /etc/openvpn/
 
Вы можете скачать предварительно подготовленный плагин по ссылке.

Шаг 7. Отредактируйте конфигурационный файл /etc/openvpn/radiusplugin.cnf:

NAS-Identifier=OpenVpn
Service-Type=5
Framed-Protocol=1
NAS-Port-Type=5
NAS-IP-Address=192.168.0.6 #IP-адрес на интерфейсе сервера OpenVPN
OpenVPNConfig=/etc/openvpn/server.conf
overwriteccfiles=true
useauthcontrolfile=true
useclientconnectdeferfile=true
nonfatalaccounting=false
defacctinteriminterval=0server
{
            acctport=1813
             authport=1815
             name=192.168.0.5 #VIP-адрес AxelNAC
             retry=1
             wait=30
             sharedsecret=useStrongerSecret #Укажите секретную фразу, которую вы настроили на коммутаторе. В нашем примере секретная фраза — useStrongerSecret
}

Конфигурация OpenVPN-клиента

Шаг 1. Создайте файл с расширением ."ovpn" со следующим содержанием:

client
dev tun
proto tcp
remote 192.168.0.6 
port 443
tls-client
comp-lzo
tun-mtu 1500
mssfix 1450
verb 3
auth-user-pass

<ca>
-----BEGIN CERTIFICATE-----
#Сертификат удостоверяющего центра
-----END CERTIFICATE-----
</ca>

<cert>
-----BEGIN CERTIFICATE-----
#Сертификат клиента для аутентификации
-----END CERTIFICATE-----
</cert>

<key>
-----BEGIN RSA PRIVATE KEY-----
#Ваш закрытый ключ для подключения, являющийся парой открытого ключа из сертификата клиента
-----END RSA PRIVATE KEY-----
</key>
 

Конфигурация соединения в AxelNAC

Шаг 1. В веб-интерфейсе AxelNAC перейдите на вкладку Конфигурация → Политики и контроль доступа → Сетевые устройства → Новое сетевое устройство. Из выпадающего списка выберите группу. Откроется окно Новое сетевое устройство и вкладка Определение.

Шаг 2. В строке IP-адрес/MAC-адрес/диапазон (CIDR) укажите адрес 192.168.0.6.

Шаг 3. В строке Тип выберите из выпадающего списка OpenVPN.

Шаг 4. В строке Метод реаутентификации выберите из выпадающего списка RADIUS.

Шаг 5. Перейдите на вкладку RADIUS.

Шаг 6. В строке Секретная фраза укажите секретную фразу, которую вы настроили на коммутаторе. В нашем примере секретная фраза — useStrongerSecret.

Шаг 7. Активируйте параметр Доступ к CLI/VPN разрешён.

Шаг 8. Нажмите Cоздать.

Шаг 9. Перейдите в раздел Статус → Службы.

Шаг 10. Нажмите на кнопку Перезапустить всё.

Шаг 11. Аутентифицируйтесь в OpenVPN-клиенте с использованием логина и пароля. OpenVPN-сервер перенаправит данные в сторону AxelNAC для валидации данных пользователя. В случае успешной валидации AxelNAC отправит сообщение RADIUS Access-Accept и OpenVPN выполнит подключение клиента.

ID статьи: 220
Последнее обновление: 6 февр., 2025
Ревизия: 18
Доступ: Открытый доступ
Просмотры: 52
Комментарии: 0


Этот веб-сайт использует куки-файлы, чтобы обеспечить вам максимальное удобство работы. Узнать больше