当前位置: 首页 > article >正文

CentOS8.5.2111(10)基于域名访问的邮件服务配置与管理

兰生幽谷,不为莫服而不芳;

君子行义,不为莫知而止休。

1.实验目标

1.掌握邮件服务的工作原理

2.掌握各配置文件作用及其参数意义

3.具备postfix和POP3服务器配置能力

4.具备对客户端用户身份验证配置能力

5.具备客户端验证测试正常收发邮件的能力

6.具备邮件服务器故障排除能力

2. 实训原理

2.1项目背景

你是某企业的网络技术员,需发布搭建邮件服务为公司每位员工设置邮箱。本次实验任务是实现基于Centos环境下postfix服务、dovecot服务及对客户端用户身份验证设置。在LINUX客户端或Outlook客户端进行收发邮件。

图10- 1 email系统拓扑

表 10-1 主机规划

操作系统

IP地址

dns

CentOS8

192.168.学号.66(自己定)

mail

CentOS8

192.168.学号.75(自己定)与DNS server同网段

client1

CentOS8

192.168.学号.73(自己定)与DNS server同网段

client2

WINDOWS12

192.168.学号.25(自己定)与DNS server同网段

2.2任务要求

1. 安装postfix服务器;

2. 安装dovecot服务器;

3. 对客户端用户身份验证设置;

4. 两种不同的客户端验证测试。

3.实验流程

重要提示:请确保虚拟机能正常连接到互联网!!!测试虚拟机是否连接互联网

Ping www.baidu.com

[root@client1 ~]# ping www.baidu.com -c 1

PING www.a.shifen.com (183.2.172.185) 56(84) bytes of data.

64 bytes from 183.2.172.185 (183.2.172.185): icmp_seq=1 ttl=128 time=54.10 ms

以上代表虚拟机能够正常连接互联网,其他主机测试略。

3.1 配置一个完整的收发邮件服务器并测试

1)检查DNS服务的是否正常运行,并能正常解析mail.学生姓名.Com的域名。

[root@DNS ~]# systemctl status named

图10- 2

测试域名

服务器端检查

[root@DNS ~]# nslookup mail.wzz.cqie

Server:         192.168.100.66

Address:        192.168.100.66#53

Name:   mail.wzz.cqie

Address: 192.168.100.75

客户端检查

[root@client1 ~]# nslookup mail.wzz.cqie

Server:         192.168.100.66

Address:        192.168.100.66#53

Name:   mail.wzz.cqie

Address: 192.168.100.75

图10- 3

图10- 4

如果正常,则执行如下操作,如果不能正常解析,请参见DNS服务器配置先完善DNS服务。

2)服务器端

服务器端需安装postfix、dovecot和telnet服务,防火墙放行相关服务及端口

(1)安装postfix、dovecot和telnet服务

[root@mail ~]#yum install postfix dovecot telnet-server telnet -y

……

[root@mail ~]# rpm -qa|grep postfix

postfix-3.5.8-2.el8.x86_64

[root@mail ~]# rpm -qa|grep dovecot

dovecot-2.3.8-9.el8.x86_64

[root@mail ~]# rpm -qa|grep telnet

telnet-server-0.17-76.el8.x86_64

telnet-0.17-76.el8.x86_64

图10- 5

(2)打开SELinux有关的布尔值,在防火墙中开放dns、smtp服务。

[root@mail ~]#setsebool -P allow_postfix_local_write_mail_spool on

查看设置是否行效

[root@mail ~]# getsebool -a|grep postfix

postfix_local_write_mail_spool --> on

图10- 6

防火墙放开

[root@mail ~]#firewall-cmd --permanent --add-service=dns

[root@mail ~]#firewall-cmd --permanent --add-service=smtp

[root@mail ~]#firewall-cmd --permanent --add-service=telnet

[root@mail ~]#firewall-cmd --reload

(3) 启动POP3服务,同时开放pop3和imap对应的TCP端口110和143。

[root@mail ~]#firewall-cmd --permanent --add-port=110/tcp

[root@mail ~]#firewall-cmd --permanent --add-port=25/tcp

[root@mail ~]#firewall-cmd --permanent --add-port=143/tcp

