Windows Server 2008 R2 のFTPサーバでファイアーウォールが有効の場合に通信できない - IIS

Windows Server 2008 R2でFTPサーバーをインストールし、ファイアーウォールの許可設定をしたにもかかわらず、FTPサーバーに通信できずログインできないことがあります。
ただし、Windowsファイアーウォールを無効にすると、通信できます。
これは、SSLなしでFTPサーバーと通信をする場合には標準で用意されたWindowsファイアーフォールの規則では不十分なためのようです。

Windowsファイアーフォールを有効にして、FTPサーバーと通信をする場合にはいずれかの対策をする必要があります。
  • すべてのプログラムについてポート21を許可する
  • svchost.exeのポート21を許可する (ただし設定時にWindowsファイアーウォールのワーニングが表示されます)

すべてのプログラムについてポート21を許可する場合

コントロールパネル、もしくは[スタートメニュー]の[管理ツール]にある[セキュリティが強化されたWindowsファイアーフォール]をクリックし、設定画面を開きます。


[受信の規則]ノードを選択し、右クリックのポップアップメニューを開き[新しい規則]を選択します。


新規の受信の規則ウィザードダイアログが表示されます。規則の種類は[ポート]を選択し、次へ進みます。


プロトコルは[TCP]を選択します。ポートは21にします。


条件に一致した場合の動作は[接続を許可する]にします。


適用範囲は[ドメイン][プライベート][パブリック]すべてにチェックをします。


表示名と説明を入力します。


新しい受信規則ができました。これでFTPサーバーと接続できるようになります。

svchost.exeを許可する場合

svchost.exeを許可することで接続できるようにする方法もあります。
コントロールパネルの[セキュリティが強化されたWindowsファイアーフォール]をクリックし、設定画面を開きます。


[受信の規則]ノードを選択し、右クリックのポップアップメニューを開き[新しい規則]を選択します。


作成するファイアーウォールの規則を[プログラム]にします。


[このプログラムのパス]ラジオボタンにチェックをし、パスを入力します。指定するパスは
%windir%\system32\svchost.exe
とします。


ワーニングが表示されます。[はい]ボタンをクリックします。


条件が一致した場合の動作は[接続を許可する]に設定します。


適用範囲は[ドメイン][プライベート][パブリック]すべてにチェックをします。


表示名と説明を入力します。


新しい受信規則ができました。これでFTPサーバーと接続できるようになります。


さらにポート番号でも制限を描ける場合は、作成した受信規則のプロパティを表示します。プロパティダイアログの[プロトコルおよびポート]タブを開きます。


作成時点では[プロトコルの種類]が[任意]になっていますので、これを[TCP]に変更します。さらに、ローカルポートを[特定のポート]にし、ポート番号を21にします。これで、svchost.exeのポート21以外のアクセスは受け付けません。


PassiveモードでFTPサーバーに接続する場合

サーバにPassiveモードで接続する場合は Passiveポートを開ける必要があります。設定方法はこちらを参照してください。

クライアントPCの設定に関する注意

FTPサーバとの通信がActiveモードの場合はクライアント側のファイアーウォールも設定する必要があります(サーバー側からのデータコネクションを受け付けるため)。
クライアントPCの[ファイル転送プログラム]の受信規則が有効になっていることを確認してください。



著者
iPentec.com の代表。ハードウェア、サーバー投資、管理などを担当。
Office 365やデータベースの記事なども担当。
最終更新日: 2024-05-03
作成日: 2010-01-24
iPentec all rights reserverd.