ошибка аутентификации openvpn pam

Вопрос или проблема

Я пытаюсь настроить аутентификацию PAM на моем экземпляре openVPN, работающем на Ubuntu Server 15.04, но продолжаю получать ошибку аутентификации.
Я что-то упускаю?

server.conf

port 1194
proto udp
dev tun
sndbuf 0
rcvbuf 0
ca ca.crt
cert server.crt
key server.key
dh dh.pem
topology subnet
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
push "redirect-gateway def1 bypass-dhcp"
keepalive 10 120
comp-lzo
persist-key
persist-tun
status openvpn-status.log
verb 0
crl-verify crl.pem
plugin /etc/openvpn/openvpn-plugin-auth-pam.so login
log-append /var/log/openvpn.log

client.conf

client
dev tun
proto udp
sndbuf 0
rcvbuf 0
remote my.server 1194
resolv-retry infinite
nobind
persist-key
persist-tun
remote-cert-tls server
comp-lzo
verb 3
auth-user-pass

<ca>



</ca>
<cert>


</cert>
<key>



</key>

Server Log File

AUTH-PAM: BACKGROUND: user 'paul' failed to authenticate: System error
Sun Mar 13 16:41:02 2016 86.137.55.234:49377 PLUGIN_CALL: plugin
function PLUGIN_AUTH_USER_PASS_VERIFY failed with status 1:
/etc/openvpn/openvpn-plugin-auth-pam.so

Client Log File

Sun Mar 13 19:47:43 2016 OpenVPN 2.3.10 x86_64-w64-mingw32 [SSL (OpenSSL)] [LZO] [PKCS11] [IPv6] built on Feb  1 2016
Sun Mar 13 19:47:43 2016 Windows version 6.1 (Windows 7)
Sun Mar 13 19:47:43 2016 library versions: OpenSSL 1.0.1r  28 Jan 2016, LZO 2.09
Enter Management Password:
Sun Mar 13 19:47:43 2016 MANAGEMENT: TCP Socket listening on [AF_INET]127.0.0.1:25341
Sun Mar 13 19:47:43 2016 Need hold release from management interface, waiting...
Sun Mar 13 19:47:43 2016 MANAGEMENT: Client connected from [AF_INET]127.0.0.1:25341
Sun Mar 13 19:47:44 2016 MANAGEMENT: CMD 'state on'
Sun Mar 13 19:47:44 2016 MANAGEMENT: CMD 'log all on'
Sun Mar 13 19:47:44 2016 MANAGEMENT: CMD 'hold off'
Sun Mar 13 19:47:44 2016 MANAGEMENT: CMD 'hold release'
Sun Mar 13 19:47:52 2016 MANAGEMENT: CMD 'username "Auth" "paul"'
Sun Mar 13 19:47:52 2016 MANAGEMENT: CMD 'password [...]'
Sun Mar 13 19:47:53 2016 Socket Buffers: R=[8192->8192] S=[8192->8192]
Sun Mar 13 19:47:53 2016 UDPv4 link local: [undef]
Sun Mar 13 19:47:53 2016 UDPv4 link remote: [AF_INET]my.server:1194
Sun Mar 13 19:47:53 2016 MANAGEMENT: >STATE:1457898473,WAIT,,,
Sun Mar 13 19:47:53 2016 MANAGEMENT: >STATE:1457898473,AUTH,,,
Sun Mar 13 19:47:53 2016 TLS: Initial packet from [AF_INET]my.server:1194, sid=12745e68 d8548adf
Sun Mar 13 19:47:53 2016 WARNING: this configuration may cache passwords in memory -- use the auth-nocache option to prevent this
Sun Mar 13 19:47:53 2016 VERIFY OK: depth=1, CN=ChangeMe
Sun Mar 13 19:47:53 2016 Validating certificate key usage
Sun Mar 13 19:47:53 2016 ++ Certificate has key usage  00a0, expects 00a0
Sun Mar 13 19:47:53 2016 VERIFY KU OK
Sun Mar 13 19:47:53 2016 Validating certificate extended key usage
Sun Mar 13 19:47:53 2016 ++ Certificate has EKU (str) TLS Web Server Authentication, expects TLS Web Server Authentication
Sun Mar 13 19:47:53 2016 VERIFY EKU OK
Sun Mar 13 19:47:53 2016 VERIFY OK: depth=0, CN=server
Sun Mar 13 19:47:53 2016 Data Channel Encrypt: Cipher 'BF-CBC' initialized with 128 bit key
Sun Mar 13 19:47:53 2016 Data Channel Encrypt: Using 160 bit message hash 'SHA1' for HMAC authentication
Sun Mar 13 19:47:53 2016 Data Channel Decrypt: Cipher 'BF-CBC' initialized with 128 bit key
Sun Mar 13 19:47:53 2016 Data Channel Decrypt: Using 160 bit message hash 'SHA1' for HMAC authentication
Sun Mar 13 19:47:53 2016 Control Channel: TLSv1.2, cipher TLSv1/SSLv3 DHE-RSA-AES256-GCM-SHA384, 2048 bit RSA
Sun Mar 13 19:47:53 2016 [server] Peer Connection Initiated with [AF_INET]my.server:1194
Sun Mar 13 19:47:54 2016 MANAGEMENT: >STATE:1457898474,GET_CONFIG,,,
Sun Mar 13 19:47:55 2016 SENT CONTROL [server]: 'PUSH_REQUEST' (status=1)
Sun Mar 13 19:47:56 2016 AUTH: Received control message: AUTH_FAILED
Sun Mar 13 19:47:56 2016 SIGUSR1[soft,auth-failure] received, process restarting
Sun Mar 13 19:47:56 2016 MANAGEMENT: >STATE:1457898476,RECONNECTING,auth-failure,,
Sun Mar 13 19:47:56 2016 Restart pause, 2 second(s)

