3.4.2 Microsoft FTPサービスのセキュリティ設定

(1) FTPバウンズアタック

FTPバウンズアタックとは、許可されていないユーザが、 ターゲットのサーバにアクセス可能な別のマシンを経由して、 FTPサーバにアクセスすることを言います。
この攻撃は、サーバと、ターゲットのサーバにアクセス可能なマシンの、 セキュリティ設定の欠陥をついたものといえます。
もちろん、それ以外の攻撃にも対処しなければなりませんが、 FTPサーバを稼動させることは、サーバのセキュリティを考える上で、 決して好ましいとはいえません。
どうしても必要な場合は、 IPSecによる暗号化通信と組み合わせることをお勧めします。

セッションの制限

FTPサーバのセッション制限は、 管理ツールの「インターネット サービス マネージャ」行うことができます。
ここで、「既定のFTPサイト」のプロパティ画面を開いてください。

図3.4.2-1 FTPサイトのプロパティを開く
FTPサイトのプロパティ

この画面の「最大接続数」はデフォルト値になってい場合があります。
これが、必要以上の値の場合は、必要十分な値に設定してください。 また、接続のタイムアウトについても、より小さな値を設定することで、 ある程度のDos攻撃からはシステムを守ることができます。
なお、「現在のセッション」ボタンを押下すると、 FTPサーバにアクセスしているユーザ、接続元が表示され、 強制的に接続を切断することもできます。

(2) 匿名アクセスのアカウント変更

IISの設定では、デフォルトの状態では「匿名アクセス」を認めています。
この場合、パスワードを入力することなく、ユーザ名「anonymous」を使って、 誰でもFTPログオンすることができます。

anonymousでログオンした場合、サーバではあらかじめ設定された、 Windowsユーザアカウントを使用して、ファイルにアクセスします。 少々問題なのは、デフォルト状態では、 IISをインストールしたときに作成されたアカウントが割り当てられているため、 これを予想されやすいということです。
これが悪用されることを避けるために、匿名アクセスを許可する場合は、 新たにFTP匿名アクセス用のアカウントを作成し、割当を行うようにしてください。
以下は、アカウントを匿名アクセス用として割り当てる手順です。

  1. 匿名アクセス用のアカウントを作成します。
  2. 作成したアカウントに、FTP公開用のフォルダのアクセス権を設定します。
    このとき設定するアクセス許可は、任意の設定を行いますが、 無差別にアクセスされることを考え、 「読み取り」のみを許可することをおすすめします。
    「書き込み」や「変更」などを許可すると、 その設定が匿名ログオンしたときにも反映されるため、大変危険です。
  3. 「インターネット サービス マネージャ」を開き、 「既定の FTP サイト」のプロパティを開きます。
  4. 「セキュリティ アカウント」タグをクリックします。
  5. 匿名アクセスを許可するの欄のユーザ名に、 先ほど作成した匿名アクセス用のアカウントのユーザ名とパスワードを指定します。
  6. 「IISによるパスワードの管理を許可する」にチェックをつけます。
  7. OKボタンを押下して、プロパティ画面を終了します。

以上で、anonymousによる匿名アクセスに、 新しく作ったアカウントが割り当てられました。

(3) 匿名接続の有効性

匿名アクセスでは、「anonymous」というユーザ名で誰でもログオンできるため、 非常に危険に思えます。
では、仮に匿名アクセスを許可しない場合はどのような問題が考えられるでしょうか。

匿名アクセス続を許可しない場合、FTPにログオンするときは、 Windows ユーザー アカウントを使用します。
しかしこの場合、ユーザ名とパスワードが暗号化されることなく送信されるため、 これを盗聴される恐れがあり、非常に危険です。
このため、「インターネット サービス マネージャ」において、FTPサイトの匿名接続の設定には、「匿名接続のみを許可する」という設定を使用できるようになっています。

匿名アクセスを許可しない場合、 あるいはWindowsユーザアカウントをFTPログオンに使用する場合は、 別の対策と組み合わせることが必要です。

(4) 特定のIPアドレスからのみアクセスを許可する

匿名アクセスであっても、 特定のIPアドレスからのみの接続を許可する方法によって、 ユーザの制限を行うことができます。

ただし、FTPサイトの「セキュリティ アカウント」設定において、 「匿名接続のみを許可する」にチェックをつけていないと、 Windowsユーザアカウントでログオンすることもできるため、 依然としてユーザ情報傍受の危険性があります。

以上をふまえ、 特定のIPアドレスからのみのログオンを許可する設定手順を説明します。

  1. インターネット サービス マネージャにおいて、 FTPサイトのプロパティ画面を開き、「ディレクトリ セキュリティ」 タブをクリックします。
  2. 「既定では、すべてのコンピュータからのアクセスを」の項目において、 「拒否する」を選択します。
  3. 「ただし次のものは除きます」から、追加ボタンを押下します。
  4. 「アクセス拒否」ダイアログが表示され、許可するIPアドレスを指定し、 OKを押下します。ここでは、IPアドレスとサブネットマスクを組み合わせて、 グループ化されたコンピュータのを指定することもできます。
  5. 最後に、プロパティ画面を閉じ、設定を終了します。

手順2において、「拒否する」の選択を忘れないようにしてください。
「許可する」を選んだ場合、指定した特定IPアドレスのマシンのログオンを、 受付けなくなってしまいます

