一、Postfix简介
- 在邮件系统中担任MTA的角色,负责在服务器之间传递邮件,并收下其他系统寄到本地系统的邮件
- Postfix实现了MTA的核心功能:邮件路由,邮件头重写,授权,内容过滤
- 基于模块化的互操作的多进程体系结构设计,每个独立的进程称为组件,各个组件之间通过队列管理器交换邮件
- postfix 的组件以半驻留方式运行
- postfix的各个组件由一个常驻内存的主控守护进程(master)控制,master主导邮件的处理流程,是postfix其他组件的总管
- 只有master以root身份运行的,各个组件以postfix用户身份运行
部分参数解释
inet_interfaces |
指定Postfix监听的网络接口。all 表示所有网络接口 |
myhostname |
指定运行Postfix服务的邮件主机名称(FQDN名) |
mydomain |
指定运行Postfix服务的邮件主机的域名 |
myorigin |
指定由本台邮件主机寄出的每封邮件的邮件头中mail from的地址 |
mydestination |
指定可接收邮件的主机名或域名,只有当发来的邮件的收件人地址与该参数值相匹配时,Postfix才会将该邮件接收下来 |
mynetworks |
设置可转发(Relay)哪些IP网段的邮件 |
relay_domains |
设置可转发(Relay)哪些网域的邮件 |
二、Postfix配置
1.环境准备
- 编辑网卡配置文件“/etc/sysconfig/network-scripts/ifcfg-ens33”
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=e92f4a4d-a3c6-4cc7-a6a7-7adab1d2cc56
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.48.10
PREFIX=24
GATEWAY=192.168.48.2
DNS1=127.0.0.1 //优先使用本地DNS服务
DNS2=192.168.48.2 //递归查询,保证网络连接
2.配置DNS域名解析
$TTL 1D
@ IN SOA @ root.immengxin.top. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS immengxin.top.
@ A 192.168.48.10
mail A 192.168.48.10
@ MX 10 mail.immengxin.top. //必须有一条mail的A记录
3.安装软件包
[root@immengxin ~]# yum install postfix //用来发件
[root@immengxin ~]# yum install dovecot //用来收件
[root@immengxin ~]# yum install telnet* //用来连接服务器
4.编辑主配置文件“/etc/postfix/main.cf”
# 第75行,主机名
myhostname = mail.immengxin.top
# 第83行,主域名
mydomain = immengxin.top
# 第99行取消注释,源
myorigin = $mydomain
# 第113行取消注释,你的网络接口,只保留这一个
inet_interfaces = all
# 第166行取消注释,目的
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain,
# 第264行取消注释,允许的网络
mynetworks = 192.168.0.0/16, 127.0.0.0/8
# 第296行取消注释,中继域名
relay_domains = $mydestination
# 第425-426行取消注释
mail_spool_directory = /var/mail
mail_spool_directory = /var/spool/mail
[root@immengxin ~]# systemctl restart postfix
5.编辑配置文件“/etc/dovecot/dovecot.conf”
# 第24行取消注释,并修改
protocols = imap pop3
# 第30行取消注释,监听的地址
listen = 192.168.48.10
# 第33行取消注释
base_dir = /var/run/dovecot/
# 第48行取消注释,受信任的网络
login_trusted_networks = 192.168.0.0/16
# 保存退出,重启服务
[root@immengxin ~]# systemctl restart dovecot
- 修改配置文件“/etc/dovecot/conf.d/10-auth.conf”
# 第10行取消注释
disable_plaintext_auth = no
# 第100行
auth_mechanisms = plain login
- 修改配置文件“/etc/dovecot/conf.d/10-mail.conf”
# 第25行取消注释
mail_location = mbox:~/mail:INBOX=/var/mail/%u
- 修改配置文件“/etc/dovecot/conf.d/10-ssl.conf”
# 第8行
ssl = no
6.其他配置
[root@immengxin ~]# chmod 0600 /var/mail/*
[root@immengxin ~]# chmod 0600 /var/spool/mail/*
[root@immengxin ~]# systemctl restart dovecot //可先忽略,如果无法连接收信服务器,可执行
[root@immengxin ~]# groupadd mengxin
[root@immengxin ~]# useradd mx1 -g mengxin -s /sbin/nologin //禁用登录功能
[root@immengxin ~]# useradd mx2 -g mengxin -s /sbin/nologin //禁用登录功能
[root@immengxin ~]# passwd mx1
[root@immengxin ~]# passwd mx2
[root@immengxin ~]# setenforce 0 //关闭selinux
[root@immengxin ~]# iptables -F //清空iptables规则
[root@immengxin ~]# firewall-cmd --permanent --add-service=dns //允许dns服务
[root@immengxin ~]# firewall-cmd --permanent --add-port=25/tcp //允许tcp端口25,发件
[root@immengxin ~]# firewall-cmd --permanent --add-port=110/tcp //允许tcp端口110,收件
[root@immengxin ~]# firewall-cmd --reload //重载防火墙
三、结果验证
[root@QinRui ~]# telnet mail.immengxin.top 25
Trying 192.168.48.10...
Connected to mail.immengxin.top.
Escape character is '^]'.
220 mail.immengxin.top ESMTP Postfix
mail from:mx1 //发件人
250 2.1.0 Ok
rcpt to:mx2 //收件人
250 2.1.5 Ok
data //输入内容
354 End data with <CR><LF>.<CR><LF>
immengxin //正文部分
. //以.结束
250 2.0.0 Ok: queued as 24F558E12C9
quit //退出
221 2.0.0 Bye
Connection closed by foreign host.
[root@immengxin ~]# telnet mail.immengxin.top 110
Trying 192.168.48.10...
Connected to mail.immengxin.top.
Escape character is '^]'.
+OK [XCLIENT] Dovecot ready.
user mx2 //登录用户
+OK
pass linux //用户密码
+OK Logged in.
list //信件 列表
+OK 1 messages:
1 389
.
top 1 389 //查看信件内容
+OK
Return-Path: <mx1@immengxin.top>
X-Original-To: mx2
Delivered-To: mx2@immengxin.top
Received: from QinRui (QinRui [192.168.48.10])
by mail.immengxin.top (Postfix) with SMTP id 24F558E12C9
for <mx2>; Sun, 13 Nov 2022 21:36:26 +0800 (CST)
Message-Id: <20221113133635.24F558E12C9@mail.immengxin.top>
Date: Sun, 13 Nov 2022 21:36:26 +0800 (CST)
From: mx1@immengxin.top
immengxin
.
quit //退出
+OK Logging out.
Connection closed by foreign host.