当前位置: 首页 > news >正文

三十、【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/25
IMAP/143
POP3/110
SASL认证
邮件存储
访问邮箱
客户端
Postfix
Dovecot
Maildir

内容简介

核心协议功能

特性SMTPIMAPPOP3
端口25/465143/993110/995
功能邮件发送邮件同步邮件下载
状态管理无状态服务器保存状态本地保存状态
适用场景邮件传输多设备访问单设备离线
存储方式不存储服务器存储下载后删除
  1. SMTP(Postfix)

    • 作用:处理邮件发送与中继(端口 25/465)

    • 关键配置

      mydestination = $mydomain      # 定义可接收邮件的域名
      mynetworks = 192.168.1.0/24    # 允许转发的客户端 IP 段
      smtpd_sasl_auth_enable = yes    # 强制发件人认证(防垃圾邮件)
      
  2. IMAP/POP3(Dovecot)

    • 区别

      协议同步机制适用场景
      IMAP服务器同步状态多设备访问
      POP3下载后删除单设备离线阅读
    • 配置示例

      protocols = imap pop3          # 同时启用两种协议
      mail_location = maildir:~/Maildir  # 邮箱存储目录
      

安全机制配置

  1. 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`命令行发送邮件
http://www.dtcms.com/a/304508.html

相关文章:

  • Ubuntu卡在启动画面:显卡驱动与密码重置
  • ubuntu18.04制作raid0
  • Ubuntu 部署 PaddleOCR 完整指南
  • Ubuntu 抽取系统制作便于chroot的镜像文件
  • C#开发基础之深入理解“集合遍历时不可修改”的异常背后的设计
  • 三十一、【Linux网站服务器】搭建httpd服务器演示个人主页、用户认证、https加密网站配置
  • Solar月赛(应急响应)——攻击者使用什么漏洞获取了服务器的配置文件?
  • GESP2025年6月认证C++七级( 第三部分编程题(2)调味平衡)
  • cuda中的线程块和线程束的区别以及什么是串行化 (来自deepseek)
  • 1 + X 传感网 中级 | 任务五 Wifi通信实践
  • 向量数据库深度解析:FAISS、Qdrant、Milvus、Pinecone使用教程与实战案例
  • Excel文件批量加密工具
  • 哈希函数详解:从MD5到SHA-3的密码学基石
  • JSON-RPC 2.0 规范
  • 寻找重复元素-类链表/快慢指针
  • 【lucene】currentFrame与staticFrame
  • Springboot+vue智能家居商城的设计与实现
  • 数据赋能(341)——技术平台——模块化
  • 2024高考综合本科率对比
  • 本地安装 SQLite 的详细步骤
  • Qt模型/视图结构
  • Python入门第三课:进阶编程技能: 文件操作与数据持久化
  • 【C++算法】78.BFS解决FloodFill算法_算法简介
  • 量子计算革命:重新定义计算的边界与未来
  • react 的 useTransition 、useDeferredValue
  • ZKmall开源商城架构工具链:Docker、k8s 部署与管理技巧
  • 反射核心:invoke与setAccessible方法详解
  • SpringBoot整合RocketMQ(阿里云ONS)
  • 数据库4.0
  • Linux 文件管理高级操作:复制、移动与查找的深度探索