Postfix:禁用通过端口 25 进行的身份验证

Postfix:禁用通过端口 25 进行的身份验证

在邮件服务器上使用时PostfixIMAP通常至少打开 3 个端口

25 smtp   : incoming emails from anybody (whole internet)
465 smtps : outgoing emails from authorized users (to the whole intenet)
993 imap  : imap for authorized users

我想配置 postfix,以便授权用户只能通过 465 发送电子邮件。默认情况下并非如此。用户还可以通过端口 25 使用 STARTTLS。我想禁用它。

我的计划是使用端口 25 供公众向我发送电子邮件

为我的用户使用端口 465(我可以使用防火墙来允许特定的 IP 范围,或使用自定义端口)

这将防止端口 25 被暴力攻击所利用,黑客会尝试猜测用户/密码。端口 25 根本不接受用户/密码,即使它是有效的。而且由于465端口受到防火墙的限制,黑客也无法利用465端口。

这在 Postfix 中可能吗?

我在 Debian Wheezy 上使用 Postfix 2.9.6-2

答案1

警告:
该请求不遵循最佳安全实践,因为您在主邮件中继端口上禁用了 TLS(加密),从而将通过该端口发送的数据暴露给第三方侦听器和/或进行中的修改。下面的答案满足了请求,但最佳实践也要求端口 25 连接使用 STARTTLS。

master.cf文件(通常/etc/postfix/master.cf)控制特定 Postfix 服务的启动和配置。根据文档,该文件中的类似配置将执行您想要的操作:

smtp  inet  n  -  -  -  -  smtpd
  -o smtpd_tls_security_level=none
  -o smtpd_sasl_auth_enable=no

smtps inet  n  -  -  -  -  smtpd
  -o smtpd_tls_security_level=encrypt
  -o smtpd_sasl_auth_enable=yes
  -o smtpd_client_restrictions=permit_sasl_authenticated,reject

此配置会关闭端口 25 上的身份验证和 STARTTLS 选项。它会打开端口 465 上的 STARTTLS 选项,要求使用 STARTTLS,启用身份验证,并且仅允许客户端在经过身份验证的情况下进行连接。

您还可以研究smtpd_tls_wrappermode强制真正的 TLS 连接(而不是 STARTTLS 连接)的选项。

请注意,这种配置可能会使 Postfix 配置有些难以遵循(可以在 中设置选项main.cf,然后在 中覆盖选项master.cf)。另一个选项是运行多个 Postfix 实例,每个实例都有自己的main.cf配置文件来指定这些选项。

相关内容