


单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,单击此处编辑母版标题样式,*,第,9,章,FTP,服务器配置与安全管理,9.1 FTP,服务概述,1,FTP,协议简介,互联网文件传输协议(,FTP,)标准是在,RFC959,中说明的该协议定义了一个在远程计算机系统和本地计算机系统之间传输文件的标准FTP,是,TCP/IP,的一种具体应用,其工作在,OSI,模型的第七层,,TCP,模型的第四层上,即应用层使用,TCP,传输而不是,UDP,,这样,FTP,客户在和服务器建立连接前就要经过“三次握手”的过程,它的意义在于客户与服务器之间的连接是可靠的,而且是面向连接,为数据的传输提供了可靠的保证,用户不必担心数据传输的可靠性FTP,主要有如下作用:,从客户向服务器发送一个文件;,从服务器向客户发送一个文件;,从服务器向客户发送文件或目录列表9.1 FTP,服务概述,FTP,服务需要使用两个端口:一个是控制连接端口(默认是,21,号端口),专用于在客户机与服务器之间传递指令;另一个是数据传输端口(端口号的选择依赖于控制连接上的命令),专用于在客户机与服务器之间建立数据传输通道,上传下载数据。
FTP,的连接模式有两种:主动模式和被动模式,这里都是相对于服务器而言的图,9-1,主动模式的连接过程,图,9-2,被动模式的连接过程,9.1 FTP,服务概述,3,FTP,的常用命令,表,9-1 FTP,常用命令说明,命,令,说,明,ascii,设定以,ASCII,方式传送文件(缺省值),binary,设定以二进制方式传送文件,cd,改变当前远端主机的工作目录,缺省转到当前用户的,HOME,目录,cdup,或,cd.,将当前远端主机的工作目录切换到上一级父目录,chmod,改变远端主机的文件权限,close,终止远端的,FTP,进程,返回到,FTP,命令状态,delete,删除远端主机中的文件,get remote-file local-file,或:,recv remote-file local-file,从远端主机中的文件传送至本地主机中,lcd,改变当前本地主机的工作目录,缺省转到当前用户的,HOME,目录,ls remote-directory local-file,或:,dir remote-directory local-file,列出当前远端主机目录中的文件,并将结果写至本地文件,mdelete remote-files,删除一批文件,9.1 FTP,服务概述,3,FTP,的常用命令,续表,命,令,说,明,mget remote-files,从远端主机接收一批文件至本地主机,mkdir directory-name,在远端主机中建立目录,mput local-files,将本地主机中一批文件传送至远端主机,open host port,重新建立一个新的连接,prompt,打开,/,关闭交互提示模式,put local-file remote-file,或:,send local-file remote-file,将本地一个文件传送至远端主机中,pwd,列出当前远端主机的工作目录,quit,或,bye,终止主机,FTP,进程,并退出,FTP,管理方式,rename from to,改变远端主机中的文件名,rmdir directory-name,删除远端主机中的目录,status,显示当前,FTP,的状态,system,显示远端主机系统类型,user username password account,重新以其他的用户名登录远端主机,?,或,help command,提供关于所有命令或某个命令的帮助,!shell command,在客户机上执行所用的,SHELL,命令,9.1 FTP,服务概述,4,FTP,服务器软件,流行的,FTP,服务器软件有很多种,在,Linux,环境下常用的有:,(,1,),wu-ftpd,Unix,系统早期流行的匿名自由(免费的,GNU,软件),FTP,服务器软件。
运行稳定,效率高,在,Red Hat Linux AS 4,之前,,Red Hat Linux,一直都将,wu-ftp,作为默认安装的服务器软件包但安全漏洞也很多,因此被逐渐替换掉2,),proftpd,着重强调,FTP,服务器的功能在配置文件和安全性方面有了很大改进proftpd,使用类似,Apache,配置文件的格式,在一个独立的配置文件中配置虚拟域以及配置目录的访问权限,也可以使用一个外部文件,.ftpaccess,分别控制各个子目录3,),vsftpd,目前最安全、稳定和高效的,FTP,服务器,综合性能最为优秀9.1 FTP,服务概述,5,vsftpd,支持的用户类型,(,1,)匿名用户,匿名用户使用的登录用户名为,anonymous,或者,ftp,,,(,2,)本地用户,本地用户是在,FTP,服务器上拥有账号的非匿名用户,该类用户直接使用自己的账号和口令进行授权登录3,)虚拟用户,vsftpd,支持使用虚拟帐号替代本地用户帐号来增强系统的安全性虚拟用户特别采用单独的文件保存用户账号,与系统帐号(,passwd/shadow,)相分离,这大大增加了系统的安全性9.2,案例导学实现匿名和本地访问的,FTP,服务器,9.2.1,安装,1,准备工作,2,安装,3,了解软件包安装的文件,用命令“,rpm-ql vsftpd,”可以查询到,vsftpd,软件包所生成的文件。
主要有:,/etc/pam.d/vsftpd,:,vsftpd,用户的,pam,认证文件,/etc/rc.d/init.d/vsftpd,:,vsftpd,服务的启动脚本,/etc/vsftpd,:,vsftpd,服务配置文件的主目录,/etc/vsftpd/ftpusers,:拒绝访问,vsftpd,服务器的本地用户清单(用户黑名单),9.2,案例导学实现匿名和本地访问的,FTP,服务器,/etc/vsftpd/user_list,:拒绝(默认)或仅允许访问,vsftpd,服务器的本地用户清单(用户黑,/,白名单),需结合“,userlist_enable=YES/NO,”和“,userlist_deny=YES/NO,”语句来使用,/etc/vsftpd/vsftpd.conf,:,vsftpd,的主配置文件,/etc/vsftpd/vsftpd_conf_migrate.sh,:,vsftpd,操作的一些变量和设置的脚本,/usr/sbin/vsftpd,:可执行文件(主程序文件),/var/ftp,:默认情况下匿名用户的根目录,/var/ftp/pub,:用于匿名用户下载文件的公共目录,/usr/share/doc/vsftpd-2.0.5,:说明和样例文件的存放目录,配置文件是安装软件包时自动产生的,可以在启动,vsftpd,服务器后直接使用。
9.2,案例导学实现匿名和本地访问的,FTP,服务器,4,vsftpd,服务器的默认配置,说明:,在,vsftpd,指令的写法上还需要注意以下两项:,每条配置指令应该独占一行并且指令之前不能有空格;,在“,option,”、“,=,”与“,value,”之间也不能有空格9.2,案例导学实现匿名和本地访问的,FTP,服务器,9.2.2,配置匿名用户访问,FTP,服务器,1,任务及分析,任务情境:公司技术部准备选择一台主机(,192.168.11.148,)搭建一台功能简单的,FTP,服务器,允许所有员工对服务器上的特定目录“,/var/ftp/mypub”,上传、下载和重命名文件,并且允许创建用户自己的目录对于上传的文件,其所有者自动设置为,ftpadmin,当用户切换到“,/var/ftp/pub”,目录后,将显示一段提示信息任务分析:允许所有员工上传和下载文件,需要设置成允许匿名用户登录配置服务器的流程如下:,(,1,)配置本地目录的权限和所有者;,(,2,)配置,FTP,服务器,开放匿名用户的各项写权限;,(,3,)设置,/var/ftp/pub,目录的提示信息;,(,4,)从网管工作站匿名登录,FTP,服务器,通过上传、下载数据和切换目录进行测试。
9.2,案例导学实现匿名和本地访问的,FTP,服务器,2,配置方案和过程,(,1,)创建用户,ftpadmin,(,2,)建立匿名上传目录,mypub,并设置权限,(,3,)编辑主配置文件“,/etc/vsftpd/vsftpd.conf”,(,4,)修改,selinux,使其支持匿名上传,(,5,)设置,/var/ftp/pub,目录的提示信息,9.2,案例导学实现匿名和本地访问的,FTP,服务器,3,应用测试,(,1,)启动,vsftpd,服务并查看器运行状态,(,2,)查看,vsftpd,服务占用端口情况,(,3,)设定开机自动加载,vsftpd,服务,(,4,)从网管工作站匿名登录,FTP,服务器,9.2,案例导学实现匿名和本地访问的,FTP,服务器,9.2.3,配置本地用户访问,FTP,服务器,1,任务及分析,任务情境:公司内部现有一台,FTP,和,Web,服务器(,IP,:,192.168.11.148,),,FTP,服务器主要用于维护公司的网站,包括上传文件、创建目录、更新网页等公司现有两个部门负责维护任务,分别使用,user1,和,user2,帐号进行管理(这两个账户但不能登录本地系统),将它们登录,FTP,的根目录限制为“,/var/www/html”,,不能进入任何其他目录。
9.2,案例导学实现匿名和本地访问的,FTP,服务器,9.2.3,配置本地用户访问,FTP,服务器,任务分析:将,FTP,和,Web,服务器做在一起是企业经常采用的方法,便于实现对网站的维护为了增强安全性,首先需要仅允许本地用户访问,并禁止匿名登录其次使用,chroot,功能将,user1,和,user2,锁定在“,/var/www/html”,目录下如需删除文件则还应配置本地权限配置服务器的流程如下:,(,1,)在,linux,系统中添加两个用户,user1,和,user2,;,(,2,)在,FTP,服务器上设置目录“,/var/www/html”,的权限,允许,user1,和,user,读和写;,(,3,)修改主配置文件,禁用匿名用户的相关配置,增加本地用户登录的相关参数,设置本地用户具有写权限,以达到预期的目的;,(,4,)对用户,user1,和,user2,设置,chroot,9.2,案例导学实现匿名和本地访问的,FTP,服务器,2,配置方案和过程,(,1,)建立维护网站内容的用户账号并禁止本地登录,(,2,)修改本地权限,(,3,)编辑主配置文件,设置用户权限,(,4,)设置本地用户的,chroot,(,5,)开启禁用,SELinux,的,FTP,传输审核功能,3,应用测试,(,1,)启动,vsftpd,服务并查看器运行状态,(,2,)查看,vsftpd,服务占用端口情况,(,3,)设定开机自动加载,vsftpd,服务,(,4,)验证仅允许本地用户登录,(,5,)验证用户,user1,和,user2,的,chroot,功能,(,6,)验证用户,user1,和,user2,的权限分配情况,9.3,课堂练习,配置,FTP,虚拟主机,1,任务及分析,任务情境:在,192.168.11.148,这台,Linux,主机上已经建立了一个,FTP,站点,为了充分利用主机和带宽资源,希望在此,Linux,主机上再建立一个允许匿名登录和下载的,FTP,站点。
任务分析:,vsftpd,不支持基于名字的虚拟主机,本例中采用基于,IP,地址的虚拟主机基于,IP,地址的虚拟主机是以,IP,地址为单位的,每个虚拟主机对应监听一个,IP,地址,需要在这台,Linux,主机上添加新的,IP,地址9.3,课堂练习,配置,FTP,虚拟主机,2,配置方案和过程,(,1,)为一台,Linu。