如何禁用无需身份验证即可通过 postfix smtp 发送邮件

如何禁用无需身份验证即可通过 postfix smtp 发送邮件

我刚刚用 postfix 2.6.6 和 dovecot 设置了一个邮件服务器。

我在 main.cf 中有一个与身份验证相关的配置,如下所示:

smtpd_tls_cert_file=/etc/httpd/ssl/mail.crt
smtpd_tls_key_file=/etc/httpd/ssl/mail.key
smtpd_use_tls=yes
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
broken_sasl_auth_clients = yes
smtpd_recipient_restrictions = permit_sasl_authenticated, permit_mynetworks, reject_unauth_destination

现在我可以正常地从我的域和外部发送和接收电子邮件,这很好。

但是,我发现我可以轻松地使用 telnet 从远程发送无需身份验证的邮件,如下所示,这意味着其他人可以轻松地向我的域发送垃圾邮件。

Myhost:~/ z$ telnet mail.example.com 25
Trying 232.96.23.130...
Connected to mail.example.com.
Escape character is '^]'.    
220 mail.example.com ESMTP Postfix
ehlo mail.example.com
250-mail.example.com
250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250-STARTTLS
250-AUTH PLAIN LOGIN
250-AUTH=PLAIN LOGIN
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
mail from:[email protected]
250 2.1.0 Ok
rcpt to: [email protected]
250 2.1.5 Ok
data
354 End data with <CR><LF>.<CR><LF>
subject:how much dust?
fdhjaklf
fdsahjk;
fdajshk
.

250 2.0.0 Ok: queued as 08B2C5883481

我如何保护 Postfix 的安全并禁止其他人在未经身份验证的情况下发送邮件?

答案1

通常邮件服务器有两个用途:

  1. 允许其用户将邮件发送到互联网上的其他邮件服务器。这部分您已经按要求完成了。
  2. 接收其所服务域名的用户的邮件。

如果您只想让您的服务器发送外发邮件,而不接收来信,则需要更改mydestinationmain.cf 中的参数并将$mydomain其删除。这样它就不会接受任何发往您域名的电子邮件。有关更多信息,请访问Postfix 文档站点

但请注意,这意味着您必须设置其他电子邮件服务器来接收发往您域名的邮件。否则,您收到的所有邮件都将被退回。

相关内容