Vistaの地平
第14回 進化したWindows Vistaのファイアウォール機能(前編)

3.受信フィルタの使い方

デジタルアドバンテージ 打越 浩幸
2008/04/02

概要

 セキュリティが強化されたWindowsファイアウォールでは、受信だけでなく、送信に対してもフィルタを設定できることが大きな特徴となっている。従来、受信は(デフォルトでは)すべてブロックしていたが、送信に関しては制限することができなかった。通常は送信をブロックする必要性は少ないだろうが、この機能があれば、例えばコンピュータがウイルスなどに感染して、インターネットあてにメールを無制限に送信してしまうといった事態を防ぐことができる(指定されたメール・サーバ以外への通信をブロックする)。また、ある種のプログラムが行うインターネットへの送信要求をブロックして、事実上そのプログラムの利用を制限する、という使い方もできるだろう(ただしプログラムの使うポートが動的に変わるようなら、ポートでのブロックではなく、Active Directoryの機能を使って起動を阻止する方がよいだろう。参考TIPS「業務に不要なプログラムの実行をグループ・ポリシーで禁止する」)。それ以外にも、社内LANへのアクセスは許可するが、インターネットへの接続は禁止するといった管理も可能となるだろう。

ファイアウォールの基本的な動作モード

 セキュリティが強化されたWindowsファイアウォールでは受信だけでなく、送信に対してもパケット・フィルタを設定できるが、デフォルトでは、「受信はすべて禁止、送信はすべて許可、ただしいずれも例外ルールとして定義したものは除く」となっている。このデフォルトの挙動を変更するには(例えば、送信も受信も、明示的に許可したもの以外はすべて禁止とするには)、デフォルト設定を変更する。このために、セキュリティが強化されたWindowsファイアウォールの管理ツールを開き、左側ペインでツリーのトップ(「ローカル コンピュータのセキュリティが強化されたWindowsファイアウォール」と表示されている部分)を選択する。そして右側の操作ペインにある[プロパティ]をクリックするか、中央のペインにある[Windows ファイアウォールのプロパティ]をクリックする。すると次のような画面が表示されるので、プロファイルごとのデフォルト設定を変更すればよい(netshコマンドを使った操作方法については後編で解説予定)。

ファイアウォールのデフォルトの挙動の変更
プロファイルごとに、ファイアウォールのデフォルトの挙動を変更できる。デフォルトでは、受信はすべて禁止、送信はすべて許可(いずれも明示的に許可したものを除く)となっている。
プロファイルごとに挙動を設定できる。ドメイン・プロファイル時のデフォルトを設定するにはこれをクリックする。
プライベート・プロファイル時のデフォルトの設定。
パブリック・プロファイル時のデフォルトの設定。
ファイアウォールを有効にするか、無効にするかの選択。
受信に対するフィルタは、デフォルトではすべてオン。明示的に許可されたもの以外は、外部からの接続はすべて拒否される。
送信に対するフィルタは、デフォルトではすべてオフ。つまり送信は特に制限なく、どのプログラムやサービスからでも可能。

受信フィルタの設定例

 さてそれでは、実際に受信フィルタを設定してみよう。受信方向のトラフィック(インバウンド通信)はデフォルトではすべてブロックされており(インバウンド通信はすべて禁止されている)、このままで、例えばWebサーバをインストールしても、外部からアクセスすることはできない。これを許可するために、TCPの80番、443番、8080番を受信の例外ルールとして定義してみよう。

 受信の例外ルールを作成するには、まず管理コンソールの左側ツリーで[受信の規則]を選択する。そして右側の[操作]ペインから[新規の規則]をクリックする。

受信ルールの新規作成
ファイアウォールの管理コンソールで受信の規則を新規追加する。
この[受信の規則]をクリックして、受信ルールの一覧を表示させる。
あらかじめ定義されているルール一覧。ここにあるプロトコルなら、そのルールを有効にするだけで受信を許可できる。
先頭に緑の丸印が付いているルールは、現在有効な、受信の許可ルール。
先頭が灰色の丸印のルールは、定義はされているが、無効になっているルール。これ以外にも受信を禁止するルールがあり、その場合は、赤い丸印が付く。
ユーザー独自のルールを新規追加したければ、これをクリックする。
ルールを定義しても、これを使えば一時的に無効状態にできる。

 [新規の規則]をクリックすると、新しいルールを作成するウィザードが表示されるので、後は、指示に従ってルールに関する情報を入力すればよい。

受信ルールの新規作成ウィザードの起動画面
最初は、作成する受信ルールの種類を選択する。ここでは[ポート]を選んで、先へ進む。
特定のプログラムに対する通信を許可したり、ブロックしたければ、これを選択する。
特定の通信ポートを条件にしたければ、これを選択する。
あらかじめ定義されているいくつかのプロトコルやサービスなどについては、ここから選択できる。BITキャッシュやiSCSIサービス、コア・ネットワーク・コンポーネント、ファイルとプリンタの共有など、単純なプロトコルとポート番号指定だけでは済まないようなサービスの場合は、この事前定義のルールを利用するとよい。
すべて手動で設定するなら、これを選択する。

