CentOS 邮件服务器端口设置方法
一 端口与用途速览
| 协议 | 端口 | 用途 | 加密/说明 |
|---|---|---|---|
| SMTP | 25/TCP | 服务器间邮件传输、MTA 提交(出站) | 明文;现代部署常配合 STARTTLS |
| SMTP Submission | 587/TCP | 客户端发信(MSA) | 推荐启用 STARTTLS |
| SMTPS | 465/TCP | SMTP over SSL | 传统 SSL 端口 |
| POP3 | 110/TCP | 收件(明文) | 建议升级到 POP3S |
| POP3S | 995/TCP | 收件(SSL) | 端口加密 |
| IMAP | 143/TCP | 收件(明文) | 建议升级到 IMAPS |
| IMAPS | 993/TCP | 收件(SSL) | 端口加密 |
| 以上端口为邮件服务的通用标准端口,生产环境建议优先使用 587/STARTTLS 与 465/SSL 发信,993/995 收件。 |
二 防火墙放通端口
sudo firewall-cmd --permanent --add-port=25/tcp
sudo firewall-cmd --permanent --add-port=587/tcp
sudo firewall-cmd --permanent --add-port=110/tcp
sudo firewall-cmd --permanent --add-port=143/tcp
sudo firewall-cmd --reload
sudo firewall-cmd --permanent --add-port=995/tcp
sudo firewall-cmd --permanent --add-port=993/tcp
sudo firewall-cmd --reload
sudo firewall-cmd --list-all
sudo ss -tulpen | egrep ':(25|587|110|143|993|995)'
三 邮件服务组件端口启用
myhostname = mail.example.com
mydomain = example.com
myorigin = $mydomain
inet_interfaces = all
inet_protocols = ipv4
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
home_mailbox = Maildir/
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination
# 启用 TLS(示例:使用自签或有效证书)
smtpd_use_tls = yes
smtpd_tls_cert_file = /etc/pki/tls/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file = /etc/pki/tls/private/ssl-cert-snakeoil.key
sudo postfix reload
protocols = imap pop3
listen = *
disable_plaintext_auth = no
auth_mechanisms = plain login
mail_location = maildir:~/Maildir
ssl = yes
ssl_cert = </path/to/fullchain.pem
ssl_key = </path/to/privkey.pem
sudo systemctl restart dovecot
sudo systemctl enable dovecot
四 端口连通性测试
telnet mail.example.com 25
# 或
openssl s_client -connect mail.example.com:587 -starttls smtp
telnet mail.example.com 110
telnet mail.example.com 143
openssl s_client -connect mail.example.com:995 -crlf
openssl s_client -connect mail.example.com:993 -crlf
五 安全与排错要点