我正在尝试设置 postfix 以将多个域作为别名处理,并使用 SMTP 服务器通过 sasldb 身份验证接受来自这些域的传入邮件。文档看起来很旧,而且许多信息来源相互矛盾,所以我正在寻找一些配置项的说明并解决我无法正常工作的 sasldb 身份验证。我的操作系统是 Debian 8。
第一的,这个 smptd.conf 文件是什么,其中包含:
pwcheck_method: auxprop
auxprop_plugin: sasldb
mech_list: PLAIN LOGIN
它会去哪里?我在各种教程中找到了三个不同的路径,/usr/lib/sasl2/smtpd.conf、/etc/sasl2/smtpd.conf 和 /etc/postfix/sasl/smtpd.conf。我们怎么知道使用的是哪一个?有一个配置变量 smtpd_sasl_path,但它的文档几乎不存在,它与实际配置有什么关系?有一个上一个问题关于这个变量并没有真正帮助理解。
我已将此文件放在三个位置,并且在 smtpd 给出的身份验证方法列表中,我仍然得到 $ 250-AUTH DIGEST-MD5 NTLM CRAM-MD5 PLAIN LOGIN
。
saslpasswd2 的领域是什么? 使用用户名是否不同[电子邮件保护]比 john 的 -u doe.com 更难?我们可以在身份验证过程中使用完整的电子邮件地址作为用户名吗?显然可以此评论,但我仍然不明白领域是什么。最后,这与 smtpd_sasl_local_domain 有什么关系,特别是在多虚拟域别名配置中?它似乎接受一个空值,这就是我所做的。
对于 sasldb 身份验证,是否需要使用 salsauthd? 我读了这里并且 postfix 无需安装 sasldb 即可使用 sasldb,而其他 人们官方文档也指出这是必需的。正确答案是什么?
对于管理多个域的虚拟域别名服务器,myorigin、myhostname 和 mydestination 应使用哪个值? 如果我们假设邮件客户端将配置正确的域名补全,那么 localhost.localdomain 可以吗?这与实际机器的主机名有何关系?
以下是我当前的 postfix 配置。我已使用 saslpasswd2 添加了用户,但无论我输入的是哪个领域和带域或不带域的用户名,身份验证总是失败。我可以使用 sasldblistusers2 查看用户列表,并且我已将 sasldb2 文件移动到 postfix 的 chroot (/var/spool/postfix/etc/sasldb2) 中,如下所示这里。
saslfinger - postfix Cyrus sasl configuration Wed Dec 2 11:59:11 CET 2015
version: 1.0.4
mode: server-side SMTP AUTH
-- basics --
Postfix: 2.11.3
System: Debian GNU/Linux 8 \n \l
-- smtpd is linked to --
libsasl2.so.2 => /usr/lib/x86_64-linux-gnu/libsasl2.so.2 (0x00007fb6d84b9000)
-- active SMTP AUTH and TLS parameters for smtpd --
smtpd_sasl_auth_enable = yes
smtpd_sasl_local_domain =
smtpd_sasl_path = sasl2/smtpd.conf
smtpd_sasl_security_options = noanonymous
smtpd_tls_cert_file = /etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file = /etc/ssl/private/ssl-cert-snakeoil.key
smtpd_tls_security_level = may
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
-- listing of /usr/lib/sasl2 --
total 20
drwxr-xr-x 2 root root 4096 Nov 30 00:12 .
drwxr-xr-x 44 root root 4096 Nov 14 23:39 ..
-rw-r--r-- 1 root root 4 Nov 28 21:15 berkeley_db.active
-rw-r--r-- 1 root root 4 Sep 25 10:54 berkeley_db.txt
-rw-r--r-- 1 root root 70 Nov 30 00:12 smtpd.conf
-- listing of /etc/sasl2 --
total 12
drwxr-xr-x 2 root root 4096 Nov 30 00:41 .
drwxr-xr-x 77 root root 4096 Nov 30 01:19 ..
-rw-r--r-- 1 root root 70 Nov 29 23:22 smtpd.conf
-- listing of /etc/postfix/sasl --
total 12
drwxr-xr-x 2 root root 4096 Nov 30 00:41 .
drwxr-xr-x 3 root root 4096 Nov 30 01:18 ..
-rw-r--r-- 1 root root 70 Nov 30 00:41 smtpd.conf
-- content of /usr/lib/sasl2/smtpd.conf --
pwcheck_method: auxprop
auxprop_plugin: sasldb
mech_list: PLAIN LOGIN
-- content of /etc/sasl2/smtpd.conf --
pwcheck_method: auxprop
auxprop_plugin: sasldb
mech_list: PLAIN LOGIN
-- content of /etc/postfix/sasl/smtpd.conf --
pwcheck_method: auxprop
auxprop_plugin: sasldb
mech_list: PLAIN LOGIN
-- content of /etc/postfix/sasl/smtpd.conf --
pwcheck_method: auxprop
auxprop_plugin: sasldb
mech_list: PLAIN LOGIN
-- active services in /etc/postfix/master.cf --
# service type private unpriv chroot wakeup maxproc command + args
# (yes) (yes) (yes) (never) (100)
smtp inet n - - - - smtpd
submission inet n - - - - smtpd
-o syslog_name=postfix/submission
-o smtpd_tls_security_level=may
-o smtpd_sasl_auth_enable=yes
-o smtpd_reject_unlisted_recipient=no
-o smtpd_recipient_restrictions=permit_sasl_authenticated,reject
-o milter_macro_daemon_name=ORIGINATING
smtps inet n - - - - smtpd
-o syslog_name=postfix/smtps
-o smtpd_tls_wrappermode=yes
-o smtpd_sasl_auth_enable=yes
-o smtpd_client_restrictions=permit_sasl_authenticated,reject
-o milter_macro_daemon_name=ORIGINATING
pickup unix n - - 60 1 pickup
cleanup unix n - - - 0 cleanup
qmgr unix n - n 300 1 qmgr
tlsmgr unix - - - 1000? 1 tlsmgr
rewrite unix - - - - - trivial-rewrite
bounce unix - - - - 0 bounce
defer unix - - - - 0 bounce
trace unix - - - - 0 bounce
verify unix - - - - 1 verify
flush unix n - - 1000? 0 flush
proxymap unix - - n - - proxymap
proxywrite unix - - n - 1 proxymap
smtp unix - - - - - smtp
relay unix - - - - - smtp
showq unix n - - - - showq
error unix - - - - - error
retry unix - - - - - error
discard unix - - - - - discard
local unix - n n - - local
virtual unix - n n - - virtual
lmtp unix - - - - - lmtp
anvil unix - - - - 1 anvil
scache unix - - - - 1 scache
maildrop unix - n n - - pipe
flags=DRhu user=vmail argv=/usr/bin/maildrop -d ${recipient}
uucp unix - n n - - pipe
flags=Fqhu user=uucp argv=uux -r -n -z -a$sender - $nexthop!rmail ($recipient)
ifmail unix - n n - - pipe
flags=F user=ftn argv=/usr/lib/ifmail/ifmail -r $nexthop ($recipient)
bsmtp unix - n n - - pipe
flags=Fq. user=bsmtp argv=/usr/lib/bsmtp/bsmtp -t$nexthop -f$sender $recipient
scalemail-backend unix - n n - 2 pipe
flags=R user=scalemail argv=/usr/lib/scalemail/bin/scalemail-store ${nexthop} ${user} ${extension}
mailman unix - n n - - pipe
flags=FR user=list argv=/usr/lib/mailman/bin/postfix-to-mailman.py
${nexthop} ${user}
-- mechanisms on localhost --
250-AUTH DIGEST-MD5 NTLM CRAM-MD5 PLAIN LOGIN^M
-- end of saslfinger output --
考虑到我为获得正确配置而浪费的时间,我将尝试制作一个带有正确解释的最新教程。=>完毕
感谢您的阅读以及我将给出的答案。
答案1
这个 smptd.conf 文件是什么,它包含...并且它去哪里了?
首先,Postfix 中有配置选项,指定此文件应位于何处(如果使用 cyrus sasl)以及如何命名。这些选项包括:
smtpd_sasl_path = smtpd
cyrus_sasl_config_path = /etc/sasl2/
Postfix 将它们合并并作为 /etc/sasl2/smtpd.conf 发送给 cyrus sasl
最后,这与 smtpd_sasl_local_domain 有何关系,特别是在多虚拟域别名配置中?
据我所知,它被用作未提供域名的用户的默认域。
对于管理多个域的虚拟域别名服务器,myorigin、myhostname 和 mydestination 应该使用哪个值?
随心所欲。我更喜欢将它们全部(以及 smtpd_sasl_local_domain)设置为系统主机名,这样在此主机上生成的电子邮件始终显示为来自该主机。这有助于构建具有备份 MX 的冗余系统,该系统将具有相同的虚拟域集,但系统名称不同,因此我总是可以区分主机。
您可以要求更多,我当然没有涵盖这些问题的每个方面。当然,Postfix 有完美的文档,几乎涵盖了所有内容。
答案2
http://www.postfix.org/SASL_README.html应该是您的首选参考,而不是 serverfault 页面。如果需要,请转到此处的页面以了解更具体的要点,但 postfix 网站上的文档通常都相当不错。正如该页面所述,
Postfix 本身不实现 SASL,而是使用现有实现作为构建块。这意味着一些与 SASL 相关的配置文件将属于 Postfix,而其他配置文件则属于 Postfix 将使用的特定 SASL 实现。本文档涵盖 Postfix 和非 Postfix 配置。
您似乎没有配置 smtpd_sasl_application_name
(这是实际的,而不是smtpd_sasl_type
由于您的旧版本的 postfix),因此默认的 Cyrus SASL 可能有效。您输入的值smtpd_sasl_path
将传递给 cyrus sasl 库,并且可能相对于其基本路径进行解释。我猜想您正在使用 Cyrus SASL 2.x,但过去使用过 1.x,并且留下了配置文件。不过,考虑到您的 postfix 版本,我可能错了。检查一下。另外,看看实际安装了哪些包。
smtpd_sasl_path = sasl2/smtpd.conf
几乎肯定是错误的。