プロトコルとポート番号の指定
前画面で[ポート]を選んだ場合は、ここでプロトコル・タイプとポート番号を指定する。
TCPかUDPを選択する。Webサーバの場合はTCPを選択する。
ポート番号を指定する場合はこちらを選択する。
ポート番号を指定する。ポートが複数ある場合は、カンマ記号で区切って並べる。「80-88」のように範囲を指定することはできないので、対象となるポート範囲が広範囲にわたる場合は、ポート番号ではなく、プログラム・ファイル名やサービス名で受信のルールを定義するのがよい。

条件合致時の操作の指定
ここでは、条件に合致した場合に、どうするかを指定する。
これを選択すると、条件に合致した通信が許可される。受信ルールの場合は、特定の通信が許可されることになる。
IPSecで通信路を保護している場合に選択する。
条件に合致した場合に、受信を拒否(ブロック)したい場合に選択する。受信トラフィックはデフォルトでは全部ブロックされるが、デフォルトで全部許可(および例外ルールでブロック)にしている場合は、これを選択して特定のポートへの通信だけを禁止することもできる。

プロファイルの選択
ここでは作成したルールをどのプロファイルに登録するかを選択する。パブリックの場合は外部から接続する必要はないだろうから、ここではドメインとプライベート・プロファイルのみを選択してみた。
ドメイン・プロファイルに登録する場合はこれをオンにする。
プライベート・プロファイルに登録する場合はこれをオンにする。
パブリック・プロファイルに登録する場合はこれをオンにする。

ルール名の入力
最後に、作成した受信ルールに名前を付ける。
ルール名。
コメント。

 作成したルールは、管理コンソールでは以下のように表示される。

受信ルールの確認
追加した独自の受信ルール。
作成したルール。すでに有効になっているので、先頭に緑の丸印が付いている。

 このルールをさらに変更するには、ダブルクリックすればプロパティ画面が開くので、そこで設定すればよい。ウィザードでは指定しなかったが、Webサーバへのアクセスをローカル・ネットワークに限定するには、例えば次のようにスコープを定義する。

ルールのカスタマイズ
ここでは、アクセス元のネットワークを限定するために、「スコープ」を追加定義してみた。
フィルタのスコープ(アクセス元やアクセス先のIPアドレスの範囲)を定義するには、このタブを選択する。
ローカルIPアドレスの指定。ネットワーク・インターフェイスが1つしかない場合は、特に指定する必要はないだろう。
リモートのIPアドレス(Webサーバへのアクセスを許可するネットワーク)を指定する。「ローカル サブネット」という事前定義の値もあるが、それだと、インターフェイスと同じネットワーク・アドレスしか含まれないので、このように明示的に(社内で使用している)プライベートIPアドレスを指定するとよい。なおこのようなリモートIPアドレス範囲の指定は、IISのような上位アプリケーションでも可能だが、設定忘れなどのミスを防ぐためにも、より下位のファイアウォールでも行っておくとよいだろう。

ICMPの受信許可

 Windows VistaにおけるWindowsファイアウォールのGUI設定画面では、ICMPに対する設定項目がなくなってと最初に述べたが、それではpingコマンド(ICMPのEchoプロトコルを使用している)に対して応答させたい場合はどうすればよいだろうか。pingコマンドを使った通信の到達性テストなどはよく行われるので、pingに一切応答しないというのでは、都合が悪い。

 Windows Vista(およびWindows Server 2008)では、このような場合、ICMP Echoの受信を許可する受信ルールを定義することになっている。具体的には受信ルールを新規作成し、プロトコルの指定のところで、ICMPを許可すればよい。以下は追加した受信ルールのプロトコルの定義画面である。

ICMP Echoの受信を許可するルールの例
ここではpingに応答するために、ICMPv4-echoというルールを作成してみた。ウィザードでカスタムを選択してもよいし、後でプロパティで変更してもよい。
このタブを選択する。
プロトコルの種類としてICMPv4を選択する(必要ならICMPv6向けのルールも定義すること)。
ICMPv4を選ぶと、このボタンが有効になるので、クリックする。

 [カスタマイズ]ボタンをクリックすると、次のようなICMPのコマンドの選択画面が評されるので、適切なものを選ぶ。

ICMP Echo要求の許可
pingコマンドに応答するには、ICMPのEcho(エコー要求)に対する受信を許可する。
こちらを選択する。
必要なサブコマンドを選択する。エコー要求をオンにする。これ以外にも有用なコマンドがいくつかあるので、必要ならそれらもオンにすること。TIPS「Windows Vistaのファイアウォールでpingへの応答を許可する」も参照。

 なお、送信(アウトバウンド通信)をデフォルトで全部ブロックしている場合は、Echo要求に対する応答の送信許可のルールも作成しておいていただきたい。


 INDEX
  Vistaの地平
  第14回 進化したWindows Vistaのファイアウォール機能(前編)
    1.セキュリティが強化されたWindowsファイアウォールの概要
    2.ファイアウォールのプロファイル
  3.受信フィルタの使い方
    4.送信フィルタの使い方

 「 Vistaの地平 」


Windows Server Insider フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Windows Server Insider 記事ランキング

本日 月間