三十、【Linux邮件服务器】搭建Postfix邮件服务器
Postfix+Dovecot 邮件服务端
- 本章学习目标
- 邮件服务架构全景
- 内容简介
- 核心协议功能
- 安全机制配置
- 一、安装邮件服务组件
- 1. 安装 Postfix(SMTP 服务端)
- 2. 安装 Dovecot(IMAP/POP3 服务端)
- 二、配置 Postfix 主服务
- 1. 编辑主配置文件 /etc/postfix/main.cf
- 2. 配置邮件安全认证
- 3. 重启 Postfix 生效
- 三、配置 Dovecot 邮件访问服务
- 1. 配置协议与认证 /etc/dovecot/dovecot.conf
- 2. 配置 SASL 认证 /etc/dovecot/conf.d/10-auth.conf
- 3. 重启 Dovecot 生效
- 四、配置 TLS 加密通信
- 1. 生成自签名证书
- 2. 在 Postfix 中启用 TLS
- 3. 在 Dovecot 中启用 TLS
- 五、创建邮件账户与测试
- 1. 添加测试用户
- 2. 使用 mail 命令测试收发
- 命令总结表格
本章学习目标
学习Postfix邮件服务器的搭建与使用
邮件服务架构全景
内容简介
核心协议功能
特性 | SMTP | IMAP | POP3 |
---|---|---|---|
端口 | 25/465 | 143/993 | 110/995 |
功能 | 邮件发送 | 邮件同步 | 邮件下载 |
状态管理 | 无状态 | 服务器保存状态 | 本地保存状态 |
适用场景 | 邮件传输 | 多设备访问 | 单设备离线 |
存储方式 | 不存储 | 服务器存储 | 下载后删除 |
-
SMTP(Postfix)
-
作用:处理邮件发送与中继(端口 25/465)
-
关键配置:
mydestination = $mydomain # 定义可接收邮件的域名 mynetworks = 192.168.1.0/24 # 允许转发的客户端 IP 段 smtpd_sasl_auth_enable = yes # 强制发件人认证(防垃圾邮件)
-
-
IMAP/POP3(Dovecot)
-
区别:
协议 同步机制 适用场景 IMAP 服务器同步状态 多设备访问 POP3 下载后删除 单设备离线阅读 -
配置示例:
protocols = imap pop3 # 同时启用两种协议 mail_location = maildir:~/Maildir # 邮箱存储目录
-
安全机制配置
-
TLS 加密传输
# Postfix 配置 smtpd_use_tls = yes smtpd_tls_cert_file = /path/to/cert smtpd_tls_key_file = /path/to/key# Dovecot 配置 ssl = required ssl_cert = </etc/ssl/certs/mail.crt ssl_key = </etc/ssl/private/mail.key
一、安装邮件服务组件
1. 安装 Postfix(SMTP 服务端)
# 安装 Postfix 并设置开机启动
[root@localhost ~]# yum install postfix -y
[root@localhost ~]# systemctl enable postfix
Created symlink /etc/systemd/system/multi-user.target.wants/postfix.service → /usr/lib/systemd/system/postfix.service# 验证安装版本
[root@localhost ~]# postconf mail_version
mail_version = 3.5.9
2. 安装 Dovecot(IMAP/POP3 服务端)
# 安装 Dovecot 并配置开机启动
[root@localhost ~]# yum install dovecot -y
[root@localhost ~]# systemctl enable dovecot
Created symlink /etc/systemd/system/multi-user.target.wants/dovecot.service → /usr/lib/systemd/system/dovecot.service
二、配置 Postfix 主服务
1. 编辑主配置文件 /etc/postfix/main.cf
[root@localhost ~]# vi /etc/postfix/main.cf
# 关键参数配置👇
myhostname = mail.localdomain # 服务器主机名(需解析的 FQDN)
mydomain = localdomain # 邮件域名
myorigin = $mydomain # 外发邮件域名标识
inet_interfaces = all # 监听所有网络接口
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain # 可接收邮件的域名
mynetworks = 192.168.1.0/24, 127.0.0.0/8 # 允许转发邮件的网络段
home_mailbox = Maildir/ # 邮箱存储格式(目录式)
smtpd_banner = $myhostname ESMTP # SMTP 连接欢迎语
2. 配置邮件安全认证
# 启用 SASL 认证(防垃圾邮件)
[root@localhost ~]# vi /etc/postfix/main.cf
smtpd_sasl_auth_enable = yes # 启用 SMTP 认证
smtpd_sasl_type = dovecot # 使用 Dovecot 做认证后端
smtpd_sasl_path = private/auth # SASL 认证套接字路径
smtpd_sasl_security_options = noanonymous # 禁止匿名认证
3. 重启 Postfix 生效
[root@localhost ~]# systemctl restart postfix
三、配置 Dovecot 邮件访问服务
1. 配置协议与认证 /etc/dovecot/dovecot.conf
[root@localhost ~]# vi /etc/dovecot/dovecot.conf
# 启用协议并设置监听
protocols = imap pop3 # 开启 IMAP/POP3 支持
listen = *, :: # 监听所有 IPv4/IPv6 地址
login_trusted_networks = 192.168.1.0/24 # 信任网络段(免密内网)# 邮件存储路径(与 Postfix 一致)
mail_location = maildir:~/Maildir # 匹配 home_mailbox 设置
2. 配置 SASL 认证 /etc/dovecot/conf.d/10-auth.conf
[root@localhost ~]# vi /etc/dovecot/conf.d/10-auth.conf
disable_plaintext_auth = no # 允许明文密码(测试用,生产需加密)
auth_mechanisms = plain login # 支持的认证机制
3. 重启 Dovecot 生效
[root@localhost ~]# systemctl restart dovecot
四、配置 TLS 加密通信
1. 生成自签名证书
# 创建证书存放目录
[root@localhost ~]# mkdir /etc/postfix/ssl
[root@localhost ~]# cd /etc/postfix/ssl# 生成私钥和证书
[root@localhost ssl]# openssl req -x509 -nodes -days 365 -newkey rsa:2048 \
-keyout mail.key -out mail.crt \
-subj "/C=CN/ST=Beijing/L=Beijing/O=Localhost/CN=mail.localdomain"
2. 在 Postfix 中启用 TLS
[root@localhost ~]# vi /etc/postfix/main.cf
# 添加以下参数👇
smtpd_use_tls = yes
smtpd_tls_cert_file = /etc/postfix/ssl/mail.crt
smtpd_tls_key_file = /etc/postfix/ssl/mail.key
3. 在 Dovecot 中启用 TLS
[root@localhost ~]# vi /etc/dovecot/conf.d/10-ssl.conf
ssl = required # 强制加密连接
ssl_cert = </etc/postfix/ssl/mail.crt
ssl_key = </etc/postfix/ssl/mail.key
五、创建邮件账户与测试
1. 添加测试用户
# 创建用户并设置密码
[root@localhost ~]# useradd alice
[root@localhost ~]# echo "p@ssw0rd" | passwd --stdin alice
[root@localhost ~]# useradd bob
[root@localhost ~]# echo "p@ssw0rd" | passwd --stdin bob
2. 使用 mail 命令测试收发
# Alice 发送邮件给 Bob
[root@localhost ~]# su - alice
[alice@localhost ~]$ echo "Hello Bob!" | mail -s "Test Email" bob@localdomain# Bob 查看收件箱
[alice@localhost ~]$ su - bob
[bob@localhost ~]$ mail
Heirloom Mail version 12.5. Type ? for help.
"/var/spool/mail/bob": 1 message
>N 1 alice@localdomain Fri Jul 22 15:30 12/400 "Test Email"
& 1 # 输入 1 查看邮件
Message 1:
From: alice@localdomain
Subject: Test Email
Hello Bob!
命令总结表格
演示命令 | 功能描述 | 关键参数/文件 |
---|---|---|
yum install postfix dovecot -y | 安装邮件服务 | postfix (SMTP), dovecot (IMAP/POP3) |
vi /etc/postfix/main.cf | 配置 SMTP 服务 | mydestination (接收域名), home_mailbox (存储格式) |
vi /etc/dovecot/dovecot.conf | 配置邮件访问协议 | protocols=imap pop3 , mail_location (存储路径) |
openssl req -x509 ... | 生成 TLS 证书 | -keyout (私钥), -out (证书) |
`echo “p@ssw0rd” | passwd --stdin alice` | 创建邮件账户 |
`echo “Hello” | mail -s “Test” bob@localdomain` | 命令行发送邮件 |