一、电子邮件系统
1.简介:
在概念上,TCP/IP的电子邮件系统也分为用户界面和文件传输两部分,但文件传输部分并未独立出来,形成一个类似于MOTIS中 MTA的概念。其中的原因在于TCP/IP自始至终坚持点对点的思想,它的电子邮件系统也不例外地采用点对点的传输方式,不存在邮件的存储转发问题。
在点对点方式中,虽然初始主机要参与邮件传输的全过程,但由于TCP/IP下层协议的简洁性,其效率反而比存储转发来得高。
2.优点:
电子邮件系统的优点是即便远地机不可访问,发送者也可以把文件发送出去。为此TCP/IP采用spooling缓冲技术,将用户收发文件与实际的文件传输区别开,这种划分实际是UA和MTA划分的原型。
3.邮件系统中的名词
- 邮件投递代理(Mail User Agent,MDA):能够让用户在离线的情况下依然可以完成数据的接收,其工作职责是把来自于邮件传输代理(Mail Transfer Agent,MTA)的邮件保存到本地的收件箱中。
- 用户代理(Mail User Agent,MUA):这是在电子邮件系统中为用户收发邮件的服务器。
- 邮件传输代理(Mail Transfer Agent,MTA):工作职责是转发处理不同电子邮件服务供应商之间的邮件,把来自于MUA的邮件转发到合适的MTA服务器。
三者的关系:
4.常见的邮件协议:
-
简单邮件传输协议(Simple Mail Transfer Protocol,SMTP):用于发送和中转发出的电子邮件,占用服务器的25/TCP端口。
-
邮局协议版本3(Post Office Protocol 3):用于将电子邮件存储到本地主机,占用服务器的110/TCP端口。
-
Internet消息访问协议版本4(Internet Message Access Protocol 4):用于在本地主机上访问邮件,占用服务器的143/TCP端口。
5.传输过程:
如果对方邮件服务器(MTA)宕机或对方临时离线,则发件服务器(MTA)就会把要发送的内容自动的暂时保存到本地,等检测到对方邮件服务器恢复后会立即再次投递,期间一般无需运维人员维护处理,随后收信人(MUA)就能在自己的信箱中找到这封邮件。
6. 在生产环境中部署企业级的电子邮件系统时注意:
- 添加反垃圾与反病毒模块:它能够很有效地阻止垃圾邮件或病毒邮件对企业信箱的干扰。
- 对邮件加密:可有效保护邮件内容不被黑客盗取和篡改。
- 添加邮件监控审核模块:可有效地监控企业全体员工的邮件中是否有敏感词、是否有透露企业资料等违规行为。
- 保障稳定性:电子邮件系统的稳定性至关重要,运维人员应做到保证电子邮件系统的稳定运行,并及时做好防范分布式拒绝服务(Distributed Denial of Service,DDoS)攻击的准备。
7.工作流程:
使用基于SMTP协议的Postfix服务程序提供发件服务功能,并使用基于POP3协议的Dovecot服务程序提供收件服务功能。这样一来,用户就可以使用Outlook Express或Foxmail等客户端服务程序正常收发邮件。
一般而言,信箱地址以“用户名@主机地址(域名)”格式来规范的。要想更好地检验电子邮件系统的配置效果,需要先部署bind服务程序,为电子邮件服务器和客户端提供DNS域名解析服务。
二、部署电子邮件系统
1.实验环境:
所需要的服务:bind-chroot postfix dovecot
下载后要开启的服务:named postfix dovecot
所用到的端口:53 110 25
Linux Centos 7 作为邮件服务器
Windows 中安装Foxmail或者自带的Outlook作为邮件测试客户端
2.配置域名解析服务器
配置服务器主机名称,使服务器主机名称与发信域名保持一致
[root@mail~]# vim /etc/hostname
mail.smy.com
[root@mail~]# hostname mail.smy.com
hostname命令输完后需要重新打开终端才能显示
清空iptables防火墙默认策略,并保存策略状态,避免因防火墙中默认存在的策略阻止了客户端DNS解析域名及收发邮件
[root@mail ~]# iptables -F
[root@mail ~]# service iptables save
iptables: Saving firewall rules to /etc/sysconfig/iptables:[ OK ]
配置主机IP地址
[root@mail ~]# vim /etc/sysconfig/network-scripts/ifcfg-eno16777736
HWADDR="00:0C:29:DF:8E:E5"
TYPE="Ethernet"
BROWSER_ONLY="no"
BOOTPROTO="dhcp"
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="eno16777736"
UUID="551673a9-50ff-4087-b2d4-06c812a8b3b2"
IPADDR="192.168.29.15"
NETMASK="255.255.255.0"
GATEWAY="192.168.29.254"
ONBOOT="yes"
DNS=192.168.29.15
重启网络服务
[root@mail ~]#service network restart
编辑主配置文件
[root@mail ~]# vim /etc/named.conf //编辑主配置文件
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";
allow-query { any; };
将原本文件的第一行和最后一行大括号中的内容改为any
编辑区域配置文件
[root@mail ~]# vim /etc/named.xhq.zones //编辑区域配置文件
zone "smy.com" IN { //正向解析文件
type master;
file "named.smy.com";
allow-update { none; };
};
zone "29.168.192.in-addr.arpa" IN { //反向解析文件
type master;
file "named.29.168.192";
allow-update { none; };
};
编辑正向解析配置文件
[root@mail ~]# vim /var/named/named.smy.com //编辑正向解析配置文件
$TTL 1D
@ IN SOA smy.com. root.smy.com. (
0;serial
1D;refresh
1H;retry
1W;expire
3H);minimum
NS ns.smy.com.
ns IN A 192.168.29.15
@ IN MX 10 mail.smy.com.
mail IN A 192.168.29.15
重启DNS服务
[root@mail ~]# systemctl restart named
[root@mail ~]# systemctl enable named
3.配置Postfix服务程序
安装postfix服务程序软件
[root@mail ~]# yum install postfix
查看是否安装成功
[root@mail ~]#rpm -qa | grep postfix
postfix-2.10.1-6.2.el7_1.x86_64
编辑postfix服务的配置文件
[root@mail ~]# vim /etc/postfix/main.cf
点开后发现文件中有大量注释行,空行,为方便起见,将其进行备份,去除注释行和空行,覆盖原文件
[root@mail ~]# cp -a /etc/postfix/main.cf /etc/postfix/main.back
[root@mail ~]# cat /etc/postfix/main.cf |grep -v ^$|grep -v ^#|grep -v " #" > /etc/postfix/a.cf
[root@mail ~]# mv /etc/postfix/a.cf /etc/postfix/main.cf
mv:是否覆盖"/etc/postfix/main.cf"? y
重新编辑文件
[root@mail ~]# cat /etc/postfix/main.cf
myhostname=mail.smy.com //邮局系统的主机名
mydomain = smy.com //邮局系统的域名,用来保存邮件域的名称
myorigin = $mydomain //从本机发出邮件的域名名称
inet_interfaces = 192.168.29.15 //监听的网卡接口可以选择all所有IP
mydestination = $myhostname , $mydomain
inet_protocols = all
创建电子邮件系统的登录账户
[root@mail ~]# useradd smy1
[root@mail ~]# echo "smy@123" | passwd --stdin smy1
更改用户 smy1的密码 。
passwd:所有的身份验证令牌已经成功更新。
重启服务
[root@mail ~]# systemctl restart postfix
[root@mail ~]# systemctl enable postfix
4、配置Dovecot服务程序
安装Dovecot服务程序软件包
[root@mail ~]# yum install dovecot
配置部署Dovecot服务程序(/etc/dovecot/dovecot.conf)
删掉前面的#即可取消注释
[root@mail ~]# vim /etc/dovecot/dovecot.conf
protocols = imap pop3 lmtp //电子邮件协议修改为imap、pop3和lmtp
disable_plaintext_auth = no //允许用户使用明文进行密码验证
#login_trusted_networks = //只允许某些网络访问,注释掉就所有网络都可访问
配置邮件格式与存储路径(第24行开始)
[root@mail ~]# vim /etc/dovecot/conf.d/10-mail.conf
# mail_location = maildir:~/Maildir
mail_location = mbox:~/mail:INBOX=/var/mail/%u //用于指定要将收到的邮件存放到服务器本地的哪个位置
# mail_location = mbox:/var/mail/%d/%1n/%n:INDEX=/var/indexes/%d/%1n/%n
切换到配置Postfix服务程序时创建的boss账户,并在家目录中建立用于保存邮件的目录。记得要重启Dovecot服务并将其添加到开机启动项中。
[root@mail ~]# su - smy1
[boss@mail ~]$ mkdir -p mail/.imap/INBOX
[boss@mail ~]$ exit
登出
[root@mail ~]# systemctl restart dovecot
[root@mail ~]# systemctl enable dovecot
Created symlink from /etc/systemd/system/multi-user.target.wants/dovecot.servic
四、客户端使用电子邮件系统
客户端主机网络设置
配置电子邮箱账户
选择pop
之后就创建成功啦
可以尝试发邮件,看是否能收到