Справочник системных ошибок и решений

Windows Server, Active Directory, 1С:Предприятие, СУБД, Linux, Cisco, MikroTik, Asterisk.

⚠️ Важная информация Все материалы, инструкции, команды и скрипты на сайте предоставлены исключительно в ознакомительных целях. Их применение может повлиять на работу операционной системы, программного обеспечения, баз данных, сетевого оборудования и других компонентов инфраструктуры. Перед выполнением действий создайте резервную копию и по возможности протестируйте изменения в безопасной среде. Пользователь самостоятельно оценивает риски и несет ответственность за результат. При отсутствии необходимых знаний обратитесь к квалифицированному ИТ-специалисту.

AUTH_FAILED Сетевое оборудование и VPN

OpenVPN Error AUTH_FAILED: ошибка проверки логина и пароля через плагин

Обновлено: 24.08.2026 · Официальная документация ↗

Пользователи не могут авторизоваться на сервере OpenVPN с персональными учетными записями:

  • В клиентском интерфейсе отображается ошибка: AUTH_FAILED или Verification of remote host certificate failed.
  • В логах сервера: AUTH_FAILED: Username/password verification failed via plugin или auth-user-pass-verify script failed with exit code 1.
  • Сервер мгновенно отправляет клиенту управляющее сообщение AUTH_FAILED,CR_RESPONSE и завершает процесс.

1. Архитектура проверки учетных данных в OpenVPN

OpenVPN делегирует проверку логина и пароля внешним модулям: скомпилированным C-плагинам (например, openvpn-plugin-auth-pam.so) или внешним скриптам через директиву auth-user-pass-verify. Если плагин возвращает ненулевой код возврата (код 1), OpenVPN отправляет клиенту уведомление AUTH_FAILED и не выделяет сетевой интерфейс.

2. Проверка прав доступа и путей к плагину PAM

Проверьте корректность пути к библиотеке плагина в /etc/openvpn/server.conf:

# Для Debian / Ubuntu (64-bit):
plugin /usr/lib/x86_64-linux-gnu/openvpn/plugins/openvpn-plugin-auth-pam.so openvpn

# Для RHEL / Rocky Linux:
plugin /usr/lib64/openvpn/plugins/openvpn-plugin-auth-pam.so openvpn

3. Настройка конфигурации PAM для OpenVPN

Создайте или исправьте файл /etc/pam.d/openvpn:

# /etc/pam.d/openvpn
# Аутентификация через локальную базу паролей Linux (/etc/shadow)
auth    required    pam_unix.so shadow nodelay
account required    pam_unix.so

4. Траблшутинг скриптов auth-user-pass-verify

Если используется кастомный Python/Bash скрипт проверки в LDAP/Active Directory:

# server.conf
auth-user-pass-verify /etc/openvpn/scripts/auth-ldap.py via-env
script-security 3 # Разрешить передачу паролей в переменных окружения

Проверьте права на исполнение скрипта:

chmod +x /etc/openvpn/scripts/auth-ldap.py
# Ручной тест выполнения скрипта от имени пользователя openvpn
su -s /bin/bash openvpn -c "/etc/openvpn/scripts/auth-ldap.py"

5. Отладка и просмотр расширенных логов

Увеличьте уровень детализации логов сервера в server.conf:

verb 4
log-append /var/log/openvpn/openvpn.log
tail -f /var/log/openvpn/openvpn.log | grep -iE 'auth|pam|failed'
💡 Практика специалистов: При интеграции с Active Directory/LDAP через скрипты 'via-file' помните, что временный файл с паролем создается в каталоге /tmp. Если в systemd-юните OpenVPN включена опция PrivateTmp=true, скрипты из других пространств имен не смогут получить доступ к этому файлу.

Частые вопросы (FAQ)

Почему при правильном пароле плагин PAM выдает AUTH_FAILED?

Служба OpenVPN часто запускается от непривилегированного пользователя 'nobody' или 'openvpn'. Процесс теряет доступ к чтению файла хешей /etc/shadow. Решение: добавить пользователя openvpn в группу shadow или настроить запуск через PAM-демон.

Что означает директива script-security 3?

Уровень script-security 3 разрешает серверу OpenVPN запускать внешние исполняемые скрипты и передавать пользовательские пароли через переменные окружения (via-env) или временные файлы.

Как настроить двухфакторную аутентификацию (2FA/TOTP) через PAM?

Установите модуль 'libpam-google-authenticator' и добавьте строку 'auth required pam_google_authenticator.so' в файл конфигурации /etc/pam.d/openvpn.

Может ли клиент подключиться только по логину и паролю без сертификата?

Да, если на сервере включена опция 'client-cert-not-required' (в старых версиях) или 'verify-client-cert none' (в OpenVPN 2.4+), аутентификация будет происходить исключительно по логину/паролю.

Полезные материалы
Рекомендуем