《Linux网络操作系统配置与管理》

一、项目规划

本项目通过1台物理机和VMware Workstation软件,构建了一个具有4个内部子网、一个外部模拟公网、4台虚拟交换机和6台虚拟机的网络,网络拓扑图如图所示。

img

设备及IP地址分配见表15-5。

image-20210526113019305

二、项目实训内容

任务1配置各虚拟机的网络参数和NAT服务,实现内部4个子网和外网的互连互通

为虚拟机①和虚拟机③添加所需数量的网卡,并根据表15-5的规划将各网卡连接至相应的虚拟交换机,配置所有虚拟机上各网卡的IP地址等网络参数。

在虚拟机①和虚拟机③上分别编辑各自的/usr/lib/sysctl.d/00-system.conf文件,以开启IP转发功能。

# vim /usr/lib/sysctl.d/00-system.conf 修改其配置文件
在配置文件中添加 net.ipv4.ip_forward = 1 开启IP转发功能
# sysctl -p /usr/lib/sysctl.d/00-system.conf  使配置文件立即生效

(3) 在虚拟机①上添加永久生效的静态路由,使得子网2、子网3和子网4中的客户机的数据包能到达外网。

# Vim /etc/sysconfig/network-scripts/route-“网卡设备名”
10.1.80.0/24 via 192.168.1.3 dev eth0

(4)将虚拟机②、虚拟机④和虚拟机⑥的默认网关均设置为192.168.1.3,并在三台虚拟机上分别添加永久生效的静态路由,使其数据包能到达子网2、子网3和子网4中的客户机。

编辑 /etc/sysconfig/network-scripts/route-[网卡名] 文件,如果没有则根据网卡名自己创建

配置文件内容的格式如下:
ADDRESS0=X.X.X.X
NETMASK0=X.X.X.X
GATEWAY0=X.X.X.X

例:

# vim /etc/sysconfig/network-scripts/route-ens33
ADDRESS0=192.168.2.0        # 目的网段
NETMASK0=255.255.255.0
GATEWAY0=192.168.1.1        # 下一跳地址

配完重启网卡:

# systemctl restart network

(5)在虚拟机①上关闭所有防火墙。

# systemctl stop firewalld.service   关闭防火墙
# systemctl disable firewalld.service 关闭防火墙自启 
# vim /etc/selinux/config            进入配置文件将SELinux关闭
将SELINUX=enforcing 改为SELINUX=disabled  关闭selinux

(6) 在虚拟机③上配置SNAT策略,使校园网内的所有计算机能访问外部的互联网。

划分区域:

# firewall-cmd --permanent --zone=external --change-interface=ens37 将ens37划为外部网络(ipv4网络地址伪装转发)
# firewall-cmd --permanent --zone=internal --change-interface=ens33  将ens33划为内部网络
# firewall-cmd --zone=internal --add-masquerade --permanent    设置特定区域的SNAT——IP伪装

如果不开启伪装IP,端口转发会失败(外网区域默认开启);

开启伪装ip后默认允许所有ICMP通过

内部访问外部,将source ip为src_nat网段来的数据包伪装成external(即ens37)的地址

# firewall-cmd --zone=external --permanent --add-rich-rule=rule 'family="ipv4" source address="<src_net/mask>" masquerade'

例:

Src_nat为192.168.2.0/24

# firewall-cmd --zone=external --permanent --add-rich-rule='rule family="ipv4" source address="192.168.2.0/24" masquerade'  

# firewall-cmd --zone=internal --add-service=dns --permanent

# firewall-cmd --reload       重启防火墙策略

(7) 在虚拟机③外网卡上配置DNAT策略(端口转发),将内网中的Web网站、FTP站点、DNS服务(端口为53)和邮件服务器对外发布,使得互联网上的用户能访问内网中的Web网站、FTP站点、DNS服务和邮件服务器。

例:external_port为80,internal_ip为192.168.1.4

