Windows Server 2008 R2 のFTPサーバでファイアーウォールが有効の場合に通信できない
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やデータベースの記事なども担当。
- FTPサーバーのインストール
- FTPサイトの作成
- ファイアウォール設定