本次实验报告为笔者的一门《Linux服务器配置与管理》课程期末实验报告,期末那一周花了挺多时间做的
首先来仔细看一下实验要求,实验要求挺多的
1.中小型企业网络架构
某公司有计算机用户不低于2000人,内部的网络规划如下图。网络服务器端采用Red Hat Enterprice Linux 7.X或CentOS7版本的Linux系统,客户端都是Windows操作系统。
2.案例目标(参见“中小企业网络规划示意图”)
① 为了用户使用方便,须能对企业内部网络能够进行域名称到IP的解释,反之,对已有主机也能够从IP地址反向找到主机名,并允许客户端采用自动获取IP地址!
② 规划并配置企业的二个主要网站,一个是用于公司形象宣传和公司性质、资质介绍的网站(简称企业主网站);主网站地址 www.xyz.com(其中xyz请参见要求);还有一个是公司营销网站taobao.xyzcom,主要包括产品规格、性能、作用、价格,联系方式、售后服务等方面的内容。要求主网站与营销网站之间存在相关的超链接。注:客户访问Web网站使用名称不使用IP地址。
③ 为了高效管理WEB服务器,须搭建 FTP服务器,用于维护公司网站www.xyz.com:创建目录、上传文件、更新网页等。公司决定由.wang和. luo的 2个账号(实验者须将自己的姓氏替换wang,例如姚姓改这里的wang为yao,用自己的名字替换掉luo)共同管理公司的主网站。其中对.wang和. luo的 2个用户的要求:.wang和. luo都不是本地用户身份,仅允许.wang和. luo登录到 Web服务器所在的根目录,并将这两个账号的根目录限制在网站的根目录 /var/www/.wang (其中.wang为实验者之姓氏的拼音),不能进入该目录以外的任何目录。
④ 商务网站taobao.xyzcom由另外2个用户账号chang和nan来管理(提示需要配置FTP支持个人独立的FTP配置文件)。商务网站限制在网站的根目录 /var/www/security;其他规则参见③中.wang和. luo的 2个用户的要求。
⑤ 同时在③④本服务器主机上配置用于对外提供服务的FTP服务器。基于实验条件的限制,可以将DHCP服务和FTP服务器合并到一台计算机硬件(或虚拟主机)中。为了增强安全,VSFTP服务不使用本地用户账号,全部采用虚拟用户名,并要求至少包含5个用户(③④要求的用户除外):其中用户名有实验者须将自己的姓、名(拼写)及userchen、ftplike、yufang。实验者自己姓、名(拼写)的用户登录位置在“/home/用户名”目录下,并具有完全操作控制权(即可读可写等),userchen、ftplike、wangping登录位置在“var/ftp/用户名”目录中,要求userchen用户只能阅读下载(文件),ftplike用户能上传文件和目录,但不能删除与修改,yufang没有下载操作权。
⑥ 邮件服务
根据案例目标,综合实验任务如下:
【任务1】安装CentOS7 Linux 系统,并配置Linux系统的IP,从客户端检验连通性。
【任务2】根据要求搭建DHCP服务器(包括安装、配置及验证)
【任务3】根据要求搭建DNS服务器(包括安装、配置及验证)。
【任务4】基于名称虚拟主机搭建企业主网站并验证可用。
【任务5】基于名称虚拟主机搭建企业商务网站并验证安全(授权)可用。
【任务6】以本地用户为对象,搭建FTP服务器(要配置几个不同用户登录到各人的不同位置),权限是完全控制。
【任务7】以虚拟用户为对象,搭建FTP服务器(不同用户登录到各人的不同位置,权限也不尽相同),并验证其登录不同,访问权限好各不相同。
【任务8】搭建邮件服务
实验要求及提示
(1) 安装Linux系统后,可以安装必要的某些管理工具;要求计算机名为实验者名的拼音+年级号(或名字中的一个主拼音,例如,志平2018级用ping2018), DNS域名由实验者姓的拼音和学号的后3位构成2级域名,顶级域名用.com或.cn(例如,杨志平,学号0183789,则区域名为yang789.com或yang789.cn)。
(2) 考虑到公司主机数量较多,内网的IP地址用172.18+x.yy.zz(其中x为实验者学号的末位,yy为实验者学号的后2位,zz可为合理范围内的任意数值),网络长度为16位。
要求有2台以上的主机从你的DHCP上获取到IP地址。
(3) 必须正确安装和配置DHCP和DNS服务器,并保证客户端能够自动获取IP时能够正确获取相关的DNS和默认网关地址。要求网关地址为实验者网段内的最后一个有效的IP地址或第一个有效的IP地址。
(4) 必须正确安装和配置apache服务器。需要正确配置2个基于名称的虚拟主机,一个是由.wang和. luo管理的web网站;另一个是由chang和nan管理的商务网站。
(5) 该商务网站taobao.xyz.com只有经授权(require)的用户(实验要求不少于5个用户)才能访问。
根据实验要求,做出如下配置:
Centos7计算机名:en2018
Centos7服务器IP:172.21.3.7
DNS顶级域名:zeng103.com
DHCP分配IP范围:172.21.7.7—172.21.77.7(总共IP17850个)
企业主站:www.zeng103.com
商务网站:taobao.zeng103.com
实验要求:安装CentOS7 Linux 系统,并配置Linux系统的IP,从客户端检验连通性。
按照实验要求将centos7服务器的IP设置为:172.21.3.7
计算机名:en2018
子网掩码:255.255.0.0
网关:172.21.0.2
配置过程如下图
检查联通性
实验要求:根据要求搭建DHCP服务器(包括安装、配置及验证)
DHCP(Dynamic Host configuration Protocol,动态主机配置协议 )是一个局域网的网络协议。指的是由服务器控制一段lP地址范围,客户机登录服务器时就可以自动获得服务器分配的lP地址和子网掩码。默认情况下,DHCP作为Windows Server的一个服务组件不会被系统自动安装,还需要管理员手动安装并进行必要的配置
DHCP协议采用客户端/服务器模型,主机地址的动态分配任务由网络主机驱动。当DHCP服务器接收到来自网络主机申请地址的信息时,才会向网络主机发送相关的地址配置等信息,以实现网络主机地址信息的动态配置。
DHCP由三种机制分配IP地址:
1.自动分配方式:DHCP服务器为主机指定一个永久性的IP地址,一旦DHCP客户端第一次成功从DHCP服务器租用到IP地址,就可以永久使用该地址。
2.动态分配方式:DHCP服务器给主机指定一个有时间限制的IP地址, 时间到期或主机明确表示放弃该地址时,该地址可以被其他主机使用。
3.手工分配方式:客户端的IP地址是由网络管理员指定的,DHCP服务器只是将指定的IP地址告诉客户端主机。
三种地址分配方式中, 只有动态分配方式可以重复使用客户端不再需要的地址
在Centos7服务器中使用:yum -y install dhcp
安装完成后在/etc/dhcp下可以看到dhcp的主配置文件dhcpd.conf,修改如下图
DHCP分配IP范围:172.21.7.7—172.21.77.7(总共IP17850个)
足够使用,只需要改这些就可以了,无需修改其他内容
DHCP操作命令:
开启dhcp服务:systemctl start dhcpd
关闭dhcp服务:systemctl stop dhcpd
重启dhcp服务:systemctl restart dhcpd
查看你dhcp服务状态:systemctl status dhcpd
设置开机dhcp服务自启:systemctl enable dhcp
设置开机dhcp服务关闭:systemctl disable dhcp
我们打开两台windows客户机验证一下,看看获取的是否在设置的DHCP分配的IP范围
这是一台Windows server2008符合范围,接着我们打开一台windows7查看是否符合
两台windows客户机都在DHCP分配的IP范围下,DHCP服务器搭建成功
实验要求:根据要求搭建DNS服务器(包括安装、配置及验证)。
域名系统(Domain Name System,DNS)是Internet上解决网上机器命名的一种系统。就像拜访朋友要先知道别人家怎么走一样,Internet上当一台主机要访问另外一台主机时,必须首先获知其地址,TCP/IP中的IP地址是由四段以“.”分开的数字组成,记起来总是不如名字那么方便,所以,就采用了域名系统来管理名字和IP的对应关系。
域名解析是把域名指向网站空间IP,让人们通过注册的域名可以方便地访问到网站的一种服务。IP地址是网络上标识站点的数字地址,为了方便记忆,采用域名来代替IP地址标识站点地址。域名解析就是域名到IP地址的转换过程。域名的解析工作由DNS服务器完成。
为什么需要DNS解析域名为IP地址?
首先计算机在网络上通讯时只能识别IP地址(网络通讯大部分是基于TCP/IP协议,而TCP/IP是基于IP地址的),比如我要在浏览器中访问百度的地址,我可以在地址栏直接输入14.215.177.39就能访问到百度的首页。但是我们无法记住更多的IP地址。那么域名就出现了,域名是由一串用”.”分隔的唯一名字。所以现在我们访问网站的时候,就可以在浏览器地址栏中输入域名(www.baidu.com),那么DNS就会把域名翻译成IP,然后访问IP
域名解析也叫域名指向、服务器设置、域名配置以及反向IP登记等等。说得简单点就是将好记的域名解析成IP,服务由DNS服务器完成,是把域名解析到一个IP地址,然后在此IP地址的主机上将一个子目录与域名绑定。
互联网中的地址是数字的IP地址,域名解析的作用主要就是为了便于记忆。
DNS解析域名详细过程:
1.现在我有一台电脑,在浏览器中输入www.baidu.com域名,浏览器会从浏览器的DNS缓存中检查是否有这个网址的映射关系,如果有,就返回IP,完成域名解析
2.如果没有,操作系统会先检查自己本地的hosts文件是否有这个网址的映射关系,如果有,就返回IP,完成域名解析。看到这里大家应该都猜到了,有DNS的地方,就有缓存。浏览器、操作系统、本地DNS、根域名服务器,它们都会对DNS结果做一定程度的缓存。
3.如果还没有,我的电脑就要向本地DNS服务器发起请求查询www.baidu.com这个域名。
4.本地DNS服务器拿到请求后,先检查一下自己的缓存中有没有这个地址,有的话直接返回。这个时候拿到的IP地址,会被标记为非权威服务器的应答
5.如果本地DNS服务器的缓存中没有的话,本地DNS服务器会从配置文件中读取13个根DNS服务器的地址,然后向其中一台发起请求
6.根DNS服务器拿到请求后,知道他是com.这个顶级域名下的,所以会返回com域名中的NS记录(用来表明哪台服务器对该域名进行解析),其实就是一个IP(com对应的服务器IP)
7.本地DNS服务器根据返回的IP(com DNS服务器)发起请求,com DNS服务器发现你这请求的是baidu.com这个域,查到这个域的NS记录,然后返回IP(baidu.com)
8.本地DNS服务器在根据IP(baidu.com DNS服务器)访问这些权威服务器,baidu.com服务器在A记录(正向解析记录,域名到IP地址的映射)中查找到www.baidu.com的IP地址,返回IP(www.baidu.com)
9.最终本地DNS服务器拿到用户想访问的www.baidu.com的IP,返回给客户端,并进行缓存操作,以便下次使用。
安装DNS服务器端软件包使用命令:yum -y install bind*
DNS主配置文件是/etc/named.conf配置如下图
要求配置DNS域名我的域名为:www.zeng103.com
然后再/var/named文件下配置正向解析域名文件和反向解析域名文件
后配置两个解析文件如下图:
正向解析文件
反向解析文件
配置好后,我们使用检查命令检查一下这两个文件
正向解析文件检查命令
named-checkzone "zeng103.com.zone" "/var/named/zeng103.com.zone"
named-checkzone "172.21.3.rev" "/var/named/172.21.3.rev"
检查结果都没有问题,然后我们使用重启DNS服务查看状态
DNS服务操作命令:
开启DNS服务:systemctl start named
关闭DNS服务:systemctl stop named
重启DNS服务:systemctl restart named
查看DNS服务状态:systemctl status named
开机自启DNS服务:systemtl enable named
关闭开机自启DNS服务:systemctl disable named
接下来验证DNS服务是否配置成功
实验要求:基于名称虚拟主机搭建企业主网站并验证可用。
Apache 是使用最广泛的 Web 服务器软件。Apache 是由 Apache Software Foundation 开发和维护的,它是一个免费提供的开源软件。它占全球所有网络服务器的 67%。它快速,可靠,安全。它可以通过使用扩展和模块进行高度定制,以满足许多不同环境的需求。大多数 WordPress 托管服务提供商使用 Apache 作为其 Web 服务器软件。但是,WordPress 也可以在其他 Web 服务器软件上运行
Apache Web Server 旨在创建能够托管一个或多个基于 HTTP 的网站的 Web 服务器。值得注意的功能包括支持多种编程语言,服务器端脚本,身份验证机制和数据库支持。可以通过操纵代码库或添加多个扩展/附加组件来增强 Apache Web Server。它也被 Web 托管公司广泛用于提供共享/虚拟主机,因为默认情况下,Apache Web Server 支持并区分驻留在同一台机器上的不同主机。
Apache是一种流行的开源,跨平台的Web服务器,数量上是现有最流行的Web服务器,它由Apache Software Foundation主动维护。一些使用Apache的知名公司包括思科,IBM,Salesforce,通用电气,Adobe,VMware,施乐,LinkedIn,Facebook,惠普,AT&T,西门子,eBay等等。除了受欢迎程度之外,它还是最古老的Web服务器之一,它的第一个版本早在1995年就已发布。许多cPanel主机现在使用Apache。与其他Web服务器一样,Apache为访问者提供服务网站文件的幕后方面。由于Apache在某些基准测试中表现不佳,特别是对于静态网站或流量较高的网站,某些大型网站使用NGINX Web服务器而不是Apache。尽管NGINX并没有像Apache那样长,但自2004年推出以来,它的受欢迎程度和市场份额迅速增长。
安装apache服务:
rpm -qa | grep httpd
命令查看是否安装了apache软件包
安装命令:
yum -y install httpd*
安装完成后,我们进入apache的主配置文件在/etc/httpd/conf中使用gedit打开
Httpd.conf,配置企业主站和营销网站
再到网站根目录,添加网站源码
windows客户端验证,验证结果如下
主站
营销站
验证成功,可用
实验要求:基于名称虚拟主机搭建企业商务网站并验证安全(授权)可用
实验要求对上一步实验创建的企业主站和企业营销网站做访问控制,对企业主站限制使用zeng,xingen
这两个用户登录,而对企业营销网站的访问控制限制使用chan,nan两个用户身份登录
要做到访问控制我们首先需要创建访问控制登录的用户账号和密码,在/etc/httpd下创建一个文件名字叫userfile 然后使用htpasswd命令生成账号和密码放入userfile文件里,如图
创建的四个用来做网站访问控制的用户和密码
接下来修改apache主配置文件,/etc/httpd/conf/httpd.conf
修改内容如下
修改完成后,我们去客户端访问登录一下这两个站看看,验证是否成功
当主站输入的账号密码正确时,登入成功,如图
当输入账号密码不正确时,身份验证失败
然后我们来验证营销旁站的登录验证
输入账号和密码正确的时候,如图
当输入的密码和账号不正确的时候,如图
网站授权验证通过
实验要求:以本地用户为对象,搭建FTP服务器(要配置几个不同用户登录到各人的不同位置)
FTP(File Transfer Protocol,文件传输协议) 是 TCP/IP 协议组中的协议之一。FTP协议包括两个组成部分,其一为FTP服务器,其二为FTP客户端。其中FTP服务器用来存储文件,用户可以使用FTP客户端通过FTP协议访问位于FTP服务器上的资源。在开发网站的时候,通常利用FTP协议把网页或程序传到Web服务器上。此外,由于FTP传输效率非常高,在网络上传输大的文件时,一般也采用该协议。
默认情况下FTP协议使用TCP端口中的 20和21这两个端口,其中20用于传输数据,21用于传输控制信息。但是,是否使用20作为传输数据的端口与FTP使用的传输模式有关,如果采用主动模式,那么数据传输端口就是20;如果采用被动模式,则具体最终使用哪个端口要服务器端和客户端协商决定
同大多数Internet服务一样,FTP也是一个客户/服务器系统。用户通过一个客户机程序连接至在远程计算机上运行的服务器程序。依照 FTP 协议提供服务,进行文件传送的计算机就是 FTP服务器,而连接FTP服务器,遵循FTP协议与服务器传送文件的电脑就是FTP客户端。用户要连上FTP 服务器,就要用到 FTP 的客户端软件,通常 Windows自带“ftp”命令,这是一个命令行的 FTP客户程序,另外常用的 FTP 客户程序还有FileZilla、 CuteFTP、Ws_FTP、Flashfxp、LeapFTP、流星雨-猫眼等。
起初,FTP并不是应用于IP网络协议,而是ARPANET网络中计算机间的文件传输协议,ARPANET是美国国防部组建的老网络,于1960-1980年使用。在那个时候,FTP的主要功能是在主机间高速可靠地传输文件。目前FTP仍然保持其可靠性,即使在,它还准许文件远程存取。这使得用户可以在某个系统上工作,而将文件储存在别的系统。例如,如果某用户运行Web服务器,需要从远程主机上取得HTML文件和CGI程序到本机上工作,他需要从程序储存站点获取文件(远程站点也需安装Web服务器)。当用户完成工作后,可使用FTP将文件传回到Web服务器。采用这种方法,用户无须使用Telent登陆到远程主机进行工作,这样使Web服务器的更新工作变得轻松。
FTP是TCP/IP的一种具体应用,它工作在OSI模型的第七层,TCP/IP模型的第四层上,即应用层。FTP使用TCP传输而不是UDP,这样FTP客户在和服务器建立链接前要经过一个被广为熟知的“三次握手”的过程。它带来的意义在于客户端与服务器之间的链接是可靠的,而且是面向连接,为数据的传输提供了可靠的证据保证。采用FTP可使Internet用户高效地从网上的FTP服务器下载大信息量的数据文件,将远程主机上的文件复制到自己的计算机上,以达到资源共享和传递信息的目的。由于FTP的使用使得Internet上出现大量为用户提供的下载服务。Internet成为了一个巨型的软件仓库。FTP在文件传输中还支持断点续传功能,可以大幅度地减少CPU和网络宽带的开销
FTP模式:
FTP客户端发起FTP会话,与FTP服务器建立相应的连接。FTP会话期间要建立控制信息进程与数据进程两个连接。控制连接不能完成传输数据的任务,只能用来传送FTP执行的内部命令以及命令的响应等控制信息;数据连接是服务器与客户端之间传输文件的连接,是全双工的,允许同时进行双向数据传输。当数据传输完成后,数据连接会撤消,再回到FTP会话状态,直到控制连接被撤消,并退出会话为止。 [7]
FTP支持两种模式:Standard (PORT方式,主动方式),Passive (PASV,被动方式)。
Port模式
FTP 客户端首先和服务器的TCP 21端口建立连接,用来发送命令,客户端需要接收数据的时候在这个通道上发送PORT命令。PORT命令包含了客户端用什么端口接收数据。在传送数据的时候,服务器端通过自己的TCP 20端口连接至客户端的指定端口发送数据。FTP server必须和客户端建立一个新的连接用来传送数据。
Passive模式
建立控制通道和Standard模式类似,但建立连接后发送Pasv命令。服务器收到Pasv命令后,打开一个临时端口(端口号大于1023小于65535)并且通知客户端在这个端口上传送数据的请求,客户端连接FTP服务器此端口,然后FTP服务器将通过这个端口传送数据。
很多防火墙在设置的时候都是不允许接受外部发起的连接的,所以许多位于防火墙后或内网的FTP服务器不支持PASV模式,因为客户端无法穿过防火墙打开FTP服务器的高端端口;而许多内网的客户端不能用PORT模式登陆FTP服务器,因为从服务器的TCP 20无法和内部网络的客户端建立一个新的连接,造成无法工作。
Centos7搭建ftp服务时安装vsftpd:
yum -y install vsftpd*
FTP服务器操作命令:
开启ftp服务:systemctl start vsftpd
关闭ftp服务:systemctl stop vsftpd
重启ftp服务:systemctl restart vsftpd
查看ftp状态:systemctl status vsftpd
设置ftp开机自启:systemctl enable vsftpd
关闭ftp开机自启:systemctl disable vsftpd
任务要求是以本地用户为对象搭建ftp服务器,所以我们首先在,Centos7服务器上创建几个用户,创建两个用户,第一个用户是:localuser1,第二个用户是:localuser2,密码就是它们的用户名,然后在它们各自的目录中,创建一个文件用来区分它们在不同目录
Windows客户端验证一下
Localuser1用户的登录验证如图
Localuser2用户的登录验证如图
本地用户登录不同的目录成功
实验要求:以虚拟用户为对象,搭建FTP服务器(不同用户登录到各人的不同位置,权限也不尽相同),并验证其登录不同,访问权限好各不相同
首先根据实验要求,创建五个虚拟用户(即不能再本地登录的用户)在不同位置
使用命令:useradd 用户名 -d 指定目录 -s /sbin/nologin
注意:一定要赋予这几个用户的目录权限,这里为了方便我就全部设置成777
发现这几个用户都是不能登录的,zeng用户和xingen用户在/home目录下面,userchen,ftplike,yufang在/var/ftp下面,接着来到/etc/vsftpd/下创建用户登录账号密码的信息表
安装vsftpd虚拟用户依赖的安装包:
yum install -y psmisc net-tools systemd-devel libdb-decel per-DBI
接着使用db_load命令生成db数据库
db_load -T -t hash -f /etc/vsftpd/v_users.list /etc/v_users.db
接着配置PAM文件在/etc/pam.d/v_users.pam
然后再在/etc/vsftpd目录下创建一个这些用户的配置文件目录,接着就是配置这些用户的个人配置,
在这之前首先配置一下主配置文件vsftpd.conf,内容如下:
anonymous_enable=NO
#是否允许匿名登录FTP服务器
local_enable=YES
#是否允许本地用户登录FTP服务器
guest_enable=YES
local_umask=022
#本地用户新增文档权限设定,默认022(022对应二进制取反就是权限)对应权限755
dirmessage_enable=YES
#是否显示目录消息
connect_from_port_20=YES
#指定FTP数据传输连接使用20端口,默认为YES,若为NO,则进行数据连接时,所使用的端口由ftp_data_port指定
#chown_uploads=YES
#是否改变匿名用户上传文档的属主,默认NO,若设置为YES,则匿名用户上传的文档的属主将被设置为chown_username配置项所设置的用户名
#chown_username=whoever
#设置匿名用户上传的文档的属主名。只有chown_uploads=YES时才有效。建议不要设置为root用户。 但系统默root
#xferlog_enable=NO
#是否启用上传下载日志记录,默认NO
#xferlog_file=/var/log/xferlog
#日志文件名及路径,需要启用xferlog_enable选项
#xferlog_std_format=YES
#日志文件是否使用标准的xferlog日志文件格式(与wu-ftpd使用的格式相同)默认为NO
#idle_session_timeout=600
#设置多长时间不对FTP服务器进行任何操作,则断开该FTP连接,单位为秒,默认为600秒。即设置发呆的逾时时间,在这个时间内,若没有数据传送或指令的输入,则会强行断开连接
#data_connection_timeout=120
#设置建立FTP数据连接时间,秒单位
#ascii_upload_enable=NO
#是否启用ASCII模式上传数据,默认为NO
#ascii_download_enable=NO
#是否启用ASCII模式下载数据,默认为NO
#ftpd_banner=Welcome to zeng xingen FTP service.
#用于设置比较简短的欢迎信息
#chroot_local_user=YES
#指定用户列表文件中的用户,是否允许切换到上级目录,默认NO
#chroot_list_enable=YES
#是否启用chroot_list_file配置项指定的用户列表文件。设置为YES则除了列在j/etc/vsftpd/chroot_list文件中的的帐号外,所有登录的用户都可以进入ftp
#chroot_list_file=/etc/vsftpd/chroot_list
#用于指定用户列表文件,该文件用于控制哪些用户可以切换到FTP站点根目录的上级目录
#userlist_enable=YES
#决定/etc/vsftpd/user_list文件是否启用生效。YES则生效,NO不生效
#ls_recurse_enable=YES
#若设置为YES,则允许执行ls -R这个命令
listen=YES
#设置vsftpd服务器是否以standalone模式运行。以standalone模式运行是一种较好的方式,此时listen必须设置为YES, 此为默认值,建议不要更改
#listen_ipv6=YES
write_enable=YES
#是否对登录用户开启写入(上传)权限。属全局性设置。默认NO
#anon_upload_enable=YES
#是否允许匿名用户上传文件。只有在write_enable设置为YES时,该配置项才有效。而且匿名用户对相应的目录必须有写权限。默认为NO
#anon_mkdir_write_enable=YES
#是否允许匿名用户创建目录。只有在write_enable设置为YES时有效。且匿名用户对上层目录有写入的权限。默认为NO
pam_service_name=/etc/pam.d/v_users.pam
user_config_dir=/etc/vsftpd/v_users_dir
tcp_wrappers=YES
allow_writeable_chroot=YES
接着在v_users_dir目录中配置五个虚拟用户的个人配置文件,以及根据要求配置权限
Zeng用户配置如下(可读可写权限):
local_root=/home/zeng
guest_username=zeng
write_enable=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
Xingen用户配置如下(可读可写权限):
local_root=/home/xingen
guest_enable=YES
guest_username=xingen
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
Userchen用户配置如下(只能阅读下载权限):
local_root=/var/ftp/userchen
guest_username=userchen
write_enable=YES
Ftplike用户配置如下(只有上传权限):
local_root=/var/ftp/ftplike
guest_username=ftplike
anon_upload_enable=YES
anon_mkdir_write_enable=YES
Yufang用户配置如下(没有下载权限):
local_root=/var/ftp/yufang
guest_username=yufang
write_enable=YES
anon_upload_enable=YES
anon_world_readable_only=YES
anon_other_write_enable=YES
重启vsftpd服务器,进入客户端查看权限,如图
Xingen用户与zeng用户权限相同就不测试了
接着看userchen用户,userchen用户的权限是只能阅读下载权限,如图
ftplike用户的权限是只能有上传,没有其他权限如图
实验要求:搭建邮件服务
电子邮件服务是指通过网络传送信件、单据、资料等电子信息的通信方法,它是根据传统的邮政服务模型建立起来的,当我们发送电子邮件时,这份邮件是由邮件发送服务器发出,并根据收件人的地址判断对方的邮件接收器而将这封信发送到该服务器上,收件人要收取邮件也只能访问这个服务器才能完成。
电子邮件服务(Email服务)是目前最常见、应用最广泛的一种互联网服务。通过电子邮件,可以与Internet上的任何人交换信息。电子邮件的快速、高效、方便以及价廉,越来越得到了广泛的应用,目前只要是上过网的网民就肯定用过电子邮件这种服务。目前,全球平均每天约有几千万份电子邮件在网上传输
邮件传递流程具体如下:
(1)使用邮件用户代理(MUA)创建一封电子邮件,邮件创建后被送到了该用户的本地邮件服务器的邮件传输代理(MTA),传送过程使用的是SMTP协议。此邮件被加入本地MTA服务器的队列中。
(2)MTA检查收件用户是否为本地邮件服务器的用户,如果收件人是本机的用户,服务器将邮件存入本机的MailBox。
(3)如果邮件收件人并非本机用户,MTA检查该邮件的收信人,向DNS服务器查询接收方MTA对应的域名,然后将邮件发送至接收方的MTA,使用的仍然是SMTP协议,这时,邮件已经从本地的用户工作站发送到了收件人ISP的邮件服务器,并且转发到了远程的域中。
(4)远程邮件服务器比对收到的邮件,如果邮件地址是本服务器地址则将邮件保存在MailBox中,否则继续转发到目标邮件服务器。
(5)远端用户连接到远程邮件服务器的POP3(110端口)或者IMAP(143端口)接口上,通过账号密码获得使用授权。
(6)邮件服务器将远端用户账号下的邮件取出并且发送给收件人MUA。
电子邮件服务涉及几个重要的TCP/IP协议,主要有以下几个:
SMTP协议
简单邮件传送协议(SMTP)是电子邮件系统中的一个重要协议,它负责将邮件从一个“邮局”传送给另一个“邮局”。SMTP不规定邮件的接收程序如何存储邮件,也不规定邮件发送程序多长时间发送一次邮件,它只规定发送程序和接收程序之间的命令和应答。SMTP邮件传输采用客户端/服务器模式,邮件的接收程序作为SMTP服务器在TCP的25端口守候,邮件的发送程序作为SMTP客户在发送前需要请求一系列SMTP服务器的连接。一旦连接成功,收发双方就可以响应命令、传递邮件内容。
POP3协议
当邮件到来后,首先存储在邮件服务器的电子信箱中。如果用户希望查看和管理这些邮件,可以通过POP3协议将这些邮件下载到用户所在的主机。POP3本身采用客户端/服务器模式,其客户程序运行在接收邮件的用户计算机上,POP3服务器程序运行在其ISP的邮件服务器上。
IAMP协议
因特网报文存取协议(IAMP)现在较新的是版本4,即IAMP4,它同样采用客户端/服务器模式。IAMP是一个联机协议。当用户计算机上的IAMP客户程序打开IAMP服务器的邮箱时,用户就可以看到邮件的首部。若用户需要打开某个邮件,则该邮件才传到用户的计算机上。
首先安装postfix服务软件包:
yum -y install postfix
进入/etc/postfix/中,配置主配置文件main.cf
接下来需要修改的配置文件较多,这里就不用图片展示了,修改结果如下:
Main.cf中75行:myhostname=mail.zeng103.com
Main.cf中83行:mydomain=zeng103.com
Main.cf中99行:myorigin=$mydomain
Main.cf中113行去掉#注释,119行加上#注释
Main.cf中164行加上#注释,165行取消#注释
Main.cf中264行:mynetworks = 172.21.0.0/16, 127.0.0.0/8,0.0.0.0/0
Main.cf中296行:relay_domains = $mydestination
Main.cf中419行:home_mailbox = Maildir/
最后在mian.cf底部加上:
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
smtpd_sasl_local_domain = $myhostname
smtpd_recipient_restrictions = permit_mynetworks,permit_auth_destination,permit_sasl_authenticated,reject
接下来安装dovecot:
yum -y install dovecot
然后修改/etc/dovecot/dovecot.conf第二十四行:protocols = imap pop3 lmtp
接着还是在dovecot.conf中第30行取掉注释:listen = *, ::
接着修改/etc/dovecot/conf.d/10-auth.conf在第10行改为no:disable_plaintext_auth = no
还有10-auth.conf第100行加上login:auth_mechanisms = plain login
然后再修/etc/dovecot/conf.d/10-mail.conf再第30行添加:mail_location = maildir:~/Maildir
再 /etc/dovecot/conf.d/10-master.conf改为下图
最后再修改 /etc/dovecot/conf.d/10-ssl.conf第8行改为no:ssl = no
systemctl restart dovecot 重启dovecot服务
systemctl restart postfix 重启postfix服务
重启好之后,我们再客户端的两台windows安装好postfix,然后服务器创建两个用户mailtest,和testmail,用于邮箱账号登录,密码就是它们的用户名,登录如图
Windows7使用账号testmail,windows server2008使用账号mailtest,现在用这两个邮箱互相发邮件,看看能否接收的到,在同一个内网下
Mailtest接收到邮件如图
Testmail接收到邮件如图
到这里就全部完成了,如果有什么问题可以私信或者评论留言