Jam*_*mes 6 email postfix saslauthd sasl ubuntu-10.04
我的服务器出现了预期问题,我无法从邮件客户端进行连接。
我查看了服务器日志,唯一可以确定问题的是以下事件:
Nov 23 18:32:43 hig3 dovecot: imap-login: Login: user=, method=PLAIN, rip=xxxxxxxx, lip=xxxxxxxx, TLS Nov 23 18:32:55 hig3 postfix/smtpd[11653]: connect from xxxxxxx .co.uk[xxxxxxx] Nov 23 18:32:55 hig3 postfix/smtpd[11653]:警告:SASL 认证失败:无法连接到 saslauthd 服务器:没有这样的文件或目录 11 月 23 日 18:32:55 hig3 postfix/smtpd [11653]:警告:xxxxxxx.co.uk[xxxxxxxx]:SASL LOGIN 身份验证失败:通用失败 11 月 23 日 18:32:56 hig3 postfix/smtpd[11653]:来自 xxxxxxx.co.uk[xxxxxxx] 的 AUTH 后失去连接11 月 23 日 18:32:56 hig3 postfix/smtpd[11653]:与 xxxxxxx.co.uk[xxxxxxxx] 断开连接
这个问题很不寻常,因为就在半小时前在我的办公室,我的邮件客户端没有提示我输入正确的用户名和密码。我没有对服务器进行任何更改,因此我无法理解会发生什么导致此错误发生。
搜索错误消息会产生各种结果,其中包含我不确定的“修复”(显然不想让它变得更糟或修复未损坏的东西)。
当我跑
测试aslauthd -u xxxxx -p xxxxxx
我也得到以下结果:
connect() : 没有那个文件或目录
但是当我跑
testaslauthd -u xxxxx -p xxxxxx -f /var/spool/postfix/var/run/saslauthd/mux -s smtp
我得到:
0:好的“成功”。
我在另一个论坛上找到了这些命令,但并不完全确定它们的含义,但我希望它们可以指出问题所在。
当我跑
ps -ef|grep saslauthd
这是输出:
根 1245 1 0 Nov24 ? 00:00:00 /usr/sbin/saslauthd -a pam -c -m /var/spool/postfix/var/run/saslauthd -r -n 5 root 1250 1245 0 Nov24 ? 00:00:00 /usr/sbin/saslauthd -a pam -c -m /var/spool/postfix/var/run/saslauthd -r -n 5 root 1252 1245 0 Nov24 ? 00:00:00 /usr/sbin/saslauthd -a pam -c -m /var/spool/postfix/var/run/saslauthd -r -n 5 root 1254 1245 0 Nov24 ? 00:00:00 /usr/sbin/saslauthd -a pam -c -m /var/spool/postfix/var/run/saslauthd -r -n 5 root 1255 1245 0 Nov24 ? 00:00:00 /usr/sbin/saslauthd -a pam -c -m /var/spool/postfix/var/run/saslauthd -r -n 5 root 5902 5885 0 08:51 pts/0 00:00:00 grep --color=auto saslauthd
如果有什么不同,我正在运行 Ubuntu 10.04.1、Postfix 2.7.0 和 Webmin/Virtualmin。
Chr*_*uet 13
Postfix 可以在 chroot(默认在/var/spool/postfix)中运行,也可以不运行。如果是,它将尝试打开/var/spool/postfix/var/run/saslauthd/mux以进行 sasl 身份验证。如果不是,它将尝试打开/var/run/saslauthd/mux
似乎出于某种原因,您的 postfix 实例在 chroot 中运行,现在不再是了。这很奇怪,但这就是我从你问题的细节中猜测的。如果发生了这种情况,您可以更改 saslauthd 配置以/var/run/saslauthd再次在 chroot 中使用或运行 postfix。
要知道您的 Postfix 是否正在运行 chroot,您可以检查/etc/postfix/master.cf:
smtp inet n - y - - smtpdor行smtp inet n - - - - smtpd,那么您的Postfix 正在 chroot 中运行;smtp inet n - n - - smtpd那么你的Postfix 没有在 chroot 中运行。此检查来自/etc/default/saslauthd(Ubuntu sasl 配置文件)。
小智 5
看起来postfix总是在 chroot 的位置中查找,saslauthd即使它配置为不使用 chroot 环境提供服务。
我发现这篇博文最有帮助,即使它是 2005 年的!
http://www.jimmy.co.at/weblog/?p=52
postfix 做了一个 chroot,所以它不能与 saslauthd 通信。这是棘手的部分:
Run Code Online (Sandbox Code Playgroud)rm -r /var/run/saslauthd/ mkdir -p /var/spool/postfix/var/run/saslauthd ln -s /var/spool/postfix/var/run/saslauthd /var/run chgrp sasl /var/spool/postfix/var/run/saslauthd adduser postfix sasl
您可以saslauthd使用以下方法在调试模式下运行:
saslauthd -c -d -a pam -m /var/run/saslauthd
从您的客户那里,执行以下操作:
openssl s_client -CApath /etc/ssl/certs/ -starttls smtp -connect mail.mydomain.com:587
出现提示时输入:
HELO mynotebook.com
LOGIN PLAIN <base64code>
Run Code Online (Sandbox Code Playgroud)
其中base64code位来源于此:
perl -MMIME::Base64 -e 'print encode_base64("\000username\000password");'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
20124 次 |
| 最近记录: |