# firewall-cmd --zone=external --permanent --add-forward-port=port=<external_port>:proto=tcp:toport=<internal_port>:toaddr=<internal_ip>

(8)使用“ping”命令测试网络的连通性。

任务2:在局域网中实现DHCP功能

(1) 在虚拟机①上安装DHCP软件包,配置DHCP服务,为子网2、子网3和子网4分别创建一个对应的subnet作用域,且分配给子网2、子网3和子网4中的客户机的默认网关分别为192.168.2.1、192.168.3.1、192.168.4.1,分配的DNS的IP地址均为192.168.1.3。

# vim /etc/dhcp/dhcpd.conf

在配置文件中添加以下内容:

subnet 192.168.2.0 netmask 255.255.255.0 {
  range 192.168.2.2 192.168.2.252; 
  option routers 192.168.2.1;      #设置网关
  default-lease-time 600;          #默认租约时间
  max-lease-time 7200;             #最大租约时间
  option domain-name-servers 192.168.1.2,192.168.1.3;
}

subnet 192.168.3.0 netmask 255.255.255.0 {
  range 192.168.3.2 192.168.3.252; 
  option routers 192.168.3.1;
  default-lease-time 600;
  max-lease-time 7200;
  option domain-name-servers 192.168.1.2,192.168.1.3;
  host boss { #主机名为boss
    hardware ethernet 00:0c:29:b6:03:07; #MAC地址是00:0c:29:b6:03:07的网卡
    fixed-address 192.168.3.58;    #分配给它192.168.3.58的IP
  }
  以上网卡绑定配置放到相应的subnet网段中
}

subnet 192.168.4.0 netmask 255.255.255.0 {
  range 192.168.4.2 192.168.4.252; 
  option routers 192.168.4.1;
  default-lease-time 600;
  max-lease-time 7200;
  option domain-name-servers 192.168.1.2,192.168.1.3;
}

(2) 设置将校长使用的计算机的网卡绑定到192.168.3.58地址

(3) 启动DHCP服务并设置开机自动启动。

# systemctl start dhcpd 
# systemctl enable dhcpd 

(4)测试在子网2、子网3和子网4的客户机上能否自动获取IP地址等网络参数。

任务3:搭建DNS服务器

杀掉virbr0的进程(该虚拟网卡占用了53端口)

# netstat -ntulp | grep 53        查看进程号
# kill -9 8589                    杀死进程 

防火墙允许通过

# firewall-cmd --add-service=dns --permanent  将DNS配置为永久允许通过

# firewall-cmd --reload            重启防火墙 

(1) 在虚拟机②和虚拟机③上分别安装Unbound DNS的软件包。

# mount /dev/cdrom /mnt

先mount挂载好光盘,再到Packages目录下运行以下命令

# rpm -ivh unbound-1.4.20-28.el7.x86_64.rpm

(2) 在虚拟机②上编辑/etc/unbound/unbound.conf文件,将本主机配置为能解析域dyzx.edu的授权DNS服务器,并添加表15-6中的资源记录。

# vim /etc/unbound/unbound.conf   进入配置文件进行配置
# The listen interfaces are not changed on reload, only on restart.

  interface: 0.0.0.0     将注释去掉,监听所有地址

# interface: ::0

 

# access-control: 0.0.0.0/0 refuse

  access-control: 0.0.0.0/0 allow    设置允许向本机查询的主机范围

# access-control: 127.0.0.0/8 allow

image-20210526113502130

在/etc/unbound/local.d/下新建一个.conf文件,例a.conf

# vim a.conf      进入正反向域名配置文件进行配置

配置内容例(10.1.80网段自行配置):

local-zone: "dyzx.edu." static         设置解析的区域名

 

local-data: "www.dyzx.edu. 3600 IN A 192.168.1.4"   正向解析

local-data: "ftp.dyzx.edu. 3600 IN A 192.168.1.4"

 

local-data-ptr: "192.168.1.4 www.dyzx.edu."   反向解析

local-data-ptr: "192.168.1.4 ftp.dyzx.edu."
# unbound-checkconf        检查语法错误

