Настройка OpenVPN
Модуль PAM to RADIUS — свободное программное обеспечение, которое позволяет любому серверу на Linux стать клиентом RADIUS для аутентификации. Чтобы настроить взаимодействие между серверами RADIUS Proxy и OpenVPN, выполните шаги по инструкции.
Установка модуля
- Откройте терминал.
- Установите модуль.
# Debian, Ubuntu sudo apt-get install libpam-radius-auth
При использовании иного дистрибутива Linux предварительно установите пакет epel-release. В зависимости от дистрибутива название модуля для установки может отличаться.
# CentOS, RedHat, Fedora, AlmaLinux
pam_radius
Настройка сервера OpenVPN
- Откройте файл конфигурации сервера OpenVPN.
nano /etc/openvpn/server.conf
-
Добавьте в файл строку для подключения модуля.
plugin /usr/lib/x86_64-linux-gnu/openvpn/plugins/openvpn-plugin-auth-pam.so openvpn
В зависимости от дистрибутива Linux модуль openvpn-plugin-auth-pam.so размещается в разных местах.
Чтобы найти место установки, выполните команды:cd / find . -name openvpn-plugin-auth-pam.so
-
Сохраните изменения.
Настройка модуля
- Откройте файл конфигурации модуля.
nano /etc/pam_radius_auth.conf
- Допишите в файл строку:
- Адрес RADIUS-сервера в формате IP[:port]. По умолчанию порт 1812, если не указан другой.
- Общий секрет RADIUS-сервера.
- Время ожидания пользовательской аутентификации. Рекомендуемое время – 60 (секунд).
# Пример 192.168.56.1:1812 secret 60
- Удалите из файла конфигурации примеры серверов.
- Сохраните изменения.
Настройка взаимодействия сервера с модулем
- Откройте файл конфигурации взаимодействия между OpenVPN и модулем.
nano /etc/pam.d/openvpn
- Добавьте в файл строки обязательной аутентификации, а также пропуска обработки аккаунта и сессии.
auth required pam_radius_auth.so account sufficient pam_permit.so session sufficient pam_permit.so
- Сохраните изменения.
Настройка клиента OpenVPN
- Откройте файл конфигурации клиента.
- Добавьте в файл строку с запросом логина и пароля.
auth-user-pass
- Сохраните изменения.
Дополнительные возможности
Возможность используется в сценарии, когда требуется впускать или не впускать на настраиваемый ресурс по группе пользователя.
Работает только для RADIUS-прокси.
В файл «appsettings.json» добавьте блок «AuthorizationConfiguration»:
"AuthorizationConfiguration": {
"AuthorizationStrategy" : "AllUsers" | "NoOneWithExceptions" | "AllUsersWithExceptions",
"AdGroupExceptions": ["UserGroups1","UserGroups2","UserGroups3"]
}
- AuthorizationStrategy — стратегия авторизации. Возможные значения:
- AllUsers — впускать всех пользователей.
- AllUsersWithExceptions — впускать тех, кто не входит в группы, перечисленные в списке исключений.
- NoOneWithExceptions — не впускать никого, кроме тех, кто входит в группы, перечисленные в списке исключений.
- AdGroupExceptions — список групп.
После обновления «appsettings» нужно перезапустить RADIUS-прокси.