在邮件服务器上使用时Postfix
,IMAP
通常至少打开 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
配置文件来指定这些选项。