# netstat -tunlp | grep unbound     查看监听端口

# vim /etc/resolv.conf    

# nameserver DNS服务器地址  配置本机DNS 

(3) 在授权DNS上设置转发器,转发的IP地址是ISP提供的DNS服务器的IP地址(8.8.8.8)。

# vim /etc/unbound/unbound.conf

forward-zone:       //定义转发forward
    name: “.”       //转发所有的查询
    forward-addr: 8.8.8.8   //将解析请求转发到指定IP地址的DNS服务器

(4) 在虚拟机③上,通过配置文件/etc/unbound/unbound.conf将其配置为纯缓存DNS服务器,并设置转发地址为授权DNS服务器的IP地址。

# vim /etc/unbound/unbound.conf      修改配置文件
# The listen interfaces are not changed on reload, only on restart.

  interface: 0.0.0.0     将注释去掉,监听所有地址

# interface: ::0



# access-control: 0.0.0.0/0 refuse

  access-control: 0.0.0.0/0 allow    设置允许向本机查询的主机范围

# access-control: 127.0.0.0/8 allow

domain-insecure: "dyzx.edu"   跳过验证域“dyzx.edu”,以避免信任链验证失败

forward-zone:       //定义转发forward
    name: “.”       //转发所有的查询
    forward-addr: 192.168.1.2    //将解析请求转发到指定IP地址的DNS服务器

# drill www.dyzx.edu @ 192.168.1.3     测试DNS缓存

(5)在虚拟机②和虚拟机③上,分别启动DNS服务并设置开机自动启动,开放防火墙DNS服务流量。

# systemctl start unbound        启动服务

# systemctl enable unbound       开机自启

任务4:架设Apache Web站点

(1)在虚拟机④上安装httpd服务软件包及相关依赖包。

# yum -y install httpd

(2)使用mkdir创建站点的根目录/var/www/myweb,使用echo创建默认首页文件。

# mkdir /var/www/myweb

# echo "hello word" > /var/www/myweb/index.html

(3)编辑httpd.conf配置文件,设置站点的侦听端口、IP地址、域名等信息。

# vim /etc/httpd/conf/httpd.conf            修改配置文件

ServerName www.dyzx.edu:80     配置域名及端口号

DocumentRoot "/var/www/myweb"  配置站点根目录

(4)启动httpd服务并设置开机自动启动,开放防火墙的http服务流量。

# systemctl start httpd             启动httpd

# systemctl enable httpd            开机自启

# firewall-cmd --add-service=http --permanent   设置永久允许通过

# firewall-cmd --reload             重启防火墙

(5)测试能否在任意子网中的客户机上通过域名访问Web网站。

任务5:搭建vsftpd FTP服务器

(1)在虚拟机④上安装vsftpd服务软件包。

# yum -y install vsftpd

(2)编辑vsftpd.conf主配置文件,允许所有员工使用匿名用户登录到/var/ftp/dyzx_data目录后下载资源。

# vim /etc/vsftpd/vsftpd.conf          编辑ftp服务器配置文件

anonymous_enable=YES      允许匿名访问

anon_root=/var/ftp/dyzx_data     设置匿名访问路径

(4) 建立用于维护(包括上传文件、创建目录、更新网页等权限)Web站点内容的只允许本地zhang3用户访问的 ftp站点,要求将zhang3用户锁定在目录/var/www/myweb中,不能进入其他任何目录。

# useradd -g ftp -d /var/www/myweb -s /sbin/nologin zhang3      创建用户
# vim /etc/shells       
/sbin/nologin            添加该行,将该shell添加到ftp可识别的shells文件中
# vim /etc/vsftpd/vsftpd.conf          编辑ftp服务器配置文件

chroot_local_user=NO                   设置是否锁定本地用户在自己的主目录中

chroot_list_enable=YES                 是否开启列表名单限制(chroot_local_user为no时为限制名单,为yes时是限制白名单(不限制))

