signed

QiShunwang

“诚信为本、客户至上”

Postfix与Dovecot部署邮件系统

2021/6/3 17:32:07   来源:

电子邮件系统

电子邮件系统基于邮件协议来完成电子邮件的传输,常见的邮件协议有下面这些

简单邮件传输协议(Simple Mail Transfer Protocol,SMTP): 用于发送和中转发出的电子邮件,占用服务器的25/TCP端口。

邮局协议版本3(Post Office Protocol 3): 用于将电子邮件存储到本地主机,占用服务器的110/TCP端口。

Internet消息访问协议版本4(Internet Message Access Protocol 4): 用于在本地主机上访问邮件,占用服务器的143/TCP端口。

在生产环境中部署企业级的电子邮件系统时,有4个注意事项请留意。

1.添加反垃圾与反病毒模块:它能够很有效地阻止垃圾邮件或病毒邮件对企业信箱的干扰。
2.对邮件加密:可有效保护邮件内容不被黑客盗取和篡改。
3.添加邮件监控审核模块:可有效地监控企业全体员工的邮件中是否有敏感词、是否有透露企业资料等违规行为。
4.保障稳定性:电子邮件系统的稳定性至关重要,运维人员应做到保证电子邮件系统的稳定运行,并及时做好防范分布式拒绝服务(Distributed Denial of Service,DDoS)攻击的准备

部署基础的电子邮件系统

例1: 在配置电子邮件服务前

服务器需要做的:
1.配置服务器主机名称,需要保证服务器主机名称与发信域名保持一致;
2.清空iptables防火墙默认策略,并保存策略状态,避免因防火墙中默认存在的策略阻止了客户端DNS解析域名及收发邮件;
3.为电子邮件系统提供域名解析,配置好后重启bind服务,更改网卡DNS地址为服务器本机,重启网卡服务。
具体步骤:
vim /etc/hostname                 #配置服务器主机名称(即[root@linux Desktop]#中的linux)
	mail.linuxprobe.com                 #改为邮件后缀mail.linuxprobe.com
hostname                          #查看当前服务器主机名称,看是否修改成功
iptables -F                       #清空iptables防火墙默认策略
service iptables save             #保存iptables防火墙当前策略状态
yum install -y bind-chroot        #安装bind服务,配置DNS域名解析
vim /etc/named.conf               #编辑bind服务主配置文件
	listen-on port 53 { any; };       #允许服务器上所有IP地址均可提供DNS域名解析服务
	allow-query { any; };             #允许所有人对本服务器发送DNS查询请求
vim /etc/named.rfc1912.zones      #编辑bind服务的区域配置文件
	zone "linuxprobe.com" IN {
	type master;
	file "linuxprobe.com.zone";
	allow-update {none;};
	};
cd /var/named                                #进入保存数据配置文件以及相关模板文件的目录
cp -a named.localhost linuxprobe.com.zone    #复制正向解析模板,复制文件保留原有权限属性
vim linuxprobe.com.zone                      #编辑数据配置文件
	$TTL 1D                
	@       IN SOA linuxprobe.com. root.linuxprobe.com. (
	 ;  serial
    	                                                 1D ;  refresh
        	                                             1H ;  retry
            	                                         1W ;  expire
                	                                     3H);  minimum
   	         NS          ns.linuxprobe.com.    
	ns      IN A         192.168.23.10    
	@       IN MX 10     mail.linuxprobe.com.    
	mail    IN A         192.168.23.10
systemctl restart named    #重启bind服务
systemctl enable named     #把bind服务加入开机启动项
vim /etc/sysconfig/network-scripts/ifcfg-eno16777728    #修改网卡参数
	DNS=192.168.23.10
systemctl restart network                               #重启网卡服务

配置Postfix服务程序

Postfix服务程序主配置文件中的重要参数

参数作用
myhostname邮局系统的主机名
mydomain邮局系统的域名
myorigin从本机发出邮件的域名名称
inet_interfaces监听的网卡接口
mydestination可接收邮件的主机名或域名
mynetworks设置可转发哪些主机的邮件
relay_domains设置可转发哪些网域的邮件

安装Postfix: yum install -y postfix。RHEL7默认已经安装。需要禁用iptables防火墙(systemctl disable iptables),否则外部用户无法访问电子邮件系统。
Postfix与vsftpd服务程序一样,都可以调用本地系统的账户和密码。
Postfix服务程序的主配置文件: /etc/ postfix/main.cf。内容679行(大部分都是注释)。

例2:在例1基础上,配置Postfix服务程序。

