[運用] 常時接続時代のパーソナル・セキュリティ対策 (第1回) 6.セキュリティ対策その3:パケット・フィルタを設定する(1) デジタルアドバンテージ2000/12/23 |
|
|
パケット・フィルタを設定する
Windows 2000のTCP/IPプロトコル・スタックには、簡易ながら、パケット・フィルタリング機能が用意されている。パケット・フィルタとは、ネットワーク・パケットに含まれる特定のフィールドの内容に基づいて、パケットを通したり、破棄したりする機能のことである。例えば、HTTP(TCPの80番)はそのまま通すが、Telnetやftp(それぞれ、TCPの23番と20/21番)のパケットは通さない(拒否する)などというふうに使う。パケット単位で通過させるかどうかを判断するので、処理が簡単で素早いのが特徴である。ネットワーク・プロトコル的に見ると、プロトコルの各階層におけるヘッダ部分をチェックして、あらかじめ指定した条件にマッチしたものだけを通過させたり、破棄したりする。ヘッダ部分は(たいていの場合)固定長なので、比較が簡単であり、素早く処理できる。
ネットワークのパケット・フィルタリング |
パケット・フィルタリングでは、ネットワーク・プロトコルの各階層において、パケット中の特定の部分の値が、あらかじめ指定された値にマッチするかどうかに基づいて、パケットの通過/破棄を決める。これはTCP/IPプロトコル階層の例。各階層のパケットは、固定長のヘッダ部分と可変長のデータ部分(ペイロード部分)からなっており、比較はヘッダ部分に対して行われる。一般的には、IPアドレスやポート番号、プロトコル番号などに基づいてフィルタリング条件を決める。例えば、のプロトコル番号が「6(TCP)」で、の宛先ポート番号が「80(HTTP)」のものは受け付けないなどとすると、HTTP要求をすべて拒否することができる。Windows NT/2000のTCP/IPプロトコルに組み込まれているパケット・フィルタリング機能では、のIPのプロトコル番号と、のTCP/UDPの宛先ポート番号だけしか条件として利用できない。 |
Windows 2000で利用できる、2つのパケット・フィルタリング機能
Windows 2000では、2種類のパケット・フィルタリング機能が利用できる。1つは、Windows NTの時から用意されている、TCP/IPプロトコル・スタックに組み込まれているパケット・フィルタリング機能である。このパケット・フィルタは非常に限定的な機能しか持っていないが、Windows NTでも利用できるし、GUIベースで設定・管理できるので、取り扱いが容易であるという特徴を持っている。
もう1つのパケット・フィルタリング機能は、「Routing and Remote Access Service(以後、RRASと省略)」に組み込まれているものである。RRASサービスは、当初はWindows NTの追加オプションとして無償で提供されていたものであり、Windows NTのリモート・アクセス・サービス(RAS)とネットワークのルーティング機能を統合して、より高機能なネットワーク・サービスを提供するために開発されたものである。Windows 2000にはこのRRASサービスが組み込まれており、その中の1つとしてパケット・フィルタリング機能が利用できる。こちらのほうが、先ほどのTCP/IPプロトコル・スタック組み込みのパケット・フィルタよりも高機能で柔軟性もあるが、Windows 2000 Professionalの場合はコマンドラインで管理する必要がある(Windows 2000 Server以上では、コマンドラインでも利用できるし、GUIの管理ツールも利用できる)。今回は、前者のTCP/IPプロトコル・スタック組み込みのパケット・フィルタについて解説し(この記事中で単に「パケット・フィルタ」というときは、こちらを指す)、RRASのパケット・フィルタについては次回取り扱うことにする。
TCP/IPプロトコル・スタック組み込みのパケット・フィルタ
Windows 2000(もしくはWindows NT)のTCP/IPプロトコル・スタックに組み込まれているパケット・フィルタリング機能は、専用ルータのそれと比べると非常に限定的である。指定できる条件は、IPの「プロトコル番号(図中の)」と、TCP/UDPの「宛先ポート番号(図中の)」のみである。さらに利用できるアクションとしては、「指定されたフィールドの値が、あらかじめ与えられた条件にマッチするものだけを通す」、というものしかない。この逆のアクション、つまり「指定された値を持つパケットだけを拒否する」という指定はできない。デフォルトでは、これらのパケット・フィルタ機能はまったく働かないようになっているので、すべてのパケットが通過する。
以上をまとめると、次のような3つのアクションを行うことができる。
- すべてのパケットを通す
- (IP、TCP、UDPごとに)指定された一部のパケットのみを通す
- (IP、TCP、UDPごとに)まったく通さない
念のために繰り返しておくが、
- (IP、TCP、UDPごとに)指定された一部のパケットだけを拒否する
ということはできない。
なおこのフィルタリングは、インターフェイス・カードに到着したパケットにのみ適用される。技術的に言うと、「インバウンド(inbound、マシンに向かって入ってくる方)」のトラフィックにのみ適用され、「アウトバウンド(outbound、マシンから出て行く方)」のトラフィックには適用されない。
ルーティングとNATとパケット・フィルタリング
ところでこのパケット・フィルタリング機能であるが、Windows 2000の接続共有機能(NAT)やルーティングとは、独立していることに注意されたい。接続共有機能を有効にしたWindows 2000マシンに対して何らかのネットワーク・パケットが届く場合、その宛先などに応じて、次の3つの種類が考えられるが、それぞれ異なる動作をする。
1つ目は、宛先が自分宛になっているパケットである。装着しているネットワーク・カードに付けられたIPアドレスや、ブロードキャスト・アドレス、マルチキャスト・アドレスに向けて送信されたパケットがこれに相当する。もともとこれらのパケットは、自分自身でマシンの内部へ取り込んで処理しなければならないものであるが、パケット・フィルタリングは、このようなパケットに対して「のみ」機能する。つまり、自分宛のパケットに対しては、まずパケット・フィルタリングが適用され、それを通過したパケットのみがさらに内部で処理される。
2つ目のパケットとしては、ルーティングされて、(他の)インターフェイスからまた再送信される(IPパケットをフォワードするという)パケットがある。このようなパケットに対しては、Windows 2000のパケット・フィルタリング機能は適用されない。つまり、ルーティング(IPフォワード)時には、フィルタリング処理は行われない。
3つ目のパケットとしては、接続共有機能のために、NAT(IPマスカレード)されるパケットがある。これらのパケットもルーティングと同じく、単にマシンを通過していくだけである。このようなパケットもやはり同様に、パケット・フィルタリングは適用されない。
フィルタリングの設定
以上のような仕様を念頭において、接続共有設定しているマシンに対するパケット・フィルタを設定してみよう。
いちばん望ましいのは、Windows 2000マシンに対するインターネット側からのパケットをすべてのブロックして、NAT(やルーティング)で通過するパケットのみを通すようにすることだ。この動作は、ちょうど上記の仕様と一致しているので、単にすべてのフィルタリング機能を有効にするだけでよいように思える(実はこれは正しくないのだが、詳細は後で)。以下のようにして、パケット・フィルタリングを有効にしてみよう。
パケット・フィルタリング機能を有効にする | |||||||||
まず[ネットワークとダイヤルアップ接続]ダイアログ中にある[インターネット接続]を右クリックして、[プロパティ]メニューを起動する。そして「インターネット プロトコル(TCP/IP)」の[プロパティ]をクリックし、表示されたダイアログボックスの[詳細設定]をクリックする。そして[オプション]タブを表示させる。パケット・フィルタリングを設定するには、この「オプション設定」から、「TCP/IPフィルタリング」を選ぶ。 | |||||||||
|
[TCP/IPフィルタリング]の設定(間違い編) | ||||||||||||||||||||||||||||||||||||||||||
ここでパケット・フィルタリングの設定を行う。パケット・フィルタリングを有効にすると、すべてのインターフェイスでパケット・フィルタリングが有効になる。のチェックボックスはインターフェイスごとに存在するが、どこか1カ所でチェックすると、ほかのインターフェイスのパケット・フィルタリングも有効になる。つまりパケット・フィルタリング機能はTCP/IPのプロトコル・スタック全体に作用し、各インターフェイスごとに個別に有効/無効にすることはできない。いったんパケット・フィルタリング機能を有効にしたら、次は各プロトコルごとに通過/禁止する条件を指定する。この場合は、自分宛のパケットはすべてブロックさせたいので、「一部許可する」を選んで、その下の数値フィールドは空にしておけばよい。なお、これらの変更を行った後はシステムをリブートするようにメッセージが表示されるので、メッセージ通りにシステムをリブートさせる。 | ||||||||||||||||||||||||||||||||||||||||||
|
更新履歴 | |
|
「運用 」 |
- Azure Web Appsの中を「コンソール」や「シェル」でのぞいてみる (2017/7/27)
AzureのWeb Appsはどのような仕組みで動いているのか、オンプレミスのWindows OSと何が違うのか、などをちょっと探訪してみよう - Azure Storage ExplorerでStorageを手軽に操作する (2017/7/24)
エクスプローラのような感覚でAzure Storageにアクセスできる無償ツール「Azure Storage Explorer」。いざというときに使えるよう、事前にセットアップしておこう - Win 10でキーボード配列が誤認識された場合の対処 (2017/7/21)
キーボード配列が異なる言語に誤認識された場合の対処方法を紹介。英語キーボードが日本語配列として認識された場合などは、正しいキー配列に設定し直そう - Azure Web AppsでWordPressをインストールしてみる (2017/7/20)
これまでのIaaSに続き、Azureの大きな特徴といえるPaaSサービス、Azure App Serviceを試してみた! まずはWordPressをインストールしてみる
|
|