PAM не будет аутентифицироваться с помощью mysql (make_scrambled_password устарела)

Я потратил некоторое время на поиск этого, и, похоже, у меня единственная проблема с PAM, не проходящим аутентификацию через mysql из-за текущих обновлений, поэтому я подумал, что опубликую свою проблему здесь, и если я найду решение, я опубликую здесь также для другие, чтобы следовать.

Короче говоря - я использую postfix с saslauthd и dovecot. Оба проходят аутентификацию через pam, используя mysql в качестве источника учетных данных.

До сегодняшнего обновления все работало нормально - я больше не могу подключиться к почтовому серверу, и вот что я вижу в журналах:

PAM unable to dlopen(/usr/lib/security/pam_mysql.so): /usr/lib/security/pam_mysql.so:     undefined symbol: make_scrambled_password
PAM adding faulty module: /usr/lib/security/pam_mysql.so
DEBUG: auth_pam: pam_authenticate failed: Module is unknown
do_auth         : auth failure: [user=xxxx] [service=smtp] [realm=xxxx] [mech=pam] [reason=PAM auth error]

Так что я могу ошибаться, но, насколько я понимаю, pam_mysql.so использует устаревший make_scrambled_password, который больше не поддерживается mysql.

Я не знаю, каким будет решение, и буду признателен, если кто-нибудь сможет дать совет.


Я проверил исходный код на странице проекта и вижу, что устаревшая функция используется. Так что, похоже, это ошибка в pam_mysql, и потребуется обновление ([сообщение об ошибке сообщается на странице sourceforge pam_mysql][1], а также в трекере сообщества архива ( https://bugs.archlinux.org/task/39083?project). = 5 & pagenum = 1))


Я видел некоторые исправления в Интернете ( https://lists.fedoraproject.org/pipermail/scm-commits/2011-June/613231.html), однако я не уверен, подходит ли это для производственной среды. Похоже, мне придется исправить это самому. Я опубликую патч здесь, чтобы другие могли его использовать.

Большое спасибо, Грег

1 ответ

Решение

Поддержка pam_mysql теперь прекращена из-за того, что проект был мертв в течение почти 6 лет. Решением будет миграция и использование другого сервера pam.

Я использовал cyrus sasl - теперь он был удален и заменен на dovecot, который обеспечивает поддержку аутентификации smtpd, распознаваемую postfix. Я настроил dovecot для использования sql изначально (без pam в середине).

Другие вопросы по тегам