chroot_list_file=/etc/vsftpd/chroot_list    定义哪些用户将会锁定在自己的主目录中

allow_writeable_chroot=YES             手动添加该行
# vim /etc/vsftpd/chroot_list       #创建并编辑文件

将需要锁定的用户名逐行加入

(4)设置SELinux,允许本地用户登录FTP站点后具有写入权限。

# setsebool -P ftpd_full_access on   将SELinux中的防火墙设置为on,使得用户登录后可以进行上传和下载

(5) 修改本地权限使其他用户对/var/www/myweb目录具有读写权限。

# chmod 777 myweb/

(6)启动vsftpd服务并设置开机自动启动,开放防火墙ftp服务。

# systemctl start vsftpd       启动ftp服务

# systemctl enable vsftpd       开机自启

# firewall-cmd --permanent --zone=public --add-service=ftp     永久开放ftp服务

# firewall-cmd --reload       重启防火墙

(7)在任意子网的客户机上检测能否访问ftp站点并实施文件地上传和下载。

客户端先安装ftp Client

# ftp 192.168.1.4(ftp服务器地址)

任务6:部署MariaDB数据库服务器(选作题)

(1) 在虚拟机④上安装MariaDB软件包及相关依赖包。

# yum install MariaDB-server MariaDB-client -y                      安装MariaDB服务端和客户端

防火墙放行

# firewall-cmd --permanent --add-service=mysql    防火墙放行

# firewall-cmd --reload                             重启防火墙

# systemctl start mariadb.service                  启动服务

# systemctl enable mariadb.service                   开机自启
# cp /usr/share/mysql/my-huge.cnf /etc/my.cnf     拷贝并覆盖配置文件

(2) 使用MariaDB的root用户登录MariaDB服务器,完成MariaDB数据库系统的安全初始化和汉化。

# /usr/bin/mysql_secure_installation

输入上述命令后,按照提示操作:


NOTE: RUNNING ALL PARTS OF THIS SCRIPTIS RECOMMENDED FOR ALL MariaDB

SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY!

In order to log into MariaDB to secure it, we'll need thecurrent

password for the root user. If you've just installed MariaDB, and

you haven't set the root password yet, the password willbe blank,

so you should just press enter here.

Enter current password for root (enter for none): 安装后默认没有root密码,直接回车

OK, successfully used password, moving on...

Setting the root password ensures that nobody can loginto the MariaDB

root user without the proper authorisation.

Set root password? [Y/n] Y

New password: 输入root的新密码

Re-enter new password: 新密码确认

Password updated successfully!

Reloading privilege tables..

 ... Success!

By default, a MariaDB installation has an anonymous user,allowing anyone

to log into MariaDB without having to have a user accountcreated for

them. This isintended only for testing, and to make the installation

go a bit smoother. You should remove them before moving into a

production environment.

Remove anonymous users? [Y/n] 删除匿名用户 Y

 ... Success!

Normally, root should only be allowed to connect from'localhost'. This

ensures that someone cannot guess at the root passwordfrom the network.

Disallow root login remotely? [Y/n] 关闭root远程登录 Y

 ... Success!

By default, MariaDB comes with a database named 'test'that anyone can

access. This isalso intended only for testing, and should be removed

before moving into a production environment.

Remove test database and access to it? [Y/n] 删除test数据库 Y

 - Dropping testdatabase...

 ... Success!

 - Removingprivileges on test database...

 ... Success!

Reloading the privilege tables will ensure that allchanges made so far

will take effect immediately.

Reload privilege tables now? [Y/n] 确定以上所有操作 Y

 ... Success!

Cleaning up...

All done! Ifyou've completed all of the above steps, your MariaDB

installation should now be secure.

Thanks for using MariaDB!

(3) 新建一个student的学生库,在其中创建一个名为course课程表。course表包括两个字段stu_id(学号)、stu_name(姓名),均为非空字符串值,初始学号值设为“20170000”,其中,stu_id字段被设为主键(PRIMARY KEY)。

