限制端口25仅限本地交付

我configuration了我的后缀,以便我的服务器下的用户通过端口587发送邮件,端口25将只用于从邮件服务器接收邮件。

如果连接到端口25的邮件不允许在邮件服务器之外,并且由于拒绝中继访问而被拒绝,我就成功了。 而在端口587上,客户端能够将邮件发送到外部邮件服务器。

为了实现这一点,我已经在我的main.cf中设置了

smtpd_recipient_restriction=permit_mynetworks, reject_unauth_destination 

那是我删除了permit_sasl_authenticated。

如果我添加这个条件,邮件被允许发送到networking之外,如果我正在删除条件,任何人都可以连接到端口25,因为没有身份validation可以发送任何数量的邮件给本地收件人。

我可以在端口25上使用sasl身份validation的方式是什么,但是阻止它在我的networking外部传递邮件。

在main.cf中设置:

 smtpd_recipient_restrictions= reject_unauth_pipelining,permit_mynetworks,reject_unauth_destination, reject_invalid_hostname,reject_non_fqdn_hostname,reject_unknown_recipient_domain, reject_non_fqdn_recipient,reject_unauth_destination,check_sender_access mysql:/etc /postfix/mysql-virtual_sender.cf,reject_non_fqdn_sender, reject_unknown_sender_domain,reject_unknown_recipient_domain,reject_rbl_client cbl.abuseat.org,reject_rbl_client dul.dnsbl.sorbs.net,reject_rbl_client ix.dnsbl.manitu.net,check_recipient_access mysql:/etc/postfix/mysql- virtual_recipient.cf,permit 

在master.cf中设置

 submission inet n - - - - smtpd -o syslog_name=postfix/submission -o smtpd_tls_security_level=encrypt -o smtpd_sasl_auth_enable=yes -o smtpd_recipient_restrictions=permit_sasl_authenticated,reject 

在master.cf中,您可以添加每个端口的限制。 看看master.cf文件的底部,你会看到类似这样的东西:

#submission inet n – n – – smtpd
要么
#587 inet n - n - - smtpd

你会想要取消注释,然后添加(像这样的东西,看看每个值是什么)

提交inet n – n – – smtpd
-o smtpd_tls_security_level =encryption
-o smtpd_sasl_auth_enable =是
-o smtpd_client_restrictions = permit_sasl_authenticated,拒绝
(这里有很多选项可以添加)

基本上,-o表示重写在该端口的main.cf中find的内容。 所以你可以设置main.cf在25端口上接收你想要的邮件,然后设置端口587(提交)只允许sasl auth或其他任何东西。

您希望允许任何人(在合理范围内)通过端口25向您发送邮件,但不允许通过该端口进行中继。 这是reject_unauth_destination作用