testsaslauthd 给出“没有此文件或目录”错误

testsaslauthd 给出“没有此文件或目录”错误

我正在尝试使用 virtualmin 设置 postifix 服务器,在此过程中我遇到了 SASL 错误,提示“没有这样的文件或目录”。因此我尝试使用“testsaslauthd -u 用户名 -p 密码”进行测试,但这也给了我“没有这样的文件或目录”错误。postfix 安装似乎已 chroot,但目录/var/spool/postfix/var/run/saslauthd/是空的。查看我在谷歌上找到的大量文章,我发现当 postfix chroot 时,该目录中应该有一个 mux 文件和一些其他文件。我猜这就是导致“没有这样的文件或目录”错误的原因。

我该如何强制生成丢失的文件来修复此问题?或者有人知道如何解决这个问题吗?

完整错误(使用 sudo 会产生相同的结果):

$ testsaslauthd -u username -p password
connect() : No such file or directory
0:

我知道 postfix 安装是 chrooted,因为它已将 smtp 服务设置为chrooted: y/etc/postfix/master.cf我能找到的所有配置文件都尝试在 处找到 saslauth 文件/var/spool/postfix/var/run/saslauth/,但这个目录对我来说是空的。

如果有什么遗漏,请见谅。这是我第一次在这里或任何技术论坛上发帖。

答案1

此问题不是由网站托管控制面板引起的,我在设置带有 sasl 身份验证的 postfix + cyrus imap 时也遇到了同样的问题。这里有一个解决方案,效果非常好

http://blog.bekyarov.info/2013/01/04/testsaslauthd-connect-no-such-file-or-directory-0-postfix-postfixsmtpd11571-warning-sasl-authentication-failure-cannot-connect-to-saslauthd-server-no-such-file-or-directory/

基本上,现代 postfix 在 /var/spool/postfix 下 chrooted 运行,并且 saslautd 内容通常在 /var/spool/postfix/var/run/saslauthd 下创建(假设您正在关注最新的教程)。

旧版本的 postfix 默认不运行 chroot,后来人们开始意识到,如果服务器被黑客接管,后果不堪设想,因此 chroot 成为默认设置,作为额外的防御层。但随之而来的是一些复杂性。从 postfix 用户的角度来看,当其进程运行时,对于 postfix(或对于在 postfix 内部运行恶意软件的任何黑客而言),“/var/spool/postfix”看起来就像“/”。因此,即使他们控制了 postfix 进程,他们也会被困在 chroot 监狱中。

但是,当实际的 saslauthd 守护程序运行时,它会在 /var/run/saslauthd 下寻找此目录。因为它不在 chroot jail 中运行,而且教程并没有真正向您展示如何让它在正确的位置查找内容。因此,要修复它,只需从实际目录创建一个符号链接即可/var/spool/postfix/var/run/saslauthd/var/运行/saslauthd。Saslauthd 可以按照符号链接进入 jail,而 postfix 无法看到 jail 外面。

然后使用以下命令进行测试:

testsaslauthd -r mydomain.com -u myusername -p mypassword

假设您正在使用以下电子邮件对用户进行测试:[电子邮件保护]

相关内容