# mysql -u root -p

MariaDB [(none)]> create database student;

MariaDB [(none)]> use student;

MariaDB [student]> create table course(stu_id int not null auto_increment,stu_name varchar(10) not null,primary key(stu_id))auto_increment=20170000;

(4) 向student学生库中course表中插入两个学生的记录。并对有关记录进行显示、修改和删除操作。

MariaDB [student]> insert into course(stu_name) values('luo');

MariaDB [student]> insert into course(stu_name) values('liu');

任务7:配置NFS(选作题)和Samba共享服务

(1)在虚拟机⑥上按照表15-7规划存储共享资源的目录结构,使用mkdir建立共享目录结构中的各个目录。

image-20210526113206850

(2) 在虚拟机⑥上安装NFS服务的相关软件包(RHEL7默认已安装)。

# yum install nfs-utils

(3)将共享目录/data的所有者修改为nfsnobody

# chown nfsnobody /data

(4)编辑、加载、查看NFS服务的配置文件/etc/exports,使得所有用户可读/data_doc目录

# vim /etc/exports

/data_doc *(ro,sync,insecure,no_root_squash)           将该行添加进配置文件,配置目录属性
参数说明
ro只读访问
rw读写访问
sync所有数据在请求时写入共享
asyncnfs在写入数据前可以响应请求
securenfs通过 1024 以下的安全 TCP/IP 端口发送
insecurenfs通过 1024 以上的端口发送
hide在 nfs 共享目录中不共享其子目录
no_hide共享 nfs 目录的子目录
subtree_check如果共享 /usr/bin 之类的子目录时,强制 nfs 检查父目录的权限(默认)
no_subtree_check不检查父目录权限
root_squashroot用户的所有请求映射成如 anonymous 用户一样的权限(默认)
no_root_squashroot用户具有根目录的完全管理访问权限

(5) 启动NFS服务并设置开机自动启动。开放防火墙的nfs、rpc-bind、mountd服务流量,允许外部主机访问。

# systemctl start rpcbind nfs  开启服务

# systemctl enable rpcbind nfs  开机自启

# firewall-cmd --permanent --add-service=nfs   防火墙允许通过

# firewall-cmd --permanent --add-service=rpc-bind

# firewall-cmd --permanent --add-service=mountd

# firewall-cmd --reload       重启防火墙

测试:

在客户端上挂载目录

# mount 192.168.1.6:/data_doc /share

可以正常查看文件即成功

(6)在虚拟机⑥上确保在/etc/hosts和/etc/hostname两个文件中的主机名相同。

(7)在虚拟机⑥上安装有关Samba服务的软件包。

# yum -y install samba samba-client samba-swat

(8) 编辑Samba服务的主配置文件smb.conf。使得匿名用户可读取/dyzx_doc/share目录,重新启动SMB使配置生效,并设置开机自动启动。

# systemctl restart smb.service

# systemctl enable smb.service
# vim /etc/samba/smb.conf
[global]
     map to guest = bad user         # 开启匿名登录功能,将无法识别的用户映射为guest用户

[public]                         
     comment = public
     path = /dyzx_doc/share
     guest ok = yes                  # 允许匿名用户登录
     read only = yes                 # 只允许读

(9)开启防火墙的Samba服务,允许Samba流量通过,将/dyzx_doc/share目录下所有内容的安全上下文修改为Samba服务默认策略的安全上下文。

# firewall-cmd --permanent --add-service=samba

# firewall-cmd --reload

上下文配置:

# ll -dZ /dyzx_doc/share/      查看当前目录拓展

# semanage fcontext -a -t samba_share_t "/dyzx_doc/share(/.*)?"  修改上下文

# restorecon -Rv /dyzx_doc/share/                  刷新SELinux文件属性

# ll -dZ /dyzx_doc/share/       检验

(9) 使用groupadd建立学生组gxs,教师组gjs,然后使用useradd命令添加各个师生员工的账号并加入相应的组。

# groupadd gxs

# groupadd gjs

