Назад | Перейти на главную страницу

Dovecot на CentOS 6 не работает после обновления

Недавно я обновил CentOS до версии 6.8 (Final). Не уверен, перестала ли тогда работать голубятня или чуть позже. я вижу ничего в secure войти в систему правильный пароль и «сбой» из-за неправильного пароля. Я никогда не трогал /etc/pam.d - должно быть ОС по умолчанию. Раньше это работало. Понятия не имею, почему сейчас не работает.

Я использую dovecot + sendmail. Sendmail аутентифицируется через sasl-> PAM и работает нормально.

Я пробовал passdb shadow чтобы увидеть, что не так, но безуспешно.

Это может быть совпадение, но по какой-то причине md check была принудительной (с использованием raid 1 на всех разделах)

Обновить: После завершения рейдовой проверки dmesg показывает это.

auth[14058]: segfault at 9c ip 000000000040f8e0 sp 00007ffe99788070 error 4 in auth[400000+37000]
auth[14133]: segfault at 8c ip 000000000040f8e0 sp 00007ffc7ec2ee60 error 4 in auth[400000+37000]

Раньше dmesg был заполнен этими сообщениями: «отложенная проверка данных md4 до завершения md3», поэтому я не мог видеть segfault ...

Конфигурация:

# dovecot -n
# 2.0.9: /etc/dovecot/dovecot.conf
# OS: Linux 2.6.32-642.1.1.el6.centos.plus.x86_64 x86_64 CentOS release 6.8 (Final)
auth_debug = yes
auth_gssapi_hostname = $ALL
auth_verbose = yes
log_path = /var/log/dovecot.log
mail_debug = yes
mail_location = mbox:~/mail:INBOX=/var/spool/mail/%u
mbox_write_locks = fcntl
passdb {
  args = failure_show_msg=yes dovecot
  driver = pam
}
passdb {
  driver = shadow
}
protocols = imap pop3
service auth-worker {
  user = root
}
service auth {
  user = root
}
ssl_cert = </etc/pki/dovecot/certs/dovecot.pem
ssl_key = </etc/pki/dovecot/private/dovecot.pem
userdb {
  driver = passwd
}
verbose_proctitle = yes

журнал голубятни:

Jul 18 02:18:12 auth: Debug: Loading modules from directory: /usr/lib64/dovecot/auth
Jul 18 02:18:12 auth: Debug: Module loaded: /usr/lib64/dovecot/auth/libauthdb_ldap.so
Jul 18 02:18:12 auth: Debug: Module loaded: /usr/lib64/dovecot/auth/libdriver_sqlite.so
Jul 18 02:18:12 auth: Debug: Module loaded: /usr/lib64/dovecot/auth/libmech_gssapi.so
Jul 18 02:18:12 auth: Debug: auth client connected (pid=24897)
Jul 18 02:18:16 auth: Debug: client in: AUTH    1       PLAIN   service=imap    secured lip=5.9.143.206 rip=176.12.6.242        lport=143       rport=64099
Jul 18 02:18:16 auth: Debug: client out: CONT   1
Jul 18 02:18:16 auth: Debug: client in: CONT<hidden>
Jul 18 02:18:16 auth: Debug: Loading modules from directory: /usr/lib64/dovecot/auth
Jul 18 02:18:16 auth: Debug: Module loaded: /usr/lib64/dovecot/auth/libauthdb_ldap.so
Jul 18 02:18:16 auth: Debug: Module loaded: /usr/lib64/dovecot/auth/libdriver_sqlite.so
Jul 18 02:18:16 auth: Debug: Module loaded: /usr/lib64/dovecot/auth/libmech_gssapi.so
Jul 18 02:18:16 auth: Debug: pam(npelov,176.12.6.242): lookup service=dovecot
Jul 18 02:18:16 auth: Debug: pam(npelov,176.12.6.242): #1/1 style=1 msg=Password:
Jul 18 02:18:19 auth: Info: pam(npelov,176.12.6.242): pam_authenticate() failed: Authentication failure (password mismatch?)
Jul 18 02:18:19 master: Error: service(auth): child 24898 killed with signal 11 (core dumps disabled)
Jul 18 02:18:19 auth: Debug: Loading modules from directory: /usr/lib64/dovecot/auth
Jul 18 02:18:19 auth: Debug: Module loaded: /usr/lib64/dovecot/auth/libauthdb_ldap.so
Jul 18 02:18:19 auth: Debug: Module loaded: /usr/lib64/dovecot/auth/libdriver_sqlite.so
Jul 18 02:18:19 auth: Debug: Module loaded: /usr/lib64/dovecot/auth/libmech_gssapi.so
Jul 18 02:18:19 auth: Debug: auth client connected (pid=24897)
Jul 18 02:18:19 auth: Debug: client in: AUTH    2       PLAIN   service=imap    secured lip=5.9.143.206 rip=176.12.6.242        lport=143       rport=64099     resp=<hidden>
Jul 18 02:18:19 auth: Debug: Loading modules from directory: /usr/lib64/dovecot/auth
Jul 18 02:18:19 auth: Debug: Module loaded: /usr/lib64/dovecot/auth/libauthdb_ldap.so
Jul 18 02:18:19 auth: Debug: Module loaded: /usr/lib64/dovecot/auth/libdriver_sqlite.so
Jul 18 02:18:19 auth: Debug: Module loaded: /usr/lib64/dovecot/auth/libmech_gssapi.so
Jul 18 02:18:19 auth: Debug: pam(npelov,176.12.6.242): lookup service=dovecot
Jul 18 02:18:19 auth: Debug: pam(npelov,176.12.6.242): #1/1 style=1 msg=Password:
Jul 18 02:18:20 auth: Info: pam(npelov,176.12.6.242): pam_authenticate() failed: Authentication failure (password mismatch?)
Jul 18 02:18:20 master: Error: service(auth): child 25050 killed with signal 11 (core dumps disabled)
Jul 18 02:18:24 auth: Debug: Loading modules from directory: /usr/lib64/dovecot/auth
Jul 18 02:18:24 auth: Debug: Module loaded: /usr/lib64/dovecot/auth/libauthdb_ldap.so
Jul 18 02:18:24 auth: Debug: Module loaded: /usr/lib64/dovecot/auth/libdriver_sqlite.so
Jul 18 02:18:24 auth: Debug: Module loaded: /usr/lib64/dovecot/auth/libmech_gssapi.so
Jul 18 02:18:24 auth: Debug: auth client connected (pid=24897)

ручной тест:

# openssl s_client -connect <host>:993
CONNECTED(00000003)
..............................................
..............................................
..............................................
a1 LOGIN npelov validpassword
a1 NO [UNAVAILABLE] Temporary authentication failure.
* OK Waiting for authentication process to respond..

Похоже, у вас произошел какой-то сбой программного диска, который вызвал проверку / восстановление дисков, и этот сбой повредил часть установки dovecot.

Я бы также:

  • Если возможно, проверьте S.M.A.R.T. счетчики производительности / работоспособности для ваших дисков, может произойти катастрофический отказ оборудования
  • Проверьте файлы других пакетов с помощью rpm -Va; любые двоичные файлы неправильного размера или неправильной контрольной суммы также могут быть повреждены

Переустановка пакета dovecot устранила проблему:

# yum reinstall dovecot
# service dovecot restart

Обновить: smart не сообщает об ошибках.