Iptables

如何了解遠端 FTP 伺服器的被動埠範圍

  • February 1, 2017

有什麼方法可以了解我沒有權限的“被動”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。

被動埠範圍不會由 FTP 伺服器公開宣布。

您所能做的就是自動將許多文件並行傳輸到伺服器或從伺服器傳輸,並從用於這些傳輸的埠中推斷出範圍。

我在以前的答案中找到了這個

為 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 規則中的相關規則來保持被動連接打開。

引用自:https://serverfault.com/questions/829690