MySQL 5.7 (RHEL6.6) Аутентификация PAM с помощью AD

Я работаю над настройкой аутентификации AD в MySQL (установленной на RHEL 6.6) с использованием подключаемых модулей аутентификации (PAM).

Пока что мои пользователи AD могут войти в систему RHEL, используя учетные данные AD. Но когда я пытаюсь войти в MySQL с помощью плагина PAM, я получаю сообщение об ошибке «Отказано в доступе». Конфигурация PAM для MySQL выглядит следующим образом:

/etc/pam.d/mysql:
auth   required    pam_winbind.so
account required    pam_winbind.so

Когда я проверяю журналы ошибок MySQL, я вижу системную ошибку в методе authentication_pam(). Ниже приведены журналы mysqld:

entering auth_pam_server 
entering auth_pam_next_token 
auth_pam_next_token:reading at [mysql, MySQLUsers=mysql_ad], sep=[,] 
auth_pam_next_token:state=PRESPACE, ptr=[mysql, MySQLUsers=mysql_ad], out=[] 
auth_pam_next_token:state=IDENT, ptr=[mysql, MySQLUsers=mysql_ad], out=[] 
auth_pam_next_token:state=AFTERSPACE, ptr=[, MySQLUsers=mysql_ad], out=[mysql] 
auth_pam_next_token:state=DELIMITER, ptr=[, MySQLUsers=mysql_ad], out=[mysql] 
auth_pam_next_token:state=DONE, ptr=[, MySQLUsers=mysql_ad], out=[mysql] 
leaving auth_pam_next_token on /export/home/pb2/build/sb_0-19016729-1464156482.79/rpm/BUILD/mysqlcom-pro-5.7.13/mysqlcom-pro-5.7.13/plugin/pam-authentication-plugin/src/parser.c:195 
auth_pam_server:password ******** received 
auth_pam_server:pam_start rc=0 
auth_pam_server:pam_set_item(PAM_RUSER,administrator) rc=0 
auth_pam_server:pam_set_item(PAM_RHOST,localhost) rc=0 
entering auth_pam_server_conv 
auth_pam_server_conv:PAM_PROMPT_ECHO_OFF [Password: ] received 
leaving auth_pam_server_conv on /export/home/pb2/build/sb_0-19016729-1464156482.79/rpm/BUILD/mysqlcom-pro-5.7.13/mysqlcom-pro-5.7.13/plugin/pam-authentication-plugin/src/authentication_pam.c:269 
**auth_pam_server:pam_authenticate rc=4 
auth_pam_server: rc=4 
PAM error: System error** 
leaving auth_pam_server on /export/home/pb2/build/sb_0-19016729-1464156482.79/rpm/BUILD/mysqlcom-pro-5.7.13/mysqlcom-pro-5.7.13/plugin/pam-authentication-plugin/src/authentication_pam.c:441 
2016-07-18T12:48:22.360536Z 122 [Note] Access denied for user 'administrator'@'localhost' (using password: YES) 

Согласно приведенной выше конфигурации PAM, PAM использует winbind для поиска учетных данных пользователя в AD и аутентификации, что является тем же процессом для аутентификации пользователей AD в Linux. И когда я вижу логи winbind, я вижу следующее:

[2016/07/18 08:27:24.236701,  5] winbindd/winbindd_pam.c:1868(winbindd_dual_pam_auth)
  Plain-text authentication for user CORPAD\administrator returned NT_STATUS_OK (PAM: 0)

Это говорит мне, что аутентификация работает нормально из winbind, но когда winbind возвращает управление обратно в PAM, что-то не работает и возникает системная ошибка.


person Suhail    schedule 18.07.2016    source источник


Ответы (1)


Ну, я понял это.

Во-первых, я включил журналы отладки в PAM после этого поста — https://serverfault.com/questions/249671/switch-on-pam-debugging-to-syslog.

Когда я это сделал, я обнаружил, что каждый раз, когда я пытался аутентифицироваться, я получал следующую ошибку: Ошибка аудита_open() PAM: Отказано в доступе.

Основная причина этого заключалась в том, что SELinux применялся. Поэтому я отключил SELinux и перезапустил систему, что решило эту проблему. Теперь я могу войти в Linux, используя свои учетные данные AD, а затем использовать команду mysql и также пройти аутентификацию в mysql!

person Suhail    schedule 19.07.2016