凌峰创科服务平台

Postfix邮件服务器如何快速搭建与配置?

目录

  1. Postfix 简介
  2. 邮件服务器核心概念
  3. 环境准备
  4. 安装 Postfix
  5. 核心 Postfix 配置 (main.cf)
  6. 配置 DNS 记录 (至关重要)
  7. 配置防火墙和 SELinux
  8. 配置邮箱存储 (Dovecot)
  9. 安全加固
    • 使用 TLS/SSL 加密
    • 防止垃圾邮件
    • 使用 SPF, DKIM, DMARC
  10. 测试邮件服务器
  11. 常用管理命令

Postfix 简介

Postfix 是一款由 IBM 的开发者 Wietse Venema 推出的开源邮件传输代理,它是 Sendmail 的一个替代品,以其高性能、高安全性和易于配置而闻名,它是 Linux 系统中最流行的 MTA 之一。

Postfix邮件服务器如何快速搭建与配置?-图1
(图片来源网络,侵删)
  • MTA (Mail Transfer Agent):负责邮件的传输和路由,它就像一个邮局的分拣中心,接收邮件并根据收件人地址决定发送到哪里。
  • MDA (Mail Delivery Agent):负责将邮件最终投递到用户的邮箱。dovecotprocmail

邮件服务器核心概念

在配置之前,必须理解几个关键概念:

  • 域名: 你的邮件服务器的地址,example.com
  • 主机名: 邮件服务器的内部名称,mail.example.com强烈建议将主机名和域名设为不同的 FQDN (Fully Qualified Domain Name)。
  • A 记录: 将域名(如 mail.example.com)解析到服务器的 IP 地址。
  • MX 记录: 指定接收该域名邮件的服务器,邮件发送方会查询这个记录,知道应该把邮件发往哪里。
  • PTR 记录 (反向解析): 将服务器的 IP 地址解析回主机名,这是防止邮件被标记为垃圾邮件的关键,确保 IP 地址和主机名匹配。
  • SMTP (Simple Mail Transfer Protocol): 用于发送邮件的标准协议。
  • POP3 (Post Office Protocol 3) / IMAP (Internet Message Access Protocol): 用于从邮件服务器接收邮件的标准协议,POP3 通常会将邮件下载到本地并删除服务器副本,而 IMAP 允许你在多个设备上同步和管理邮件。

环境准备

假设你有一台已经安装好 CentOS/Rocky Linux 或 Ubuntu/Debian 的服务器,并且拥有一个公网域名(example.com)。

  1. 设置主机名:

    # Rocky/CentOS
    sudo hostnamectl set-hostname mail.example.com
    # Ubuntu/Debian
    sudo hostnamectl set-hostname mail.example.com

    重启后或重新登录,确保 hostname 命令返回 mail.example.com

    Postfix邮件服务器如何快速搭建与配置?-图2
    (图片来源网络,侵删)
  2. 更新系统:

    # Rocky/CentOS
    sudo dnf update -y
    # Ubuntu/Debian
    sudo apt update && sudo apt upgrade -y
  3. 固定服务器 IP: 确保服务器的 IP 地址是静态的,而不是通过 DHCP 动态分配的。

安装 Postfix

安装过程因发行版而异。

对于 Rocky/CentOS/RHEL:

sudo dnf install -y postfix

对于 Ubuntu/Debian:

sudo apt update
sudo apt install -y postfix

在安装过程中,会出现一个配置向导,选择 "Internet Site",然后按提示输入:

Postfix邮件服务器如何快速搭建与配置?-图3
(图片来源网络,侵删)
  • System mail name: example.com (你的域名)

核心Postfix配置 (main.cf)

Postfix 的主配置文件是 /etc/postfix/main.cf,我们主要修改这个文件。

sudo vi /etc/postfix/main.cf

以下是关键配置项及其解释:

# 设置我的主机名和域名
myhostname = mail.example.com
mydomain = example.com
myorigin = $mydomain
# 设置网络接口,只监听本地回环和所有网络接口
inet_interfaces = all
inet_protocols = all
# 设置信任的网络,允许它们中继邮件
# 127.0.0.1/8 是本地回环,::ffff:127.0.0.0/104 表示 IPv4 的 127.0.0.1
# ::1/128 是 IPv6 的本地回环
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
# 设置邮件存储目录
home_mailbox = Maildir/
# 设置邮件域,这个域的邮件由本服务器处理
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
# 设置可信赖的客户端,默认是 mynetworks,也可以指定 IP 或网络段
relayhost = 
# 邮件大小限制 (50MB)
message_size_limit = 52428800
# 邮箱大小限制 (1GB)
mailbox_size_limit = 1073741824

配置完成后,重启 Postfix 服务使配置生效:

sudo systemctl restart postfix
sudo systemctl enable postfix

配置 DNS 记录 (至关重要)

这是最关键的一步,你需要到你的域名注册商(如 GoDaddy, Namecheap, 阿里云等)的控制台,添加以下 DNS 记录,假设你的服务器 IP 是 2.3.4

类型 主机名 值/目标 优先级 TTL 描述
A mail 2.3.4 - 3600 mail.example.com 指向你的服务器 IP
A (或留空) 2.3.4 - 3600 example.com 也指向服务器 IP (可选)
MX (或留空) mail.example.com 10 3600 指定 example.com 的邮件接收服务器
PTR 2.3.4 mail.example.com - 3600 反向解析,由你的 IP 供应商设置
TXT (或留空) v=spf1 mx ~all - 3600 SPF 记录,防止伪造发件人
  • PTR 记录必须联系你的 VPS 或云服务提供商(如 AWS, Google Cloud, Vultr, DigitalOcean 等)在他们的控制台里设置,IP 和主机名不匹配,你的邮件几乎 100% 会被当成垃圾邮件。

配置防火墙和 SELinux

防火墙配置

# Rocky/CentOS (firewalld)
sudo firewall-cmd --permanent --add-service=smtp
sudo firewall-cmd --permanent --add-service=smtps
sudo firewall-cmd --permanent --add-service=submission
sudo firewall-cmd --reload
# Ubuntu/Debian (ufw)
sudo ufw allow smtp
sudo ufw allow smtps
sudo ufw allow submission

SELinux 配置 (仅限 CentOS/RHEL)

如果你开启了 SELinux,需要为 Postfix 设置正确的布尔值和上下文。

# 设置 SELinux 策略,允许 Postfix 网络访问和读写用户目录
sudo setsebool -P postfix_local_mail_read_all on
sudo setsebool -P httpd_can_sendmail on # 如果你用 PHP 发送邮件
# 恢复默认文件上下文
sudo restorecon -Rv /etc/postfix/
sudo restorecon -Rv /var/spool/postfix/

配置邮箱存储 (Dovecot)

Postfix 只负责发送和接收邮件,不负责存储,我们需要一个 MDA,Dovecot,它同时支持 POP3 和 IMAP。

安装 Dovecot

# Rocky/CentOS
sudo dnf install -y dovecot
# Ubuntu/Debian
sudo apt install -y dovecot-imapd dovecot-pop3d

配置 Dovecot

Dovecot 的配置比较复杂,这里提供一个最基础的 `

分享:
扫描分享到社交APP
上一篇
下一篇