yum install -y postfix    #安装postfix服务程序
systemctl disable iptables                 #禁用iptables防火墙
vim /etc/postfix/main.cf                   #编辑Postfix服务的主配置文件	
	myhostname = mail.linuxprobe.com           #定义一个名为myhostname的变量(75行),用来保存服务器的主机名称
	mydomain = linuxprobe.com                  #定义一个名为mydomain的变量(83行),用来保存邮件域的名称
	myorigin = $mydomain                       #调用前面的mydomain变量(99行),用来定义发出邮件的域(调用变量的好处是避免重复写入信息,以及便于日后统一修改)。
	inet_interfaces = all                      #定义网卡监听地址(116行)。可以指定要使用服务器的哪些IP地址对外提供电子邮件服务;也可以干脆写成all,代表所有IP地址都能提供电子邮件服务
	mydestination = $myhostname , $mydomain    #定义可接收邮件的主机名或域名列表(164行),去掉本地域名,保留主机名和域名
useradd liwh                               #新建用户liwh(做邮件收发测试用)
echo "123456" | passwd --stdin liwh    #为用户liwh设置密码
systemctl restart postfix                  #重启postfix服务
systemctl enable postfix                   #把postfix服务加入开机启动项

配置Dovecot服务程序(转发)

dovecot服务的主配置文件: /etc/dovecot/dovecot.conf

dovecot服务的子配置文件: /etc/dovecot/conf.d/10-mail.conf

Dovecot服务程序为了保证电子邮件系统的安全而默认强制用户使用加密方式进行登录。

例3:在例2基础上,配置上Dovercot服务程序。
yum install -y dovecot                            #安装dovecot服务程序
vim /etc/dovecot/dovecot.conf                     #编辑dovecot服务的主配置文件
	protocols = imap pop3 lmtp                        #使得Dovecot服务程序支持的电子邮件协议修改为imap、pop3和lmtp(24行)
	disable_plaintext_auth = no                       #允许用户使用明文进行密码验证(在25行添加)
	login_trusted_networks = 192.168.23.0/24          #设置允许登录的网段地址(48行)
vim /etc/dovecot/conf.d/10-mail.conf              #编辑dovecot服务的子配置文件
	mail_location = mbox:~/mail:INBOX=/var/mail/%u    #指定要将收到的邮件存放到服务器本地的位置(25行)
su - muzi                                         #切换到muzi用户
mkdir -p mail/.imap/INBOX                         #建立用于保存邮件的目录,~/mail:INBOX = home/liwh/mail/.imap/INBOX
exit                                              #退出muzi用户
systemctl restart dovecot                         #重启dovecot服务
systemctl enable dovecot                          #把dovecot服务加入开机启动项
转发:
修改ip,添加DNS为ip地址

客户使用电子邮件系统

可以使用Windows操作系统中自带的Outlook软件来进行测试(也可以使用其他电子邮件客户端来测试,比如Foxmail)电子邮件系统是否已经能够正常收发邮件

使用Foxmail测试:

window——linux
1.邮件——其他账户——开始
2.测试邮件时:其他——手动设置——xyf@linux.com(账号)   pop 192.168.23.10 110     SMIP 192.168.23.10 25     取消加密传输——邮件收件人:root@192.168.23.10/root@linux.com
3.linux系统查看:mail
linux——window
mail muzi@linuxprobe.com    #向muzi@linuxprobe.com发邮件
Subject: muzi               #邮件主题为muzi
内容                         #邮件正文
.                           #当输入“.”并按下Enter,代表正文结束并发送邮件。

设置用户别名邮箱

用户别名功能是一项简单实用的邮件账户伪装技术,可以用来设置多个虚拟信箱的账户以接受发送的邮件,从而保证自身的邮件地址不被泄露,还可以用来接收自己的多个信箱中的邮件。

编辑aliases邮件别名服务的配置文件: /etc/aliases。里面定义了大量的用户别名,这些用户别名大多数是Linux系统本地的系统账户,而在冒号(:)间隔符后面的root账户则是实际用来接收这些账户邮件的人。用户别名可以是Linux系统内的本地用户,也可以是完全虚构的用户名字。
newaliases命令: 让用户别名配置文件的设置立即生效。

例:使用用户别名技术,使得发送给muzi@linuxprobe.com的邮件,最后被root@linuxprobe.com接收。
im /etc/aliases  		  #编辑aliases邮件别名服务的配置文件
	muzi: root            #追加别名
newaliases       	      #让用户别名配置文件的设置立即生效