我想为一些域托管邮件服务。我已成功设置 postfix 来查询这些虚拟域的 sql。我想做的是:
对于 25 上的连接:
- 拒绝中继(仅传送至我的虚拟域的收件人)
- 保留 tls 可选,但仅当客户端执行 tls 时才提供身份验证
- 仅接受非黑名单客户端(例如,限制来自 spamhaus 的 XBL+SBL+PBL)或执行 tls 和 auth 的客户端(设置为使用 auth 和 tls 进行身份验证的“朋友邮件服务器”)
对于 587 上的连接:
- 强制执行 tls 和 auth
- 允許搖擺。
- 仅接受未列入黑名单的客户端(黑名单如上所述,但省略 PBL 检查)
我的问题:
答:我知道上述的后缀选项,但我找不到如何根据监听端口来区分它们。
B. 我是否会因为上述政策而与所谓的合法客户遇到众所周知的问题?
我是邮件服务器设置的新手,如有无意义的问题/假设,请见谅(请指出)。谢谢。
答案1
这很容易,
您
/etc/postfix/main.cf
将添加/更改smtpd_tls_security_level=may
这样默认情况下 TLS 可用(但可选)。
然后,您将通过覆盖参数
/etc/postfix/master.cf
来覆盖端口 587(端口):submission
submission inet n - n - - smtpd -o smtpd_tls_security_level=encrypt
这要求所有提交(端口 587)连接都使用 TLS。
至于拒绝中继,这是默认设置;仅允许经过身份验证的用户和您在中指定的 IP 地址进行中继mynetworks
。
main.cf
最后,您可以通过附加以下内容来添加黑名单smtpd_recipient_restrictions
:
reject_rbl_client zen.spamhaus.org,
或任何您想要的黑名单。这些应该出现在列表末尾,就在最后一个 之前permit
。
最后一件事。有关如何防止垃圾邮件的更多想法,请参阅打击垃圾邮件 - 作为电子邮件管理员、域名所有者或用户,我能做什么?
答案2
我不知道问题 B 的答案,但是问题 A 的答案是:
在 Postfix 中,通常有一个master.cf
定义每个正在运行的进程的文件,通常在 中。在该文件中,每个正在运行的 Postfix 服务都有一个条目,因此 port和 port/etc/postfix
有两个不同的条目。对于它们中的每一个,您还可以将参数传递给以使它们具有不同的设置。25
587
smtpd
这是我的邮件服务器的一个例子:
4.3.2.1:25 inet n - - - - smtpd
-o smtpd_sasl_auth_enable=yes
4.3.2.1:10027 inet n - - - - smtpd
-o mynetworks=91.190.245.4/32 127.0.0.0/8
-o smtpd_client_restrictions=permit_mynetworks,reject