实现最高安全性的 Postfix 配置:综合指南

基本安全设置

在了解高级安全措施之前,我们应确保基本设置正确无误。这包括限制 Postfix 服务器的访问权限。在文件 /etc/postfix/main.cf 应添加或调整以下几行:

inet_interfaces = loopback-only
mynetworks = 127.0.0.0/8 [::1]/128

这些设置限制了对本地主机的访问,防止服务器被滥用为开放式中继站。垃圾邮件发送者可以利用开放式中继发送不需要的电子邮件,这会严重损害服务器的声誉。因此,进行这种基本保护至关重要。

激活 TLS 加密

使用 TLS(传输层安全)对确保电子邮件通信的保密性至关重要。在 main.cf-文件:

smtpd_tls_cert_file = /etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file = /etc/ssl/private/ssl-cert-snakeoil.key
smtpd_tls_security_level = may
smtp_tls_security_level = may

这些设置可激活传入和传出连接的 TLS。确保使用有效的 SSL 证书,最好是来自可信的认证机构 (CA)。正确实施 TLS 可保护邮件在传输过程中不被拦截和篡改。有关 TLS 配置的更多信息,请参阅官方[Postfix 文档](https://www.postfix.org/TLS_README.html)。

设置 SASL 身份验证

简单身份验证和安全层(SASL)提供了一个额外的安全层。在 main.cf 添加:

smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
smtpd_sasl_local_domain = $myhostname

本配置假定您使用 Dovecot 作为 SASL 提供商。如果使用的是其他提供商,请相应调整设置。SASL 身份验证可以防止未经授权的用户通过服务器发送电子邮件,从而大大提高安全性。

防止拒绝服务攻击

为防止服务器过载,您可以设置连接限制。在 main.cf 添加:

smtpd_client_connection_rate_limit = 50
smtpd_client_message_rate_limit = 100
anvil_rate_time_unit = 60s

这些设置限制了客户端每分钟可发送的连接数和信息数。通过限制,可以防止服务器因大量请求或垃圾邮件而超负荷。这是确保邮件服务器可用性的重要步骤。

实施 HELO/EHLO 限制

许多垃圾邮件发送者使用无效或伪造的 HELO/EHLO 主机名。您可以通过以下设置阻止此类连接:

smtpd_helo_required = yes
smtpd_helo_restrictions = 是
 permit_mynetworks、
 reject_invalid_helo_hostname、
 reject_non_fqdn_helo_hostname

这些规则要求提供有效的 HELO/EHLO 主机名,并拒绝无效或不完整的合格域名连接。这使得垃圾邮件发送者更难发送虚假电子邮件,因为他们必须提供正确的 HELO/EHLO 信息。

引入发射机限制

为防止服务器被滥用,您可以对发送者设置限制:

smtpd_sender_restrictions =
 permit_mynetworks、
 reject_non_fqdn_sender、
 reject_unknown_sender_domain、
 reject_unauth_pipelining

这些规则可拒绝来自不完全合格发件人地址或未知发件人域名的电子邮件。这就降低了服务器被用于垃圾邮件或网络钓鱼的可能性,同时也提高了接收电子邮件的整体质量。

配置收件人限制

与发件人限制类似,您也可以为收件人定义规则:

smtpd_recipient_restrictions =
 permit_mynetworks、
 reject_unauth_destination、
 reject_non_fqdn_recipient、
 拒绝未知收件人域

这些设置可防止服务器被滥用为未经授权目的地的中继站,并拒绝向无效收件人地址发送电子邮件。这将进一步提高服务器的安全性,同时保证电子邮件通信的完整性。

实施灰色名单

灰名单是减少垃圾邮件的有效方法。首先安装 Postgrey 软件包:

sudo apt install postgrey

然后在 main.cf 添加:

smtpd_recipient_restrictions = 收件人限制
 ...(现有设置)
 check_policy_service unix:private/postgrey

此配置首先将接收到的电子邮件转发到 Postgrey 服务,该服务会对未知发件人生成临时拒收。发送合法邮件的邮件服务器会在延迟后重新尝试发送,从而有效地杜绝了垃圾邮件发送者,因为他们通常只尝试发送一次。

激活 SPF 检查

发件人策略框架(SPF)有助于防止电子邮件欺骗。首先安装所需的软件包:

sudo apt install postfix-policyd-spf-python

然后将这几行添加到 main.cf 添加:

policyd-spf_time_limit = 3600s
smtpd_recipient_restrictions =
 ...(现有设置)
 check_policy_service unix:private/policyd-spf

此配置可激活传入电子邮件的 SPF 检查。SPF 检查电子邮件是否从指定域的授权服务器发送,这有助于防止欺骗并提高电子邮件通信的可信度。

实施 DKIM 签名

DomainKeys Identified Mail (DKIM) 为发出的电子邮件添加数字签名。首先安装 OpenDKIM:

sudo apt install opendkim opendkim-tools

然后配置 OpenDKIM,并在 main.cf 添加:

milter_protocol = 2
milter_default_action = accept
smtpd_milters = unix:/var/run/opendkim/opendkim.sock
non_smtpd_milters = unix:/var/run/opendkim/opendkim.sock

这些设置可激活外发邮件的 DKIM 签名。DKIM 可确保电子邮件不会在不知情的情况下被更改,从而提高安全性,并加强对邮件真实性的信任。

设置 DMARC 准则

基于域的消息验证、报告和一致性(DMARC)以 SPF 和 DKIM 为基础。为您的域添加 DMARC DNS 条目并安装 OpenDMARC:

sudo apt install opendmarc

配置 OpenDMARC 并将此行添加到 main.cf 添加:

smtpd_milters = ...(现有设置),inet:localhost:8893

此配置可对收到的电子邮件进行 DMARC 检查。DMARC 允许域所有者设置接收服务器如何处理 SPF 或 DKIM 检查失败的策略,并提供有关电子邮件验证的详细报告。

定期更新和监测

安全是一个持续的过程。请确保定期更新 Postfix 系统:

sudo apt update
sudo apt upgrade

同时监控 Postfix 日志,查找可疑活动:

tail -f /var/log/mail.log

定期更新可弥补已知的安全漏洞,提高邮件服务器的稳定性。对日志的持续监控使您能够及早发现异常活动并迅速做出反应。

其他安全措施

除了基本和高级安全措施外,您还可以采取其他步骤来进一步提高 Postfix 服务器的安全性:

防火墙配置

确保防火墙只为邮件服务器打开了必要的端口。通常情况下,这些端口是 25 端口(SMTP)、587 端口(提交)和 993 端口(通过 SSL 的 IMAP)。使用以下工具 ufwiptables来控制这些端口的访问并阻止不需要的连接。

入侵检测系统(IDS)

实施入侵检测系统,如 Fail2Ban以检测反复失败的登录尝试,并自动阻止显示可疑行为的 IP 地址。这样可以降低邮件服务器遭受暴力攻击的风险。

备份和恢复

定期备份配置文件和重要数据。在发生安全事故时,您可以快速恢复并最大限度地减少服务中断。将备份存储在安全的位置,并定期检查备份数据的完整性。

用户和权限管理

谨慎管理用户账户,只分配必要的权限。使用强密码,并考虑实施多因素身份验证 (MFA),以进一步确保对邮件服务器的访问安全。

维护 Postfix 的最佳做法

Postfix 服务器的持续维护对于保持安全性和性能至关重要。以下是一些最佳实践:


  • 定期检查配置: 定期检查您的 main.cf 和其他配置文件,以确保正确执行所有安全措施。

  • 日志分析: 使用工具自动分析邮件日志,快速识别异常情况和潜在的安全事件。

  • 软件更新: 不仅要更新 Postfix,还要定期更新所有依赖组件,如 Dovecot、OpenDKIM 和 OpenDMARC。

  • 监控和警报: 实施监控系统,在出现异常活动或错误信息时通知您。

避免 Postfix 配置中的常见错误

在配置 Postfix 以最大限度提高安全性时,应避免一些常见错误:


  • 开放式继电器: 通过设置 inet_interfaces我的网络-设置正确。

  • TLS 证书无效: 始终使用有效的最新 SSL 证书,以便有效利用 TLS 加密。

  • 缺少验证: 激活 SASL 身份验证,防止服务器被滥用。

  • 费率限制不足: 设置适当的连接限制,防止拒绝服务攻击。

  • SPF/DKIM/DMARC 丢失: 实施全面的电子邮件验证方法,确保电子邮件的完整性和真实性。

摘要

配置 Postfix 以实现最高安全性需要精心策划和定期维护。通过实施本文所述的措施,您可以大大提高电子邮件服务器的安全性。请记住,安全是一个持续的过程。随时了解新威胁和最佳实践,以保护您的 Postfix 服务器。利用现有的资源和社区来教育自己,并保持在技术的最前沿。

如需更多信息和详细说明,请访问官方[Postfix 文档](https://www.postfix.org/documentation.html) 和电子邮件安全领域其他可信来源。

当前文章