您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 销售管理 > 第9章 FTP服务器配置与安全管理
第9章FTP服务器配置与安全管理9.1FTP服务概述1.FTP协议简介互联网文件传输协议(FTP)标准是在RFC959中说明的。该协议定义了一个在远程计算机系统和本地计算机系统之间传输文件的标准。FTP是TCP/IP的一种具体应用,其工作在OSI模型的第七层,TCP模型的第四层上,即应用层。使用TCP传输而不是UDP,这样FTP客户在和服务器建立连接前就要经过“三次握手”的过程,它的意义在于客户与服务器之间的连接是可靠的,而且是面向连接,为数据的传输提供了可靠的保证,用户不必担心数据传输的可靠性。FTP主要有如下作用:从客户向服务器发送一个文件;从服务器向客户发送一个文件;从服务器向客户发送文件或目录列表。9.1FTP服务概述FTP服务需要使用两个端口:一个是控制连接端口(默认是21号端口),专用于在客户机与服务器之间传递指令;另一个是数据传输端口(端口号的选择依赖于控制连接上的命令),专用于在客户机与服务器之间建立数据传输通道,上传下载数据。FTP的连接模式有两种:主动模式和被动模式,这里都是相对于服务器而言的。ServerClient20Data21Cmd1031Cmd1032Data1243图9-1主动模式的连接过程ServerClient21Cmd1031Cmd1032Data12320Data20264图9-2被动模式的连接过程9.1FTP服务概述3.FTP的常用命令表9-1FTP常用命令说明命令说明ascii设定以ASCII方式传送文件(缺省值)binary设定以二进制方式传送文件cd改变当前远端主机的工作目录,缺省转到当前用户的HOME目录cdup或cd..将当前远端主机的工作目录切换到上一级父目录chmod改变远端主机的文件权限close终止远端的FTP进程,返回到FTP命令状态delete删除远端主机中的文件get[remote-file][local-file]或:recvremote-file[local-file]从远端主机中的文件传送至本地主机中lcd改变当前本地主机的工作目录,缺省转到当前用户的HOME目录ls[remote-directory][local-file]或:dir[remote-directory][local-file]列出当前远端主机目录中的文件,并将结果写至本地文件mdelete[remote-files]删除一批文件9.1FTP服务概述3.FTP的常用命令续表命令说明mget[remote-files]从远端主机接收一批文件至本地主机mkdirdirectory-name在远端主机中建立目录mputlocal-files将本地主机中一批文件传送至远端主机openhost[port]重新建立一个新的连接prompt打开/关闭交互提示模式putlocal-file[remote-file]或:sendlocal-file[remote-file]将本地一个文件传送至远端主机中pwd列出当前远端主机的工作目录quit或bye终止主机FTP进程,并退出FTP管理方式rename[from][to]改变远端主机中的文件名rmdirdirectory-name删除远端主机中的目录status显示当前FTP的状态system显示远端主机系统类型userusername[password][account]重新以其他的用户名登录远端主机?或help[command]提供关于所有命令或某个命令的帮助![shellcommand]在客户机上执行所用的SHELL命令9.1FTP服务概述4.FTP服务器软件流行的FTP服务器软件有很多种,在Linux环境下常用的有:(1)wu-ftpdUnix系统早期流行的匿名自由(免费的GNU软件)FTP服务器软件。运行稳定,效率高,在RedHatLinuxAS4之前,RedHatLinux一直都将wu-ftp作为默认安装的服务器软件包。但安全漏洞也很多,因此被逐渐替换掉。(2)proftpd着重强调FTP服务器的功能。在配置文件和安全性方面有了很大改进。proftpd使用类似Apache配置文件的格式,在一个独立的配置文件中配置虚拟域以及配置目录的访问权限,也可以使用一个外部文件.ftpaccess分别控制各个子目录。(3)vsftpd目前最安全、稳定和高效的FTP服务器,综合性能最为优秀。9.1FTP服务概述5.vsftpd支持的用户类型(1)匿名用户匿名用户使用的登录用户名为anonymous或者ftp,(2)本地用户本地用户是在FTP服务器上拥有账号的非匿名用户,该类用户直接使用自己的账号和口令进行授权登录。(3)虚拟用户vsftpd支持使用虚拟帐号替代本地用户帐号来增强系统的安全性。虚拟用户特别采用单独的文件保存用户账号,与系统帐号(passwd/shadow)相分离,这大大增加了系统的安全性。9.2案例导学——实现匿名和本地访问的FTP服务器9.2.1安装1.准备工作2.安装3.了解软件包安装的文件用命令“rpm-qlvsftpd”可以查询到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/”,不能进入任何其他目录。9.2案例导学——实现匿名和本地访问的FTP服务器9.2.3配置本地用户访问FTP服务器任务分析:将FTP和Web服务器做在一起是企业经常采用的方法,便于实现对网站的维护。为了增强安全性,首先需要仅允许本地用户访问,并禁止匿名登录。其次使用chroot功能将user1和user2锁定在“/var/”目录下。如需删除文件则还应配置本地权限。配置服务器的流程如下:(1)在linux系统中添加两个用户user1和user2;(2)在FTP服务器上设置目录“/var/”的权限,允许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)为一台Linux主机配置多个IP地址(2)建立FTP虚拟主机的根目录(3)创建FTP虚拟主机的匿名用户帐号(4)建立FTP虚拟主机的配置文件(5)为原独立运行的FTP服务器指定监听的IP地址9.3课堂练习——配置FTP虚拟主机3.应用测试(1)启动和测试FTP虚拟主机(2)查看vsftpd服务器进程(3)登录vsftpd虚拟主机进行测试9.4拓展练习——vsftpd服务的安全管理FTP服务主要面临如下几种安全威胁:(1)数据泄密(2)匿名访问所引起的安全脆弱性(3)拒绝服务攻击9.4拓展练习——vsftpd服务的安全管理9.4.1设置虚拟用户1.建立虚拟用户数据库文件(2)执行db_load命令生成虚拟用户数据库文件(3)改变虚拟用户数据库文件的权限2.建立虚拟用户使用的认证文件3.建立虚拟用户使用的真实帐号及其登录的目录,并设置相应的权限4.编辑vsftpd的主配置文件vsftpd.conf5.测试9.4拓展练习——vsftpd服务的安全管理9.4.2主机访问控制利用tcp_wrappers实现主机访问控制9.4.3用户访问控制vsftpd的用户访问控制分为两
本文标题:第9章 FTP服务器配置与安全管理
链接地址:https://www.777doc.com/doc-3125596 .html