目录
项目设计
电子邮件服务配置实例
主机名 |
操 作 系 统 |
IP地址 |
角色及其他 |
邮件服务器:Server01 |
RHEL 8 |
192.168.10.1 |
DNS服务器、postfix邮件服务器,VMnet1 |
Linux客户端:Client1 |
RHEL 8 |
192.168.10.20 |
邮件测试客户端,VMnet1 |
项目准备
(1)安装好企业版Linux网络操作系统,并且必须保证Apache服务和perl语言解释器正常工作。客户端使用Linux,服务器和客户端能够通过网络进行通信。
(2)电子邮件服务器的IP地址、子网掩码等TCP/IP参数应手工配置。
(3)电子邮件服务器应拥有一个友好的DNS名称,应能够被正常解析,并且具有电子邮件服务所需的MX资源记录。
(4)创建任何电子邮件域之前,规划并设置好POP3服务器的身份验证方法。
配置postfix常规服务器(完成邮件发送准备)
1.安装bind和postfix服务。
[root@Server01 ~]# mount /dev/cdrom /media
[root@Server01 ~]# dnf clean all //安装前先清除缓存
[root@Server01 ~]# dnf install bind postfix -y
2.开放dns、smtp服务。
打开SELinux有关的布尔值,在防火墙中开放dns、smtp服务。重启服务,并设置开机重启生效。
[root@Server01 ~]# setsebool -P allow_postfix_local_write_mail_spool on
[root@Server01 ~]# systemctl restart postfix
[root@Server01 ~]# systemctl restart named
[root@Server01 ~]# systemctl enable named
[root@Server01 ~]# systemctl enable postfix
[root@Server01 ~]# firewall-cmd --permanent --add-service=dns
[root@Server01 ~]# firewall-cmd --permanent --add-service=smtp
[root@Server01 ~]# firewall-cmd --reload
postfix服务程序主配置文件中的主要参数
2.4 配置Dovecot服务程序(完成使用POP3和IMAP协议接收邮件准备)
1.安装Dovecot服务程序软件包(安装POP3和IMAP)。
[root@Server01 ~]# mount /dev/cdrom /media
[root@Server01 ~]# dnf install dovecot -y
2.启动POP3服务,同时开放pop3和imap对应的TCP端口110和143。
[root@Server01 ~]# systemctl restart dovecot
[root@Server01 ~]# systemctl enable dovecot
[root@Server01 ~]# firewall-cmd --permanent --add-port=110/tcp
[root@Server01 ~]# firewall-cmd --permanent --add-port=25/tcp
[root@Server01 ~]# firewall-cmd --permanent --add-port=143/tcp
[root@Server01 ~]# firewall-cmd –reload
3.测试。
使用netstat命令测试是否开启POP3的110端口和IMAP的143端口。
[root@Server01 ~]#netstat -an|grep :110
[root@Server01 ~]#netstat -an|grep :143
2.5 配置Dovecot服务程序主配置文件(/etc/dovecot/dovecot.conf)
(1)首先修改第24行,确认支持的电子邮件协议为imap、pop3和lmtp,默认就是这些协议。
[root@Server01 ~]# vim /etc/dovecot/dovecot.conf -n
protocols = imap pop3 lmtp
(2)在主配置文件的第48行,设置允许登录的网段地址,如果想允许所有人都能使用,则修改本参数如下:
login_trusted_networks = 0.0.0.0/0
也可修改为某网段,如192.168.10.0/24。
2.6 配置邮件格式与存储路径(/etc/dovecot/conf.d/10-mail.conf)
在Dovecot服务程序单独的子配置文件中,定义一个路径,用于指定要将收到的邮件存放到服务器本地的哪个位置。这个路径默认已经定义好了,只需将该配置文件中第24行前面的井号(#)删除,然后存盘退出即可。
[root@Server01 ~]# vim /etc/dovecot/conf.d/10-mail.conf
mail_location = mbox:~/mail:INBOX=/var/mail/%u
2.7创建用户,建立保存邮件的目录
建立相应用户的保存邮件的目录(这是必须的,否则出错),以创建user1和user2为例:
[root@Server01 ~]# useradd user1
[root@Server01 ~]# useradd user2
[root@Server01 ~]# passwd user1
[root@Server01 ~]# passwd user2
[root@Server01 ~]# mkdir -p /home/user1/mail/.imap/INBOX
[root@Server01 ~]# mkdir -p /home/user2/mail/.imap/INBOX
至此,对Dovecot服务程序的配置部署全部结束。
项目需求
postfix电子邮件服务器和DNS服务器的地址为192.168.10.1,利用Telnet命令,使邮件地址为[email protected]的用户向邮件地址为[email protected]的用户发送主题为“The first mail:user3 TO user4”的邮件,同时使用telnet命令从IP地址为192.168.10.1的POP3服务器接收电子邮件。#Telnet指令是一种常用的远程登录工具,可用于与远程主机建立连接并执行命令。
第1步:在Server01上安装dns、postfix、dovecot和telnet,并启动。
(1)安装dns、postfix、dovecot和telnet。
[root@Server01 ~]# mount /dev/cdrom /media
[root@Server01 ~]# dnf clean all
[root@Server01 ~]# dnf install bind postfix dovecot telnet-server telnet –y
(2)打开SELinux有关的布尔值,在防火墙中开放dns、smtp服务。
[root@Server01 ~]# setsebool -P allow_postfix_local_write_mail_spool on
[root@Server01 ~]# firewall-cmd --permanent --add-service=dns
[root@Server01 ~]# firewall-cmd --permanent --add-service=smtp
[root@Server01 ~]# firewall-cmd --permanent --add-service=telnet
(3)启动POP3服务,同时开放pop3和imap对应的TCP端口110和143。
[root@Server01 ~]# firewall-cmd --permanent --add-port=110/tcp
[root@Server01 ~]# firewall-cmd --permanent --add-port=25/tcp
[root@Server01 ~]# firewall-cmd --permanent --add-port=143/tcp
[root@Server01 ~]# firewall-cmd --reload
第2步:在Server01上配置DNS服务器,设置MX资源记录。
编辑修改DNS服务的主配置文件,添加long90.cn域的区域声明(具体配置过程详见《DNS服务器配置与管理》章节)。
第3步:在server01上配置邮件服务器。
(1)配置/etc/postfix/main.cf。
[root@Server01 ~]# vim /etc/postfix/main.cf
myhostname = mail.long90.cn
mydomain = long90.cn
myorigin = $mydomain
inet_interfaces = all
mydestination = $myhostname,$mydomain,localhost
(2)配置/etc/dovecot/dovecot.conf。
[root@Server01 ~]# vim /etc/dovecot/dovecot.conf
protocols = imap pop3 lmtp
login_trusted_networks = 0.0.0.0/0
第3步:在server01上配置邮件服务器。
(3)配置邮件格式和路径(默认已配置好,在25行左右),建立邮件目录(极易出错)。
[root@Server01 ~]# vim /etc/dovecot/conf.d/10-mail.conf
mail_location = mbox:~/mail:INBOX=/var/mail/%u
[root@Server01 ~]# useradd user3
[root@Server01 ~]# useradd user4
[root@Server01 ~]# passwd user3
[root@Server01 ~]# passwd user4
[root@Server01 ~]# mkdir -p /home/user3/mail/.imap/INBOX
[root@Server01 ~]# mkdir -p /home/user4/mail/.imap/INBOX
(4)启动各种服务,配置防火墙,允许布尔值等。
[root@Server01 ~]# systemctl restart postfix
[root@Server01 ~]# systemctl restart named
[root@Server01 ~]# systemctl restart dovecot
[root@Server01 ~]# systemctl enable postfix
[root@Server01 ~]# systemctl enable dovecot
[root@Server01 ~]# systemctl enable named
[root@Server01 ~]# setsebool -P allow_postfix_local_write_mail_spool on
第4步:在client1上使用telnet发送邮件。
(1)在Client1上测试DNS。
[root@client1 ~]# vim /etc/resolv.conf
nameserver 192.168.10.1
[root@client1 ~]# nslookup
> set type=MX
> long90.cn
Server: 192.168.10.1
Address: 192.168.10.1#53
long90.cn mail exchanger = 10 mail.long90.cn.
> exit
(2)在Client1上依次安装telnet所需的软件包。
[root@Client1 ~]# dnf install telnet-server -y //安装telnet服务器软件
[root@Client1 ~]# dnf install telnet -y //安装telnet客户端软件
第4步:在client1上使用telnet发送邮件。
(3)在Client1客户端测试。
[root@Client1 ~]# telnet 192.168.10.1 25 //利用telnet命令连接邮件服务器的25端口
Trying 192.168.10.1...
Connected to 192.168.10.1.
Escape character is '^]'.
220 mail.long90.cn ESMTP postfix
helo long90.cn //利用helo命令向邮件服务器表明身份,不是hello
250 mail.long90.cn
mail from:"test"//设置信件标题以及发信人地址。其中信件标题
//为“test”,发信人地址为[email protected]
250 2.1.0 Ok
rcpt to:[email protected] //利用rcpt to命令输入收件人的邮件地址
250 2.1.5 Ok
data // data表示要求开始写信件内容了。当输入完data指令后,会提示以一个单行的“.”结束信件
354 End data with.
The first mail:user3 TO user4 //信件内容
. //“.”表示结束信件内容。千万不要忘记输入“.”
250 2.0.0 Ok: queued as 456EF25F
quit //退出telnet命令
221 2.0.0 Bye
Connection closed by foreign host.
第5步:在Client1上利用Telnet命令接收电子邮件。
[root@Client1 ~]# telnet 192.168.10.1 110 //利用telnet命令连接邮件服务器110端口
Trying 192.168.10.1...
Connected to 192.168.10.1.
Escape character is '^]'.
+OK Dovecot ready.
user user4 //利用user命令输入用户的用户名为user4
+OK
pass 12345678 //利用pass命令输入user4账户的密码,此处假设为12345678
+OK Logged in.
list //利用list命令获得user4账户邮箱中各邮件的编号
+OK 1 messages:
1 263
.
retr 1 //利用retr命令收取邮件编号为1的邮件信息,下面各行为邮件信息
+OK 291 octets
Return-Path:X-Original-To: [email protected] Delivered-To: [email protected]
Received: from long90.cn (unknown [192.168.10.20])
by mail.long90.cn (postfix) with SMTP id 235DC1485
for; Sun, 21 Feb 2021 12:09:51 -0500 (EST)
.
quit //退出telnet命令