[運用] 常時接続時代のパーソナル・セキュリティ対策 (第1回) 9.セキュリティ対策その3:パケット・フィルタを設定する(4) デジタルアドバンテージ2000/12/23 |
|
|
TCPを利用したサービスの公開について
以上の設定例では、TCPプロトコルはすべてブロックしてしまったので、もしこのマシンで何らかのTCPを使ったサービスを実行したとしても、それをインターネット側からアクセスすることはできない(UDPサービスの場合はフィルタリングしていないので、利用可能である。またローカル接続のLAN側からはいずれのサービスも制限なく利用可能)。たとえばInternet Information Service(IIS)をインストールして、Webサービスを提供する場合、HTTPプロトコルで使用するTCPのポート80番を通過するようにしておく必要がある(ポートを空けておかなくても、サービス自体は正常に起動するが、外部からの通信はできない)。
Webサービスを提供する場合のフィルタ設定 | ||||||||||||
インターネット側に公開したいサービスがある場合、そのサービスで利用するポート番号だけは通過するように、フィルタを設定する。これはHTTP(TCPのポート80番)を通過させる例。 | ||||||||||||
|
このような設定を行えば、インターネット側からWebサービス(HTTPプロトコル)にアクセスできるようになっているはずである。
ところでこのフィルタ設定では、TCPのポート80番以外はすべてブロックするように設定している。とするとUDPの場合と同様に、すべての通信が不可能になってしまうような気がしないだろうか。だが実際には、外部からのHTTPアクセスは可能だし、Windows 2000マシンから外部のTCPを使ったサービス(Web、メール、Telnet、ほか)へは問題なくアクセスすることができる(注意:ftpクライアントは、パッシブ・モードでのみ利用可能。通常のftpクライアントでは、クライアント側の待ち受けデータ・ポート番号がランダムに変わるため、固定的にポートを空けておくことができない。パッシブ・モードでは、ftpクライアント側からしかTCP接続をオープンしないので、ポートを空けておく必要がなくなる)。
このような結果になるのは、TCPとUDPではフィルタリングのメカニズムが異なっているからである。UDPでは、無条件に宛先ポート番号が指定条件にマッチすればフィルタリングされていた。しかしTCPの場合は、インバウンドのSYNパケットのみがフィルタリングの対象になっているので、このような結果になる。
TCPは、「ステートフル(stateful、状態を持つ)」なプロトコルである。2台のマシンがTCPプロトコルで通信をする場合、そのコネクションが確立するまでにはきちんとした手順が決められている。
TCPコネクションの確立 | |||||||||
TCPはステートフルな(状態を持つ)通信プロトコルである。サーバ側とクライアント側の2つがきちんと区別されており、どちらから接続要求を出すかによってサーバになったり、クライアントになったりする。サーバ側では、あるポートに対して待ち受け(リッスン)しており、そこにクライアント側から接続要求を送ることによって通信が開始される。また、全二重通信をサポートしているので、SYNを送ってACKを待つのは、両方の側から行う必要がある。Windows 2000のTCPのパケット・フィルタリングは、のパケットにのみ作用する。 | |||||||||
|
TCPの通信では、まず最初にどちらかが相手の待ち受けポートに対して、接続要求を送ることから始まる。このとき、要求を待ち受けしている側がサーバ、要求を送るほうがクライアントとなる。
接続要求のパケットには「SYN」という特別なフラグが付けられている。サーバ側ではそれに対して「ACK(Acknowledge)」付きのパケットを返すことにより、接続要求を受け付けたことを表す。さらにTCPでは双方向の全二重通信を行うので、逆にサーバ側からもSYNを送って(サーバ側からのACKと同時に送られる)、それに対してクライアント側からACKを返す。以上のように、都合3回のパケットのやり取りをして、始めてTCPの接続が確立することになる(これを「3ウェイ・ハンドシェイク」という)。以後は相互にデータを送って通信を行う。
Windows 2000のTCPのパケット・フィルタリングではこれらのパケットのうち、一番最初に送られる、クライアントからサーバ側へのSYNパケットにのみ作用するようになっている(図中ののパケット)。それ以外の(後続の)パケットにはこのフィルタリング機能は効かず、すべて通過するようになっている。しかし一番最初のSYNパケットがブロックされてしまえば、正常なTCP接続の確立は行えないわけであり、結果的に外部からのTCPの通信要求は拒否されることになる。
以上のような仕様になっているため、許可するポートのリストに、1つも値を入れておかなくても、外部への通信が可能となっているのである。たとえばWindows 2000マシンからインターネット上のWebサーバへアクセスする場合、最初にSYNパケットを送るのはWindows 2000マシンの側である。そのため、パケット・フィルタリング機能でブロックされることなく通信が行われる。
IPアドレスなどを使ったより高度なセキュリティ機能
インターネット側に対してWebのようなサービスを提供する場合、Windows 2000のTCP/IPプロトコル・スタックの持つパケット・フィルタリング機能だけでは十分なセキュリティを確保することはできない。たとえばソースIPアドレスやドメイン名などでアクセス制限を行う機能が用意されていないからだ。このような場合は、上位のアプリケーション側(IIS側など)が備えるアクセス制限機能を使って、セキュリティを確保する必要がある。
最後に
今回は、Windows 2000の持つパケット・フィルタリング機能を中心にして、家庭やSOHOにおけるセキュリティ対策について見てきた。かなり限定的な機能しか持たないが、このような対策を施すだけでも、かなり安全性を増すことができるので、ぜひとも活用していただきたい。
次回の中編では、Windows 2000のRRAS機能の持つパケット・フィルタリング機能について解説する。後編では、市販のパーソナル・セキュリティ製品を使って、より安全な環境を構築する方法についてみていく。
更新履歴 | |
|
「運用 」 |
- 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をインストールしてみる
|
|