[root@mail ~]#firewall-cmd --permanent --add-port=23/tcp

[root@mail ~]#firewall-cmd --reload

检查端口是否开启

[root@mail ~]# firewall-cmd --list-all

public (active)

  target: default

  icmp-block-inversion: no

  interfaces: ens33 ens36 ens37 ens38

  sources:

  services: cockpit dhcpv6-client dns smtp ssh telnet

  ports: 110/tcp 25/tcp 143/tcp 23/tcp

  protocols:

  forward: no

  masquerade: no

  forward-ports:

  source-ports:

  icmp-blocks:

  rich rules:

3)配置邮件服务器主配置文件 (域名以wzz.cqie为例,学生自己对应自已域名)

先配置/etc/ postfix/main.cf,再配置Dovecot服务程序。

(1) 配置/etc/ postfix/main.cf。

[root@mail ~]#vi /etc/postfix/main.cf

myhostname = mail.wzz.cqie

mydomain = wzz.cqie

myorigin = $mydomain

inet_interfaces = all

mydestination = $myhostname,$mydomain,localhost

图10- 7

图10- 8

图10- 9

图10- 10

图10- 11

图10- 12

图10- 13

(2)配置dovecot.conf

[root@mail ~]#vi /etc/dovecot/dovecot.conf

protocols = imap pop3 lmtp   #可以删除lmtp协议

login_trusted_networks = 0.0.0.0/0

图10- 14

10- 15

(3)配置邮件格式和路径,建立邮件目录(极易出错)。

[root@mail ~]#vi /etc/dovecot/conf.d/10-mail.conf

mail_location = mbox:~/mail:INBOX=/var/mail/%u

图10- 16

[root@mail ~]#useradd user3

[root@mail ~]#useradd user4

[root@mail ~]#passwd user3      

[root@mail ~]#passwd user4 

[root@mail ~]#mkdir -p /home/user3/mail/.imap/INBOX

[root@mail ~]#mkdir -p /home/user4/mail/.imap/INBOX

(4)启动各种服务,配置防火墙,允许布尔值等。

[root@mail ~]#systemctl start postfix

[root@mail ~]#systemctl start named

[root@mail ~]#systemctl start dovecot 

[root@mail ~]#systemctl enable postfix

[root@mail ~]#systemctl enable dovecot 

[root@mail ~]#systemctl enable named

[root@mail ~]#setsebool -P allow_postfix_local_write_mail_spool on

(5)检查各服务状态是否正常

图10- 17

图10- 18

检查各服务对应的端口是否正常监听状态

图10- 19

注意:如果不能识别netstat命令,则需安装

[root@mail ~]#yum install net-tools -y

3.2 在client上使用telnet发送邮件

1)使用telnet发送邮件(在Client1客户端测试,确保DNS服务器设为邮件服务器指向的DNS,教师的DNS地址与邮件服务器地址均为192.168.100.66和192.168.100.75)

[root@client1 ~]# nslookup mail.wzz.cqie

Server:         192.168.100.66

Address:        192.168.100.66#53

Name:   mail.wzz.cqie

Address: 192.168.100.75

图10- 20

或者ping通

图10- 21

如果不能测试正常,检查。

在Client1上测试DNS是否正常,这一步至关重要。

[root@client1 ~]# cat /etc/resolv.conf

# Generated by NetworkManager

search localdomain

nameserver 192.168.100.66

nameserver 114.114.114.114

nameserver 192.168.137.2

查看一下

[root@client1 ~]# nslookup

> set type=MX

> wzz.cqie

Server:         192.168.100.66

Address:        192.168.100.66#53

wzz.cqie        mail exchanger = 10 mail.wzz.cqie.

> exit

注意:如果nslookup命令不识别,请安装DNS(bind-utils包)

yum install bind-utils -y

图10- 22

2)在Client上依次安装telnet所需的软件包。

[root@Client ~]# yum install telnet-server telnet –y

3)在Client1客户端测试。(以下红色部分为输入内容,黑色部分为注释或系统自动提示)

[root@Client ~]#telnet mail.wzz.cqie 25 //利用telnet命令连接邮件服务器的25端口

