是我在 strace 中运行 testsaslauthd 时看到的
socket(PF_LOCAL, SOCK_STREAM, 0) = 3
connect(3, {sa_family=AF_LOCAL, sun_path="/var/run/saslauthd/mux"}, 110) = 0
writev(3, [{"\0\[email protected]\0\fxxx\0\4imap\0\0", 52}], 1) = 52
read(3, "\0@", 2) = 2
read(3, "NO [ALERT] Unexpected response from remote authentication server", 64) = 64
close(3) = 0
write(1, "0: NO \"authentication failed\"\n", 300: NO "authentication failed"
) = 30
exit_group(-1) = ?
+++ exited with 255 +++
root@messagerie[10.10.10.20] ~ #
在命令行上,我唯一看到的是:
root@messagerie[10.10.10.20] ~ # testsaslauthd -u a.chaouche@xxx -p xxx -f /var/run/saslauthd/mux -s smtp
0: NO "authentication failed"
root@messagerie[10.10.10.20] ~ #
添加领域并没有改变任何东西
root@messagerie[10.10.10.20] ~ # testsaslauthd -u [email protected] -p xxx -f /var/run/saslauthd/mux -r domain.tld -s smtp
0: NO "authentication failed"
root@messagerie[10.10.10.20] ~ #
saslauthd 以 -a rimap -O localhost 启动,连接到 courier 自己的 authdameon。
root@messagerie[10.10.10.20] ~ # saslauthd -a rimap -O localhost -c -m /var/run/saslauthd/
root@messagerie[10.10.10.20] ~ # pgrep -a saslauthd
1749 saslauthd -a rimap -O localhost -c -m /var/run/saslauthd/
1750 saslauthd -a rimap -O localhost -c -m /var/run/saslauthd/
1751 saslauthd -a rimap -O localhost -c -m /var/run/saslauthd/
1752 saslauthd -a rimap -O localhost -c -m /var/run/saslauthd/
1753 saslauthd -a rimap -O localhost -c -m /var/run/saslauthd/
root@messagerie[10.10.10.20] ~ #
在 syslog 中,我可以看到 imap 身份验证已收到并已成功
Mar 28 14:42:57 messagerie authdaemond: received auth request, service=imap, authtype=login
Mar 28 14:42:57 messagerie authdaemond: authmysql: trying this module
Mar 28 14:42:57 messagerie authdaemond: SQL query: SELECT email, password, "", 113, 120, "/var/vmail/", maildir, quota, 0, "" FROM users WHERE email = '[email protected]'
Mar 28 14:42:57 messagerie authdaemond: password matches successfully
Mar 28 14:42:57 messagerie authdaemond: authmysql: sysusername=<null>, sysuserid=113, sysgroupid=120, homedir=/var/vmail/, [email protected], fullname=0, maildir=domain.tld/a.chaouche/, quota=1073741824, options=<null>
Mar 28 14:42:57 messagerie authdaemond: authmysql: clearpasswd=<null>, passwd=xxx
Mar 28 14:42:57 messagerie authdaemond: Authenticated: sysusername=<null>, sysuserid=113, sysgroupid=120, homedir=/var/vmail/, [email protected], fullname=0, maildir=domain.tld/a.chaouche/, quota=1073741824, options=<null>
Mar 28 14:42:57 messagerie authdaemond: Authenticated: clearpasswd=xxx, passwd=xxx
Mar 28 14:42:57 messagerie imapd: LOGIN, [email protected], ip=[::1], port=[58425], protocol=IMAP
Mar 28 14:42:58 messagerie imapd: LOGOUT, [email protected], ip=[::1], headers=0, body=0, rcvd=19, sent=250, time=1
我确保 mux 文件存在并且位于正确的位置。它也在 777 中进行了修改(没有改变)
root@messagerie[10.10.10.20] ~ # ls /var/run/saslauthd/
total 968K
-rw------- 1 root root 0 Mar 28 14:38 cache.flock
-rw------- 1 root root 963K Mar 28 14:38 cache.mmap
srwxrwxrwx 1 root root 0 Mar 28 14:38 mux
-rw------- 1 root root 0 Mar 28 14:38 mux.accept
-rw------- 1 root root 5 Mar 28 14:38 saslauthd.pid
root@messagerie[10.10.10.20] ~ #
任何帮助都可以将 cyrus 的 saslauthd 配置为使用 courier 的 imap 服务器进行身份验证。
Courier 带有 libfam0,但由于某种原因,安装 gamin 解决了该问题(并卸载了 libfam0)。