(5) 暗号化を用いた接続

前述のように、特定のユーザだけにアクセスを許可するためには、 ユーザ名とパスワードを入力する必要があります
しかし、これらを暗号化せずに通信することは大変危険です。
今回は、この問題を解決するために、IPSecによる暗号化を行います。

  1. 以下の設定の、2つのIPセキュリティフィルタを作成します。
    タグ名 項目 設定内容 備考
    フィルタ操作の管理 発信元アドレス 任意のIPアドレス
    宛先アドレス 特定のIPアドレス 表示されたアドレス入力欄に、インターネット側のIPアドレスを入力します。
    ミラー化 チェック有 表示されたアドレス入力欄に、インターネット側のIPアドレスを入力します。
    プロトコル プロトコルの種類の選択 TCP
    IPプロトコル ポートの設定 「任意の発信ポート」
    を選択

    IPプロトコル ポートの設定 「次の宛先ポート」
    を選択
    エディットコントロールに 21 と入力
    説明 説明 任意に設定 フィルタについて任意の説明を入力します。

    タグ名 項目 設定内容 備考
    フィルタ操作の管理 発信元アドレス 任意のIPアドレス
    宛先アドレス 特定のIPアドレス 表示されたアドレス入力欄に、インターネット側のIPアドレスを入力します。
    ミラー化 チェック有 表示されたアドレス入力欄に、インターネット側のIPアドレスを入力します。
    プロトコル プロトコルの種類の選択 TCP
    IPプロトコル ポートの設定 「任意の発信ポート」
    を選択

    IPプロトコル ポートの設定 「次の宛先ポート」
    を選択
    エディットコントロールに 20 と入力
    説明 説明 任意に設定 フィルタについて任意の説明を入力します。

  2. すでに割り当てを行っているActive Directory IPセキュリティ ポリシーがあれば、 作成したフィルタをポリシーに追加します。
    ポリシーが存在しない場合は新規作成を行い、割り当てを行います。 (これらの設定方法の詳細は、VPN にて説明しています。)
  3. パケットフィルタの「入力フィルタ」として、 次の接続を許可する設定を行います。
    他のフィルタ設定がすでにある場合は、追加する形で行います。 この設定によって、別ポートでFTP接続が行われた場合、 IPSecによる通信が行われなくなる問題を回避します。
    これらの設定方法の詳細は、リモートセキュリティ設定にて説明しています。)
    対象 発信元ネットワーク 宛先ネットワーク プロトコル
    チェックの有無 IPアドレス サブネットマスク チェックの有無 IPアドレス サブネットマスク
    FTP - - インターネット側
    IPアドレス
    255.255.255.255 TCP 発信元ポート 0
    宛先ポート 20
    FTP - - インターネット側
    IPアドレス
    255.255.255.255 TCP 発信元ポート 0
    宛先ポート 21

    ※「下の条件に一致するパケットを除いたすべてのパケットを破棄する」の選択を忘れないようにしてください。
  4. 同様に、パケットフィルタの「出力フィルタ」として、 次の接続を許可する設定を行います。他のフィルタ設定がすでにある場合は、 追加する形で行います。
    対象 発信元ネットワーク 宛先ネットワーク プロトコル
    チェックの有無 IPアドレス サブネットマスク チェックの有無 IPアドレス サブネットマスク
    FTP インターネット側
    IPアドレス
    255.255.255.255 有り - - TCP 発信元ポート 20
    宛先ポート 0
    FTP インターネット側
    IPアドレス
    255.255.255.255 - - TCP 発信元ポート 21
    宛先ポート 0
    ※「下の条件に一致するパケットを除いたすべてのパケットを破棄する」の選択を忘れないようにしてください。

以上で、暗号化を用いたFTP接続が可能になります。

(6) FTP公開用のフォルダを変更する

既定のディレクトリを、そのまま使用するのではなく、 別ドライブにフォルダを作成し、それを公開用として割り当てます。
これは、システムディレクトリから切り離すことにより、 攻撃によるダメージを少しでも軽減することを目的とします。
以下の例では、D:ドライブにFTP公開用フォルダ「FTPFolder」を作成し、 「インターネット サービス マネージャ」にて、 このフォルダをFTPサーバのルートディレクトリとして割り当てます。

  1. エクスプローラなどで、「D:\」ドライブに「FtpFolder」という名前の、 フォルダを作成します。
  2. 作成された「FtpFoler」で、アクセス権の設定を行います。
    なお、 「継承可能なアクセス許可を親からこのオブジェクトに継承できるようにする」 のチェックを、外すことを忘れずに行ってください。
    ここで設定したセキュリティが、FTPでログオンしたときのアクセス権となります。
  3. 「インターネット サービス マネージャ」を開き、 「既定の FTP サイト」をマウスの右ボタンで選択します。
  4. 表示されたコンテキストメニューから、「プロパティ」を選択します。
  5. 表示された「既定のFTPサイトのプロパティ」から、「ホームディレクトリ」 タブをクリックします。
  6. 「FTP サイトのディレクトリ」欄のローカルパスとして、「D:\FtpFolder」 を指定します。
  7. OKボタンを押下して、プロパティ画面を閉じます。

    Copyright(C)  2001 Information-technology Promotion Agency, Japan.  All rights reserved.