版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
项目11搭建FTP服务器《Linux网络操作系统项目化教程(openEuler)》学习目标/Target了解FTP,能够说出FTP的概念及作用了解vsftpd,能够说出什么是vsftpd以及vsftpd的特点掌握vsftpd配置文件,能够说出vsftpd各配置文件的作用知识目标学习目标/Target能够熟练安装vsftpd服务程序能够熟练使用ftp命令登录FTP服务器能够搭建匿名用户模式FTP服务器及虚拟用户模式FTP服务器能够搭建TFTP服务器技能目标学习目标/Target通过对FTP的学习,培养对文件传输机制的理解与应用能力通过学习vsftpd的安装与配置,提升构建安全文件传输服务的意识素养目标目录/Contents11.111.2FTP概述vsftpd概述11.3vsftpd配置文件11.4FTP服务器登录方式项目导入01项目导入随着部门规模不断扩大,数据文件的数量也随之增加。目前,同事间在共享数据时,常需通过U盘从其他同事的计算机中复制,且数据更新也仅在个别同事的个人计算机上进行,导致数据共享流程烦琐且效率低下。为解决这一问题,上级领导决定在部门内部搭建一个FTP服务器用于部门内部的数据文件存储和高效传输。搭建FTP服务器,需要对网络协议、服务器配置等多方面知识有深入的理解与实践经验,上级领导认为,此次搭建FTP服务器的任务,对小智而言既是一次全新的挑战,也是一个成长机遇。他坚信小智有能力凭借自身的努力和钻研精神,克服过程中可能遇到的种种困难。于是,在一次部门内部的小型会议上,上级领导郑重地将此项任务交给了小智,并鼓励他:“小智,这个项目对我们部门的数据管理和工作效率提升至关重要。我相信以你的能力,一定能够出色地完成。在过程中若遇到任何问题,团队的成员都会全力支持你。”小智深知这份信任的重量,他坚定地接过任务,暗下决心一定要搭建出稳定且高效的FTP服务器,为部门解决数据共享的问题,不辜负上级领导和团队的期望。知识准备02了解FTP,能够说出FTP的概念及作用。学习目标11.1FTP概述Web服务又称为万维网(WorldWideWeb,WWW)服务,它是目前应用最广泛的Internet服务之一。Web服务器是为实现信息发布、资料查询、数据处理等操作而搭建的平台。11.1FTP概述FTP是一种在互联网中进行文件传输的协议,采用客户端/服务器(Client/Server,C/S)模式。FTP默认使用20、21端口,其中20端口用于传输数据,21端口用于接收客户端发送的FTP请求,以及FTP相关的命令和参数。FTP服务器通常会提供上传和下载两项基本功能,上传是指用户将客户端的文件复制到远程FTP服务器中,下载是指用户从远程FTP服务器中复制文件到客户端。FTP运行原理如图。11.1FTP概述FTP有两种工作模式——主动模式与被动模式,下面分别进行讲解。11.1FTP概述主动模式被动模式在主动模式中,客户端首先向FTP服务器发送一个连接请求,与FTP服务器的21端口建立控制连接。控制连接成功建立之后,FTP服务器端会通过本地的20端口向客户端发送一个数据传输的连接请求,与客户端建立一个数据传输连接。数据传输连接成功建立之后,客户端与FTP服务器就可以进行数据传输了。11.1FTP概述主动模式在被动模式中,客户端同样先向FTP服务器发送一个连接请求,与FTP服务器的21端口建立控制连接。但在控制连接成功建立之后,仍由客户端向FTP服务器发送一个数据传输的连接请求。数据传输连接成功建立之后,客户端与FTP服务器就可以进行数据传输了。被动模式是FTP服务器的默认工作模式,它与主动模式的区别是,被动模式下,控制连接与数据传输连接都是由客户端先发起的。11.1FTP概述被动模式了解vsftpd,能够说出什么是vsftpd以及vsftpd的特点。学习目标11.2.1vsftpd简介FTP服务程序有很多,如vsftpd、Proftpd、Wu-ftpd,其中比较常用的FTP服务程序是vsftpd。vsftpd(VerySecureFTPDaemon,非常安全的FTP守护进程)是一款运行在Linux操作系统上的FTP服务程序。相比于其他FTP服务程序,vsftpd具有高速、稳定、安全等特点,因此本书以vsftpd为例讲解FTP服务。11.1FTP概述11.1FTP概述vsftpd支持3种用户类型,分别是本地用户、匿名用户和虚拟用户,下面分别对这3种用户类型进行介绍。本地用户A匿名用户B虚拟用户C11.1FTP概述在FTP服务器上拥有用户账号和密码的用户称为本地用户。本地用户可以通过输入账号和密码登录FTP服务器。本地用户其实就是Linux操作系统用户,即保存在/etc/passwd文件中的用户。本地用户登录后,其所在位置默认为用户的家目录,经过配置后,本地用户既可以下载文件又可以上传文件。本地用户A11.1FTP概述vsftpd服务程序支持匿名登录,用户在登录FTP服务器时,不需要提供用户账号和密码,使用默认的用户账号ftp或anonymous,默认密码ftp,就可以成功登录。匿名用户登录FTP服务器后,所在位置默认为/var/ftp目录,它是FTP服务器匿名用户的根目录。一般情况下,FTP服务器对匿名用户只提供下载功能。匿名用户B11.1FTP概述虚拟用户是指用户在FTP服务器上拥有用户账号和密码,但此用户账号是FTP服务器专有用户账号,只能访问FTP服务器提供的资源。虚拟用户的用户账号和密码通常保存在数据库文件中。与本地用户相比,虚拟用户只能访问FTP服务器提供的资源,不能登录操作系统,无法越权访问其他资源。与匿名用户相比,虚拟用户只有在用户账号和密码都正确的情况下才可以获取FTP服务器资源。因此,虚拟用户既规范了FTP服务器对用户的管理,也在一定程度上提高了FTP服务器的安全等级。虚拟用户C掌握vsftpd的安装,能够熟练安装vsftpd服务程序。学习目标11.2.2vsftpd的安装与启动[root@localhost~]#dnf-yinstallvsftpd…Installedproductsupdated.已安装:vsftpd-3.0.3-32.el8.x86_64完毕!openEuler操作系统默认没有安装vsftpd服务程序,用户可以使用dnf命令安装vsftpd,具体命令如下。11.2.2vsftpd的安装与启动安装完成后,使用systemctl命令启动vsftpd,具体命令如下。11.2.2vsftpd的安装与启动[root@localhost~]#systemctlstartvsftpd[root@localhost~]#systemctlstatusvsftpd●vsftpd.service-VsftpdftpdaemonLoaded:loaded(/usr/lib/systemd/system/vsftpd.service;disabled;vendorpreset:dis>Active:active(running)sinceWed2021-01-0611:38:27CST;6sagoProcess:36297ExecStart=/usr/sbin/vsftpd/etc/vsftpd/vsftpd.conf(code=exited,statu>…掌握vsftpd配置文件,能够说出vsftpd各配置文件作用。学习目标11.3vsftpd配置文件vsftpd配置文件存储目录为/etc/vsftpd,vsfptd主要配置文件包括/etc/vsftpd/vsftpd.conf、/etc/vsftpd/ftpusers、/etc/vsftpd/user_list。除此之外,vsftpd还有其他配置文件。本节将针对vsftpd的配置文件进行讲解。11.3vsftpd配置文件/etc/vsftpd/vsftpd.conf是vsftpd的主配置文件,它的内容非常多,但大多数都是注释或空行。去掉注释和空行后,/etc/vsftpd/vsftpd.conf文件内容如下所示。11.3vsftpd配置文件/etc/vsftpd/vsftpd.conf点击查看/etc/vsftpd/vsftpd.conf文件中其他常用的配置项及含义如表。11.3vsftpd配置文件/etc/vsftpd/vsftpd.conf选项说明默认值anon_upload_enable是否允许匿名用户上传文件,理论上应同时为匿名用户创建一个写入目录NOanon_mkdir_write_enable是否开放匿名用户创建新目录的权限,一般不建议开放此权限NOidle_session_timeout设置空闲会话超时时间,单位为秒,若在指定时长内未收到数据或命令,则连接中断300data_connection_timeout设置数据连接的等待超时时间,单位为秒。若数据连接的等待时长超过该时间,则连接中断30011.3vsftpd配置文件/etc/vsftpd/vsftpd.conf选项说明默认值nopriv_user设置运行Vsftpd服务的独立且非特权的系统用户nobody(这是用户名)ascii_upload_enable设置采用ASCII模式上传数据NOascii_download_enable设置采用ASCII模式下载数据NOchroot_local_user是否将所有用户限制在主目录NOchroot_list_enable是否启动限制用户的列表NO11.3vsftpd配置文件/etc/vsftpd/vsftpd.conf选项说明默认值chroot_list_file是否限制/排除在主目录下的用户列表,限制或排除由chroot_local_user的值决定/etc/vsftpd/chroot_listallow_writeable_chroot是否开启chroot目录的写权限NOftp_data_port设置FTP数据传送端口20listen_port设置FTP服务器的侦听端口21max_clients设置单例模式下VSFTPD可连接的最大客户端数量2000/etc/vsftpd/ftpusers是vsftpd的用户控制配置文件,文件内容是一个用户列表,具体如下所示。11.3vsftpd配置文件/etc/vsftpd/ftpusers点击查看/etc/vsftpd/user_list也保存了一个用户列表,文件内容如下所示。11.3vsftpd配置文件/etc/vsftpd/user_list点击查看chroot_list文件也用于保存FTP用户列表,其路径由/etc/vsftpd/vsftpd.conf配置文件中的chroot_list_file配置项指定。chroot_list文件有以下两个功能。11.3vsftpd配置文件chroot_list文件限制文件中的用户只能在主目录中活动1排除,即文件中的用户除了访问自己的主目录,还能浏览服务器上的其他目录2熟悉FTP服务器登录方式,能够熟练使用ftp命令登录FTP服务器。学习目标11.4FTP服务器登录方式可以在客户端安装ftp命令,通过ftp命令登录FTP服务器。Windows操作系统、Linux操作系统、UNIX操作系统都有自己的ftp命令,用法都大同小异。下面以openEuler系统为例讲解ftp命令的安装与使用。11.4FTP服务器登录方式可以使用dnf命令安装ftp命令,具体命令如下所示。[root@localhost~]#dnf-yinstallftp…Installedproductsupdated.已安装:ftp-0.17-82.oe2403.x86_64完毕!11.4FTP服务器登录方式基本格式安装完成之后,就可以使用ftp命令登录FTP服务器了。ftp命令用法比较简单,格式如下所示。ftpIP地址11.4FTP服务器登录方式ftp是一个交互式命令,登录成功后,进入ftp命令交互界面。例如,登录37服务器,登录命令及结果如下所示。11.4FTP服务器登录方式点击查看本地用户登录服务器后默认具有上传和下载文件功能,下面通过一个案例演示文件的上传和下载,如例。11.4FTP服务器登录方式[root@localhost~]#echo"helloftp">>ftp.txt
案例11-1:在IP地址为37的FTP服务器中上传和下载文件。2.6.4删除用户组命令groupdel(1)在root用户的当前目录下创建ftp.txt文件,具体命令如下所示。案例11-1:在IP地址为37的FTP服务器中上传和下载文件。2.6.4删除用户组命令groupdel(2)登录FTP服务器,查看当前目录下的文件,具体命令如下所示。点击查看案例11-1:在IP地址为37的FTP服务器中上传和下载文件。2.6.4删除用户组命令groupdel(3)Linux操作系统提供了put命令,用于将文件上传到FTP服务器。通过put命令将ftp.txt文件上传到FTP服务器并重新查看其中的文件,具体命令如下所示。点击查看案例11-1:在IP地址为37的FTP服务器中上传和下载文件。2.6.4删除用户组命令groupdel(4)Linux操作系统提供了get命令,用于从FTP服务器下载文件。通过get命令下载file.txt文件,具体命令如下所示。点击查看案例11-1:在IP地址为37的FTP服务器中上传和下载文件。2.6.4删除用户组命令groupdel由上述命令可知,file.txt文件下载成功。退出ftp命令,使用ls命令查看当前目录下的文件,具体如下所示。ftp>exit221Goodbye.[root@itheima~]#lsanaconda-ks.cfgDesktopDocumentsDownloadsfile.txtftp.txthelloMusicPicturesVideos
案例11-1:在IP地址为37的FTP服务器中上传和下载文件。2.6.4删除用户组命令groupdel需要注意的是,本案例讲解的FTP服务器登录,都是在openEuler中完成的,如果想要从Windows登录FTP服务器,需要将openEuler中的防火墙关闭,关闭防火墙的具体命令如下。[root@localhost~]#systemctlstopfirewalld关闭防火墙后,从Windows操作系统的浏览器或命令行窗口就可以登录FTP服务器了。Windows系统默认安装了ftp命令,因此,在命令行窗口可以直接使用ftp命令登录FTP服务器。项目实施03小智接受任务后,立刻投入项目的筹备与规划。他仔细分析了部门目前的数据共享情况,发现不同的工作场景对FTP服务器有着不同的需求。对于一些日常的资料共享,如培训文档、通用素材等,同事们希望能够便捷、快速地获取,无须烦琐的登录验证流程。而对于涉及核心业务的数据、机密文件等,安全性则是首要考量因素。项目实施掌握FTP服务器的搭建,能够搭建匿名用户模式FTP服务器。学习目标任务11-1搭建匿名用户模式FTP服务器vsftpd服务程序默认不开启匿名登录,并且匿名用户登录,通常只能实现下载功能,不能实现上传功能。本任务要求搭建一个具有上传和下载、创建目录、更名目录、删除目录功能,并支持匿名登录的FTP服务器,具体实现步骤如下所示。任务11-1搭建匿名用户模式FTP服务器编辑/etc/vsftpd/vsftpd.conf主配置文件,使vsftpd服务程序支持匿名登录,并开启匿名用户的上传文件、创建目录、更名目录、删除目录的权限。在/etc/vsftpd/vsftpd.conf文件中添加或修改如下配置项。anonymous_enable=YES write_enable=YES anon_upload_enable=YES anon_other_write_enable=YES anon_mkdir_write_enable=YES 任务11-1搭建匿名用户模式FTP服务器允许匿名用户登录允许匿名登录用户具有写权限开启匿名用户上传文件的功能开启匿名用户删除和更名目录的权限开启匿名用户新增目录的权限1.编辑主配置文件/etc/vsftpd/vsftpd.conf配置文件修改完成后,保存并退出,重启vsftpd服务使配置生效,重启命令如下所示。[root@localhost~]#systemctlrestartvsftpd 任务11-1搭建匿名用户模式FTP服务器需要注意的是,匿名用户模式一般用于访问不重要的公开文件,本任务是为了演示匿名用户模式的使用,给匿名用户设置了较多权限。但在实际开发、运维环境中,最好不要给匿名用户设置太多权限,也不要在匿名用户目录存放重要文件。1.编辑主配置文件防火墙默认不开放21端口,当物理机上的FTP客户端尝试连接并访问虚拟机上的vsftpd服务程序时,防火墙会过滤请求,导致连接失败。解决这一问题的方式有以下两种。任务11-1搭建匿名用户模式FTP服务器2.配置防火墙与SELinux(1)直接关闭防火墙,具体命令如下所示。任务11-1搭建匿名用户模式FTP服务器2.配置防火墙与SELinux[root@localhost~]#systemctlstopfirewalld (2)开放21端口,具体命令如下所示。[root@localhost~]#firewall-cmd--permanent--zone=public--add-port=21/tcp 除了防火墙,SELinux也会影响FTP服务器的访问,在这里可以直接关闭SELinux,具体命令如下所示。任务11-1搭建匿名用户模式FTP服务器2.配置防火墙与SELinux[root@localhost~]#setenforce0 由于匿名用户登录FTP服务器的默认目录为/var/ftp/pub,而/var/ftp/pub目录默认权限为755,即匿名用户对该目录没有写入权限,因此,需要设置/var/ftp/pub的权限为777,让匿名用户对该目录拥有写入权限。/var/ftp/pub目录权限设置命令如下所示。任务11-1搭建匿名用户模式FTP服务器3.设置/var/ftp/pub目录权限[root@localhost~]#chmod777/var/ftp/pub 在/var/ftp/pub目录下创建a.txt文件,以测试匿名用户是否可实现下载功能。创建a.txt文件的命令如下所示。任务11-1搭建匿名用户模式FTP服务器4.创建文件[root@localhost~]#echo"helloanonymousftp">>/var/ftp/a.txt 在客户端,使用ftp命令连接FTP服务器,并通过匿名用户登录,具体命令如下所示。任务11-1搭建匿名用户模式FTP服务器5.登录FTP服务器点击查看匿名登录FTP服务器之后,使用ls命令查看目录下的文件,使用get命令下载a.txt文件,具体命令如下所示。任务11-1搭建匿名用户模式FTP服务器6.下载a.txt文件点击查看root用户的家目录下有一个file文件,使用put命令将file文件上传到FTP服务器的/var/ftp/pub目录下,具体命令如下所示。任务11-1搭建匿名用户模式FTP服务器7.上传文件点击查看掌握FTP服务器的搭建,能够搭建虚拟用户模式FTP服务器。学习目标任务11-2搭建虚拟用户模式FTP服务器虚拟用户模式是最安全的一种FTP服务器模式,但由于其安全性更高,因此配置过程也相对复杂。虚拟用户模式的FTP服务器的具体搭建过程如下所示。任务11-2搭建虚拟用户模式FTP服务器登录虚拟用户模式的FTP服务器需要虚拟的用户账号和密码,因此在搭建FTP服务器之前要创建虚拟的用户账号和密码。由于创建的虚拟账号列表文件不能被vsftpd服务程序直接加载,因此需要将其转换为vsftpd服务程序能够识别的数据库文件。任务11-2搭建虚拟用户模式FTP服务器1.创建虚拟用户及其数据库文件openEuler的pam_userdb模块使用GDBM(GNUDatabaseManager,GNU数据库管理器)作为数据库管理工具。GDBM提供了gdbmtool命令实现数据库的管理。因此,首先需要使用gdbmtool命令创建虚拟用户的数据库文件,具体命令如下所。1.创建虚拟用户及其数据库文件任务11-2搭建虚拟用户模式FTP服务器点击查看虚拟用户并不是系统中真实存在的用户,这会导致虚拟用户创建的文件出现权限错误,因此,需要为虚拟用户创建一个对应的本地用户,让虚拟用户创建的文件映射到本地用户的家目录中进行管理,从而解决Linux操作系统无法处理虚拟用户所创建的文件的问题。任务11-2搭建虚拟用户模式FTP服务器2.创建虚拟用户的映射账号及其家目录将虚拟用户对应的本地用户的家目录设置为/var/vdir,并将Shell指定为/sbin/nologin,即禁止该用户登录操作系统。创建虚拟用户的映射账号的具体命令如下所示。[root@itheima~]#useradd-d/var/vdir-s/sbin/nologinvuser[root@itheima~]#chmod-R755/var/vdir 任务11-2搭建虚拟用户模式FTP服务器2.创建虚拟用户的映射账号及其家目录本地用户名称为vuser修改用户权限,允许其他用户访问虚拟用户在登录FTP服务器时,系统会调用PAM(PlugableAuthenticationModule,可插拔认证模块)对用户账号和密码进行验证,因此需要配置PAM认证文件。任务11-2搭建虚拟用户模式FTP服务器3.配置PAM认证文件PAM认证文件路径为/etc/pam.d,该目录下有很多与认证有关的文件,这些认证文件都以服务名称命名。本任务要配置的vsftpd服务程序的PAM认证文件为/etc/pam.d/vsftpd。清空/etc/pam.d/vsftpd认证文件内容,添加如下内容。[root@itheima~]#vim/etc/pam.d/vsftpd#%PAM-1.0authrequiredpam_userdb.sodb=/etc/vsftpd/vusersaccountrequiredpam_userdb.sodb=/etc/vsftpd/vusers 任务11-2搭建虚拟用户模式FTP服务器3.配置PAM认证文件修改/etc/vsftpd/vsftpd.conf主配置文件,修改或添加如下配置项。anonymous_enable=NO local_enable=YES write_enable=YES guest_enable=YES guest_username=vuser allow_writeable_chroot=YES pam_service_name=vsftpd 任务11-2搭建虚拟用户模式FTP服务器4.修改/etc/vsftpd/vsftpd.conf主配置文件禁止匿名登录开启本地用户模式允许向FTP服务器写入开启虚拟用户模式指定虚拟用户对应的本地用户名为vuser允许对FTP根目录执行写入操作指定PAM认证文件在配置虚拟用户时,可以为虚拟用户设置不同的权限,例如,将虚拟账号vuser1的权限保持默认的只读不变,而将虚拟用户vuser2设置为具有上传、创建、修改和删除等权限。任务11-2搭建虚拟用户模式FTP服务器5.设置虚拟用户权限设置虚拟用户权限时,需要在/etc/vsftpd目录下新建一个目录,在新建的目录中创建以虚拟用户名称命名的文件,并在文件中配置虚拟用户的相关权限。例如,设置虚拟用户vuser1和虚拟用户vuser2的权限,具体如下所示。[root@itheima~]#mkdir/etc/vsftpd/vusers[root@itheima~]#touch/etc/vsftpd/vusers/vuser1[root@ith
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年四川卫生招聘面试儿童保健实务能力练习题及答案
- 2026年中医情志理疗师考试含答案
- 2026年哈尔滨电力职业技术学院高职单招职业适应性考试参考题库带答案解析
- 2026年客服专员情绪管理与复杂问题应对能力测试含答案
- 2026年呼吸系统疾病诊疗竞赛题库含答案
- 2026年京东算法工程师笔试基础知识点练习题及解析
- 2026年京东算法工程师笔试入门实战练习题含解析
- 2026年河南护理职业学院单招职业技能考试备考题库带答案解析
- 2026年保税物流业务操作实务试题含答案
- LED显示屏施工注意事项方案
- 2026届湖南省长沙市长郡集团九年级物理第一学期期末预测试题含解析
- 《JJG 1081.1-2024铁路机车车辆轮径量具检定规程 第1部分:轮径尺》 解读
- 代办营业执照合同模板范文
- 大一英语期末考试及答案
- 儿科输血指南解读
- 防暴演练安全培训课件
- 基础越南语1课件
- 电网数据安全管理办法
- 2025声纹技术核心算法与工程实践
- 加盟招商合同协议书范本
- 2025广西钦州市第十三中学招聘化学教师3人笔试备考试题及答案解析
评论
0/150
提交评论