1、FTP服务的简介linux
用户联网的首要目的就是实现信息共享,文件传输是信息共享很是重要的一个内容之一。windows
Internet是一个很是复杂的计算机环境,有PC,有工做站,有MAC,有大型机,据统计链接在Internet上的计算机已有上千万台,而这些计算机可能运行不一样的操做系统,有运行Unix的服务器,也有运行DOS以及Windows的PC机,而各类操做系统之间的文件交流问题,须要创建一个统一的文件传输协议。
安全
与大多数Internet服务同样,FTP也是一个客户机/服务器系统。用户经过一个支持FTP协议的客户机程序,链接到在远程主机上的FTP服务器程序。用户经过客户机程序向服务器程序发出命令,服务器程序执行用户所发出的命令,并将执行的结果返回到客户机。bash
2、FTP服务器的工做模式服务器
1、ftp协议有两类链接:命令链接和数据链接 ide
FTP是用来在两台计算机之间互相传送文件。相比于HTTP,FTP协议要复杂得多。复杂的缘由,是由于FTP协议要用到两个TCP链接,一个是命令链路,用来在FTP客户端与服务器之间传递命令;另外一个是数据链路,用来上传或下载数据。工具
二、ftp 的工做模式有两种:主动模式和被动模式ui
主动模式:客户端向服务器的FTP端口(默认是21)发送链接请求,服务器接受链接,创建一条命令链路。当须要传送数据时,客户端在命令链路上用PORT命令告诉服务器:“我打开了XXXX端口,你过来链接我”。因而服务器从20端口向客户端的XXXX端口发送链接请求,创建一条数据链路来传送数据。 spa
被动模式:客户端向服务器的FTP端口(默认是21)发送链接请求,服务器接受链接,创建一条命令链路。当须要传送数据时,服务器在命令链路上用PASV命令告诉客户端:“我打开了XXXX端口,你过来链接我”。因而客户端向服务器的XXXX端口发送链接请求,创建一条数据链路来传送数据。操作系统
三、数据的传输模式有两种:二进制格式传输和文本格式传输。
3、实现FTP协议的软件
一、 linux中经常使用的实现FTP协议的软件:wuftpd、proftpd、pureftpd、vsftpd(very secure)
二、 windows系统下经常使用的还有 Server-U、Filezilla、IIS等
三、专门访问ftp客服端工具:ftp、lftp、gftp、filezilla
4、ftp协议的响应码
1xx:服务器信息
2xx:正确响应信息
3xx:正常响应,但某操做过程还没有完成,须要进一步补充完成
4xx:客户端错误,由客户端引发
5xx:服务器端错误,服务器自身故障执行不成
5、vsftpd支持的用户类型
一、匿名用户:事实上是服务器端自动映射的一个系统用户
使用公共的用户帐号进行登陆,一般用于公共文件的下载。
二、本地用户:即为 /etc/passwd中的用户
默认root和uid<500的用户禁止访问ftp,每一个用户都使用各自宿主目录
三、虚拟用户:事实上也是服务器自动映射的系统用户
多个虚拟用户同时被映射为同一个系统用户,但不一样的虚拟用户能够具备不一样 的访问权限。
6、vsftpd的工做特性
vsftp中编辑其主配置文件,锁定用户与其家目录中,有三种实现方式
一、禁锢全部用户:
# chroot_local_user=YES
二、禁锢指定用户即黑名单:
# chroot_list_enable=YES # chroot_list_file= /etc/vsftpd/chroot_list
三、不由锢的指定用户即白名单:
# chroot_local_user=YES # chroot_list_enable=YES # chroot_list_file= /etc/vsftpd/chroot_list
7、vsftpd配置中与安全相关的设定
一、传输速率的限定,默认单位为字节
anon_max_rate=
local_max_rate=
指定用户的传输速率:user_config_dir= /etc/vsftpd/userconfs/
二、链接数的限定
max_clients=
max_per_ip=
三、创建FTP的帐号列表
白名单
# userlist_enable=YES # userlist_deny=NO
黑名单
# userlist_enable=YES # userlist_deny=YES
8、vsftpd配置文件中经常使用的配置修改