一、FTP服务说明
ftp(File Transfer Protocol)即文件传输协议,是互联网比较古老的服务之一,用于在网络上进行文件传输的一套标准协议,使用客户/服务器模式。它属于网络传输协议的应用层。
二、FTP服务运行模式
FTP服务一般默认运行在tcp 20(数据传输)和tcp 21(通讯信号建立控制)两个端口。端口20用于在客户端和服务器之间传输数据流,而端口21用于传输控制流。
1、 ftp服务器运行有两种模式,即主动模式与被动模式,如下图所示:
图左边ftp处于主动模式中,客户端首先和ftp 21端口建立通讯连接,然后和客户端协商出一个接受数据的端口(客户端随机开放一个端口),协商成功后,ftp服务器从20端口主动推送数据到客户端的这个随机端口;完成数据传输。
图右边ftp处理被动械中,客户端同样是先和ftp21端口建立通讯连接,然后告诉客户端自己的数据端口是20(默认,可以自定义),此时客户端得知服务器处理于被动模式,和被动数据开放的端口后,客户端会用自己随机的端口连接服务器端的数据端口20,来获取数据。服务器牌被动放数据状态;
主动模式和被动模式的区别就在于,数据是主动推送到客户端的,还是被动等待客户端来取。
2、分析说明
主动模式由于数据是主动推送到客户端随机协商的端口,又因为一般的企业或客户端访问互联网服务器时存在防火墙(防止外面的访问进来),所以一般ftp处在主动模式时,除非本地且本地防火墙允许,否则ftp会被防火墙阻断,导致无法完成数据传输!因而出现了被动模式,一般防火墙防外面进来而不防里面出去,所以被动模式下,客户端可以出去访问21 20端口,即使数据传输端口20改变,也是固定的,客户端防火墙可以固定调整,而不像主动情况下,客户端接收数据是随机的~
三、ftp安全问题
ftp协议比较古老,一般默认传输采用的是明文传输数据,一个抓包就可以看出ftp的连接账号和密码,相当不安全,所以一般使用ftp最好采用ssl +ftp,提高ftp的安全性。