我已经使用apt在Ubuntu10.04上安装了带有PureFTP 1.0.24的纯ftpd包。
即使这是默认的端口范围,我还是添加了文件/etc/纯ftpd/conf/PassivePortRange,其中包含:
30000 50000这确实在命令运行时添加了正确的选项(-p 30000:50000),但出于某种原因,我仍然得到了试图使用50000以上端口的连接。我认为问题是这些是主动ftp会话,但是如果端口范围只在被动模式下工作,那么指定端口范围又有什么意义呢?我还需要打开防火墙中的所有端口..。
是否有方法为所有连接(而不仅仅是被动连接)指定端口范围?
发布于 2012-10-08 19:26:41
在活动模式下,服务器启动到客户端定义的ip地址的连接,因此服务器无法影响所使用的端口号。在这种情况下,您不需要打开21以外的其他传入端口,因为服务器向客户端发起数据连接。
在被动模式下,客户端打开到服务器定义端口的连接,这就是被动端口范围发挥作用的地方。服务器在范围内选择一个空闲端口,并将其交给客户端。当然,这意味着整个端口范围需要在服务器防火墙中打开,这具有安全含义。
Linux有一个简洁的特性,可以减轻打开一个大端口范围进行被动FTP - iptables连接跟踪的影响。为了利用它,您需要确保加载了ip_conntrack_ftp模块,然后您可以允许类似于此# iptables -A your_chain -i your_iface -m state --state RELATED -m helper --helper ftp -j ACCEPT的通信量(如果需要,可以包括您的端口范围)。这将告诉iptables接受连接跟踪FTP助手管理的相关连接。因此,如果任何其他服务将侦听被动端口范围内的套接字,则iptables将拒绝对端口的访问,因为它无法识别与FTP相关的端口。
发布于 2012-10-08 18:57:20
在被动模式下,服务器告诉客户端在随机端口上连接。您已经将服务器配置为使用特定的范围,因此它应该只使用这些。需要通过防火墙打开此范围,以允许连接进入。(除非防火墙足够聪明,可以查看FTP数据包并添加动态规则)。
在活动模式下,客户端要求服务器在随机端口上连接到它。因为客户端选择了这个,所以您无法控制它。然而,要使活动工作,您只需要添加一个保持状态规则,以允许这些连接从您的服务器。您不需要完全打开所有端口。
https://serverfault.com/questions/436082
复制相似问题