如何学习远程FTP服务器的被动端口范围

有什么方法可以学习不属于我的权限的“被动​​”FTP服务器的端口范围。 可以在configuration文件中设置范围。 例如在vsftpd.conf

 pasv_min_port=25000 pasv_max_port=25500 #pasv_min_port=0 #pasv_max_port=0 (any port) 

由于我想在Linuxterminal服务器上应用一个非常有限的OUTPUT防火墙(iptables),我需要知道远程服务器的端口范围。 FTP是否支持端口范围信息的暴露,客户可以使用?

我也打开任何其他可能的解决scheme,除了下面的一个,我假设服务器IP地址为10.1.1.1:

 -A OUTPUT -d 10.1.1.1 -j ACCEPT 

感谢您的关注…

问候

编辑

感谢@ aaron-copley , @ martin-prikryl , @ user3590719

回答主要问题,FTP不向客户端展示被动端口范围。

需要的解决scheme是加载用于FTP的netfilter连接跟踪模块。

ip_conntrack_ftp (Module alias for CentOS/Red Hat : nf_conntrack_ftp)

Red Hat 7的工作示例configuration:

的/ etc / SYSCONFIG / iptables的-configuration

 IPTABLES_MODULES="nf_conntrack_ftp" 

iptables规则

 -A OUTPUT -o lo -j ACCEPT -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT -A OUTPUT -d 10.1.1.1/32 -p tcp -m tcp --dport 21 -j ACCEPT -A OUTPUT -j DROP 

最后,手动加载模块或重启iptables.service。

被动端口范围不是由FTP服务器公布的。

你所能做的就是自动并行传输许多文件到/从服务器,并从用于这些传输的端口推导出范围。

我在之前的回答中find了这个

为FTP PASV模式连接设置Linux iptables

这个: https : //major.io/2007/07/01/active-ftp-connections-through-iptables/

和这个:

https://www.cyberciti.biz/tips/how-do-i-use-iptables-connection-tracking-feature.html

在他们中,你将要使用ip_conntrack_ftp和iptables规则中的相关规则来保持被动连接的打开。