回答:
vsftpdのパッシブモードを構成するには、vsftpd.confでいくつかのパラメーターを設定する必要があります。
pasv_enable=Yes
pasv_max_port=10100
pasv_min_port=10090
これにより、パッシブモードが有効になり、データ接続に11個のポートを使用するように制限されます。これは、ファイアウォールでこれらのポートを開く必要があるため便利です。
iptables -I INPUT -p tcp --destination-port 10090:10100 -j ACCEPT
これをすべてテストした後、ファイアウォールの状態を保存してください
service iptables save
/etc/sysconfig/iptables
ファイルが更新されます。
これを行うには、CentOS 7で、iptablesではなく、新しいfirewalldを使用する必要があります。
ゾーンを見つけます:
# firewall-cmd --get-active-zones
public
interfaces: eth0
私のゾーンは「パブリック」なので、ゾーンをパブリックに設定し、ポート範囲を追加してから、リロードします。
# firewall-cmd --permanent --zone=public --add-port=10090-10100/tcp
# firewall-cmd --reload
接続するとどうなりますか
クライアントは、ポート21でvsftpdサーバーに接続します。
サーバーはクライアントに応答し、上記で指定した範囲から接続するポートを通知します。
クライアントは指定されたポートでデータ接続を確立し、セッションは継続します。
さまざまなftp モードの優れた説明がここにあります。
pasv_address
。
パッシブモードを有効にするには、vsftp.confで次の構成オプションを設定します。
pasv_enable=YES
pasv_min_port=41361
pasv_max_port=65534
pasv_address=xxx.xxx.xxx.xxx
もちろん、開始ポートと終了ポートを変更できます。xxxをサーバーのパブリックIPに置き換える必要があります。
さらに、ファイアウォールでパッシブモードのポート範囲を開く必要があります。CentOSでは、ip_conntrack_ftp
モジュールをロードして、ファイアウォールでftp接続を処理できます。/etc/sysconfig/iptables-config
ip_conntrack_ftpを編集してIPTABLES_MODULESオプションに追加します。その後、iptablesを再起動します。
/sbin/service iptables restart
pasv_address
他のすべてが設定されていて、それでも動作しない場合に、トリックを行うのは何ですか。
pasv_address
場合は、追加する必要がありますpasv_addr_resolve=YES
(デフォルトはNO
)
の横にpasv_enable=YES
、VSFTPがPASVモードを実行するポート範囲を指定します。
pasv_min_port=50000
pasv_max_port=50999
port_enable=YES
iptablesがこれらのポートでパケット送信を許可するように設定することを忘れないでください:
iptables -I INPUT -p tcp --dport 50000:50999 -j ACCEPT
iptables -A INPUT ...
無視される
pasv_address
vsftpd.confファイルに必ず含めてください。
max
後にポートを配置する理由を疑問に思いmin
ますが、より重要なことは、ポート10090から10100を開くと、あなたが言うように10ではなく11のポートになります。