一、FTP简单介绍
文件共享协议有两大类,一类是复制整个文件,另一类是联机访问。FTP是文件传送协议,属于文件共享协议中复制整个文件。(NFS是网络文件系统,属于文件共享协议中的联机访问 )
FTP传送一个文件需要建立两个TCP连接,即控制连接和数据连接。控制连接的服务器
控制连接 | 数据连接 |
---|---|
服务器使用21号端口 | 服务器使用20号端口 |
客户机主动请求建立控制连接,服务器接受请求并打开21号端口 | 客户使用PORT命令从控制连接上把自己的临时数据端口号发向服务器,服务器主动向客户机的该端口发送数据连接请求 |
在客户-服务器连接的全过程中,控制连接一直保持着,始终等待客户与服务器之间的通信 | 数据连接根据需求随时建立、断开连接 |
Host Requirements RFC建议使用流方式的FTP客户在每次使用数据连接前发一个PORT命令来启用一个非默认的端口号。如果客户没有向服务器发出PORT命令,来指明客户数据连接端的端口号,服务器就用与控制连接正在用的相同的端口号给数据连接。这会给使用流方式的客户带来一些问题:服务器20端口与处于2MSL等待状态的连接不成功。问题的原因是TCP规定禁止服务器发送同步信息(SYN),无法跨过插口对的2MSL等待状态来重用相同的插口对。
常见FTP客户端:FileZilla、VSFTP、WinSCP、IIs7服务器管理工具 、FireFTP、Transmit等。
二、FTP安全问题
- 匿名访问
- 弱口令
- 未限制登录用户访问目录权限
- 密码和文件内容都使用明文传输
- ……