温馨提示×

ubuntu邮件服务器端口设置问题

小樊
41
2025-12-06 23:50:00
栏目: 云计算

Ubuntu 邮件服务器端口设置与最佳实践

一、端口用途与推荐策略

  • 下表给出常见端口、用途与建议开放策略(面向公网发信与客户端收信的常见组合):
端口 协议 用途 加密与方向 建议
25/TCP SMTP 服务器间邮件传输(MTA→MTA) 明文/STARTTLS,入站+出站 必开(云厂商可能限制,见下文)
587/TCP SMTP Submission 客户端发信(MUA→MTA) STARTTLS,入站 必开(推荐强制加密)
465/TCP SMTPS 客户端发信(隐式 SSL) SSL/TLS,入站 可选(与 587 二选一或并存)
110/TCP POP3 客户端收信 明文/STARTTLS,入站 可选(建议用 IMAP)
995/TCP POP3S 客户端收信 SSL/TLS,入站 可选
143/TCP IMAP 客户端收信 明文/STARTTLS,入站 推荐
993/TCP IMAPS 客户端收信 SSL/TLS,入站 推荐
  • 说明:
    • 25 端口常被运营商/云平台限制或阻断,用于对外投递时可能被拦截;客户端发信请优先使用 587/Submission
    • 现代客户端更推荐 IMAP(143/993) 而非 POP3(110/995),便于多端同步与服务器侧规则生效。

二、防火墙放行端口(UFW 示例)

  • 启用并放行必要端口(按需精简):
    • 启用默认策略并放行邮件端口:
      • sudo ufw default deny incoming
      • sudo ufw default allow outgoing
      • sudo ufw allow 25/tcp
      • sudo ufw allow 587/tcp
      • sudo ufw allow 465/tcp # 可选
      • sudo ufw allow 143/tcp
      • sudo ufw allow 993/tcp # 推荐
      • sudo ufw allow 110/tcp # 可选
      • sudo ufw allow 995/tcp # 可选
      • sudo ufw enable
      • sudo ufw status verbose
  • 如需仅允许特定来源访问(例如仅公司出口网段访问 25/587):
    • sudo ufw allow from 203.0.113.0/24 to any port 25,587
  • 注意:云服务器(如部分公有云)可能默认封禁或限制 25 端口出站,需要在控制台安全组/防火墙策略中放开或申请解封后再测试。

三、Postfix 与 Dovecot 关键配置

  • Postfix(/etc/postfix/main.cf 片段,示例值按需替换):
    • myhostname = mail.example.com
    • mydomain = example.com
    • myorigin = $mydomain
    • inet_interfaces = all
    • inet_protocols = ipv4(或 ipv6)
    • mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
    • mynetworks = 127.0.0.0/8 [::1]/128(仅本机中继;对外发信请配合 SASL/SMTP 认证)
    • home_mailbox = Maildir/
  • Dovecot(核心与认证,示例):
    • /etc/dovecot/dovecot.conf:protocols = imap pop3
    • /etc/dovecot/conf.d/10-mail.conf:mail_location = maildir:~/Maildir
    • /etc/dovecot/conf.d/10-auth.conf:disable_plaintext_auth = yes;auth_mechanisms = plain login
    • /etc/dovecot/conf.d/10-ssl.conf:ssl = yes;ssl_cert = </etc/ssl/certs/ssl-cert-snakeoil.pem;ssl_key = </etc/ssl/private/ssl-cert-snakeoil.key
  • 证书与 TLS(两种常见做法,二选一或并存):
    • 自签或现有证书:在 Dovecot 的 10-ssl.conf 中直接配置 ssl_cert/ssl_key。
    • Let’s Encrypt 证书(推荐):
      • 获取证书后,在 Postfix 中配置:
        • smtp_tls_cert_file = /etc/letsencrypt/live/example.com/fullchain.pem
        • smtp_tls_key_file = /etc/letsencrypt/live/example.com/privkey.pem
      • 在 Dovecot 10-ssl.conf 中配置相同路径的证书与密钥,确保证书包含用于服务器名称的 SAN 或正确 CN

四、连通性与功能测试

  • SMTP 基础连通与 EHLO 测试(明文端口 25 或 Submission 587):
    • telnet mail.example.com 25
    • 连接成功后输入:EHLO mail.example.com,看到 250 响应即表示服务可达;输入 QUIT 退出。
  • 加密端口测试(SMTPS 465 / IMAPS 993 / POP3S 995):
    • 使用 OpenSSL 验证握手与证书:
      • openssl s_client -connect mail.example.com:993 -servername mail.example.com
  • 客户端验证:
    • 使用 Thunderbird/Outlook 配置账户,IMAP 使用 143/993(STARTTLS/SSL),SMTP 使用 587/465(STARTTLS/SSL),验证登录与收发。

五、DNS 与合规要点

  • 必须配置正确的 DNS 记录 才能对外收发:
    • A 记录:mail.example.com → 服务器公网 IP
    • MX 记录:example.com → 优先级 10 mail.example.com
  • 为提升到达率与合规性,建议同时部署 SPF、DKIM、DMARC 等标准记录(本文不展开具体记录值,请按域名实际配置)。
  • 若遇到 25 端口不通
    • 检查云厂商安全组/防火墙策略是否放行入站/出站 25
    • 若无法放开,使用 587/Submission 作为客户端发信端口,对外投递依赖上游智能主机或邮件网关。

0