Подробный журнал сервера
http://pastebin.com/30ivbrWH (он слишком длинный для публикации)

Конфигурация pam.d для входа в систему является стандартной, поставляемой с системой

На сервере openvpn установите saslauthd

# aptitude install sasl2-bin

Запустите демон

# saslauthd -d -a pam -m /var/run/saslauthd/

Выполните простую аутентификацию

# testsaslauthd -u paul -p 1234567 -s login

Результат должен быть

0: OK "Success."

Попробуйте добавить “username-as-common-name” в server.conf.

Ответ или решение

Проблема, связанная с отказом в аутентификации PAM в OpenVPN на Ubuntu Server 15.04, может казаться сложной. Давайте разберемся в возможных причинах и методах их решения, применяя методику TEA (Теория, Пример, Применение).

Теория

OpenVPN — это мощный инструмент для создания защищенных виртуальных частных сетей (VPN), который широко используется для обеспечения безопасности и конфиденциальности. Использование модуля PAM (Pluggable Authentication Module) позволяет подтвердить подлинность пользователей через локальные учетные записи системы или другие источники информации PAM.

На сервере OpenVPN аутентификация PAM настраивается путем подключения плагина openvpn-plugin-auth-pam.so, что позволяет серверу проверять идентификацию пользователя через стандартную систему аутентификации Ubuntu. Однако, настройка может быть сложной из-за необходимости корректной конфигурации PAM и обеспечения правильного поиска библиотеки на сервере.

Пример

Давайте более подробно рассмотрим вашу конфигурацию и логи, чтобы выделить потенциальные проблемы:

  1. Файл конфигурации сервера (server.conf):

    У вас правильно настроен плагин PAM:

    plugin /etc/openvpn/openvpn-plugin-auth-pam.so login

    Однако, убедитесь, что данный путь к плагину корректный и файл имеется по указанному адресу.

  2. Лог сервера:

    Сообщение:

    AUTH-PAM: BACKGROUND: user 'paul' failed to authenticate: System error

    говорит о системной ошибке аутентификации PAM. Можно предположить, что либо PAM настроен некорректно, либо в системе проблемы с самой конфигурацией PAM.

  3. Команда тестирования saslauthd:

    Убедитесь, что saslauthd запущен и работает корректно. Попробуйте протестировать аутентификацию:

    # testsaslauthd -u paul -p 1234567 -s login

    Результат должен показывать 0: OK "Success." для успешной аутентификации.

Применение

  1. Проверка конфигурации PAM:

    Проверьте все файлы конфигурации PAM в директории /etc/pam.d/. Убедитесь, что файл для OpenVPN или по умолчанию имеет корректные параметры.

  2. Проверка плагина PAM:

    Убедитесь, что плагин openvpn-plugin-auth-pam.so доступен по указанному в конфигурации пути и что он соответствует вашей архитектуре системы.

  3. Диагностика saslauthd:

    Если testsaslauthd возвращает ошибку, это может указывать на проблему с PAM или неверно введенные учетные данные. Убедитесь, что saslauthd запущен правильно:

    # saslauthd -d -a pam -m /var/run/saslauthd/
  4. Дополнительные конфигурации:

    Попробуйте добавить в ваш файл server.conf строку:

    username-as-common-name

    Это может помочь OpenVPN правильно использовать имя пользователя для аутентификации.

  5. Изучение логов:

    Проанализируйте более детально логи как сервера, так и клиента. Установите уровень verb на более высокий (например, 4 или 5) для получения более подробной информации.

  6. Обновление системы:

    Ubuntu 15.04 является достаточно старой версией. Обновите систему до более свежей версии, чтобы устранить возможные ошибки и получить последние обновления безопасности.

Заключение

Очевидно, что успешная интеграция PAM в OpenVPN требует тщательной настройки и понимания используемых библиотек и сервисов. Убедитесь, что все компоненты системы совместимы друг с другом и настроены правильно. Использование современных и обновленных систем всегда выгодно в плане производительности и безопасности.

Оцените материал
Добавить комментарий

Капча загружается...