有什么方法可以了解我没有权限的“被动”FTP服务器的端口范围。可以在配置文件中设置范围。例如在vsftpd.conf
:
pasv_min_port=25000
pasv_max_port=25500
#pasv_min_port=0
#pasv_max_port=0 (any port)
因为我想在我的 Linux 终端服务器上应用一个非常受限的 OUTPUT 防火墙(iptables),所以我需要知道远程服务器的端口范围。FTP 是否支持客户端可以使用的端口范围信息的公开?
我也愿意接受任何其他可能的解决方案,除了以下我假设服务器 IP 地址为 10.1.1.1 的解决方案:
-A OUTPUT -d 10.1.1.1 -j ACCEPT
感谢您的关注...
问候
编辑
感谢@aaron-copley,@martin-prikryl,@user3590719
回答主要问题,FTP 不会向客户端公开被动端口范围。
需要的解决方案是为 FTP 加载 netfilter 连接跟踪模块。
ip_conntrack_ftp (Module alias for CentOS/Red Hat : nf_conntrack_ftp)
Red Hat 7 的工作示例配置:
/etc/sysconfig/iptables-config
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。