FTP - トラブルシューティング
本書では、FTP over SSL の接続に関する一般的な問題のトラブルシューティング方法について説明します。
その他の情報やヒントについては、本書に加え、必要に応じて「システム設定 - ファイアウォール」および「システム設定 - SSL とSSH -SSL - クライアント証明書 - トラブルシューティング」を参照してください。
- 基本手順
- 一般的な問題
- トラブルシューティング方法
- 一般的な現象と解決策
- デバッグログの一般的なエラー
基本手順
通常、MOVEit Transfer FTP/SSL の問題は、次の 4 つの分野に原因があります。
- MOVEit Transfer FTPS サーバー設定
- MOVEit Transfer IPSec 設定
- ファイアウォールの設定
- クライアント設定
FTPS の問題を診断するには、まず MOVEit Transfer サーバー自体にインストールされているクライアント (すなわち MOVEit Freely) を使用して、問題を再現してみることをお勧めします。こうすると、「IPSec」ポリシーと「ネットワーク」の両方を検討対象から除外することができます。クライアントをローカルに使用したときに問題が現れない場合は、次に同じセグメントでクライアントを試してみます (IPSec は検討するがファイアウォールは除外する)。最後に、「外部」セグメントでクライアントを試してみます (IPSec とファイアウォールも検討する)。
注意: 無人操作での誤用を避けるため、トラブルシューティングが終了したら MOVEit Transfer ホストで使用したクライアントをアンインストールしてください。
一般的な問題
通常、一般的な問題には次のいずれかの状態が関与しています。
- 「FTP 対応」ファイアウォール (チェックポイントなど) が FTPS 明示的モードハンドシェイクで干渉している。
- 既存のサーバーから証明書を不適切にエクスポート/インポートした。
- 暗黙的モードの FTPS またはデータポートのファイアウォールルールが不足している。
- 暗黙的モードの FTPS またはデータポートの IPSec ルールが不足している。
- クライアントが、アクティブモードを使用するように設定されている。または間違ったポートで暗黙的モードを使用するように設定されている。
- 暗黙的モードを有効にしないままサーバーを実行している。
- サーバーが NAT マスクの設定されていない NAT デバイスで実行されている。
ここでは、このような問題の診断と修正について説明します。
トラブルシューティング方法
必ず、MOVEit Transfer と同じマシンに一時的にインストールした MOVEit Freely を使用して、トラブルシューティングルーチンを開始します。こうすると、ファイアウォール、ルーター、その他のネットワークデバイスが問題の原因である可能性を考えずに済み、トラブルシューティング作業が単純化されます。
このセクションを通じて、「ローカルクライアント」と「リモートクライアント」という表現は、それぞれ「MOVEit Transfer サーバーにインストールされている FTPS クライアント」と「別のデスクトップにインストールされている FTPS クライアント」を意味します。
また、変更を有効にするために行う操作はデバイスごとに異なる場合があることを忘れないでください。例を次に示します。
- MOVEit Transfer Config ユーティリティで変更を行った後は、MOVEit Transfer FTP サービスを開始および停止する必要があります。
- 変更した IPSec ポリシーは「割り当てを解除」してから「割り当て」を行う必要があります。
- ファイアウォールの変更後にファイアウォールを更新する必要がある場合があります。
- クライアントの変更後に接続を閉じてから再度開く必要がある場合があります。
一般的な現象と解決策
明示的モードで localhost に接続すると、ローカルクライアントがタイムアウトする。
- MOVEit Transfer FTP サーバーが正しく実行されていることを確認します。
- [サービス] コントロールパネルを開き、MOVEit Transfer FTP が「開始」であることを確認します。
- MOVEit Transfer Config アプリケーションを開き、[Explicit Port (明示的ポート)] が「21」に設定されていることを確認します。
- コマンドラインから「netstat -a -n」を実行し、「Local Address=0.0.0.0:21」が「LISTENING」状態であることを確認します。
暗黙的モードで localhost に接続すると、ローカルクライアントがタイムアウトする。
- MOVEit Transfer FTP サーバーが正しく実行されていることを確認します。
- [サービス] コントロールパネルを開き、MOVEit Transfer FTP が「開始」であることを確認します。
- MOVEit Transfer Config アプリケーションを開き、[Implicit Port (暗黙的ポート)] が「990」に設定されていることを確認します。
- コマンドラインから「netstat -a -n」を実行し、「Local Address=0.0.0.0:990」が「LISTENING」状態であることを確認します。
接続時に、ローカルクライアントに「Handshake Failed (ハンドシェイクに失敗しました)」というエラーが表示される。
- 次のクライアント設定を再度確認します。
- 明示的モードを使用しているときは、ポート 21 に接続する必要があります。
- 暗黙的モードを使用しているときは、ポート 990 に接続する必要があります。
- この証明書が既存の保護されたサーバーからエクスポートされたものである場合、次の手順に従います。
- FTP サーバーのログファイルを確認します。上部に「not loaded (読み込まれていません)」というメッセージがある場合、秘密キーなしでインポートされた証明書を使用している可能性があります。
- 「サーバー証明書をエクスポート/インポートする手順」を本書の説明に従って実行します。
- 既存の証明書を置き換えた場合や、複数の証明書をインストールした場合は、次の手順に従います。
- FTP サーバーのログファイルを確認します。上部に「expired (有効期限切れ)」というメッセージがある場合、FTP の間違った証明書を使用している可能性があります (最新/最も適切な証明書を選択します)。
- MOVEit Transfer Config アプリケーションを開き、証明書を選択し直します。([FTP Certs (FTP 証明書)] タブ)。
- MOVEit Transfer FTP サービスを開始/停止します。
接続後、ローカルクライアントに「530 Error Accessing 'http://myhost/machine.aspx' ('http://myhost/machine.aspx' へのアクセス中に 530 エラーが発生しました)」またはその他の不明な認証エラーが表示される。
- MOVEit Transfer Config アプリケーションを開き、次の値が以下のように設定されていることを確認します。
- Machine URL: http://localhost/machine.aspx
- Machine2 URL: http://localhost/machine.aspx
- MOVEit Transfer FTP サービスを開始/停止します。
- これらの値が機能しない場合は、次の値を試してみます。
- Machine URL: https://(full hostname)/machine.aspx
- Machine2 URL: https://(full hostname)/machine2.aspx
- MOVEit Transfer FTP サービスを開始/停止します。
- ヒント:MOVEit Transfer Check ユーティリティで行う作業はすべてのユーザーに同等に影響するため、通常はこのユーティリティを使用してこのような問題を検出/修正できます。
明示的モードで MOVEitDMZ に接続すると、リモートクライアントがタイムアウトする。
- 最初に、ローカルクライアントを使用して同じ「タイムアウト」の問題が発生するかどうかを確認します。
- TCP ポート 21 がファイアウォールで「AnyIP、AnyPort」から「MyIP」へオープンであることを確認します。
- TCP ポート 21 がファイアウォールで「AnyIP、AnyPort」から「MOVEitDMZ」へオープンであることを確認します。
暗黙的モードで MOVEitDMZ に接続すると、リモートクライアントがタイムアウトする。
- 最初に、ローカルクライアントを使用して同じ「タイムアウト」の問題が発生するかどうかを確認します。
- TCP ポート 990 がファイアウォールで「AnyIP、AnyPort」から「MyIP」へオープンであることを確認します。
- TCP ポート 990 がファイアウォールで「AnyIP、AnyPort」から「MOVEitDMZ」へオープンであることを確認します。
明示的モードでの接続時に、リモートクライアントに「Handshake Failed (ハンドシェイクに失敗しました)」というエラーが表示される。
- 最初に、ローカルクライアントを使用して同じ「Handshake Failed (ハンドシェイクに失敗しました)」という問題が発生するかどうかを確認します。
- ローカルクライアントを使用したときはこの問題が発生せず、リモートクライアントを使用すると発生する場合は、リモートクライアントと MOVEit Transfer の間に「FTP 対応」ファイアウォールがある可能性があります。「FTP 対応」ファイアウォールは保護されていない FTP では正常に機能しますが、明示的モードのセキュア FTP の SSL 「ブートストラップ」プロセスでは一般にうまく機能しません。
- 明示的モードではなく暗黙的モードを使用してください。
暗黙的モードでの接続時に、リモートクライアントに「Handshake Failed (ハンドシェイクに失敗しました)」というエラーが表示される。
- 最初に、ローカルクライアントを使用して同じ「Handshake Failed (ハンドシェイクに失敗しました)」という問題が発生するかどうかを確認します。
- クライアント設定を再度確認します。ポート 21 ではなくポート 990 にアクセスする必要があります。
ローカルクライアントから使用すると有効なユーザー名/パスワードが、リモートクライアントでは機能しない。
- MOVEit Transfer Web インターフェイスを開き (管理者としてサインオン)、次の手順に従います。
- ユーザーのリモートアクセス設定を再度確認します (カスタム設定またはデフォルト設定を使用して、所定の IP アドレスからのアクセスを許可または拒否することができます)。
- 組織の [Locked Out IP Address (ロックアウトされている IP アドレス)] 設定を再度確認します (この IP アドレスがロックアウトされていて、リセットする必要がある場合があります)。
リモートクライアントで「Passive Mode Required (パッシブモードが必要)」というエラーが発生する。
- FTPS クライアント設定で、「パッシブ」モードまたは「ファイアウォールフレンドリ」モードを有効にします。
リモートクライアントで「Bad Certificate (証明書が正しくありません)」というエラーが発生する。
- FTPS クライアントが IP アドレスではなく、MOVEit Transfer サーバーの「通常の」ホスト名 (すなわち moveit.stdnet.com) を使用するように設定します。
- サーバー証明書を「運用」証明書にアップグレードします。または...
- ...クライアント PC にこの証明書 (および場合によってはその親 CA) をインストールします。
リモートクライアントで「Non-Trusted Certificate (信頼されていない証明書)」というエラーが発生する。
- IP アドレスではなくホスト名で MOVEit Transfer サーバーに接続するように、FTPS クライアントを設定します。
Windows 95 または 98 で実行中に、リモートクライアントで「Cannot Create Security Credentials (セキュリティ証明書を作成できません)」というエラーが発生する。
- 古いバージョンの Windows 95 および 98 では、FTPS クライアントを実行するために必要な SSL/TLS がサポートされていない場合があります。Microsoft では、必要なアップグレードを含む dsclient.exe というプログラムを Windows 2000 に同梱しています リモートクライアントデスクトップにこのパッケージをインストールし、再起動する必要があります。
正常にサインオンした後、リモートクライアントがファイルを送信できない。および/またはフォルダーのコンテンツをリストできない。
- ディスカッション: ファイル送信とディレクトリのリスト操作では、FTPS データ接続を使用します。ファイル送信とディレクトリのリスト操作に関する問題の原因は、これらのデータ接続など、接続の問題であることがほとんどです。
- クライアントログをチェックして、サーバーが「Passive Mode Required (パッシブモードが必要)」というメッセージを返していることを確認し、必要に応じて適切な操作を行います。
- MOVEit Transfer FTP の設定を再度確認します。
- [Require Passive Mode (パッシブモードが必要)] を有効にする
- パッシブポートを 3000 ~ 3003 に制限する
- IPSec ポリシー (FTP ルールフィルター) を再度確認します。
- TCP で「AnyIP、AnyPort」から「MyIP、ポート 3000 ~ 3003」への接続を許可
- ファイアウォールルールを再度確認します。
- TCP で「AnyIP、AnyPort」から「MOVEitDMZ、ポート 3000 ~ 3003」への接続を許可
- クライアント設定を再度確認します。
- パッシブ送信モード (別名「ファイアウォールフレンドリ」) を有効にする
- クライアントログを確認し、「227 Entering Passive Mode (208,212,86,143,11,186) (227 パッシブモード (208,212,86,143,11,186) に移行しています)」というメッセージの内容を調べます。
- メッセージ本文の先頭の 4 つの数字は、リモートクライアントのデータチャネルの接続先の IP アドレスです (「208,212,86,143,...」は、「208.212.86.143」に接続しようとしていることを意味します)。
- この IP アドレスがクライアントの通常の接続先の IP アドレスと異なる場合 (すなわち 10.1.1.2)、NAT の問題が発生する可能性があります。MOVEit Transfer Config アプリケーションで NAT マスクを設定する方法については、このマニュアルの「FTP サーバー - 設定」を参照してください。(NAT マスクを使用すると、FTP サーバーは NAT 境界の内側と外側にあるマシンに正しい「227」IP アドレスを送信できます)。
- メッセージ本文の末尾の 2 つの数字は、リモートクライアントのデータチャネルの接続先の TCP ポートです (すなわち「...11,186」)。これらの数字を意味のあるポート番号に変換するには、最初の数字に 256 を乗算し、2 番目の数字を加えます (すなわち(11 x 256) + 186 = ポート 3002)。
- このポート番号が MOVEit Transfer FTP で設定したパッシブポートの範囲内である必要があります。そうでない場合は、MOVEit Transfer Config アプリケーションでこの範囲の横の [Restrict (制限)] ボックスがオンになっていることを再度確認します。
注: 一部のリモートクライアント、特にコマンドラインリモートクライアントでは、エンドユーザーは独自のホームフォルダーに正しく配置されますが、それ以外のリモートクライアント、特に GUI リモートクライアントでは、エンドユーザーが「ルート」フォルダーに格納されます。
- ディスカッション: 通常、MOVEit Transfer FTP はエンドユーザーが接続するとエンドユーザーをホームディレクトリに配置します。この設定を優先するかどうかはクライアントによって異なり、多くの Windows クライアントでは FTP サーバーがクライアントに起動を指示した場所にかかわらず、接続時にルート (\) に自動的に「cd」 (ディレクトリを変更) します。
- ホームディレクトリを優先するように GUI クライアントを設定します。または...
- MOVEit Transfer のユーザーレベルの「CHROOT」設定を使用して、ユーザーをホームまたはデフォルトフォルダーに固定します。
デバッグログの一般的なエラー
通常、MOVEit Transfer FTP デバッグログの次のエラーは、特定の設定の問題を示しています。
- 「530 Rejected--secure connection required (530 拒否されました - 安全な接続が必要です)」は、SSL が必要な場合に FTP クライアントが SSL を使用しないで接続しようとしたことを示しています。
- 「Connection security error:Failed to receive secure data. - SSL negotiation failed:Security handshake failed. - A client certificate is required. (接続セキュリティエラー: 安全なデータを受信できませんでした。- SSL ネゴシエーションに失敗しました: セキュリティのハンドシェイクに失敗しました。- クライアント証明書が必要です。)」は、FTP サーバーがクライアント証明書を要求するように設定されているときに、FTP/SSL クライアントがクライアント証明書なしで接続しようとしたことを示しています。
- 「Connection security error:Error 0x800b0109 (CERT_E_UNTRUSTEDROOT) returned by CertVerifyCertificateChainPolicy! - Connection security error:Error authenticating security credentials - SSL negotiation failed:Failed to verify the certificate trust. (接続セキュリティエラー: エラー 0x800b0109 (CERT_E_UNTRUSTEDROOT) が CertVerifyCertificateChainPolicy によって返されました! - 接続セキュリティエラー: セキュリティ証明書の認証中にエラーが発生しました - SSL ネゴシエーションに失敗しました: 証明書の信頼性を検証できませんでした)」は、FTP/SSL クライアントがクライアント証明書を提供したが、そのクライアント証明書が Microsoft の信頼されたルート証明書ストアの CA に連鎖していなかったことを示しています。
追加サポート
さらにサポートが必要な場合は、弊社サポートサイト (https://community.ipswitch.com) のナレッジベースを参照してください。