温馨提示×

centos邮件服务器安全设置有哪些

小樊
44
2025-12-07 14:33:18
栏目: 云计算

CentOS 邮件服务器安全设置清单

一 基础与网络防护

  • 保持系统与组件为最新:执行yum/dnf update -y,及时修补漏洞;仅启用必要的服务,减少攻击面。
  • 启用并正确配置防火墙:使用firewalld仅开放邮件相关端口,建议仅在内网或对受控来源开放管理端口。
  • 仅开放必要端口并区分用途:
    • 25/TCP(SMTP):服务器间通信与入站邮件;
    • 587/TCP(Submission):客户端发信端口,强制STARTTLS
    • 465/TCP(SMTPS):隐式 SSL/TLS 发信;
    • 143/TCP(IMAP)/993/TCP(IMAPS)110/TCP(POP3)/995/TCP(POP3S):收信端口,建议优先使用IMAPS/POP3S
  • 示例(firewalld):
    • 开放端口:sudo firewall-cmd --permanent --add-port={25,465,587,143,993,110,995}/tcp
    • 或按服务名:sudo firewall-cmd --permanent --add-service={smtp,smtps,submission,imap,imaps,pop3,pop3s}
    • 重载:sudo firewall-cmd --reload
  • 如环境允许,限制来源 IP:
    • 富规则示例:sudo firewall-cmd --permanent --add-rich-rule=‘rule family=“ipv4” source address=“203.0.113.10” port port=“25” protocol=“tcp” accept’
  • 切勿为便利关闭SELinux或防火墙;确需调试请临时设置并尽快恢复。

二 传输加密与身份认证

  • 使用Let’s Encrypt或企业 CA 为mail.example.com签发证书,部署到 Postfix 与 Dovecot:
    • Postfix 示例(/etc/postfix/main.cf):
      • smtpd_tls_cert_file = /etc/letsencrypt/live/mail.example.com/fullchain.pem
      • smtpd_tls_key_file = /etc/letsencrypt/live/mail.example.com/privkey.pem
      • smtpd_use_tls = yes
      • smtpd_tls_security_level = may(或更高)
      • smtp_tls_security_level = encrypt(出站加密)
      • 建议开启会话缓存:smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
    • Dovecot 示例(/etc/dovecot/conf.d/10-ssl.conf):
      • ssl = yes
      • ssl_cert = </etc/letsencrypt/live/mail.example.com/fullchain.pem
      • ssl_key = </etc/letsencrypt/live/mail.example.com/privkey.pem
  • 启用SASL认证并禁用明文:
    • Postfix:smtpd_sasl_auth_enable = yes;smtpd_sasl_security_options = noanonymous;smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination
    • Dovecot:disable_plaintext_auth = yes;auth_mechanisms = plain login
  • 启用**SMTPS(465)**时,需在 Postfix master.cf 取消注释并配置:
    • smtps inet n - n - - smtpd
      • o syslog_name=postfix/smtps
      • o smtpd_tls_wrappermode=yes
      • o smtpd_sasl_auth_enable=yes
  • 客户端应优先使用587/STARTTLS465/SMTPS,避免使用明文端口。

三 反垃圾与域名身份认证

  • 配置SPF:在域名 DNS 添加 TXT 记录,例如“v=spf1 mx -all”,仅允许你的MX主机发送邮件。
  • 配置DKIM:为选择器(如 default)生成私钥/公钥,公钥发布到 DNS(default._domainkey TXT),Postfix 通过 OpenDKIM 验签/签名出站邮件。
  • 配置DMARC:在 DNS 添加 TXT 记录“v=DMARC1; p=quarantine; rua=mailto:dmarc@example.com”,逐步收紧策略。
  • 降低垃圾邮件概率:确保A/MX/PTR一致,避免动态 IP;保持IP 不在黑名单;必要时启用灰名单反向 DNS
  • 部署内容过滤(生产建议):在边缘或内部部署MailScanner + ClamAV + SpamAssassin进行病毒与垃圾邮件检测。

四 访问控制与暴力防护

  • 限制中继与本地网络:在 Postfix 中精确设置mynetworks(仅可信网段),对外仅允许587经 SASL 认证提交。
  • 启用Fail2Ban:监控 Postfix/Dovecot 日志,自动封禁多次失败的来源 IP,降低暴力破解风险。
  • 连接与速率限制(示例思路):
    • smtpd_client_connection_limit(限制单 IP 并发连接)
    • smtpd_client_message_rate_limit(限制发信速率)
    • smtpd_recipient_limit(限制收件人数)
  • 禁用过时和不安全协议/机制:如明文 POP3/IMAP、SSLv2/SSLv3,仅启用TLS 1.2+

五 监控 日志与运维

  • 集中监控与告警:关注**/var/log/maillog**(或 journalctl -u postfix/dovecot),对队列堆积、认证失败激增、TLS 握手失败等设置告警。
  • 定期检查与测试:
    • 队列检查:mailq 或 postqueue -p;必要时 postqueue -f 重试;
    • 连通性测试:telnet/curl 到 25/587/465/993/995
    • 证书有效期:certbot certificates 或手动检查证书过期时间;
    • 黑名单与信誉:定期查询RBL与发送信誉。
  • 备份与变更管理:定期备份**/etc/postfix、/etc/dovecot、/etc/letsencrypt**与用户邮箱数据;变更前先在测试环境验证。

0