有什么方法可以学习不属于我的权限的“被动”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规则中的相关规则来保持被动连接的打开。