vsftpdが手動ポート範囲を考慮していないのはなぜですか?

vsftpdが手動ポート範囲を考慮していないのはなぜですか?

vsftpdをパッシブモードに設定しました

listen=YES
log_ftp_protocol=YES
pasv_enable=YES
pasv_address=192.168.0.2
pasv_min_port=10090
pasv_max_port=10100

動作しますが、ランダムなポートを使用します!

転送中のssの出力を見る

tcp   ESTAB     0      0                            192.168.0.2:33150     192.168.0.2:21    users:(("ncftp",pid=14411,fd=4)) timer:(keepalive,119min,0) uid:1000 ino:236010 sk:400b cgroup:unreachable:1 <->    
tcp   ESTAB     0      0                            192.168.0.2:44985     192.168.0.2:20    users:(("ncftp",pid=14411,fd=7)) timer:(keepalive,119min,0) uid:1000 ino:246607 sk:4011 cgroup:unreachable:1 <->  

それは問題ではありません。ファイアウォールがない場合、ファイアウォールとNATがポートをリダイレクトするのは深刻な問題です。 vsftpdがランダムポートを使用するのはなぜですか?

頑張りました

listen_ipv6=NO

pasv_address オプションを無効にします。しかし何もない

実際には全体構成です

anonymous_enable=YES
connect_from_port_20=NO
dirmessage_enable=YES
ftpd_banner=Welcome
listen=YES
listen_ipv6=NO
local_umask=022
log_ftp_protocol=YES
ls_recurse_enable=YES
pasv_address=192.168.0.2
pasv_enable=YES
pasv_max_port=10100
pasv_min_port=10090
seccomp_sandbox=NO
xferlog_enable=YES
xferlog_file=/var/log/vsftpd.log
xferlog_std_format=YES

Slackware 15とDebian 12で試してみました。

例は次のとおりです。

ncftpは動作しますが、パッシブポートの範囲を尊重しません。

ftpは機能しますが、パッシブポートの範囲を尊重しません。

ftp -p 192.168.0.2
Connected to 192.168.0.2 (192.168.0.2).
220 Welcome
Name (192.168.0.2:me): anonymous
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> cd pub
250 Directory successfully changed.
ftp> get 4.mkv
local: 4.mkv remote: 4.mkv
227 Entering Passive Mode (192,168,0,2,39,112).
150 Opening BINARY mode data connection for 4.mkv (12904291 bytes).
226 Transfer complete.
12904291 bytes received in 0,0272 secs (473899,78 Kbytes/sec)

答え1

実際にはしたあなたが言うこと。

クライアント行は次のとおりです。

227 Entering Passive Mode (192,168,0,2,39,112).

6つのシリーズを示しています。バイト (カンマに注意してください)。ポート番号は最後の2つです。

39*256+112=10096.

したがって、ポート範囲内のポート10096を使用してください。

答え2

見つかった回避策:vsftpdが正しく設定されました。問題は、ncftpとlftpクライアントが任意のポートを設定することです。

関連情報