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

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

Windowsファイアーフォールを有効にして、FTPサーバーと通信をする場合にはいずれかの対策をする必要があります。

  • すべてのプログラムについてポート21を許可する
  • svchost.exeのポート21を許可する (ただし設定時にWindowsファイアーウォールのワーニングが表示されます)

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

コントロールパネル、もしくは[スタートメニュー]の[管理ツール]にある[セキュリティが強化されたWindowsファイアーフォール]をクリックし、設定画面を開きます。
Windows Server 2008 R2 のFTPサーバでファイアーウォールが有効の場合に通信できない:画像1

[受信の規則]ノードを選択し、右クリックのポップアップメニューを開き[新しい規則]を選択します。
Windows Server 2008 R2 のFTPサーバでファイアーウォールが有効の場合に通信できない:画像2

新規の受信の規則ウィザードダイアログが表示されます。規則の種類は[ポート]を選択し、次へ進みます。
Windows Server 2008 R2 のFTPサーバでファイアーウォールが有効の場合に通信できない:画像3

プロトコルは[TCP]を選択します。ポートは21にします。
Windows Server 2008 R2 のFTPサーバでファイアーウォールが有効の場合に通信できない:画像4

条件に一致した場合の動作は[接続を許可する]にします。
Windows Server 2008 R2 のFTPサーバでファイアーウォールが有効の場合に通信できない:画像5

適用範囲は[ドメイン][プライベート][パブリック]すべてにチェックをします。
Windows Server 2008 R2 のFTPサーバでファイアーウォールが有効の場合に通信できない:画像6

表示名と説明を入力します。
Windows Server 2008 R2 のFTPサーバでファイアーウォールが有効の場合に通信できない:画像7

新しい受信規則ができました。これでFTPサーバーと接続できるようになります。
Windows Server 2008 R2 のFTPサーバでファイアーウォールが有効の場合に通信できない:画像8

svchost.exeを許可する場合

svchost.exeを許可することで接続できるようにする方法もあります。

コントロールパネルの[セキュリティが強化されたWindowsファイアーフォール]をクリックし、設定画面を開きます。
Windows Server 2008 R2 のFTPサーバでファイアーウォールが有効の場合に通信できない:画像9

[受信の規則]ノードを選択し、右クリックのポップアップメニューを開き[新しい規則]を選択します。
Windows Server 2008 R2 のFTPサーバでファイアーウォールが有効の場合に通信できない:画像10

作成するファイアーウォールの規則を[プログラム]にします。
Windows Server 2008 R2 のFTPサーバでファイアーウォールが有効の場合に通信できない:画像11

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

%windir%\system32\svchost.exe
とします。
Windows Server 2008 R2 のFTPサーバでファイアーウォールが有効の場合に通信できない:画像12


ワーニングが表示されます。[はい]ボタンをクリックします。
Windows Server 2008 R2 のFTPサーバでファイアーウォールが有効の場合に通信できない:画像13

条件が一致した場合の動作は[接続を許可する]に設定します。
Windows Server 2008 R2 のFTPサーバでファイアーウォールが有効の場合に通信できない:画像14

適用範囲は[ドメイン][プライベート][パブリック]すべてにチェックをします。
Windows Server 2008 R2 のFTPサーバでファイアーウォールが有効の場合に通信できない:画像15


表示名と説明を入力します。
Windows Server 2008 R2 のFTPサーバでファイアーウォールが有効の場合に通信できない:画像16

新しい受信規則ができました。これでFTPサーバーと接続できるようになります。
Windows Server 2008 R2 のFTPサーバでファイアーウォールが有効の場合に通信できない:画像17

さらにポート番号でも制限を描ける場合は、作成した受信規則のプロパティを表示します。プロパティダイアログの[プロトコルおよびポート]タブを開きます。
Windows Server 2008 R2 のFTPサーバでファイアーウォールが有効の場合に通信できない:画像18

作成時点では[プロトコルの種類]が[任意]になっていますので、これを[TCP]に変更します。さらに、ローカルポートを[特定のポート]にし、ポート番号を21にします。これで、svchost.exeのポート21以外のアクセスは受け付けません。
Windows Server 2008 R2 のFTPサーバでファイアーウォールが有効の場合に通信できない:画像19

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

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

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

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

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

AuthorPortraitAlt
著者
iPentec.com の代表。ハードウェア、サーバー投資、管理などを担当。
Office 365やデータベースの記事なども担当。
作成日: 2010-01-24
Copyright © 1995–2025 iPentec all rights reserverd.