Postfix 虚拟别名和 sasldb 配置

Postfix 虚拟别名和 sasldb 配置

我正在尝试设置 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几乎肯定是错误的。

相关内容