文章目录
- 第十四章 使用Postfix与Dovecot部署邮件系统
- 一、电子邮件系统
- 1、常见的邮件协议
- 2、注意事项
- 二、部署电子邮件系统
- 1、部署基础的电子邮件系统
- (1)、配置服务器主机名称
- (2)、配置服务器的DNS地址
- (3)配置防火墙策略
- (4)、为电子邮件系统提供域名解析
- (5)、检验效果
- 2、配置Postfix服务程序
- (1)、Postfix简介
- (2)、Postfix服务程序主配置文件中的重要参数
- (3)、安装Postfix服务程序
- (4)、编辑主配置文件
- (5)、创建电子邮件系统的登录账户
- 3、配置Dovecot服务程序
- (1)、Dovecot简介
- (2)、安装Dovecot服务程序
- (3)、编辑主配置文件
- (4)、配置邮件格式与存储路径
- (5)、配置防火墙
- 4、客户电子邮件系统
- (1)、服务器与客户端的操作系统与IP地址
- (2)、Windows安装Outlook
- (3)、Windows发送邮件
- (4)、thunderbird简介
- (5)、centos安装thunderbird服务程序
- (6)、centos发送邮件
- 5、查看邮件
- (1)、安装mailx服务程序
- (2)、查看邮件
- 三、设置用户别名邮箱
- 1、用户别名功能简介
- 2、发送邮件
- 3、查看邮件
- 4、查看aliases邮件别名服务的配置文件
第十四章 使用Postfix与Dovecot部署邮件系统
一、电子邮件系统
1、常见的邮件协议
简单邮件传输协议(Simple Mail Transfer Protocol,SMTP):用于发送和中转发出的电子邮件,占用服务器的25/TCP端口。
邮局协议版本3(Post Office Protocol 3):用于将电子邮件存储到本地主机,占用服务器的110/TCP端口。
Internet消息访问协议版本4(Internet Message Access Protocol 4):用于在本地主机上访问邮件,占用服务器的143/TCP端口。
2、注意事项
添加反垃圾与反病毒模块:它能够很有效地阻止垃圾邮件或病毒邮件对企业信箱的干扰。
对邮件加密:可有效保护邮件内容不被黑客盗取和篡改。
添加邮件监控审核模块:可有效地监控企业全体员工的邮件中是否有敏感词,是否有泄露企业资料等违规行为。
保障稳定性:电子邮件系统的稳定性至关重要,运维人员应做到保证电子邮件系统的稳定运行,并及时做好防范分布式拒绝服务攻击的准备。
二、部署电子邮件系统
1、部署基础的电子邮件系统
(1)、配置服务器主机名称
[root@centos ~]# vim /etc/hostname
mail.centos.com
[root@centos ~]# hostnamectl set-hostname mail.centos.com
[root@centos ~]# hostname
mail.centos.com
(2)、配置服务器的DNS地址
[root@centos ~]# nmtui
//重启网卡
[root@centos ~]# nmcli connection up ens160
连接已成功激活(D-Bus 活动路径:/org/freedesktop/NetworkManager/ActiveConnection/5)
(3)配置防火墙策略
//清空防火墙默认策略
[root@centos ~]# iptables -F
//保存策略状态
[root@centos ~]# iptables-save
//添加DNS协议到允许列表
[root@centos ~]# firewall-cmd --zone=public --add-service=dns --permanent
success
//重启防火墙
[root@centos ~]# firewall-cmd --reload
success
(4)、为电子邮件系统提供域名解析
//安装bind-chroot
[root@centos ~]# yum install bind-chroot
//编辑主配置文件
[root@centos ~]# vim /etc/named.conf
options {
listen-on port 53 { any; };
listen-on-v6 port 53 { ::1; };
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";
secroots-file "/var/named/data/named.secroots";
recursing-file "/var/named/data/named.recursing";
allow-query { any; };
//编辑区域配置文件
[root@centos ~]# vim /etc/named.rfc1912.zones
zone "aaa.com" IN {
type master;
file "aaa.com.zone";
allow-update { none; };
};
//编辑数据配置文件
[root@centos ~]# cp -a /var/named/named.localhost /var/named/aaa.com.zone
[root@centos ~]# vim /var/named/aaa.com.zone
$TTL 1D
@ IN SOA aaa.com. root.aaa.com (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS ns.aaa.com.
ns IN A 192.168.10.10
@ IN MX 10 mail.aaa.com.
mail IN A 192.168.10.10
//重启服务并设置开机自启动
[root@centos ~]# systemctl restart named && systemctl enable named
Created symlink /etc/systemd/system/multi-user.target.wants/named.service → /usr/lib/systemd/system/named.service.
(5)、检验效果
//ping域名
[root@centos ~]# ping -c 4 mail.aaa.com
PING mail.aaa.com (192.168.10.10) 56(84) bytes of data.
64 bytes from mail.centos.com (192.168.10.10): icmp_seq=1 ttl=64 time=0.033 ms
64 bytes from mail.centos.com (192.168.10.10): icmp_seq=2 ttl=64 time=0.046 ms
64 bytes from mail.centos.com (192.168.10.10): icmp_seq=3 ttl=64 time=0.113 ms
64 bytes from mail.centos.com (192.168.10.10): icmp_seq=4 ttl=64 time=0.072 ms
--- mail.aaa.com ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3047ms
rtt min/avg/max/mdev = 0.033/0.066/0.113/0.030 ms
2、配置Postfix服务程序
(1)、Postfix简介
Postfix是一款由IBM资助研发的免费开源电子邮件服务程序,能够很好的兼容Sendmail服务程序,可以方便Sendmail用户迁移到Postfix服务上,Postfix服务程序的邮件收发能力强于Sendmail服务,而且能够自动增加、减少进程的数量来保证电子邮件系统的高性能与稳定性。Postfix服务程序由许多小模块组成,每个小模块都可以完成特定的功能。
(2)、Postfix服务程序主配置文件中的重要参数
参数 | 作用 |
---|---|
myhostname | 邮局系统的主机名 |
mydomain | 邮局系统的域名 |
myorigin | 从本机发出邮件的域名名称 |
inet_interfaces | 监听的网卡接口 |
mydestination | 可接收邮件的主机名或域名 |
mynetworks | 设置可转发哪些主机的邮件 |
relay_domains | 设置可转发哪些网域的邮件 |
(3)、安装Postfix服务程序
[root@mail ~]# yum install postfix
上次元数据过期检查:6:26:43 前,执行于 2023年05月12日 星期五 13时36分31秒。
依赖关系解决。
=============================================================
软件包 架构 版本 仓库 大小
=============================================================
安装:
postfix x86_64 2:3.5.8-2.el8 base 1.5 M
事务概要
=============================================================
安装 1 软件包
总下载:1.5 M
安装大小:4.3 M
确定吗?[y/N]: y
下载软件包:
postfix-3.5.8-2.el8.x86_64.r 3.2 MB/s | 1.5 MB 00:00
-------------------------------------------------------------
总计 3.2 MB/s | 1.5 MB 00:00
运行事务检查
事务检查成功。
运行事务测试
事务测试成功。
运行事务
准备中 : 1/1
运行脚本: postfix-2:3.5.8-2.el8.x86_64 1/1
安装 : postfix-2:3.5.8-2.el8.x86_64 1/1
运行脚本: postfix-2:3.5.8-2.el8.x86_64 1/1
验证 : postfix-2:3.5.8-2.el8.x86_64 1/1
已安装:
postfix-2:3.5.8-2.el8.x86_64
完毕!
(4)、编辑主配置文件
[root@mail ~]# vim /etc/postfix/main.cf
//在第95行定义一个名为myhostname的变量
95 myhostname = mail.aaa.com
//在第102行定义一个名为mydomain的变量
102 mydomain = aaa.com
//在第118行调用domain变量
118 myorigin = $mydomain
//在第135行定义网卡监听地址
135 inet_interfaces = all
//在第183行定义可接收邮件的主机名或域名列表
183 mydestination = $myhostname, $mydomain
(5)、创建电子邮件系统的登录账户
//添加账户:kali,密码:centos
[root@mail ~]# useradd kali
[root@mail ~]# echo "centos" | passwd --stdin kali
更改用户 kali 的密码 。
passwd:所有的身份验证令牌已经成功更新。
//重启服务并设置开机自启动
[root@mail ~]# systemctl restart postfix.service && systemctl enable postfix.service
Created symlink /etc/systemd/system/multi-user.target.wants/postfix.service → /usr/lib/systemd/system/postfix.service.
3、配置Dovecot服务程序
(1)、Dovecot简介
Dovecot是一款能够为Linux系统提供 IMAP和POP3电子邮件服务的开源服务程序,安全性极高、配置简单、执行速度快,而且占用的服务器硬件资源较少。
(2)、安装Dovecot服务程序
[root@mail ~]# yum install dovecot
上次元数据过期检查:6:27:39 前,执行于 2023年05月12日 星期五 13时36分31秒。
依赖关系解决。
=============================================================
软件包 架构 版本 仓库 大小
=============================================================
安装:
dovecot x86_64 1:2.3.8-9.el8 AppStream 5.0 M
安装依赖关系:
clucene-core x86_64 2.3.3.4-31.20130812.e8e3d20git.el8
AppStream 596 k
事务概要
=============================================================
安装 2 软件包
总下载:5.6 M
安装大小:19 M
确定吗?[y/N]: y
下载软件包:
(1/2): clucene-core-2.3.3.4- 1.5 MB/s | 596 kB 00:00
(2/2): dovecot-2.3.8-9.el8.x 5.2 MB/s | 5.0 MB 00:00
-------------------------------------------------------------
总计 5.8 MB/s | 5.6 MB 00:00
运行事务检查
事务检查成功。
运行事务测试
事务测试成功。
运行事务
准备中 : 1/1
安装 : clucene-core-2.3.3.4-31.20130812.e8e3d20gi 1/2
运行脚本: dovecot-1:2.3.8-9.el8.x86_64 2/2
安装 : dovecot-1:2.3.8-9.el8.x86_64 2/2
运行脚本: dovecot-1:2.3.8-9.el8.x86_64 2/2
验证 : clucene-core-2.3.3.4-31.20130812.e8e3d20gi 1/2
验证 : dovecot-1:2.3.8-9.el8.x86_64 2/2
已安装:
clucene-core-2.3.3.4-31.20130812.e8e3d20git.el8.x86_64
dovecot-1:2.3.8-9.el8.x86_64
完毕!
(3)、编辑主配置文件
[root@mail ~]# vim /etc/dovecot/dovecot.conf
//在第24行修改电子邮件协议为imap、pop3、lmtp
24 protocols = imap pop3 lmtp
//在第25行添加参数为允许用户使用明文进行密码验证
25 disable_plaintext_auth = no
//在第49行设置允许登录的网段地址
49 login_trusted_networks = 192.168.10.0/24
(4)、配置邮件格式与存储路径
[root@mail ~]# vim /etc/dovecot/conf.d/10-mail.conf
//在第25行删除#
25 mail_location = mbox:~/mail:INBOX=/var/mail/%u
//切换账户
[root@mail ~]# su - kali
//创建用来保存邮件的目录
[kali@mail ~]$ mkdir -p mail/.imap/INBOX
//退出登录
[kali@mail ~]$ exit
注销
(5)、配置防火墙
//将邮件协议放行
[root@centos ~]# firewall-cmd --zone=public --add-service=imap --permanent
success
[root@centos ~]# firewall-cmd --zone=public --add-service=pop3 --permanent
success
[root@centos ~]# firewall-cmd --zone=public --add-service=smtp --permanent
success
[root@centos ~]# firewall-cmd --reload
success
//重启服务并设置开机自启动
[root@centos ~]# systemctl restart dovecot && systemctl enable dovecot
Created symlink /etc/systemd/system/multi-user.target.wants/dovecot.service → /usr/lib/systemd/system/dovecot.service.
4、客户电子邮件系统
(1)、服务器与客户端的操作系统与IP地址
主机名称 | 操作系统 | IP地址 |
---|---|---|
电子邮件系统及DNS服务器 | Centos 8 | 192.168.10.10 |
客户端主机 | Centos8 | 192.168.10.20 |
客户端主机 | Windows 10 | 192.168.10.30 |
(2)、Windows安装Outlook
下载地址:博客主页资源免费
百度网盘:https://pan.baidu.com/s/15mCU9-0-YnMV_9W1CDuj-A?pwd=uayp
提取码:uayp
(3)、Windows发送邮件
(4)、thunderbird简介
Thunderbird是一款由FIreFox火狐浏览器的母公司Mozilla基金会发布的电子邮件客户端,兼具FireFox浏览器的各种优势,实现跨平台支持,拥有各种插件和丰富功能,简单的操作会让用户更容易轻松的上手。
(5)、centos安装thunderbird服务程序
完毕!
[root@centos ~]# yum install thunderbird
上次元数据过期检查:0:03:02 前,执行于 2023年05月14日 星期日 11时50分47秒。
依赖关系解决。
================================================================================
软件包 架构 版本 仓库 大小
================================================================================
安装:
thunderbird x86_64 91.4.0-2.el8_5 AppStream 100 M
事务概要
================================================================================
安装 1 软件包
总下载:100 M
安装大小:261 M
确定吗?[y/N]: y
下载软件包:
thunderbird-91.4.0-2.el8_5.x86_64.rpm 7.2 MB/s | 100 MB 00:13
--------------------------------------------------------------------------------
总计 7.2 MB/s | 100 MB 00:13
运行事务检查
事务检查成功。
运行事务测试
事务测试成功。
运行事务
准备中 : 1/1
安装 : thunderbird-91.4.0-2.el8_5.x86_64 1/1
运行脚本: thunderbird-91.4.0-2.el8_5.x86_64 1/1
验证 : thunderbird-91.4.0-2.el8_5.x86_64 1/1
已安装:
thunderbird-91.4.0-2.el8_5.x86_64
完毕!
(6)、centos发送邮件
//启动软件
[root@centos ~]# thunderbird
5、查看邮件
(1)、安装mailx服务程序
[root@mail ~]# yum install mailx
上次元数据过期检查:1 day, 20:43:42 前,执行于 2023年05月12日 星期五 13时36分31秒。
依赖关系解决。
================================================================================
软件包 架构 版本 仓库 大小
================================================================================
安装:
mailx x86_64 12.5-29.el8 base 257 k
事务概要
================================================================================
安装 1 软件包
总下载:257 k
安装大小:491 k
确定吗?[y/N]: y
下载软件包:
mailx-12.5-29.el8.x86_64.rpm 1.1 MB/s | 257 kB 00:00
--------------------------------------------------------------------------------
总计 1.1 MB/s | 257 kB 00:00
运行事务检查
事务检查成功。
运行事务测试
事务测试成功。
运行事务
准备中 : 1/1
安装 : mailx-12.5-29.el8.x86_64 1/1
运行脚本: mailx-12.5-29.el8.x86_64 1/1
验证 : mailx-12.5-29.el8.x86_64 1/1
已安装:
mailx-12.5-29.el8.x86_64
完毕!
(2)、查看邮件
[root@centos ~]# mailx
Heirloom Mail version 12.5 7/5/10. Type ? for help.
"/var/spool/mail/root": 2 messages 1 new
1 kali Sun May 14 11:34 96/3002 "重试"
>N 2 kali Sun May 14 12:45 22/677 "tets"
&
Message 1:
From kali@aaa.com Sun May 14 10:25:53 2023
Return-Path: <kali@aaa.com>
X-Original-To: root@aaa.com
Delivered-To: root@aaa.com
From: "kali" <kali@aaa.com>
To: <root@aaa.com>
Subject: 验证试验是否成功!
Date: Sun, 14 May 2023 10:25:52 +0800
Content-Type: multipart/alternative;
boundary="----=_NextPart_000_0001_01D9864E.761D19D0"
X-Mailer: Microsoft Outlook 14.0
Thread-Index: AdmGCc70z5DBqyBcT9er+qZdjUKB3g==
Content-Language: zh-cn
Status: R
Content-Type: text/plain;
charset="gb2312"
当你看到这份邮件时,证明实验成功了。
& 2
Message 2:
From kali@aaa.com Sun May 14 12:45:48 2023
Return-Path: <kali@aaa.com>
X-Original-To: root@aaa.com
Delivered-To: root@aaa.com
Date: Sun, 14 May 2023 12:45:48 +0800
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101
Thunderbird/91.4.0
Content-Language: en-US
To: root@aaa.com
From: kali <kali@aaa.com>
Subject: tets
Content-Type: text/plain; charset=UTF-8; format=flowed
Status: R
test
& quit
Held 1 message in /var/spool/mail/root
您在 /var/spool/mail/root 中有邮件
三、设置用户别名邮箱
1、用户别名功能简介
用户别名功能是一项简单实用的邮件账户伪装技术,可以用来设置多个虚拟信箱的账户已接收发送的邮件,从而保证自身邮件地址不被泄露,还可以用来接收自己的多个信箱中的邮件。
2、发送邮件
3、查看邮件
在邮件发送后登录到服务器,使用bin账户登录,由于bin账户是系统账户,默认的Shell终端是/sbin/nologin,因此在bin账户登录时,系统会提示当前账户不可用。但是,在电子邮件服务器上使用mailx命令后,却可以看到这封原本要发送给bin账户的邮件已经被存放到了root账户的信箱中。
//切换账号
[root@mail ~]# su - bin
This account is currently not available.
//查看邮件
[root@mail ~]# mailx
Heirloom Mail version 12.5 7/5/10. Type ? for help.
"/var/spool/mail/root": 2 messages 1 new
1 kali Sun May 14 10:25 97/3159 "验"
>N 2 kali Sun May 14 10:35 97/3087 "你"
&
Message 2:
From kali@aaa.com Sun May 14 10:35:47 2023
Return-Path: <kali@aaa.com>
X-Original-To: bin@aaa.com
Delivered-To: bin@aaa.com
From: "kali" <kali@aaa.com>
To: <bin@aaa.com>
Subject: 你好!
Date: Sun, 14 May 2023 10:35:47 +0800
Content-Type: multipart/alternative;
boundary="----=_NextPart_000_000E_01D9864F.D891C330"
X-Mailer: Microsoft Outlook 14.0
Thread-Index: AdmGDCAy6OK4In6DSAG9I3Yc7DMEwA==
Content-Language: zh-cn
Status: R
Content-Type: text/plain;
charset="gb2312"
你好,bin!
& quit
Held 2 messages in /var/spool/mail/root
您在 /var/spool/mail/root 中有邮件
4、查看aliases邮件别名服务的配置文件
[root@mail ~]# cat /etc/aliases
#
# Aliases in this file will NOT be expanded in the header from
# Mail, but WILL be visible over networks or from /bin/mail.
#
# >>>>>>>>>> The program "newaliases" must be run after
# >> NOTE >> this file is updated for any changes to
# >>>>>>>>>> show through to sendmail.
#
# Basic system aliases -- these MUST be present.
mailer-daemon: postmaster
postmaster: root
# General redirections for pseudo accounts.
bin: root
daemon: root
adm: root