《实验14LinuxFTP服务》由会员分享,可在线阅读,更多相关《实验14LinuxFTP服务(42页珍藏版)》请在金锄头文库上搜索。
1、实验实验14 Linux的的FTP服务服务一、实验目的一、实验目的二、实验工具与设备二、实验工具与设备三、实验预备知识三、实验预备知识 四、实验内容和步骤四、实验内容和步骤五、实验总结五、实验总结一、实验目的一、实验目的1了解了解FTP的基本原理和作用。的基本原理和作用。2掌握掌握Linux下配置下配置FTP服务器的方法。服务器的方法。3掌握常用的掌握常用的FTP基本内部命令。基本内部命令。二、实验工具与设备二、实验工具与设备1RedHatLinux9.0安装盘。安装盘。2带网卡的带网卡的PC,包括装有,包括装有Windows或或Linux系统的客户机和系统的客户机和Linux系统的(系统的(
2、PC)服务器。)服务器。3交换机和网线若干。交换机和网线若干。三、实验预备知识三、实验预备知识1FTP服务器介绍服务器介绍FTPFTP是是是是TCP/IPTCP/IP协议组中的协议之一,是协议组中的协议之一,是协议组中的协议之一,是协议组中的协议之一,是FileFileTransferProtocolTransferProtocol的缩写。在的缩写。在的缩写。在的缩写。在InternetInternet中,大部分的文中,大部分的文中,大部分的文中,大部分的文件传送采用件传送采用件传送采用件传送采用FTPFTP协议。协议。协议。协议。FTPFTP服务器能在网络上提供文服务器能在网络上提供文服务器
3、能在网络上提供文服务器能在网络上提供文件传输服务,可以供用户上传和下载文件。根据服务件传输服务,可以供用户上传和下载文件。根据服务件传输服务,可以供用户上传和下载文件。根据服务件传输服务,可以供用户上传和下载文件。根据服务对象的不同,对象的不同,对象的不同,对象的不同,FTPFTP服务器可以分为匿名服务器服务器可以分为匿名服务器服务器可以分为匿名服务器服务器可以分为匿名服务器(AnonymousFTPServerAnonymousFTPServer)和系统)和系统)和系统)和系统FTPFTP服务器。前服务器。前服务器。前服务器。前者任何客户都可以使用,后者只有者任何客户都可以使用,后者只有者任
4、何客户都可以使用,后者只有者任何客户都可以使用,后者只有FTPFTP服务器上的合服务器上的合服务器上的合服务器上的合法账号才能使用。法账号才能使用。法账号才能使用。法账号才能使用。FTPFTP采用采用采用采用“ “客户机客户机客户机客户机/ /服务器服务器服务器服务器” ”方式,方式,方式,方式,用户端需要在本地计算机上安装用户端需要在本地计算机上安装用户端需要在本地计算机上安装用户端需要在本地计算机上安装FTPFTP客户程序。客户程序。客户程序。客户程序。(1)FTP的传输方式的传输方式:ASCIIASCII传输模式和二进传输模式和二进传输模式和二进传输模式和二进制数据传输模式制数据传输模式
5、制数据传输模式制数据传输模式ASCIIASCII传输方式传输方式传输方式传输方式假设用户正在复制的文件包含简单假设用户正在复制的文件包含简单假设用户正在复制的文件包含简单假设用户正在复制的文件包含简单ASCIIASCII码文码文码文码文本,如果发生传输双方的计算机不是同一类型操作本,如果发生传输双方的计算机不是同一类型操作本,如果发生传输双方的计算机不是同一类型操作本,如果发生传输双方的计算机不是同一类型操作系统(例如系统(例如系统(例如系统(例如WindowsWindows和和和和LinuxLinux),文件传输时,),文件传输时,),文件传输时,),文件传输时,FTPFTP自动调整文件的内
6、容,以便把文件解释成对方计算自动调整文件的内容,以便把文件解释成对方计算自动调整文件的内容,以便把文件解释成对方计算自动调整文件的内容,以便把文件解释成对方计算机存储文本文件的格式。如果用户传输的不是文本机存储文本文件的格式。如果用户传输的不是文本机存储文本文件的格式。如果用户传输的不是文本机存储文本文件的格式。如果用户传输的不是文本文件,而是程序、数据库、字处理文件、压缩文件文件,而是程序、数据库、字处理文件、压缩文件文件,而是程序、数据库、字处理文件、压缩文件文件,而是程序、数据库、字处理文件、压缩文件等,这种解释可能会出错。等,这种解释可能会出错。等,这种解释可能会出错。等,这种解释可能
7、会出错。二进制传输模式二进制传输模式传输中保持文件的位序,以便原始文件和复传输中保持文件的位序,以便原始文件和复制文件逐位一一对应。制文件逐位一一对应。(2)FTP支持的工作模式支持的工作模式:Standard(即(即PORT或或Active模式,主动方式)和模式,主动方式)和Passive(即(即PASV模式,被动方式)模式,被动方式)Standard模式模式:FTP客户端发送客户端发送PORT命命令到令到FTP服务器服务器FTP客户端首先和客户端首先和FTP服务器的服务器的TCP21端口建立连接,通过这个通道发送命令。客端口建立连接,通过这个通道发送命令。客户端需要接收数据的时候,在这个通
8、道上发户端需要接收数据的时候,在这个通道上发送送PORT命令。命令。PORT命令包含客户端接收数命令包含客户端接收数据的端口。传送数据时,服务器端通过自己据的端口。传送数据时,服务器端通过自己的的TCP20端口连接到客户端的指定端口发送端口连接到客户端的指定端口发送数据。数据。FTPServer必须和客户端建立一个新必须和客户端建立一个新的连接用来传送数据。的连接用来传送数据。Passive模式模式:FTP客户端发送客户端发送PASV命令到命令到FTPServer建立控制通道时与建立控制通道时与Standard模式类似,建立连模式类似,建立连接后,发送的不是接后,发送的不是PORT命令,而是命
9、令,而是PASV命命令。令。FTP服务器收到服务器收到PASV命令后,随机打开命令后,随机打开一个高端端口(端口号大于一个高端端口(端口号大于1024)并通知客户)并通知客户端在这个端口上传送数据的请求,客户端连接端在这个端口上传送数据的请求,客户端连接FTP服务器该端口,服务器该端口,FTP服务器通过这个端口服务器通过这个端口进行数据传送。这时,进行数据传送。这时,FTPServer不再需要建不再需要建立一个新的与客户端之间的连接。立一个新的与客户端之间的连接。2VSFTP服务器的安装服务器的安装目前在目前在目前在目前在LinuxLinux中常用的免费中常用的免费中常用的免费中常用的免费FT
10、PFTP服务器软件主服务器软件主服务器软件主服务器软件主要是要是要是要是Wu-FTPWu-FTP、ProFTPProFTP、VSFTPVSFTP三种。其中,三种。其中,三种。其中,三种。其中,Wu-Wu-FTPFTP使用最广泛。在使用最广泛。在使用最广泛。在使用最广泛。在RedHatLinux7.2RedHatLinux7.2中,中,中,中,Wu-FTPWu-FTP是默认的是默认的是默认的是默认的FTPFTP服务器软件。服务器软件。服务器软件。服务器软件。RedHatLinux8.0RedHatLinux8.0中同中同中同中同时自带时自带时自带时自带Wu-FTPWu-FTP和和和和VSFTPV
11、SFTP。可能由于。可能由于。可能由于。可能由于Wu-FTPWu-FTP被发现被发现被发现被发现安全漏洞比较多的原因,到了安全漏洞比较多的原因,到了安全漏洞比较多的原因,到了安全漏洞比较多的原因,到了RedHatLinux9.0RedHatLinux9.0,只有只有只有只有VSFTPVSFTP了。了。了。了。VSFTPVSFTP是是是是VerySecurityFtpVerySecurityFtp的缩写,的缩写,的缩写,的缩写,意思是意思是意思是意思是“ “非常安全的非常安全的非常安全的非常安全的FTP”FTP”。如果需要使用。如果需要使用。如果需要使用。如果需要使用Wu-FTPWu-FTP或或
12、或或ProFTPProFTP,用户也可以自己安装,配置的方法和,用户也可以自己安装,配置的方法和,用户也可以自己安装,配置的方法和,用户也可以自己安装,配置的方法和VSFTPVSFTP接近。接近。接近。接近。由于由于RedHatLinux9.0自带自带VSFTP服服务器软件,不需要另行安装。如果在安装务器软件,不需要另行安装。如果在安装系统时没有安装,可以在图形界面的系统时没有安装,可以在图形界面的“主菜主菜单单”中选择中选择“系统设置系统设置添加删除应用程序添加删除应用程序”选项安装,也可以用选项安装,也可以用rpm命令安装。命令安装。3VSFTP服务器的配置服务器的配置VSFTP服务器也是
13、用配置文件控制的,其配服务器也是用配置文件控制的,其配置文件是置文件是/etc/vsftpd/vsftpd.conf。vsftpd.conf的主要配置项如下。的主要配置项如下。(1)anonymous_enable=YES 是否允许匿名登录(是否允许匿名登录(YES/NO),默认值为),默认值为YES。(2)local_enable=YES若启动该功能,允许本机使用者登录,默认若启动该功能,允许本机使用者登录,默认值为值为YES。(3)write_enable=YES该选项可以控制该选项可以控制FTP指令是否允许更改指令是否允许更改filesystem,如,如STOR、DELE、RNFR、RN
14、TO、MKD、RMD、APPE以及以及SITE,取值为取值为YES或或NO。预设。预设YES。一般情况下不。一般情况下不建议打开该功能。建议打开该功能。(4)local_umask=022本机登录者新增文档时的本机登录者新增文档时的umask数值,默认数值,默认值为值为077,这里设置为,这里设置为022(大部分(大部分ftpd都设都设置为置为022)。)。(5)anon_upload_enable=YES取值为取值为YES/NO。设置是否允许匿名用户上传。设置是否允许匿名用户上传文档的权限。需要先由文档的权限。需要先由FTP用户创建一个可写用户创建一个可写的目录。的目录。(6)anon_mk
15、dir_write_enable=YES取值为取值为YES/NO。设置是否允许匿名用户拥有。设置是否允许匿名用户拥有创建新目录的权限。一般不建议放开该权限。创建新目录的权限。一般不建议放开该权限。(7)dirmessage_enable=YES取值为取值为YES/NO。如果启动该选项,当远程用。如果启动该选项,当远程用户输入一个指定目录时,检查该目录下是否有户输入一个指定目录时,检查该目录下是否有.message文件。如果有,显示该文件内容。通文件。如果有,显示该文件内容。通常这个文件放置欢迎词或该目录的说明。常这个文件放置欢迎词或该目录的说明。(8)xferlog_enable=YES取值为
16、取值为YES/NO。如果启动,则上传与下载的。如果启动,则上传与下载的信息被完整记录在信息被完整记录在xferlog_file定义的文件中。定义的文件中。(9)connect_from_port_20=YES取值为取值为取值为取值为YES/NOYES/NO。若为。若为。若为。若为YESYES,则强制,则强制,则强制,则强制ftp_dataftp_data的数据的数据的数据的数据传送使用端口传送使用端口传送使用端口传送使用端口 2020。(10)ftp_data_port 20设置设置设置设置FTPFTP数据传送所用的端口,默认值为数据传送所用的端口,默认值为数据传送所用的端口,默认值为数据传送
17、所用的端口,默认值为2020。(11)11.listen_port 21设置设置设置设置FTPServerFTPServer使用的侦听端口,默认值为使用的侦听端口,默认值为使用的侦听端口,默认值为使用的侦听端口,默认值为2121。(12)pasv_max_port 0建立资料联机可用建立资料联机可用建立资料联机可用建立资料联机可用portport范围的上界,范围的上界,范围的上界,范围的上界,0 0表示任意,默表示任意,默表示任意,默表示任意,默认值为认值为认值为认值为0 0。(13)pasv_min_port 0建立资料联机可以使用建立资料联机可以使用port范围的下界,范围的下界,0表表示
18、任意,默认值为示任意,默认值为0。(14)chown_uploads=YES取值为取值为YES/NO。若设置为。若设置为YES,所有匿名上,所有匿名上传数据的拥有者被更换为传数据的拥有者被更换为chown_username中中设定的使用者。这样的选项对于设定的使用者。这样的选项对于FTP的安全的安全及管理很有用。及管理很有用。(15)chown_username=whoever定义匿名登录者上传文档时,该文档的拥有定义匿名登录者上传文档时,该文档的拥有者将被置换的用户名称。者将被置换的用户名称。(16)xferlog_file=/var/log/vsftpd.log定义日志文件(定义日志文件(
19、logfile)的存放位置。)的存放位置。(17)xferlog_std_format=YES将日志文件定义为标准将日志文件定义为标准ftpdxferlog的格式。的格式。(18)idle_session_timeout=600空闲时间超时设定,单位为秒。如果超出该时间还空闲时间超时设定,单位为秒。如果超出该时间还空闲时间超时设定,单位为秒。如果超出该时间还空闲时间超时设定,单位为秒。如果超出该时间还没有数据传送或指令输入,则连接中断。没有数据传送或指令输入,则连接中断。没有数据传送或指令输入,则连接中断。没有数据传送或指令输入,则连接中断。(19)data_connection_timeou
20、t=120数据连接的超时设定,单位是秒。数据连接的超时设定,单位是秒。数据连接的超时设定,单位是秒。数据连接的超时设定,单位是秒。(20)nopriv_user=ftpsecure定义运行定义运行定义运行定义运行vsftpdvsftpd的独立而非特权的系统用户。的独立而非特权的系统用户。的独立而非特权的系统用户。的独立而非特权的系统用户。(21)async_abor_enable=YES取值为取值为取值为取值为YES/NOYES/NO。当设置为。当设置为。当设置为。当设置为YESYES时,时,时,时,FTPFTP服务器将服务器将服务器将服务器将认可异步认可异步认可异步认可异步ABORABOR请
21、求。一般不推荐。请求。一般不推荐。请求。一般不推荐。请求。一般不推荐。(22)ascii_upload_enable=YES取值为取值为YES/NO。控制是否可用。控制是否可用ASCII模式上传。模式上传。(23)ascii_download_enable=YES取值为取值为YES/NO。控制是否可用。控制是否可用ASCII模式下载。模式下载。(24)ftpd_banner=Welcome to blah FTP service定制登录欢迎词。定制登录欢迎词。(25)deny_email_enable=YES若启动该项功能,可以指定一个文件若启动该项功能,可以指定一个文件/etc/vsftpd
22、.banner_emails,其中包含电子邮,其中包含电子邮件地址列表。若用户用匿名登录,系统将要件地址列表。若用户用匿名登录,系统将要求输入邮件地址;如果输入的邮件地址在该求输入邮件地址;如果输入的邮件地址在该文档中,则不允许链接。该功能主要用于防文档中,则不允许链接。该功能主要用于防范范DoS攻击。攻击。(26)banned_email_file=/etc/vsftpd.banned_emails文件文件vsftpd.banned_emails的存放位置。的存放位置。(27)chroot_list_enable=YES取值为取值为YES/NO。如果启动该项功能,所有本。如果启动该项功能,所
23、有本机使用者登录均可进到根目录之外的目录,列机使用者登录均可进到根目录之外的目录,列在在/etc/vsftpd.chroot_list中的使用者除外。中的使用者除外。(28)chroot_list_file=/etc/vsftpd.chroot_list文件文件vsftpd.chroot_list的存放位置。的存放位置。(29)ls_recurse_enable=YES取值为取值为YES/NO。若启动该项功能,允许登录。若启动该项功能,允许登录用户者使用用户者使用ls-R指令。指令。(30)pam_service_name=vsftpd定义定义PAM使用的名称。使用的名称。(31)userli
24、st_enable=YES取值为取值为YES/NO。若启动该项功能,则读取。若启动该项功能,则读取/etc/vsftpd.user_list中的用户名。该项功能中的用户名。该项功能可以在询问密码前就出现失败信息,而不需可以在询问密码前就出现失败信息,而不需要检验密码的程序。默认值为关闭。要检验密码的程序。默认值为关闭。(32)userlist_deny=YES取值为取值为YES/NO。该选项只有在。该选项只有在userlist_enable启动时才有效。如果将该选项启动时才有效。如果将该选项设置为设置为YES,则在,则在etc/vsftpd.user_list中的用中的用户无法登录;若设置为户
25、无法登录;若设置为NO,则只有在,则只有在/etc/vsftpd.user_list中的用户才能登录。该项中的用户才能登录。该项功能可以在询问密码前就出现错误信息,而功能可以在询问密码前就出现错误信息,而不需要检验密码的不需要检验密码的程序。程序。(33)listen=YES取值为取值为YES/NO。指定是否设置为。指定是否设置为STANDALONE模式。若是希望模式。若是希望vsftpd工作在工作在xinetd模式下,必须设置为模式下,必须设置为NO。(34)max_clients=100 最大支持链接数为最大支持链接数为100个。个。(35)max_per_ip=5 每个每个IP最多能支持
26、最多能支持5个链接。个链接。(36)tcp_wrappers=YES取值为取值为YES/NO。如果设置为。如果设置为YES,则将,则将vsftpd与与tcpwrapper结合,即可以在结合,即可以在/etc/hosts.allow与与/etc/hosts.deny中定义可联机或是拒绝的源中定义可联机或是拒绝的源地址。地址。注意:修改注意:修改vsftpd.conf文件后,需要重新启动文件后,需要重新启动服务,服务,vsftpd才能使得修改生效。才能使得修改生效。4FTP服务器运行控制(命令方式)服务器运行控制(命令方式)FTP服务器的启动:服务器的启动:servicevsftpdstart或或
27、/etc/init.d/vsftdstartFTP服务器的停止:服务器的停止:servicevsftpdstop或或/etc/init.d/vsftdstopFTP服务器的重启:服务器的重启:servicevsftprestart或或/etc/init.d/vsftdrestart四、实验内容和步骤四、实验内容和步骤1构建实验环境构建实验环境先将实验设备按图先将实验设备按图先将实验设备按图先将实验设备按图14-114-1连接好。本实验的主要连接好。本实验的主要连接好。本实验的主要连接好。本实验的主要配置是在装有配置是在装有配置是在装有配置是在装有RedHatLinuxRedHatLinux系统
28、的计算机服务器上系统的计算机服务器上系统的计算机服务器上系统的计算机服务器上进行。将进行。将进行。将进行。将PC1PC1的的的的IPIP地址配置为地址配置为地址配置为地址配置为192.168.0.1192.168.0.1。PC2PC2PCPCn n可以是可以是可以是可以是WindowsWindows系列的操作系统(系列的操作系统(系列的操作系统(系列的操作系统(Windows9xWindows9x、Windows2000Windows2000、WindowsMeWindowsMe、WindowsXPWindowsXP均可),均可),均可),均可),也可以是也可以是也可以是也可以是LinuxLi
29、nux系统,只要系统自带系统,只要系统自带系统,只要系统自带系统,只要系统自带ftpftp命令即可(本命令即可(本命令即可(本命令即可(本实验实验实验实验PC2PC2PCPCn n的操作系统为的操作系统为的操作系统为的操作系统为Windows2000Windows2000),同时),同时),同时),同时将将将将PC2PC2PCPCn n的的的的IPIP地址配置为地址配置为地址配置为地址配置为192.168.0.2192.168.0.2192.168.0.192.168.0.xxxxxx。要求保证。要求保证。要求保证。要求保证PC1PC1和和和和PC2PC2PCPCn n的连通的连通的连通的连通
30、(用(用(用(用pingping命令检查是否连通)。命令检查是否连通)。命令检查是否连通)。命令检查是否连通)。 图14-1 实验环境连接图2FTP服务器的配置服务器的配置如果已经将如果已经将RedHatLinux9.0进行完全进行完全安装,则安装,则FTP服务器软件已经安装。如果没服务器软件已经安装。如果没有安装,可以从有安装,可以从RedHatLinux9.0的第一张的第一张安装盘里找到对应的安装盘里找到对应的RPM软件包进行安装。软件包进行安装。VSFTP的主配置文件是的主配置文件是/etc/vsftpd/vsftpd.conf,以及,以及/etc/vsftpd.ftpusers和和/e
31、tc/vsftpd.user_list文件。文件。其中,其中,/etc/vsftpd.ftpuser中指定不能访问中指定不能访问FTP服务器的用户,服务器的用户,/etc/vsftpd.user_list中指定用中指定用户在默认情况(即在户在默认情况(即在/etc/vsftpd/vsftpd.conf中中设置了设置了userlist_deny=YES)下不能访问)下不能访问FTP服服务器。当在务器。当在/etc/vsftpd/vsftpd.conf中设置中设置userlist_deny=NO时,仅允许时,仅允许/etc/vsftpd.user_list中指定的用户访问中指定的用户访问FTP服务
32、服务器。器。3启动启动FTP服务和停止服务和停止FTP服务服务启动和停止启动和停止FTP服务有两种方法。服务有两种方法。(1)在在“服务配置服务配置”窗口(见图窗口(见图14-2)中开)中开始(始(Start)和停止()和停止(Stop)FTP服务。服务。(2)直接在字符界面下用命令启动和停止直接在字符界面下用命令启动和停止FTP服务。服务。启动:启动:servicevsftpstart关闭:关闭:servicevsftpstop重新启动:重新启动:servicevsftprestart图14-2 服务配置窗口4从从PC2PCn远程登录服务器远程登录服务器PC1安装、配置安装、配置FTP服务器
33、后,可以进行验服务器后,可以进行验证,检查证,检查FTP服务器是否已经正常工作。用服务器是否已经正常工作。用FTP图形工具或图形工具或FTP命令均可访问命令均可访问FTP服务服务器。器。常用的常用的FTP命令在前面已介绍,图形工命令在前面已介绍,图形工具可以使用具可以使用CuteFTP、FlashFTP或或Linux下下的的gFTP。本实验采用。本实验采用FTP命令在命令在PC2PCn登录登录Linux服务器服务器PC1。在客户机在客户机PC2PCn的命令行状态下,的命令行状态下,按如图按如图14-3的命令进行操作,若能出现如图的命令进行操作,若能出现如图14-3所示的信息和提示,则说明匿名所
34、示的信息和提示,则说明匿名FTP服服务器已经安装好并且正在工作中。务器已经安装好并且正在工作中。图14-3 匿名用户的权限比较小,可以通过匿名用户的权限比较小,可以通过Linux的授的授权用户获得更大的服务权限。权用户获得更大的服务权限。登录登录FTP服务器后,在服务器后,在ftp提示符后可以使用提示符后可以使用FTP命令。命令。操作步骤如下。操作步骤如下。(1)首先在首先在Linux服务器端建立一个新用户服务器端建立一个新用户ftpuser。建立用户。建立用户ftpuser后,后,/home/ftpuser目录即工作目录。目录即工作目录。(2)在客户机进行在客户机进行FTP登陆,命令:登陆,
35、命令:ftp192.168.0.1(3)按系统提示输入用户名(按系统提示输入用户名(ftpuser)和)和密码。登录完成后,出现提示符密码。登录完成后,出现提示符ftp,当前,当前工作目录就是服务器中的工作目录就是服务器中的/home/ftpuser目录,目录,用户可以在该目录中进行创建目录、上传文用户可以在该目录中进行创建目录、上传文件、下载文件等操作。件、下载文件等操作。(4)建立目录建立目录ftptest:mkdirftptest(5)将本地硬盘中的将本地硬盘中的c:test.zip文件上传至文件上传至服务器的服务器的/home/ftpuser目录中:目录中:lcdc:puttest.z
36、ip(6)将将/home/ftpuser中的中的test.zip文件下载至文件下载至本地硬盘本地硬盘D盘:盘:lcdd:gettest.zip操作结果如图操作结果如图14-4所示。所示。图14-4 FTP操作结果五、实验总结五、实验总结1写出实验报告。写出实验报告。2按本实验的方法设置匿名按本实验的方法设置匿名FTP服务器后,服务器后,服务器中哪个目录存放远程文件?用什么方法服务器中哪个目录存放远程文件?用什么方法可以检查或者设置(可能不止一种方法)?可以检查或者设置(可能不止一种方法)?3如何设置如何设置FTP的账户?的账户?4如果想把匿名如果想把匿名FTP禁用,应该怎么做?禁用,应该怎么做?5把用户名为把用户名为“user01”的账户设置为不可的账户设置为不可登录到登录到FTP服务器,应该怎么设置?服务器,应该怎么设置?