一、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端口发送连接请求,建立一条数据链路来传送数据。
被动模式:客户端向服务器的FTP端口(默认是21)发送连接请求,服务器接受连接,建立一条命令链路。当需要传送数据时,服务器在命令链路上用PASV命令告诉客户端:“我打开了XXXX端口,你过来连接我”。于是客户端向服务器的XXXX端口发送连接请求,建立一条数据链路来传送数据。
3、数据的传输模式有两种:二进制格式传输和文本格式传输。
三、实现FTP协议的软件
1、 linux中常用的实现FTP协议的软件:wuftpd、proftpd、pureftpd、vsftpd(very secure)
2、 windows系统下常用的还有 Server-U、Filezilla、IIS等
3、专门访问ftp客服端工具:ftp、lftp、gftp、filezilla
四、ftp协议的响应码
1xx:服务器信息
2xx:正确响应信息
3xx:正常响应,但某操作过程尚未完成,需要进一步补充完成
4xx:客户端错误,由客户端引起
5xx:服务器端错误,服务器自身故障执行不成
五、vsftpd支持的用户类型
1、匿名用户:事实上是服务器端自动映射的一个系统用户
使用公共的用户账号进行登录,通常用于公共文件的下载。
2、本地用户:即为 /etc/passwd中的用户
默认root和uid<500的用户禁止访问ftp,每个用户都使用各自宿主目录
3、虚拟用户:事实上也是服务器自动映射的系统用户
多个虚拟用户同时被映射为同一个系统用户,但不同的虚拟用户可以具有不同 的访问权限。
六、vsftpd的工作特性
vsftp中编辑其主配置文件,锁定用户与其家目录中,有三种实现方式
1、禁锢所有用户:
# chroot_local_user=YES
2、禁锢指定用户即黑名单:
# chroot_list_enable=YES # chroot_list_file= /etc/vsftpd/chroot_list
3、不禁锢的指定用户即白名单:
# chroot_local_user=YES # chroot_list_enable=YES # chroot_list_file= /etc/vsftpd/chroot_list
七、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配置文件中常用的配置修改
本文出自 “丿Sky 灬ONE PEICE” 博客,转载请与作者联系!