# useradd -g gxs -s /sbin/nologin student

# useradd -g gjs -s /sbin/nologin teacher 

(10) 使用chmod设置目录及子目录和文件访问权限。

# chmod -R 777 /dyzx_doc/share

# chmod -R 1777 /dyzx_doc/teacher    1代表不允许删除其他人资料

# chmod -R 1777 /dyzx_doc/student

(12)使用pdbedit命令添加与Linux系统用户同名的Samba用户。

# pdbedit -a student    创建Samba账户

# pdbedit -L       列出账户

(13) 开启SELinux,为共享目录及其所有文件添加samba_share_t标签类型,并使新的安全上下文立即生效。

# semanage fcontext -a -t samba_share_t "/dyzx_doc/teacher(/.*)?"  修改上下文

# restorecon -Rv /dyzx_doc/teacher/

# semanage fcontext -a -t samba_share_t "/dyzx_doc/student(/.*)?"  修改上下文

# restorecon -Rv /dyzx_doc/student/
# setsebool -P samba_enable_home_dirs on          修改SELinux相关布尔值

# setsebool -P samba_export_all_ro=1 samba_export_all_rw=1

(14) 编辑Samba主配置文件smb.conf,按照表15-7规划的权限,分别对目录/dyzx_doc/student 、/dyzx_doc/teacher设置访问属性。

# vim /etc/samba/smb.conf

添加以下内容

[teacher]
     comment = teacher
     path = /dyzx_doc/teacher                       # 根目录
     guest ok = no                                  # 是否允许匿名访问
     valid users = student,teacher,@gxs,@gjs         # 可读用户和组
     write list = teacher,@gjs                       # 可写用户和组

[student]
     comment = student
     path = /dyzx_doc/student
     guest ok = no
     valid users = student,teacher,@gxs,@gjs
     write list = student,teacher,@gxs,@gjs

(15) 在Windows/Linux客户端访问共享目录。

Linux:

# smbclient -U student //192.168.1.6/student

windows:

image-20210530203732305

这里使用了student用户登录

image-20210530203856257

image-20210530204005249

student用户无法在teacher目录下创建文件,测试成功

任务8:搭建邮件服务器(选作题)

# vim /etc/hostname

mail.dyzx.edu      更改本机域名为mail.dyzx.edu

(1)在虚拟机⑥上安装Postfix、Dovecot软件包及相关依赖包。

# yum -y install postfix dovecot

(2)在Linux系统中创建stu1、stu2用户作为邮件服务器的用户。

# useradd -s /sbin/nologin stu1

# useradd -s /sbin/nologin stu2

# passwd stu1

# passwd stu2

(3)修改main.cf文件,使服务器具有基本的发信、收信功能。

# vim /etc/postfix/main.cf 

修改如下:

myhostname = mail.dyzx.edu     # 换成邮箱服务器

mydomain = dyzx.edu          # 换成你的域名

myorigin = $mydomain         # 该参数含义为申请邮箱为 @$mydomain 结尾,如:luo@dyzx.edu  

inet_interfaces = all        # 可以接收所有域名的邮件

mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain          # 修改该行

home_mailbox = Maildir/      # 邮件存放的目录 

(3) 编辑Doveco服务的主配置文件/etc/dovecot/dovecot.conf,指定本邮件主机所运行的协议、监听的网络接口和允许登录的客户端的网段地址;

# vim /etc/dovecot/dovecot.conf

修改如下:

protocols = imap pop3 lmtp    # 配置可支持提供的服务

listen = *             # 配置监听ip

(4) 编辑/etc/dovecot/conf.d/10-mail.conf及相应子配置文件,指定邮件存储格式;

# vim /etc/dovecot/conf.d/10-auth.conf
disable_plaintext_auth = no            # no则为允许明文密码验证
auth_mechanisms = plain login          # 配置支持的认证方式
# vim /etc/dovecot/conf.d/10-mail.conf
mail_location = maildir:~/Maildir      # 配置邮件存储格式及位置(Dovecot收邮件的方式一定要与Postfix收邮件方式相同)
# vim /etc/dovecot/conf.d/10-ssl.conf
ssl = no                # 这里不使用ssl

