我最近将 CentOS 更新到了 6.8(最终版)。我不确定 dovecot 是否停止工作了,还是稍后停止工作了。我明白了没有什么在secure
登录正确的密码密码错误时会显示“失败”。我从未修改过 /etc/pam.d - 应该是操作系统默认设置。以前它能用。我不知道为什么现在它不能用了。
我正在使用 dovecot + sendmail。Sendmail 通过 sasl->PAM 进行身份验证,并且运行正常。
我尝试使用 passdbshadow
来查看问题所在,但是没有成功。
这可能是巧合,但由于某种原因,强制进行 md 检查(在所有分区上使用 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 完成”,所以我看不到段错误......
配置:
# 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..
答案1
听起来你遭遇了某种软磁盘故障,触发了磁盘检查/重建,并且该故障损坏了部分 dovecot 安装。
我还会:
- 如果可能的话,请检查磁盘的 SMART 性能/健康计数器,可能即将发生灾难性的硬件故障
- 使用以下方法验证其他软件包的文件
rpm -Va
;任何大小不正确或校验和错误的二进制文件也可能已损坏
答案2
重新安装 dovecot 包解决了该问题:
# yum reinstall dovecot
# service dovecot restart
更新: smart 没有报告任何错误。