POSTFIX SASL 身份验证错误

POSTFIX SASL 身份验证错误

我已经对下面提到的链接提出了疑问,并且我在 main.cf 中有下面提到的配置 POSTFIX SASL 配置

主配置文件


alias_database = hash:/etc/aliases
alias_maps = hash:/etc/aliases
command_directory = /usr/sbin
config_directory = /etc/postfix
daemon_directory = /usr/libexec/postfix
data_directory = /var/lib/postfix
debug_peer_level = 2
debugger_command = PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin ddd $daemon_directory/$process_name $process_id & sleep 5
html_directory = no
inet_interfaces = all
inet_protocols = all
mail_owner = postfix
mailq_path = /usr/bin/mailq.postfix
manpage_directory = /usr/share/man
mydestination = $myhostname,<"所有其他目标列表">
mydomain = <"我的域名">
myhostname = <"我的热名">
mynetworks = <"全部IPS">
myorigin = $mydomain
newaliases_path = /usr/bin/newaliases.postfixqueue_directory
= /var/spool/postfixreadme_directory
= /usr/share/doc/postfix-2.10.1/README_FILESrelay_domains
= $mydestinationrelayhost
= <"我的中继主机服务器详细信息">
sample_directory = /usr/share/doc/postfix-2.10.1/samplessendmail_path
= /usr/sbin/sendmail.postfixsetgid_group
= postdropunknown_local_recipient_reject_code
= 550
smtpd_sasl_type = cyrus
smtpd_sasl_path = smtpd
cyrus_sasl_config_path = /etc/postfix/sasl
smtpd_sasl_auth_enable =
yesbroken_sasl_auth_clients = yes
smtpd_sasl_security_options = noanonymous

主配置文件


#文件有下面提到的
smtp inet n - y - - smtpd #smtp inet n - n - 1 postscreen #smtpd pass - - - - - smtpd
#dnsblog unix - - n - 0 dnsblog
#tlsproxy unix - - n - 0 tlsproxy
#submission inet n - - - - smtpd

/etc/postfix/sasl/smtpd.conf


pwcheck_method:saslauthd mech_list:登录PLAIN
saslauthd_path:private/saslauthd/mux

通过上述配置,我收到以下错误 postfix/smtpd[20980]: 警告:SASL 身份验证失败:无法连接到 saslauthd 服务器:没有此文件或目录 postfix/smtpd[20980]: 警告:未知[]:SASL LOGIN 身份验证失败:一般故障

答案1

简单来说:Postfix 使用文件与 SASL(saslauthd)进行通信。在两者的配置中,您可以指定要使用的路径。在该路径中,将创建以下文件:

~# ls -l /var/spool/postfix/var/run/saslauthd/
total 4
srwxrwxrwx 1 root root 0 Feb 12 11:41 mux
-rw------- 1 root root 0 Feb 12 11:41 mux.accept
-rw------- 1 root root 7 Feb 12 11:41 saslauthd.pid

您的 postfix 进程很可能被 chrooted。从安全角度来看,这是件好事。这意味着 postfix 会将其 sasl 内容写入 /whatever-your-postfix-chroot-is/var/run/saslauthd/

我认为你不应该在路径中指定文件。所以不要:

saslauthd_path:私有/saslauthd/mux

因为这会导致 postfix 寻找 private/saslauthd/mux/mux 文件。这可能就是您现在想要的。

要么完全保留该行并使用默认路径,要么明确指定 sasl 路径:

saslauthd_path: private/saslauthd/

到目前为止,关于 Postfix 方面的事情。

还有 SASL 方面的问题。在 saslauthd 配置中,您有 OPTIONS 参数。查看 -m 参数,默认情况下为 /var/run/saslauthd/。

由于您的 postfix 可能已 chroot,因此它无法访问 /var/run/saslauthd/ 路径。因此,请将您的 SASL 配置更改为 /whatever-your-postfix-chroot-is/private/saslauthd/ 如下所示:OPTIONS="-m /whatever-your-postfix-chroot-is/private/saslauthd/ -r"

然后重启 saslauthd

systemctl restart saslauthd

如果您仍然遇到 Postfix 和 saslauthd 之间的通信问题,建议您发布

ps -ef | grep sasl

答案2

错误消息显示:无法连接到 saslauthd 服务器:没有此文件或目录。最有可能的两个解释是 saslauthd 没有运行,或者 smtpd 和 saslauthd 对名称不一致。

相关内容