(6)打开SELinux有关的布尔值。

# setsebool -P allow_postfix_local_write_mail_spool on

拓展:配置SMTP发信认证

# yum -y install cyrus-sasl*          // 安装 cyrus-sasl 软件包
# yum install -y dovecot saslauthd*   // 安装SMTP认证组件

配置sasl文件,实现使用sasl认证

# vim /usr/lib64/sasl2/smtpd.conf    //编写sasl配置文件
log_level: 3
pwcheck_method: saslauthd
mech_list: PLAIN LOGIN

将sasl验证方式改为系统用户密码验证

# vim /etc/sysconfig/saslauthd
将MECH=pam改为MECH=shadow

SELinux允许相关服务

# setsebool -P allow_saslauthd_read_shadow 1

重启sasl服务

# systemctl restart saslauthd.service 

验证sasl工作是否正常

# testsaslauthd -u stu1 -p passwd        //这里的账号和密码需为linux的用户名和密码

编辑postfix文件,配置sasl认证

# vim /etc/postfix/main.cf
broken_sasl_auth_clients = yes
smtpd_recipient_restrictions = permit_mynetworks,permit_sasl_authenticated,reject_invalid_hostname,reject_unknown_sender_domain,reject_non_fqdn_sender,reject_non_fqdn_recipient,reject_unknown_recipient_domain,reject_unauth_pipelining,reject_unauth_destination
smtpd_sasl_auth_enable = yes 
smtpd_sasl_local_domain = $myhostname
smtpd_sasl_security_options = noanonymous
smtpd_sasl_path = smtpd 
# systemctl restart postfix.service   //重启服务,若重启失败,则关闭selinux(setenforce 0  临时关闭)

测试

image-20210530202650816

这里的用户名和密码使用的是base64编码,例用户名stu1进行base64编码后的结果为c3R1MQ==

(7)开启Firewalld防火墙允许SMTP、POP/IMAP服务流量。

# firewall-cmd --add-service=smtp --permanent

# firewall-cmd --add-service=pop3 --permanent

# firewall-cmd --add-service=imap --permanent

# firewall-cmd --reload

(8) 启动Postfix、Dovecot服务并设置为开机自动启动。

# systemctl start postfix

# systemctl start dovecot

# systemctl enable postfix

# systemctl enable dovecot

(9) 在客户端使用Outlook 2010/2013创建用户账号并进行邮件收发。

发送邮件:

# yum -y install telnet            安装telnet

例:

[root@localhost ~]# telnet mail.dyzx.edu 25
Trying 10.1.80.106...
Connected to mail.dyzx.edu.
Escape character is '^]'.
220 mail.dyzx.edu ESMTP Postfix
mail from:stu1@dyzx.edu
250 2.1.0 Ok
rcpt to:stu2@dyzx.edu
250 2.1.5 Ok
data
354 End data with <CR><LF>.<CR><LF>
helo:   
    this is mail!
.
250 2.0.0 Ok: queued as 81C4E10BDAB5
quit
221 2.0.0 Bye
Connection closed by foreign host.
[root@localhost ~]# 

查看邮件:

# telnet mail.dyzx.edu 110 

Trying 192.168.1.6...

Connected to localhost. 

Escape character is '^]'. 

+OK Dovecot ready. 

user stu1 

+OK 

pass 密码 

+OK 

Logged in. 

list #列表查看邮件

retr 1 #读取编号为1的邮件

quit #退出邮箱

Windows使用Outlook查看和发送邮件

先将Windows的DNS改为自己搭建的DNS服务器,确保网络连通

例:

image-20210526170229975

image-20210526170548207

image-20210526173527137

image-20210526173617991

最后修改:2021 年 07 月 04 日 01 : 50 PM
如果觉得我的文章对你有用,请随意赞赏