共计 4517 个字符,预计需要花费 12 分钟才能阅读完成。
1. Postfix
1.1 邮件服务的介绍
电子邮件是—种用电子手段提供信息交换的通信方式,是互联网应用最广的服务。通过网络的电子邮件系统,用户可以以非常低廉的价格(不管发送到哪里,都只需负担网费)、非常快速的方式(几秒钟之内可以发送到世界上任何指定的目的地),与世界上任何一个角落的网络用户联系。
电子邮件可以是文字、图像、声音等多种形式。同时,用户可以得到大量免费的新闻、专题邮件,并实现轻松的信息搜索。电子邮件的存在极大地方便了人与人之间的沟通与交流,促进了社会的发展。
什么是电子邮件系统
电子邮件系统是一种能够书写、发送、存储和接收信件的电子通信系统
邮件系统由两部分组成
MTA(邮件传输代理)
MUA(邮件用户代理)
1.2 电子邮件收发的过程
1.3 邮件传输过程
(1)客户机调用用户代理来编辑要发送的邮件。用户代理用 SMTP 将邮件传送给发送端邮件服务器
(2)发送端邮件服务器将邮件放入邮件缓存队列中,等待发送。
(3)SMTP 按照 C / S 方式工作。运行在发送端邮件服务器的 SMTP 客户进程,发现在邮件缓存中有待发送的邮件,就向运行在接收端邮件服务器的 SMTP 服务器进程发起 TCP 连接的建立
(4)当 TCP 连接建立后,SMTP 客户进程开始向远程的 SMTP 服务器发送邮件。如果有多个邮件在邮件缓存中,则 SMTP 客户一一将它们发送到远程的 SMTP 服务器。当所有的待发送邮件发完了,SMTP 就关闭所建立的 TCP 连接
(5)运行在接收端邮件服务器中的 SMTP 服务器进程收到邮件后,将邮件放入收信人的用户邮箱中,等待收信人在他方便时进行读取
(6)收信人调用用户代理,使用 POP3(或 IMAP)协议将自己的邮件从接收端邮件服务器的用户邮箱中取回
1.4 电子邮件的协议
1. SMTP(Simple Mail Transfer Protocol,简单邮件传输协议),是电子邮件的发送方向接收方传递邮件时使用的单向传输协议,默认使用 TCP 端口为 25。配置了 SMTP 协议的电子邮件服务器称为 SMTP 服务器。SMTP 服务器接收客户机发送的电子邮件,向其他的 SMTP 服务器发送电子邮件,但不能从别的 SMTP 服务器接收电子邮件
2. POP3(Post Office Protocol Version 3,邮局协议,版本 3),是电子邮件接收方向电子邮局发出接收邮件请求时使用的单向传输协议,默认使用 TCP 端口为 110。配置了 POP3 协议的电子邮件服务器称为 POP3 服务器。POP3 服务器将电子邮件发送给客户机或者从别的 POP3 服务器接收电子邮件,但不能向别的 POP3 邮件服务器发送电子邮件
1.5 Postfix 的介绍
Postfix 是一种电子邮件服务器,它是由任职于 IBM 华生研究中心(T.J. Watson Research Center)的荷兰籍研究员 Wietse Venema 为了改良 sendmail 邮件服务器而产生的。
postfix 由十几个具有不同功能的半驻留进程组成,并且在这些进程中并无特定的进程间父子关系。某一个特定的进程可以为其他进程提供特定的服务。
大多数的 postfix 进程由一个进程统一进行管理,该进程负责在需要的时候调用其他进程,这个管理进程就是 master 进程。该进程也是一个后台程序。
这些 postfix 进程是可以配置的,我们可以配置每个进程运行的数目,可重用的次数,生存的时间等等。通过灵活的配置特性可以使整个系统的运行成本大大降低。
1.6 Postfix 特点
1、postfix 是免费的;
2、性能好,大约比 sendmail×××倍,一台运行 postfix 的台式 pc 每天可收发上百万邮件;
3、兼容 sendmail
4、健壮稳定,postfix 被设计成在重负荷之下仍然可以正常工作。当系统运行超出了可用的内存或磁盘空间时,postfix 会自动减少运行进程的数目。当处理的邮件数目增长时,postfix 运行的进程不会跟着增加;
5、灵活性好,postfix 是由超过一打的小程序组成的,每个程序完成特定的功能。你可以通过配置文件设置每个程序的运行参数。
6、安全性,postfix 具有多层防御结构,可以有效地抵御恶意者,可以运行在较低的权限之下;
1.7 部署 Postfix
1.7.1 环境准备
OS 版本:CentOS 7.5 64bit
mail-server ip :192.168.1.242
mial-client ip :192.168.1.200
[root@mail-server ~]# cat /etc/RedHat-release #查看系统版本
[root@mail-server ~]# uname -r #查看内核版本
[root@mail-server ~]# systemctl stop ebtables firewalld #关闭 ebtables 防火墙
[root@mail-server ~]# systemctl disable ebtables firewalld #重启不启动 ebtables firewall 防火墙
[root@mail-server ~]# vim /etc/sysconfig/selinux #设置 selinux 状态为 disabled
[root@mail-server ~]# setenforce 0 # 临时将 selinux 设置为 disabled
[root@mail-server ~]# getenforce #检测 selinux 是否关闭
[root@mail-server ~]# ifconfig ens33 |awk -F ‘[:]+’ ‘NR==2{print $3}’ #查看 IP 地址
[root@mail-server ~]# hostname #查看主机名
1.7.2 配置 DNS 解析
1. 安装 bind 服务
[root@mail-server ~]# yum -y install bind
2. 编辑 bing 的主配置文件
[root@mail-server ~]# vim /etc/named.conf
[root@mail-server ~]# vim /etc/named.rfc1912.zones
3. 添加 mail 邮件解析记录
[root@mail-server ~]# vim /var/named/vancen.com.zone
4. 重启 DNS 服务
[root@mail-server ~]# systemctl restart named
[root@mail-server ~]# systemctl enable named
[root@mail-server ~]# systemctl status named
1.7.3 配置 Postfix 服务程序
1. 安装 postfix 软件
[root@mail-server ~]# yum -y install postfix
2. 修改配置文件
[root@mail-server ~]# vim /etc/postfix/main.cf
76 myhostname = mail.vancen.com
83 mydomain = vancen.com
99 myorigin = $mydomain
116 inet_interfaces = all
164 mydestination = $myhostname , $mydomain
3. 重启服务
[root@mail-server ~]# systemctl restart postfix
[root@mail-server ~]# systemctl enable postfix
[root@mail-server ~]# systemctl status postfix
4. 创建邮件账户
Postfix 可以调用本地系统的账户和密码,因此在本地系统创建常规账户即可。
[root@mail-server ~]# useradd chenjf
[root@mail-server ~]# echo “chenjf” | passwd –stdin chenjf
1.7.4 配置 Dovecot 服务程序
1. 安装 Dovecot 服务程序软件包。
[root@mail-server ~]# yum -y install dovecot
2. 配置部署 Dovecot 服务程序。
[root@mail-server ~]# vim /etc/dovecot/dovecot.conf
在 Dovecot 服务程序的主配置文件中进行如下修改。首先是第 24 行,把 Dovecot 服务程序支持的电子邮件协议修改为 imap、pop3 和 lmtp。然后在这一行下面添加一行参数,允许用户使用明文进行密码验证。之所以这样操作,是因为 Dovecot 服务程序为了保证电子邮件系统的安全而默认强制用户使用加密方式进行登录,而由于当前还没有加密系统,因此需要添加该参数来允许用户的明文登录。
在主配置文件中的第 46 行,设置允许登录的网段地址,也就是说我们可以在这里限制只有来自于某个网段的用户才能使用电子邮件系统。如果想允许所有人都能使用,则不用修改本参数:此处我就仅允许我同一网段的使用。
3. 配置邮件格式与存储路径。
在 Dovecot 服务程序单独的子配置文件中,定义一个路径,用于指定要将收到的邮件存放到服务器本地的哪个位置。这个路径默认已经定义好了,我们只需要将该配置文件中第 25 行前面的井号(#)删除即可。
切换到配置 Postfix 服务程序时创建的 chenfj 账户,并在家目录中建立用于保存邮件的目录。至此,对 Dovecot 服务程序的配置部署步骤全部结束。
4. 重启 Dovecot 服务并将其添加到开机启动项中。
[root@mail-server ~]# systemctl restart dovecot
[root@mail-server ~]# systemctl enable dovecot
1.7.5 客户端验证
1. 修改客户端 DNS 解析地址
2. 打开 postfix 使用 chenjf@vancen.com 登录
3. 设置接收服务器类型为 POP3
4. 新建账户创建成功
5. 给 root 发送一封邮件
6. 邮件发送成功
7. 在 mail-server 服务器上查看是否收到邮件
1.7.6 设置用户别名邮箱
用户别名功能是一项简单实用的邮件账户伪装技术,可以用来设置多个虚拟信箱的账户以接受发送的邮件,从而保证自身的邮件地址不被泄露,还可以用来接收自己的多个信箱中的邮件。
1. 在客户端给 bin 发送一封邮件
2. 切换 bin 用户查看邮件,
切换用户被拒绝,因为 bin 账户在 Linux 系统中是系统账户,默认的 Shell 终端是 /sbin/nologin,因此在以 bin 账户登录时,系统会提示当前账户不可用。
3. 使用在 mail-server 服务器上使用 mail 命令查看 root 室友收到邮件
aliases 邮件别名服务的配置文件是专门用来定义用户别名与邮件接收人的映射。除了使用本地系统中系统账户的名称外,我们还可以自行定义一些别名来接收邮件。例如,创建一个名为 happy 的账户,而真正接收该账户邮件的应该是 root 账户。
4. 在别名的配置文件中添加一行 happy: root
5. 使用 newaliases 命令,其目的是让新的用户别名配置文件立即生效。
6. 在给 happy 发送一封邮件
7. 在 mail-servre 服务器上查看是否收到邮件。
收到了邮件证明用户别名设置无误。
: