资源描述
Version 2.0FTPFTP服服服服务务的配置与的配置与的配置与的配置与应应用用用用第第第第6 6章章章章Page 2/37本章目本章目本章目本章目标标v了解了解FTP服服务的基本概念的基本概念v了解常用的了解常用的FTP服服务器和器和FTP客客户端端软件件v掌握掌握vsftpd服服务器的配置和管理器的配置和管理v掌握使用掌握使用ftp命令命令对FTP服服务器器进行行测试Page 3/37本章本章本章本章结结构构构构FTPFTP服务器服务器服务器服务器FTPFTP服务概述服务概述服务概述服务概述FTPFTP服务的安装服务的安装服务的安装服务的安装和简单配置和简单配置和简单配置和简单配置 FTPFTP服务器及基本原理服务器及基本原理服务器及基本原理服务器及基本原理 ftpftp命令与命令与命令与命令与FTPFTP客户端软件客户端软件客户端软件客户端软件 安装安装安装安装vsftpdvsftpd vsftpdvsftpd服务器的配置基本服务器的配置基本服务器的配置基本服务器的配置基本 vsftpdvsftpd服务的启动和关闭服务的启动和关闭服务的启动和关闭服务的启动和关闭 配置配置配置配置FTPFTP服务器的虚拟用户服务器的虚拟用户服务器的虚拟用户服务器的虚拟用户 典型典型典型典型FTPFTP服务器设置服务器设置服务器设置服务器设置 FTPFTP服务应用服务应用服务应用服务应用举例举例举例举例 Page 4/37FTPFTP服服服服务务器及基本原理器及基本原理器及基本原理器及基本原理 vFTP服服务的基本概念的基本概念 FTP是用于是用于进行文件行文件传输的网的网络协议FTP服服务中分中分为服服务器和客器和客户机两个角色机两个角色vFTP服服务器的器的传输模式模式主主动模式:由服模式:由服务器主器主动连接客接客户机建立数据机建立数据链路路被被动模式:模式:FTP服服务器等待客器等待客户机建立数据机建立数据链路路vFTP服服务器使用的端口器使用的端口21端口用于与客端口用于与客户机建立命令机建立命令链路路在主在主动模式下服模式下服务器使用器使用20端口向客端口向客户机建立数据机建立数据链路路Page 5/37主主主主动动模式的模式的模式的模式的连连接接接接过过程程程程1:FTP客户机由大于客户机由大于1024的的N端口向端口向FTP服务器的服务器的21端口发出端口发出请求建立命令链路请求建立命令链路2:FTP服务器由服务器由21端口向端口向FTP客户机的客户机的N端口回应,确认建立端口回应,确认建立命令链路命令链路3:FTP服务器由服务器由20端口向端口向FTP客户机的客户机的N+1端口主动建立数据端口主动建立数据链路连接链路连接4:FTP客户机由客户机由N+1端口向端口向FTP服务器的服务器的20端口回应,确认端口回应,确认数据链路的建立数据链路的建立Page 6/37被被被被动动模式的模式的模式的模式的连连接接接接过过程程程程1:FTP客户机由大于客户机由大于1024的的N端口向端口向FTP服务器的服务器的21端口发出端口发出请求建立命令链路请求建立命令链路2:FTP服务器由服务器由21端口向端口向FTP客户机的客户机的N端口回应,确认建立端口回应,确认建立命令链路命令链路3:FTP服务器会通过已建立的服务器会通过已建立的数据链路通知客户机自己已经打数据链路通知客户机自己已经打开了大于开了大于1024的端口的端口M,用于,用于建路数据链路;当需要传输数据建路数据链路;当需要传输数据时,时,FTP客户机会通过客户机会通过N+1端口端口向向FTP服务器的服务器的M端口请求建立端口请求建立数据链路数据链路4:FTP服务器在服务器在M端口监听到端口监听到FTP客户机的连接请求后,将从客户机的连接请求后,将从M端口向端口向FTP客户机的客户机的N+1端口端口确认数据链路的建立确认数据链路的建立Page 7/37常用常用常用常用FTPFTP服服服服务务器器器器软软件件件件 vWindows下常用的下常用的FTP服服务器器软件件IIS具有具有FTP服服务器的功能器的功能Serv-U是流行的是流行的FTP服服务器器软件件vLinux下的下的FTP服服务器器Wu-ftpd出出现较早,运行早,运行稳定,安全性稍差定,安全性稍差Proftpd在配置文件和安全性方面有很大改在配置文件和安全性方面有很大改进vsftpd着重着重强调服服务的安全性,运行效率也很高的安全性,运行效率也很高vvsftpd服服务器是本章学器是本章学习的重点的重点Page 8/37ftpftp命令作命令作命令作命令作为为FTPFTP客客客客户户端端端端vftp命令是最基本的命令是最基本的FTP客客户端端软件件在在Linux和和Windows系系统中都默中都默认提供提供ftp命令命令ftp命令的交互命令的交互环境中使用命令境中使用命令对FTP服服务器器进行操作行操作ftp中很多命令与中很多命令与Bash中的命令中的命令类似似binary设置置传输二二进制文件,制文件,ascii设置置传输文本文件文本文件get命令用于下命令用于下载文件,文件,put命令用于上命令用于上传文件文件mget和和mput用于一次下用于一次下载或上或上传多个文件多个文件bye命令可退出命令可退出ftp命令交互命令交互环境境Page 9/37FTPFTP客客客客户户端端端端软软件件件件 vFTP客客户端端软件的特点件的特点运行在运行在图形形环境下的窗口程序境下的窗口程序可使用鼠可使用鼠标和通和通过菜菜单进行操作行操作用用户界面友好,操作方便界面友好,操作方便v常用常用FTP客客户端端软件件CuteFTP是是Windows下流行的商下流行的商业软件件Filezilla是是Windows下运行的开源下运行的开源软件件gftp是是Linux中中GNOME桌面桌面环境中运行的境中运行的FTP客客户端端软件,是件,是GNOME的重要的重要组成部分成部分Page 10/37安装安装安装安装vsftpd vsftpd vvsftpd的安装需要注意以下几点的安装需要注意以下几点RHEL4系系统中默中默认没有安装没有安装vsftpd服服务器器vsftpd服服务器的安装文件位于第器的安装文件位于第1张安装光安装光盘中中安装文件名称是安装文件名称是vsftpd-2.0.1-5.i386.rpm 使用使用rpm命名可命名可顺利安装利安装该软件包件包#rpm-ivh vsftpd-2.0.1-5.i386.rpm Page 11/37vsftpd.confvsftpd.conf配置文件配置文件配置文件配置文件 vvsftpd.conf是是vsftpd服服务器的主配置文件器的主配置文件/etc/vsftpd/vsftpd.conf v配置文件中所有的配置配置文件中所有的配置项都有相同的格式都有相同的格式anonymous_enable=YESv配置文件中的注配置文件中的注释行以行以“#”开始开始v配置文件的配置文件的详细帮助信息可帮助信息可查询手册手册页#man vsftpd.confPage 12/37vsftpdvsftpd服服服服务务器的缺省配置器的缺省配置器的缺省配置器的缺省配置 vvsftpd.conf文件中的缺省配置文件中的缺省配置为:anonymous_enable=YESlocal_enable=YESwrite_enable=YESlocal_umask=022dirmessage_enable=YESxferlog_enable=YESconnect_from_port_20=YESxferlog_std_format=YESpam_service_name=vsftpduserlist_enable=YESlisten=YEStcp_wrappers=YESanonymous_enable设置为设置为“YES”时时FTP服务器允许匿名登录服务器允许匿名登录local_enable设置为设置为“YES”时允许时允许本地用户登录本地用户登录 write_enable设置为设置为“YES”时时FTP服服务器开放对本地用户的写权限务器开放对本地用户的写权限local_umask设置项设置本地用户的设置项设置本地用户的文件生成掩码文件生成掩码dirmessage_enable设置为设置为“YES”时当切换到时当切换到FTP服务器中的某个目录服务器中的某个目录时,将显示该目录下的时,将显示该目录下的.message隐隐含文件的内容含文件的内容xferlog_enable设置为设置为“YES”时时FTP服务器将启用上传和下载日志服务器将启用上传和下载日志connect_from_port_20设置为设置为“YES”时时FTP服务器将启用服务器将启用FTP数据端口的连接请数据端口的连接请求求xferlog_std_format设置为设置为“YES”时时FTP服服务器将使用标准的务器将使用标准的ftpd xferlog日志格式日志格式pam_service_name设置设置PAM认证服务认证服务的配置文件名称的配置文件名称userlist_enable设置为设置为“YES”时时FTP服务服务器将检查器将检查userlist_file设置文件中指定的用设置文件中指定的用户是否可以访问户是否可以访问vsftpd服务器服务器listen设置为设置为“YES”时时FTP服务器将服务器将处于独立启动模式处于独立启动模式 tcp_wrappers设置为设置为“YES”时时FTP服务器服务器将使用将使用tcp_wrappers作为主机访问控制方作为主机访问控制方式式 Page 13/37vsftpd.ftpusersvsftpd.ftpusers文件文件文件文件 vvsftpd.ftpusers用于保存不允用于保存不允许进行行FTP登登录的的本地用本地用户帐号号#head-5/etc/vsftpd.ftpusers#Users that are not allowed to login via ftprootbindaemonadm vvsftpd.ftpusers文件中可禁止高文件中可禁止高权限本地用限本地用户登登录FTP服服务器,提高了系器,提高了系统的安全性的安全性Page 14/37vsftpd.user_listvsftpd.user_list文件文件文件文件 vvsftpd.user_list文件具有文件具有对vsftpd服服务器更灵活器更灵活的用的用户访问控制控制/etc/vsftpd.user_list v使用使用vsftpd.user_list文件需要在主配置文件中文件需要在主配置文件中进行行设置置设置禁止置禁止vsftpd.user_list文件中的用文件中的用户登登录userlist_enable=YESuserlist_deny=YES 设置只允置只允许vsftpd.user_list文件中的用文件中的用户登登录userlist_enable=YESuserlist_deny=NO Page 15/37匿名用匿名用匿名用匿名用户户登登登登录录 vvsftpd服服务器提供匿名用器提供匿名用户登登录的功能的功能匿名用匿名用户使用的登使用的登录用用户名名anonymousftp匿名匿名FTP用用户登登录的口令通常是使用用的口令通常是使用用户的的E-mail地地址,在址,在vsftpd中中输入任何字符串或直接回入任何字符串或直接回车都可以登都可以登录所有匿名用所有匿名用户都登都登录到相同的目到相同的目录中中/var/ftpFTP服服务器的匿名登器的匿名登录可用于构建公共的文件下可用于构建公共的文件下载服服务器器Page 16/37vsftpdvsftpd服服服服务务的启的启的启的启动动和关和关和关和关闭闭 v服服务器启器启动脚本脚本启启动脚本名称是脚本名称是vsftpd/etc/init.d/vsftpd vsftpd服服务需要需要设置在运行置在运行级别3和和5自自动启启动#chkconfig-level 35 vsftpd on 服服务器启器启动#service vsftpd start 服服务器停止器停止#service vsftpd stop 服服务器状器状态查询#service vsftpd status Page 17/37使用使用使用使用ftpftp命令登命令登命令登命令登录录FTPFTP服服服服务务器器器器vftp命令登命令登录FTP服服务器的格式器的格式#ftp 192.168.1.2 v匿名登匿名登录使用用使用用户名名anonymous或或ftp登登录的的FTP根目根目录为系系统目目录“/var/ftp”v本地用本地用户登登录使用系使用系统用用户帐号和口令登号和口令登录ftp服服务器器登登录FTP服服务器后的目器后的目录为用用户宿主目宿主目录,用,用户可可转换到系到系统中的其他目中的其他目录Page 18/37FTPFTP本地用本地用本地用本地用户帐户帐号的号的号的号的问题问题v使用使用FTP本地用本地用户帐号存在安全性号存在安全性问题FTP本地用本地用户使用使用Linux系系统用用户帐号,存在安全号,存在安全隐患患使用虚使用虚拟帐号替代本地用号替代本地用户帐号可以增号可以增强系系统的安全性的安全性本地用本地用户登登录FTP目目录后可从宿主目后可从宿主目录转换到其他目到其他目录,不是很安全不是很安全可以可以设置将本地用置将本地用户禁禁锢在宿主目在宿主目录中中Page 19/37将将将将FTPFTP本地用本地用本地用本地用户户禁禁禁禁锢锢在宿主目在宿主目在宿主目在宿主目录录中中中中 v在在vsftpd.conf文件中添加文件中添加设置置项chroot_local_user=YES v重新启重新启动vsftpd服服务#service vsftpd restart v使用使用ftp客客户端端验证本地用本地用户登登录FTP服服务器后,宿主目器后,宿主目录将作将作为根(根(/)目目录Page 20/37阶阶段段段段总结总结FTP是是进行文件行文件传输的网的网络协议FTP服服务器和客器和客户机机软件在件在Linux和和Windows平平台都有多种台都有多种选择vsftpd是以安全是以安全见长的的FTP服服务器器软件件FTP客客户端可以是端可以是ftp命令或窗口程序命令或窗口程序vsftpd服服务使用使用vsftpd.conf文件文件进行核心配置行核心配置vsftpd服服务器的启器的启动脚本是脚本是vsftpdvsftpd默默认配置支持匿名用配置支持匿名用户登登录和本地用和本地用户登登录Page 21/37阶阶段段段段练习练习J查看看vsftpd.conf配置文件的默配置文件的默认设置置J使用使用ftp命令匿名登命令匿名登录FTP服服务器器Page 22/37vsftpdvsftpd中支持的用中支持的用中支持的用中支持的用户类户类型型型型 v匿名用匿名用户使用公共的用使用公共的用户帐号号进行登行登录,通常用于提供公共文,通常用于提供公共文件下件下载服服务v本地用本地用户使用使用Linux系系统用用户帐号登号登录,每个用,每个用户都使用各自的都使用各自的宿主目宿主目录v虚虚拟用用户使用独立的文件保存虚使用独立的文件保存虚拟帐号,安全性号,安全性较好,可替代好,可替代本地用本地用户Page 23/37vsftpdvsftpd虚虚虚虚拟拟用用用用户帐户帐号的号的号的号的设设置步置步置步置步骤骤 1.建立虚建立虚拟用用户口令口令库文件文件2.生成生成vsftpd的的认证文件文件3.建立虚建立虚拟用用户所需的所需的PAM配置文件配置文件4.建立虚建立虚拟用用户所要所要访问的目的目录并并设置相置相应权限限5.设置置vsftpd.conf配置文件配置文件Page 24/37vsftpdvsftpd虚虚虚虚拟拟用用用用户户配置配置配置配置3-13-1v建立虚建立虚拟用用户口令口令库文件文件口令口令库文件中奇数行文件中奇数行设置用置用户名,偶数行名,偶数行设置口令置口令#cat logins.txt mikepwabcdjohnpw1234v生成生成vsftpd的的认证文件文件使用使用db_load命令生成命令生成认证文件文件#db_load-T-t hash-f logins.txt/etc/vsftpd/vsftpd_login.db设置置认证文件只文件只对用用户可可读可写可写#chmod 600/etc/vsftpd/vsftpd_login.db Page 25/37vsftpdvsftpd虚虚虚虚拟拟用用用用户户配置配置配置配置3-23-2v建立虚建立虚拟用用户所需的所需的PAM配置文件配置文件 手工建立手工建立vsftpd.vu文件文件#cat/etc/pam.d/vsftpd.vuauth required/lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_loginaccount required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login v建立虚建立虚拟用用户及要及要访问的目的目录并并设置相置相应的的权限限 建立所有建立所有FTP虚虚拟用用户帐号使用的系号使用的系统用用户帐号,并号,并设置置该帐号宿主目号宿主目录的的权限限#useradd-d/home/ftpsite virtual#chmod 700/home/ftpsite/Page 26/37vsftpdvsftpd虚虚虚虚拟拟用用用用户户配置配置配置配置3-33-3v设置置vsftpd.conf配置文件配置文件在配置文件中添加虚在配置文件中添加虚拟用用户的配置内容的配置内容guest_enable=YESguest_username=virtualpam_service_name=vsftpd.vu v重新启重新启动vsftpd服服务程序程序 对vsftpd.conf文件修改后需要重新启文件修改后需要重新启动vsftpd服服务程程序序#service vsftpd restart Page 27/37测试测试虚虚虚虚拟拟用用用用户帐户帐号的号的号的号的FTPFTP登登登登录录v使用使用ftp命令登命令登录FTP服服务器器使用已配置的虚使用已配置的虚拟用用户名和口令登名和口令登录FTP服服务器,如能器,如能够正常登正常登录说明虚明虚拟帐号配置成功号配置成功为了系了系统的安全,缺省配置的虚的安全,缺省配置的虚拟用用户只具有只具有较低的低的用用户权限限可以通可以通过为每个虚每个虚拟用用户建立独立的配置文件增加用建立独立的配置文件增加用户的的权限限Page 28/37对对虚虚虚虚拟拟用用用用户设户设置不同的置不同的置不同的置不同的权权限限限限v设置主配置文件置主配置文件 在在vsftpd.conf文件中添加用文件中添加用户配置文件目配置文件目录设置置user_config_dir=/etc/vsftpd_user_conf v建立用建立用户配置文件目配置文件目录使用使用mkdir命令建立用命令建立用户配置文件目配置文件目录#mkdir/etc/vsftpd_user_conf v为虚虚拟用用户建立建立单独的配置文件独的配置文件用用户配置文件名称与用配置文件名称与用户名相同名相同/etc/vsftpd_user_conf/mike/etc/vsftpd_user_conf/johnPage 29/37虚虚虚虚拟拟用用用用户户配置文件中的配置配置文件中的配置配置文件中的配置配置文件中的配置项项v每个每个FTP虚虚拟用用户都可以独立都可以独立设置其置其权限限anon_world_readable_only=NOanon_upload_enable=YESanon_mkdir_write_enable=YESanon_other_write_enable=YES“anon_world_readable_only=NO”表示用户可以浏览表示用户可以浏览FTP目录和下载目录和下载文件文件“anon_upload_enable=YES”表示表示用户可以上传文件用户可以上传文件“anon_mkdir_write_enable=YES”表示用户具有建立和删除目录的权利表示用户具有建立和删除目录的权利“anon_other_write_enable=YES”表示表示用户具有文件改名和删除文件的权限用户具有文件改名和删除文件的权限 Page 30/37配置配置配置配置vsftpdvsftpd服服服服务务器中的器中的器中的器中的资资源限制源限制源限制源限制vvsftpd服服务器中的器中的资源使用可以源使用可以进行限制行限制max_clients=100max_per_ip=5local_max_rate=500000anon_max_rate=200000 max_clients设置项用于设置设置项用于设置FTP服务服务器所允许的最大客户端连接数,值为器所允许的最大客户端连接数,值为0时表示不限制时表示不限制 max_per_ip设置项用于设置对于同一设置项用于设置对于同一IP地址允许的最大客户端连接数,值为地址允许的最大客户端连接数,值为0时表示不限制时表示不限制 local_max_rate设置项用于设置本地设置项用于设置本地用户的最大传输速率,单位为用户的最大传输速率,单位为bytes/sec,值为,值为0时表示不限制时表示不限制 anon_max_rate设置项用于设置匿名设置项用于设置匿名用户的最大传输速率,单位为用户的最大传输速率,单位为bytes/sec,值为,值为0表示不限制表示不限制 Page 31/37阶阶段段段段总结总结vsftpd服服务器中可使用匿名用器中可使用匿名用户、本地用、本地用户和虚和虚拟用用户三种用三种用户类型型FTP服服务器中的虚器中的虚拟用用户与本地用与本地用户功能功能类似,似,但更加安全但更加安全vsftpd服服务器中使用虚器中使用虚拟用用户需要需要维护独立的用独立的用户口令口令库文件文件vsftpd中的每个虚中的每个虚拟用用户可以建立用可以建立用户配置文件配置文件用于用于设置独立的用置独立的用户权限限vsftpd中可以限制客中可以限制客户机机对服服务器器资源的使用源的使用Page 32/37阶阶段段段段练习练习J查看看vsftpd.conf的手册的手册页,阅读虚虚拟用用户相关的相关的配置配置项的的说明明J查看看vsftpd.conf的手册的手册页,阅读FTP服服务器器资源源限制相关配置限制相关配置项的的说明明Page 33/37本章本章本章本章总结总结FTPFTP服务器服务器服务器服务器FTPFTP服务概述服务概述服务概述服务概述FTPFTP服务的安装服务的安装服务的安装服务的安装和简单配置和简单配置和简单配置和简单配置 FTPFTP服务器及基本原理服务器及基本原理服务器及基本原理服务器及基本原理 ftpftp命令与命令与命令与命令与FTPFTP客户端软件客户端软件客户端软件客户端软件 安装安装安装安装vsftpdvsftpd vsftpdvsftpd服务器的配置基本服务器的配置基本服务器的配置基本服务器的配置基本 vsftpdvsftpd服务的启动和关闭服务的启动和关闭服务的启动和关闭服务的启动和关闭 配置配置配置配置FTPFTP服务器的虚拟用户服务器的虚拟用户服务器的虚拟用户服务器的虚拟用户 典型典型典型典型FTPFTP服务器设置服务器设置服务器设置服务器设置 FTPFTP服务应用服务应用服务应用服务应用举例举例举例举例 FTP是用于文件传输的是用于文件传输的网络协议网络协议ftp命令是最常见的命令是最常见的FTP客户端软件客户端软件RHEL4中提供了中提供了RPM格格式的式的vsftpd安装包安装包vsftpd.conf配置文件是配置文件是vsftpd服务器配置的核心服务器配置的核心vsftpd启动脚本用于启动启动脚本用于启动和停止和停止vsftpd服务程序服务程序vsftpd中使用虚拟用户比中使用虚拟用户比本地用户更加安全本地用户更加安全有效的进行有效的进行FTP服务器资服务器资源的限制可以保证服务器源的限制可以保证服务器的稳定运行的稳定运行Page 34/37实验实验v任任务1:在:在vsftpd服服务器中配置虚器中配置虚拟用用户帐号号v任任务2:在:在vsftpd服服务器中限制客器中限制客户机机连接数和接数和传输速率速率 Page 35/37任任任任务务1 1v注意事注意事项提示提示1:虚:虚拟用用户的口令的口令库文件需要先手工建立文本文文件需要先手工建立文本文件,再使用件,再使用db_load命令生成命令生成提示提示2:配置使用虚:配置使用虚拟用用户需要手工建立需要手工建立PAM认证文件文件Page 36/37任任任任务务2 2v注意事注意事项提示提示1:在:在vsftpd.conf配置文件中配置文件中设置置资源限制配置源限制配置项应明确其含明确其含义,否,否则容易限制容易限制错对象象提示提示2:每次:每次对vsftpd.conf配置文件配置文件进行修改后都需要行修改后都需要重新启重新启动vsftpd服服务使新的配置生效使新的配置生效
展开阅读全文