配置与管理电子邮件服务
1,电子邮件由邮件头和邮件内容组成。
#电子邮件头格式
用户账号名称@电子邮件域名
例如:root@hiliti.com
2,**邮件系统组成:**用户代理MUA,邮件传输代理MTA,邮件投递代理MDA。采用客/服模式。
3,协议:SMTP协议(默认端口为25);POP协议(默认端口为110);IMAP协议(默认端口为143)。
安装电子邮件服务
#sendmail服务安装
[root@localhost ~]# yum -y install sendmail
[root@localhost ~]# rpm -qa |grep sendmail
sendmail-8.14.7-6.el7.x86_64
start/status/restart/enbale/disable/stop
#安装dovecot软件包,用于pop和IMAP服务
[root@localhost ~]# yum -y install dovecot
[root@localhost ~]# systemctl start dovecot
#sendmail的配置文件:/etc/mail
配置电子邮件服务器
#不用配置sendmail的主配置文件,只需修改数据库文件即可。
#一般步骤:
1,sendmail.cf和sendmail.mc文件
sendmail.cf是自动生成的,用户只需编辑sendmail.mc文件,再通过m4命令将sendmail.mc文件编译成sendmail.cf。
1,#开启sendmail服务的网络接口
118 DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')dnl
改为:
118 DAEMON_OPTIONS(`Port=smtp,Addr=0.0.0.0, Name=MTA')dnl
2,#设置SMTP的用户认证
[root@localhost ~]# vim /etc/mail/sendmail.mc
52 dnl TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
53 dnl define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
改为:(去掉前面的dnl)
52 TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
53 define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
2,配置主机别名和域名
[root@localhost ~]# vim /etc/mail/local-host-names
# local-host-names - include all aliases for your machine here.
school.com
#重启sendmail服务,该邮件服务器就可以接收目标位@school.com 的邮件。反之,将拒接接收对方发来的邮件
3,配置访问控制
access.db数据库可实现基于主机地址的访问控制,access.db数据库默认开启了对邮件服务器本机用户的邮件投递。利用makemap命令生成access.db数据库
格式:
[标签]:[参数] [制约关键字]
#利用access文件生成access.db 文件命令如下:
#makemap hash /etc/mail/access.db < /etc/mail/access
4,设置虚拟域用户
虚拟域用户的数据库文件默认是**/etc/mail/virtusertable.db**,它是由**/etc/mail/virtusertable文件生成**。
格式:
<虚拟域地址> <真实地址>
#生成文件命令如下:
#makemap hash /etc/mail/virtusertable.db < /etc/mail/virtusertable
配置电子邮件客户端
Linux环境下,使用telnet命令收发邮件。
#安装软件包
[root@localhost ~]# yum -y install xinetd
#安装telnet服务端软件包,与客户端
[root@localhost ~]# yum -y install telnet-server
[root@localhost ~]# yum -y install telnet
#启动telnet服务
[root@localhost ~]# systemctl start xinetd
1,#使用helo命令和连接上的SMTP服务器表名身份
2,#指明邮件的发/收件人
mail from: <gacl@sohu.com>
rcpt to: <xdp_gacl@ sina.cn>
3,#编写邮件内容
输入data命令
编写邮件内容
输入"."符号,表示邮件服务器邮件内容已经编写完
4,#输入quit命令断开连接
5,#输入用户名和密码登录POP3 服务器
user username //登录邮箱的用户名
pass password //密码
6,#使用rter命令收取邮件
rter 数字 //收取邮件,rter1表示收取邮箱当中的第一封邮件
stat //返回邮箱里面的邮件数据和邮件占用的空间大小信息
list 数字 //返回某一封邮件的统计信息
7,#断开POP3的连接
quit
返回的状态码有
220:服务就绪
250:请求邮件正确
235:认证通过
221:正在处理3
54:开始发送数据,结束以.
500语法错误
550:命令不能执行
552:中断处理:用户超出文件空间
综合案例
`某公司现需搭建一台Email 服务器,该Email服务器所在域为hbliti.com,为该Email服务器设置虚拟域school.com,并为cn@ hblti. com指定虚拟域别名为cn@school.com。
各类服务器的详细信息如表9-2所示:s
1,#首先在email服务器正确配置yum源后,安装emils相关软件包
[root@localhost ~]# yum -y install sendmail
[root@localhost ~]# yum -y install sendmail-cf
[root@localhost ~]# yum -y install dovecot
[root@localhost ~]# yum -y install m4
2,#配置DNS服务器,并编辑DNS服务器的全局配置文件named.conf
[root@localhost ~]# yum -y install bind
[root@localhost ~]# vim /etc/named.conf
13 listen-on port 53 { any; };
21 allow-query { any; };
3,#改DNS服务器的主要配置文件named.zones(添加进去的)
[root@localhost ~]# cd /etc/
[root@localhost etc]# vim named.rfc1912.zones
zone "school.com" IN {
type master;
file "school.com.zone";
allow-update { none; };
};
zone "100.168.192.in-addr.arpa" IN {
type master;
file "192.168.100.zone";
allow-update { none; };
};
4,#在DNS文件存放目录/var/named/下创建正向解析文件(school.com.zone)和反向解析文件(192.168.100.zone)
[root@localhost etc]# cd /var/named/
[root@localhost named]# cp -p named.localhost school.con.zone
[root@localhost named]# cp -p named.loopback 192.168.100.zone
[root@localhost named]# vim school.con.zone
MYMTTL 1D
@ IN SOA school.com. root.school.com. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
@ IN NS dns.school.com.
@ IN MX 10 mail.school.com.
dns IN A 192.168.100.254
mail IN A 192.168.100.254
smtp IN A 192.168.100.254
pop3 IN A 192.168.100.254
[root@localhost named]# vim 192.168.100.zone
MYMTTL 1D
@ IN SOA school.com. root.school.com. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
@ IN NS dns.school.com.
@ IN MX 10 mail.school.com.
254 IN PTR dns.school.com.
254 IN PTR mail.school.com.
254 IN PTR smtp.school.com.
254 IN PTR pop3.school.com.
5,#关闭防火墙,并设置SHlinux为允许
[root@localhost named]# systemctl stop firewalld
[root@localhost named]# setenforce 0
[root@localhost named]# getenforce
Permissive
6,#修改/etc/mail/loacl-host-names文件,内容如下
[root@localhost named]# vim /etc/mail/local-host-names
school.com
192.168.100.254
7,#修改/etc/mail/access文件,内容如下(添加进去的)
[root@localhost named]# vim /etc/mail/access
Connect:school.com RELAY
Connect:192.168.100.254 RELAY
8,#使用makemap命令生成/etc/mail/access.db文件,命令如下
[root@localhost named]# makemap hash /etc/mail/access.db < /etc/mail/access
9,#编辑虚拟域用户文件/etc/mail/vaitusertable文件,并生成/etc/mail/virtusertable.db文件
[root@localhost named]# vim /etc/mail/virtusertable
cn@school.com user1@hbliti.com
[root@localhost named]# makemap hash /etc/mail/virtusertable.db < /etc/mail/virtusertable
10,#编辑/etc/mail/sendmail.mc文件,内容如下
[root@localhost named]# vim /etc/mail/sendmail.mc
52 TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
53 define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
118 DAEMON_OPTIONS(`Port=smtp,Addr=0.0.0.0, Name=MTA')dnl
157 LOCAL_DOMAIN(`school.com')dnl
11,#建立用户
[root@localhost named]# useradd client1
[root@localhost named]# useradd client2
[root@localhost named]# passwd client1 //密码为1
[root@localhost named]# passwd client2
12,#编辑/etc/dovecot/dovecot.conf,内容如下
[root@localhost named]# vim /etc/dovecot/dovecot.conf
24 protocols = imap pop3 lmtp
48 login_trusted_networks = 192.168.100.0/24
13,#编辑/etc/dovecot/conf.d/10-mail.conf文件,内容如下
[root@localhost named]# vim /etc/dovecot/conf.d/10-mail.conf
25 mail_location = mbox:~/mail:INBOX=/var/mail/%u
322 mbox_write_locks = fcntl
14,#创建client1和client2用户的邮箱路径
[root@localhost named]# mkdir -p /home/client1/mail/.imap/INBOX/
[root@localhost named]# mkdir -p /home/client2/mail/.imap/INBOX/
15,#修改文件/etc/skel/.bash_profile文件
[root@localhost named]# vim /etc/skel/.bash_profile
4 if [ ! -d ~/mail/.imap/INBOX ]; then
5 mkdir -p ~/mail/.imap/INBOX
6 fi
16,#启动相关服务
[root@localhost named]# systemctl start named //dns服务
[root@localhost named]# systemctl start sendmail
[root@localhost named]# systemctl start dovecot
[root@localhost named]# systemctl start saslauthd
17,#在服务端安装telnet服务,并启动telnet服务
[root@localhost ~]# yum -y install xinetd
[root@localhost ~]# yum -y install telnet-server
[root@localhost ~]# systemctl start xinetd
18,#在客户端安装telnet客户端
[root@localhost ~]# yum -y install telnet
19,#在客户端关闭防火墙,并设置shlinux为运行
[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# setenforce 0
[root@localhost ~]# getenforce
Permissive
20,#在客户端测试发送和接收邮件
[root@localhost ~]# telnet 192.168.100.254 25
Trying 192.168.100.254...
Connected to 192.168.100.254.
Escape character is '^]'.