图10- 23

Helo wzz.cqie   //利用helo命令向邮件服务器表明身份,不是hello

250 mail.wzz.cqie

mail from:"test"<user3@wzz.cqie>

//设置信件标题以及发信人地址。其中信件标题为“test”,发信人地址为client1@smile.com

250 2.1.0 Ok

Rcpt to:user4@wzz.cqie    //利用rcpt to命令输入收件人的邮件地址

250 2.1.5 Ok

data                       // data表示要求开始写信件内容了。354 End data with <CR><LF>.<CR><LF>

dear user2:                 //信件内容

how are you?     

.                      //“.”表示结束信件内容。千万不要忘记输入“.”

250 2.0.0 Ok: queued as 456EF25F

quit           //退出telnet命令

221 2.0.0 Bye

Connection closed by foreign host.

图10- 24

3.3 利用Telnet命令接收电子邮件

以下红色部分为输入内容,黑色部分为注释或系统自动提示

[root@Client ~]#telnet mail.wzz.cqie 110 //利用telnet连接邮件服务器110端口

图10- 25

[root@client1 ~]# telnet mail.wzz.cqie 110

Trying 192.168.100.75...

Connected to mail.wzz.cqie.

Escape character is '^]'.

+OK [XCLIENT] Dovecot ready.

user user4

+OK

pass user4

+OK Logged in.

list

+OK 1 messages:

1 295

.

retr 1

+OK 295 octets

Return-Path: <user3@wzz.cqie>

X-Original-To: user4@wzz.cqie

Delivered-To: user4@wzz.cqie

Received: from wzz.cqie (squid.wzz.cqie [192.168.100.73])

        by mail.wzz.cqie (Postfix) with SMTP id 2E55F99B98

        for <user4@wzz.cqie>; Sat,  7 Dec 2024 10:21:53 -0500 (EST)

dear user2:

how are you?

.

quit

+OK Logging out.

Connection closed by foreign host.

图10- 26

查看用户邮件目录

Postfix在/var/spool/mail目录中为每个用户分别建立单独的文件用于存放每个用户的邮件,这些文件的名字和用户名是相同的

[root@mail ~]# ll /var/spool/mail

总用量 4

-rw-rw----. 1 rpc   mail   0 10 21 02:31 rpc

-rw-rw----. 1 user3 mail   0 12  7 07:58 user3

-rw-rw----. 1 user4 mail 437 12  7 10:30 user4

3.4利用outlook收、发电子邮件(略)

3.5使用Cyrus-SASL实现SMTP认证

为了避免邮件服务器成为各类广告与垃圾信件的中转站和集结地,对转发邮件的客户端进行身份认证(用户名和密码验证)是非常必要的。SMTP认证机制是通过Cryus-SASL包来实现的。

1)编辑认证配置文件

1安装cyrus-sasl软件

[root@mail ~]# yum install cyrus-sasl -y

图10- 27

检查sasl安装包是否完整,共3 个。

图10- 28

(2)查看、选择、启动和测试所选的密码验证方式

[root@mail ~]# saslauthd -v               //查看支持的密码验证方法

saslauthd 2.1.27

authentication mechanisms: getpwent kerberos5 pam rimap shadow ldap httpform

[root@mail ~]#vi /etc/sysconfig/saslauthd    //将密码认证机制修改为shadow

……

MECH=shadow     //指定对用户及密码的验证方式,由pam改为shadow,本地用户认证

……

图10- 29

保存退出!

[root@mail ~]# ps aux | grep saslauthd           //查看saslauthd进程是否已经运行

root       15901  0.0  0.2 221928  1144 pts/0    S+   10:43   0:00 grep --color=auto saslauthd

//开启SELinux布尔值允许saslauthd程序读取/etc/shadow文件

[root@MAIL ~]#setsebool -P allow_saslauthd_read_shadow on

图10- 30

[root@mail ~]# systemctl start saslauthd

[root@mail ~]# systemctl enable saslauthd

Created symlink /etc/systemd/system/multi-user.target.wants/saslauthd.service /usr/lib/systemd/system/saslauthd.service.

图10- 31

