一、FTP服务的简介

用户联网的首要目的就是实现信息共享,文件传输是信息共享非常重要的一个内容之一。

Internet是一个非常复杂的计算机环境,有PC,有工作站,有MAC,有大型机,据统计连接在Internet上的计算机已有上千万台,而这些计算机可能运行不同的操作系统,有运行Unix的服务器,也有运行DOS以及Windows的PC机,而各种操作系统之间的文件交流问题,需要建立一个统一的文件传输协议。

与大多数Internet服务一样,FTP也是一个客户机/服务器系统。用户通过一个支持FTP协议的客户机程序,连接到在远程主机上的FTP服务器程序。用户通过客户机程序向服务器程序发出命令,服务器程序执行用户所发出的命令,并将执行的结果返回到客户机。

二、FTP服务器的工作模式

1、ftp协议有两类连接:命令连接和数据连接  

FTP是用来在两台计算机之间互相传送文件。相比于HTTP,FTP协议要复杂得多。复杂的原因,是因为FTP协议要用到两个TCP连接,一个是命令链路,用来在FTP客户端与服务器之间传递命令;另一个是数据链路,用来上传或下载数据。

2、ftp 的工作模式有两种:主动模式和被动模式

   主动模式:客户端向服务器的FTP端口(默认是21)发送连接请求,服务器接受连接,建立一条命令链路。当需要传送数据时,客户端在命令链路上用PORT命令告诉服务器:“我打开了XXXX端口,你过来连接我”。于是服务器从20端口向客户端的XXXX端口发送连接请求,建立一条数据链路来传送数据。

205639454.png

   被动模式:客户端向服务器的FTP端口(默认是21)发送连接请求,服务器接受连接,建立一条命令链路。当需要传送数据时,服务器在命令链路上用PASV命令告诉客户端:“我打开了XXXX端口,你过来连接我”。于是客户端向服务器的XXXX端口发送连接请求,建立一条数据链路来传送数据。

205656335.png

     3、数据的传输模式有两种:二进制格式传输和文本格式传输。

三、实现FTP协议的软件

    1、 linux中常用的实现FTP协议的软件:wuftpd、proftpd、pureftpd、vsftpd(very secure)

    2、 windows系统下常用的还有 Server-U、Filezilla、IIS等

    3、专门访问ftp客服端工具:ftp、lftp、gftp、filezilla

213215720.png

四、ftp协议的响应码

    1xx:服务器信息

    2xx:正确响应信息

    3xx:正常响应,但某操作过程尚未完成,需要进一步补充完成

214251718.png

    4xx:客户端错误,由客户端引起

    5xx:服务器端错误,服务器自身故障执行不成

214738873.png


五、vsftpd支持的用户类型

    1、匿名用户:事实上是服务器端自动映射的一个系统用户

         使用公共的用户账号进行登录,通常用于公共文件的下载。

    2、本地用户:即为 /etc/passwd中的用户

         默认root和uid<500的用户禁止访问ftp,每个用户都使用各自宿主目录

    3、虚拟用户:事实上也是服务器自动映射的系统用户

         多个虚拟用户同时被映射为同一个系统用户,但不同的虚拟用户可以具有不同           的访问权限。

六、vsftpd的工作特性

  vsftp中编辑其主配置文件,锁定用户与其家目录中,有三种实现方式

195116890.png

     1、禁锢所有用户

#   chroot_local_user=YES

195200508.png

     2、禁锢指定用户即黑名单

#  chroot_list_enable=YES
#  chroot_list_file= /etc/vsftpd/chroot_list

195356712.png

      3、不禁锢的指定用户即白名单

# chroot_local_user=YES
# chroot_list_enable=YES
# chroot_list_file= /etc/vsftpd/chroot_list

195414874.png

七、vsftpd配置中与安全相关的设定

     1、传输速率的限定,默认单位为字节

       anon_max_rate=

       local_max_rate=

       指定用户的传输速率:user_config_dir= /etc/vsftpd/userconfs/

     2、连接数的限定

       max_clients=

       max_per_ip=

     3、建立FTP的账号列表

       白名单

# userlist_enable=YES
# userlist_deny=NO

       黑名单

# userlist_enable=YES
# userlist_deny=YES

八、vsftpd配置文件中常用的配置修改

200859487.png