[〜#〜] update [〜#〜]-解決方法の概要:ルーターで誤って入力されたポートを修正した後、エラー「450 TLSセッションのデータ接続が再開されませんでしたまたはセッションが制御接続と一致しません "-これにより、サーバー設定の「PROT Pを使用する場合はデータ接続でTLSセッションの再開を要求する」のチェックが外れ、問題が修正されました。この「機能」を無効にすることがセキュリティにとって何を意味するのかわかりません。 ------
元の投稿-私の目標は、FirezillaサーバーでTLSを介した明示的なFTPを動作させることです。同じ範囲のポートを許可するようにFirezillaとWindowsファイアウォールを設定しました。
Firewall Ports: 21, 50000-51000
Firezilla Server: Passive Ports: 50000-51000
私のルーターもTCP=で正しいLAN IPに転送されるこの範囲のポートを持っています。
私のサーバーはNATの後ろにあり、Firezillaサーバーのパッシブ設定タブにもリストされている静的IPを持っています。私が成功した唯一の方法は、クライアントが同じNATの側面で、プレーンFTPをまっすぐにして、アクティブモードでのみ使用します。
私はftptest.netでテストしましたが、これはログです
TLSを介した明示的なFTP
Status: Resolving address of xxx.x.xxx.xxx
Status: Connecting to xxx.x.xxx.xxx
Warning: The entered address does not resolve to an IPv6 address.
Status: Connected, waiting for welcome message...
Reply: 220-FileZilla Server 0.9.60 beta
Reply: 220 Welcome
Command: CLNT https://ftptest.net on behalf of xxx.x.xxx.xxx
Reply: 200 Don't care
Command: AUTH TLS
Reply: 234 Using authentication type TLS
Status: Performing TLS handshake...
Status: TLS handshake successful, verifying certificate...
Status: Received 1 certificates from server.
Status: cert[0]: subject='CN=xxx.x.xxx.xxx,C=US,ST=My state,L=My city' issuer='CN=xxx.x.xxx.xxx,C=US,ST=My state,L=My city'
Command: USER username
Reply: 331 Password required for username
Command: PASS *************
Reply: 230 Logged on
Command: SYST
Reply: 215 UNIX emulated by FileZilla
Command: FEAT
Reply: 211-Features:
Reply: MDTM
Reply: REST STREAM
Reply: SIZE
Reply: MLST type*;size*;modify*;
Reply: MLSD
Reply: AUTH SSL
Reply: AUTH TLS
Reply: PROT
Reply: PBSZ
Reply: UTF8
Reply: CLNT
Reply: MFMT
Reply: EPSV
Reply: EPRT
Reply: 211 End
Command: PBSZ 0
Reply: 200 PBSZ=0
Command: PROT P
Reply: 200 Protection level set to P
Command: PWD
Reply: 257 "/" is current directory.
Status: Current path is /
Command: TYPE I
Reply: 200 Type set to I
Command: PASV
Reply: 227 Entering Passive Mode (xxx,x,xxx,xxx,196,44)
Command: MLSD
Reply: 425 Can't open data connection for transfer of "/"
Error: Listing failed
プレーンFTPへのフォールバックを許可する
Warning: Allowing fallback to plaintext FTP is insecure. You should use explicit FTP over TLS.
Status: Resolving address of xxx.x.xxx.xxx
Status: Connecting to xxx.x.xxx.xxx
Warning: The entered address does not resolve to an IPv6 address.
Status: Connected, waiting for welcome message...
Reply: 220-FileZilla Server 0.9.60 beta
Reply: 220 Welcome
Command: CLNT https://ftptest.net on behalf of xxx.x.xxx.xxx
Reply: 200 Don't care
Command: AUTH TLS
Reply: 234 Using authentication type TLS
Status: Performing TLS handshake...
Status: TLS handshake successful, verifying certificate...
Status: Received 1 certificates from server.
Status: cert[0]: subject='CN=xxx.x.xxx.xxx,C=US,ST=My state,L=My city' issuer='CN=xxx.x.xxx.xxx,C=US,ST=My state,L=My city'
Command: USER username
Reply: 331 Password required for username
Command: PASS *************
Reply: 230 Logged on
Command: SYST
Reply: 215 UNIX emulated by FileZilla
Command: FEAT
Reply: 211-Features:
Reply: MDTM
Reply: REST STREAM
Reply: SIZE
Reply: MLST type*;size*;modify*;
Reply: MLSD
Reply: AUTH SSL
Reply: AUTH TLS
Reply: PROT
Reply: PBSZ
Reply: UTF8
Reply: CLNT
Reply: MFMT
Reply: EPSV
Reply: EPRT
Reply: 211 End
Command: PBSZ 0
Reply: 200 PBSZ=0
Command: PROT P
Reply: 200 Protection level set to P
Command: PWD
Reply: 257 "/" is current directory.
Status: Current path is /
Command: TYPE I
Reply: 200 Type set to I
Command: PASV
Reply: 227 Entering Passive Mode (xxx,x,xxx,xxx,196,107)
Command: MLSD
Reply: 425 Can't open data connection for transfer of "/"
Error: Listing failed
私はこれを乗り越えるのを手伝っていただければ幸いです。前もって感謝します。
ファイアウォールとNATアプライアンスの両方でのFTP over TLSの問題は2つあります。
FTPは、2つの接続を必要とする不安定なプロトコルです。
PASV
コントロールワードを使用してパッシブFTP接続を要求した後、FTPサーバーは「ランダムに利用可能な一時的な」デフォルト以外のポートを選択し、そのポートをPORT
応答で通知します。PORT h1,h2,h3,h4,p1,p2
ここで、h1.h2.h3.h4
はサーバーのIPv4 IPアドレスであり、TCPポート番号は(p1*256) + p2
です。つまり、xxx,x,xxx,xxx,196,107
はポート(196 * 256)+ 107 = 50283を表しますFTP over TLSでは、クライアントとFTPサーバー間の接続は暗号化されます。その結果、ファイアウォールで保護され、NATデバイスの背後にあるサーバーで問題が発生します。
ファイアウォールの問題
通常、インテリジェントファイアウォールでは、FTPを許可する場合、制御接続TCP 21のポートを開く必要があります。次に、クリアテキストFTPプロトコルで、ファイアウォールはポートをスキャンして検出できます。応答。 FTPヘルパーモジュールは、FTPサーバーによってその特定のクライアントに割り当てられるポート番号を自動的に開き、きめ細かいアクセス制御を可能にします。
接続がTLSで暗号化されている場合、ファイアウォールはPORT応答を検出できなくなり、割り当てられたポートを自動的に開きません。
解決策は次のとおりです。
NATの問題
FTPサーバーがネットワークアドレス変換を行うデバイスの背後にある場合、ポート21の制御接続上のポート転送トラフィックは、NATデバイスの(外部)ipアドレスからポートに転送されますFTPサーバー上の21。
さらに、同様のNAT FTPヘルパーモジュールが実行され、クリアテキストFTPプロトコルでは、PORT応答をスキャンして検出できます。PORT
応答を確認すると、通常は次の2つの変更が行われます。
PORT h1,h2,h3,h4,p1,p2
では、FTPサーバーのIPアドレスh1,h2,h3,h4
は、クライアントが接続されているNATサーバーの(外部)IPアドレスe1,e2,e3,e4
を表すe1.e2.e3.e4
に置き換えられます。p1,p2
で定義されたポートを転送するクライアントに対して作成されます。FTP接続がTLSで暗号化されている場合、NATデバイスはPORT応答を検出できないため、NATデバイスはIPアドレスを書き換えることも、必要なポート転送ルールを自動的に作成することもできません。
そのようなNAT問題の一般的な解決策は次のとおりです。
h1.h2.h3.h4
ではなく、PORT
応答でNATデバイスの外部IPアドレスe1.e2.e3.e4
を使用するようにします。50000 --> 50000
、50001 --> 50001
、50002 --> 50002
など。FTPサーバー上のホストベースのファイアウォールに加えて、追加のファイアウォールまたはセキュリティグループが含まれる可能性があることをお見逃しなく。たとえば、ポート転送ルールに加えて、NATデバイスでファイアウォールルールを作成する必要がある場合もあります。