背景:因最近一个项目,需要在一台服务器上搭建FTP服务,还要准备好防火墙,能保障客户端能正常访问
这里涉及到两个问题是需要我们深思和考虑的:
第一个问题:首先我们得知道FTP 是因特网网络上历史最悠久的网络工具,是一个非常古老的服务协议,
从 1971 年由 A KBHUSHAN 提出第一个 FTP 的RFC(RFC114)至今近半个世纪来,
有一个最大的安全问题,传输时是明文,传输就会存在安全问题,但这里由于历史原因和各种背景原因,这个还得得需要
第二个问题:就是防火墙,如何开通防火墙,这里就得先决定,到时是使用FTP的主动模式,还是被动模式
那么我们就只需要重点考虑第二个问题,回应这个问题之前,我们先介绍一下,FTP服务的Active与Passive模式,即主动与被动模式
关于主动模式:
在两种连接模式中,主动模式是较早的一种。主动FTP是在计算的早期引入的,当时大型机更普遍,对信息安全的攻击也不那么普遍
用户从客户端上的随机端口连接到服务器上的FTP端口TCP/21。它发送PORT命令,指定服务器应连接到的客户端端口。
该端口稍后将用于数据通道,与此步骤中用于命令通道的端口不同
服务器从端口TCP/20连接到为数据通道指定的客户端端口。一旦建立了数据连接,就可以通过这些客户端和服务器端口进行文件传输。
关于被动模式:
在被动模式下,客户端仍然启动到服务器的命令通道(控制连接)。
但是,它不是发送PORT命令,而是发送PASV命令,这基本上是一个请求服务器端口连接以进行数据传输。
当FTP服务器回复时,它会指示为随后的数据传输打开了哪个数据端口号
客户端从随机端口连接到服务器上的端口21,并发出PASV命令。服务器回复,指出它已打开哪个(随机)端口进行数据传输。
客户端从另一个随机端口连接到服务器响应中指定的随机端口。一旦建立连接,就通过这些客户端和服务器端口进行数据传输。
这样我们在知道了,主动被动模式之后、现在该思考如何开通过防火墙了,如果客户端:1.1.1.1/32 ,FTP:服务端:2.2.2.2/32
主动模式的防火墙就应该按如下方法(当然这里我们先假定不去限制Random端口范围)
Client --> Server TCP/21 Permit
Server --> Client TCP/1024~65535 Permit
被动模式的防火墙
Client --> Server TCP/21, 1024~65535 Permit
因此如果我们开通防火墙要将两种模式都考虑在内,那么综合下来,的策略就应该为:
Client --> Server TCP/21, 1024~65535 Permit
Server --> Client TCP/1024~65535 Permit
这里有几点需要说明的,如下:
1、默认情况,我们所说的随机端口,是需要考虑到1024~65535,这样才是最佳的,在Linux系统,也只有这些范围的端口才能被普通用户管理监听
2、至于使用那种模式,是FTP由客户端决定的~
3、如果在与用户沟通的情况下,或者充分了解背景,从安全角度,和方便管理,还是建议使用被动模式
4、关于被动模式,使用那些端口作为数据传输端口,可以指定一个高位的端口范围,目前笔者所知道的FTP服务软件都是支持的
5、如果是主动模式,目前笔者知道的大部分FTP客户端是不能指定某个范围的端口作为数据传输端口 -(少部分FTP客户端可以支持)
尊重别人的劳动成果 转载请务必注明出处:https://www.cnblogs.com/5201351/p/16861677.html
标签:FTP,被动模式,端口,防火墙,服务器,客户端 From: https://www.cnblogs.com/5201351/p/16861677.html