测试saslauthd的认证功能

[root@mail ~]# testsaslauthd -u user4 -p 'user4'

0: OK "Success."

图10- 32

3编辑smtpd.conf文件,使Cyrus-SASL支持SMTP认证。

[root@mail~]#vi /etc/sasl2/smtpd.conf   

pwcheck_method:saslauthd

mech_list:plain login 

log_level: 3               //记录log的模式

saslauthd_path:/run/saslauthd/mux     //设置smtp寻找cyrus-sasl的路径

图10- 33

2)编辑main.cf文件,使Postfix支持SMTP认证

1在默认情况下,Postfix并没有启用SMTP认证机制。要让Postfix启用SMTP认证,就必须在main.cf文件中添加如下配置行。

[root@mail~]#vi /etc/postfix/main.cf

smtpd_sasl_auth_enable = yes        //启用SASL作为SMTP认证

smtpd_sasl_security_options = noanonymous //禁止采用匿名登录方式

broken_sasl_auth_clients = yes     //兼容早期非标准的SMTP认证协议(如OE4.x)

smtpd_recipient_restrictions = permit_sasl_authenticated, reject_unauth_destination                            //认证网络允许,没有认证的拒绝

最后一句设置基于收件人地址的过滤规则,允许通过SASL认证的用户向外发送邮件,拒绝不是发往默认转发和默认接收的连接。

2重新载入Postfix服务,使配置文件生效(防火墙、端口、SELinux的设置同前面内容)。

[root@MAIL ~]#postfix check 

[root@MAIL ~]#postfix reload

[root@MAIL ~]#systemctl restart saslauthd

[root@MAIL ~]#systemctl enable saslauthd

3)利用foxmail验证测试

1首先确保服务器状态正常

图10- 34

图10- 35

图10- 36

(2)然后在物理机上,仅保留NAT模式用到VMnet8可用,其余禁用掉(以免解析公网上的相关域名形成干扰)。并配置该网卡DNS为邮件服务器的ip。

测试物理机上能正常解析邮件服务器中的域名。如mail.wzz.cqie

图10- 37

(3)在windows客户端收邮件

添加telnet服务

图10- 38

启用cmd或powershell,用telnet收发邮件

图10- 39

当然,也可以安装foxmail,并设置user3、user4账户、服务器相关信息,记得勾选认证选项。

测试邮件的正常收发,并可以带附件文件。(步骤略)。


http://www.kler.cn/a/428207.html

相关文章:

  • 【单细胞第二节:单细胞示例数据分析-GSE218208】
  • Unity 粒子特效在UI中使用裁剪效果
  • Vuex中的getter和mutation有什么区别
  • Cannot resolve symbol ‘XXX‘ Maven 依赖问题的解决过程
  • 3、C#基于.net framework的应用开发实战编程 - 实现(三、三) - 编程手把手系列文章...
  • 【C++】特殊类设计、单例模式与类型转换
  • python录制鼠标键盘操作循环播放
  • LeetCode:28. 找出字符串中第一个匹配项的下标(KMP算法)
  • 【PlantUML系列】思维导图(五)
  • Flink自定义数据源
  • Netty 的多线程模型详解
  • LabVIEW中“this VI‘s owning library is missing”错误及解决
  • openharmony开发资料合集
  • UI Left EXE Right Recive TCPIP
  • YOLOv8-ultralytics-8.2.103部分代码阅读笔记-build.py
  • 【如何制定虚拟货币的补仓策略并计算回本和盈利】
  • Linux网络编程之---组播和广播
  • 快速排序的基本思想和java实现
  • Next.js系统性教学:全面掌握客服务端组件(Server Components)
  • ARMv8-A MacOS调试环境搭建
  • Python毕业设计选题:基于大数据的淘宝电子产品数据分析的设计与实现-django+spark+spider
  • PyCharm文件、临时文件、目录、文件夹(Directory)、软件包(Package)的区别
  • Spring Boot配置文件敏感信息加密
  • 智创 AI 新视界 -- AI 与量子计算的未来融合前景(16 - 5)
  • python拆分Excel文件
  • docker安装ddns-go(外网连接局域网)