По этой ссылке для аутентификации по user/pass в конфигурационный файл сервера должна быть добавлена строка ниже.
plugin /usr/share/openvpn/plugin/lib/openvpn-auth-pam.so login
Но в ссылке не указано, как должен быть заполнен файл login
.
Я на Ubuntu 18.04.
PAM расшифровывается как Подключаемые модули аутентификации, представляет собой системную структуру аутентификации и авторизации. Он может использовать файл, базу данных, все, что вы настроили в качестве хранилища паролей. Он даже может использовать для аутентификации другие вещи, кроме паролей (скажем, OTP и т. д.); он может выполнять двухфакторную аутентификацию, связываться с внешней доверенной третьей стороной (например, Kerberos) и так далее. В простейшем случае он использует файл shadow для хранения зашифрованных паролей для пользователей системы. Модуль
openvpn-auth-pam
позволяет вам аутентифицировать одноранговые узлы OpenVPN с помощью этой системы аутентификации. логин
здесь означает службу PAM, которую будет использовать ваш OpenVPN. Скорее всего у вас уже есть какие-то сервисы, например system-auth
используется для локальных пользователей. Загляните в файлы /etc/pam.d/
, чтобы понять, как настроен PAM, а также прочтите его руководства.
Вы обнаружите, что служба login
по умолчанию просто ссылается на system-auth
.Чтобы использовать это как есть, вы сначала создаете пользователей локальной системы и устанавливаете их пароли. Затем добавьте параметр --auth-user-pass
в конфигурации клиента либо с именем файла учетных данных, либо без него (тогда он будет запрашивать учетные данные в интерактивном режиме). Подробнее см. man openvpn
.
Наконец, не забывайте всегда сначала использовать аутентификацию на основе сертификатов. Каждый узел VPN должен иметь собственную уникальную пару сертификат/ключ. Аутентификацию по имени пользователя/паролю следует рассматривать только как дополнительную меру безопасности. И лучше не использовать функцию `duplicate-cn'.