论文部分内容阅读
FTP(文件传输协议)是一个用于从一台主机向网络中另外一台主机传送文件的协议。该协议的历史可追溯至1971年,不过至今仍然极为流行。在一个典型的FTP会话中,用户坐在本地主机前,想把文件传送到一台远程主机(上传)或者想把文件从一台远程主机传送过来(下载)。该用户必须提供一个合法的用户名和口令才能访问远程主机。给出这些身份认证信息后,它就可以在本地文件系统和远程文件系统之间传送文件了。
用户通过一个FTP用户接口与FTP服务器交互。他首先提供一个远程主机的主机名,这使得本地主机中的FTP客户进程建立一个与远程主机中的FTP服务器进程之间的连接。用户接着提供用户名和口令,这些信息将作为FTP命令参数经由TCP连接传送到服务器。服务器批准后,该用户就在本地文件系统和远程文件系统之间传输文件。
FTP服务不受计算机类型以及操作系统的限制,无论是PC机、服务器、大型机,也不管操作系统是Linux、DOS还是Windows,只要建立FTP连接的双方都支持FTP协议,就可以方便地传输文件。目前FTP服务主要应用于文件的上传与下载、软件的高速下载和Web站点的维护与更新。在Linux系统下常见的FTP服务器软件有vsftpd、proftpd和wu-ftpd。
1 FTP工作原理
FTP服务采用客户机/服务器模式,FTP客户机和服务器使用TCP建立连接。FTP服务器使用两个并行的TCP连接来传送文件,一个是控制连接,一个是数据连接。
其中,控制连接用于在客户主机和服务器主机之间发送控制信息,例如用户名和口令、改变远程目录的命令、取来或放回文件的命令。数据连接用于真正传输文件。
在FTP客户机和服务器的会话建立过程中,具体经历以下几个阶段:
1.1当FTP客户机启动与远程FTP服务器间的一个FTP会话时,FTP客户机首先发起建立与FTP服务器21端口之间的控制连接,然后经由该控制连接把用户名和口令发送给服务器。
1.2客户机还经由该控制连接把本地临时分配的数据端口告知服务器,以便服务器发起建立一个从FTP服务器20端口到客户机指定端口之间的数据连接。
1.3当用户每次请求传送文件时,FTP将在服务器的20端口打开一个数据连接。当数据传输完毕后,用于建立数据连接的端口会自动关闭,到再有文件传送请求时重新打开。
1.4在FTP会话中,控制连接在整个用户会话期间一直处于打开状态,而数据连接则为每次文件传送请求重新打开一次。也就是说,在整个FTP会话过程中,控制连接是持久的,而数据连接是非持久的。
2 FTP的排错方法
客户机想访问FTP服务器上的资源,首先要满足能和FTP服务器通信。如果客户和服务器不能通信,就不可能访问服务器,更不用说下载资源了。还有服务器防火墙应放21端口(FTP端口)。在满足这两个条件后,下面我们分析FTP常见错误,探讨FTP的排错方法。
2.1拒绝账户登录(错误提示:OOPS无法改变目录)。当客户端使用ftp账号登录服务器时,提示“500 OOPS”错误。
接收到该错误信息,其实并不是vsftpd.conf配置文件设置有问题,而重点是“cannot change directory”,无法更改目录。造成这个错误,主要有以下两个原因。①目录权限设置错误。该错误一般在本地账户登录时发生,如果管理员在设置该账户主目录权限时,忘记添加执行权限(X),那么,就会收到该错误信息。FTP中的本地账号,需要拥有目录的执行权限,请作用chmod命令添加“X”权限,保证用户能够浏览目录信息,否则拒绝登录。对于FTP的虚拟账号,即使不具备目录的执行权限,也可以登录FTP服务器,但会有其他错误提示。为了保证FTP用户的正常访问,请开户目录的执行权限。②SELinux。FTP服务器开启了SELinux针对FTP数据传输的策略,也会造成“无法切换目录”的错误提示,如果目录权限设置正确,那么,需要检查SELinux的配置。用户可以通过setsebool命令,禁用SELinux的FTP传输审核功能。
[root@RHEL4~]# setsebool –P ftpd_disable_trans 1
重新启动vsftpd服务,用户能够成功登录FTP服务器。
2.2客户端连接FTP服务器超时。造成客户端访问服务器超时的原因,主要有以下几种情况。①线路不通。使用ping命令测试网络连通性,如果出现“Request Timed Out”,说明客户端与服务器的网络连接存在问题,检查线路的故障。②防火墙设置。如果防火墙屏蔽了FTP服务器控制端口21,以及其他的数据端口,则会造成客户端无法连接服务器,形成“超时”的错误提示。需要设置防火墙开放21端口,并且,还应该开启主动模式的20端口,以及被动模式使用的端口范围,防止数据的连接错误。
2.3账户登录失败。客户端登录FTP服务器时,还有可能会收到“登录失敗”的错误提示。
登录失败,实际上牵扯到身份验证,以及其他一些登录的设置。①密码错误。请保证登录密码的正确性,如果FTP服务器更新了密码设置,则使用新密码重新登录。②PAM维模块。当输入密码无误,但仍然无法登录FTP服务器时,很有可能是PAM模块中vsftpd的配置文件错误造成的。PAM的配置比较复杂,其中auth字段主要是接受用户名和密码,进而对该用户的密码进行认证,account字段主要是检查账户是否被允许登录系统,账户是否已经过期,账户的登录是否有时间段的限制等,保证这两个字段配置的正确性,否则FTP账号将无法登录服务器。事实上,大部分账号登录失败都是由这个错误造成的。③用户目录权限。FTP账号对于主目录没有任何权限时,也会收到“登录失败”的错误提示,根据该账号的用户身份,重新设置其主目录权限,重启vsftpd服务,使配置生效。
参考文献:
[1]杨云等.Linux网络服务器配置管理项目实训教程[M] 北京:中国水利水电出版社 2010.07
[2]么丽颖.Linux系统管理和应用[M] 北京:中国铁道出版社 2011.08
[3]谢树新.Linux网络服务器配置与管理项目教程[M] 北京:科学出版社 2011.08
用户通过一个FTP用户接口与FTP服务器交互。他首先提供一个远程主机的主机名,这使得本地主机中的FTP客户进程建立一个与远程主机中的FTP服务器进程之间的连接。用户接着提供用户名和口令,这些信息将作为FTP命令参数经由TCP连接传送到服务器。服务器批准后,该用户就在本地文件系统和远程文件系统之间传输文件。
FTP服务不受计算机类型以及操作系统的限制,无论是PC机、服务器、大型机,也不管操作系统是Linux、DOS还是Windows,只要建立FTP连接的双方都支持FTP协议,就可以方便地传输文件。目前FTP服务主要应用于文件的上传与下载、软件的高速下载和Web站点的维护与更新。在Linux系统下常见的FTP服务器软件有vsftpd、proftpd和wu-ftpd。
1 FTP工作原理
FTP服务采用客户机/服务器模式,FTP客户机和服务器使用TCP建立连接。FTP服务器使用两个并行的TCP连接来传送文件,一个是控制连接,一个是数据连接。
其中,控制连接用于在客户主机和服务器主机之间发送控制信息,例如用户名和口令、改变远程目录的命令、取来或放回文件的命令。数据连接用于真正传输文件。
在FTP客户机和服务器的会话建立过程中,具体经历以下几个阶段:
1.1当FTP客户机启动与远程FTP服务器间的一个FTP会话时,FTP客户机首先发起建立与FTP服务器21端口之间的控制连接,然后经由该控制连接把用户名和口令发送给服务器。
1.2客户机还经由该控制连接把本地临时分配的数据端口告知服务器,以便服务器发起建立一个从FTP服务器20端口到客户机指定端口之间的数据连接。
1.3当用户每次请求传送文件时,FTP将在服务器的20端口打开一个数据连接。当数据传输完毕后,用于建立数据连接的端口会自动关闭,到再有文件传送请求时重新打开。
1.4在FTP会话中,控制连接在整个用户会话期间一直处于打开状态,而数据连接则为每次文件传送请求重新打开一次。也就是说,在整个FTP会话过程中,控制连接是持久的,而数据连接是非持久的。
2 FTP的排错方法
客户机想访问FTP服务器上的资源,首先要满足能和FTP服务器通信。如果客户和服务器不能通信,就不可能访问服务器,更不用说下载资源了。还有服务器防火墙应放21端口(FTP端口)。在满足这两个条件后,下面我们分析FTP常见错误,探讨FTP的排错方法。
2.1拒绝账户登录(错误提示:OOPS无法改变目录)。当客户端使用ftp账号登录服务器时,提示“500 OOPS”错误。
接收到该错误信息,其实并不是vsftpd.conf配置文件设置有问题,而重点是“cannot change directory”,无法更改目录。造成这个错误,主要有以下两个原因。①目录权限设置错误。该错误一般在本地账户登录时发生,如果管理员在设置该账户主目录权限时,忘记添加执行权限(X),那么,就会收到该错误信息。FTP中的本地账号,需要拥有目录的执行权限,请作用chmod命令添加“X”权限,保证用户能够浏览目录信息,否则拒绝登录。对于FTP的虚拟账号,即使不具备目录的执行权限,也可以登录FTP服务器,但会有其他错误提示。为了保证FTP用户的正常访问,请开户目录的执行权限。②SELinux。FTP服务器开启了SELinux针对FTP数据传输的策略,也会造成“无法切换目录”的错误提示,如果目录权限设置正确,那么,需要检查SELinux的配置。用户可以通过setsebool命令,禁用SELinux的FTP传输审核功能。
[root@RHEL4~]# setsebool –P ftpd_disable_trans 1
重新启动vsftpd服务,用户能够成功登录FTP服务器。
2.2客户端连接FTP服务器超时。造成客户端访问服务器超时的原因,主要有以下几种情况。①线路不通。使用ping命令测试网络连通性,如果出现“Request Timed Out”,说明客户端与服务器的网络连接存在问题,检查线路的故障。②防火墙设置。如果防火墙屏蔽了FTP服务器控制端口21,以及其他的数据端口,则会造成客户端无法连接服务器,形成“超时”的错误提示。需要设置防火墙开放21端口,并且,还应该开启主动模式的20端口,以及被动模式使用的端口范围,防止数据的连接错误。
2.3账户登录失败。客户端登录FTP服务器时,还有可能会收到“登录失敗”的错误提示。
登录失败,实际上牵扯到身份验证,以及其他一些登录的设置。①密码错误。请保证登录密码的正确性,如果FTP服务器更新了密码设置,则使用新密码重新登录。②PAM维模块。当输入密码无误,但仍然无法登录FTP服务器时,很有可能是PAM模块中vsftpd的配置文件错误造成的。PAM的配置比较复杂,其中auth字段主要是接受用户名和密码,进而对该用户的密码进行认证,account字段主要是检查账户是否被允许登录系统,账户是否已经过期,账户的登录是否有时间段的限制等,保证这两个字段配置的正确性,否则FTP账号将无法登录服务器。事实上,大部分账号登录失败都是由这个错误造成的。③用户目录权限。FTP账号对于主目录没有任何权限时,也会收到“登录失败”的错误提示,根据该账号的用户身份,重新设置其主目录权限,重启vsftpd服务,使配置生效。
参考文献:
[1]杨云等.Linux网络服务器配置管理项目实训教程[M] 北京:中国水利水电出版社 2010.07
[2]么丽颖.Linux系统管理和应用[M] 北京:中国铁道出版社 2011.08
[3]谢树新.Linux网络服务器配置与管理项目教程[M] 北京:科学出版社 2011.08