web-dev-qa-db-ja.com

リモートFTPサーバーのパッシブポート範囲を学習する方法

私の権限ではない「パッシブ」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を再起動します。

2
aesnak

パッシブポートの範囲は、FTPサーバーによって公表されていません。

サーバーとの間の多くのファイルの並列転送を自動化し、これらの転送に使用されるポートから範囲を推測するだけです。

2
Martin Prikryl

以前の回答でこれを見つけました

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ルールの関連ルールを使用して、パッシブ接続を開いたままにします。

2
user3590719