運用常時接続時代のパーソナル・セキュリティ対策(第2回)10.パケット・フィルタの設定(6) デジタルアドバンテージ |
||
無用なアウトバウンド・パケットの抑制
以上の設定で、インターネット側から入ってくるほとんどの無用なパケットを阻止することができたが、パケット・フィルタを使ったセキュリティ対策としては、これだけではまだ十分ではない。内部のネットワークから、インターネット側へ出て行くパケットに対して、何も対策していないからだ。特にWindows系ネットワークでは、ブロードキャスト・メッセージに載せてさまざまな情報(マシン名やユーザー名、サービス名など)をほかのマシンに通知するサービスが多いので、そのようなパケットがインターネット側へ流れいる可能性もある。もちろんNBT(NetBIOS over TCP)をきちんと無効化していればその危険性も少なくなるのだが、なんらかの操作・設定ミスなどで無効化するのを忘れていたり、インストールしているアプリケーションが、(バグか、故意か、仕様か)知らないうちになんらかのパケットを送信してしまっているかもしれない。このようなミスを防ぐためにも、パケット・フィルタで可能な対策は施しておくべきであろう。
知らず知らずのうちに外部へ情報を流出させてしまう可能性のあるパケットとしては、たとえばプライベートIPアドレスを持つパケットや、Windows系ネットワークでよく使われるサービスに基づくパケットがある。
前者は、ネットワークのLAN内でのみ有効なパケットであり、インターネット側へ送信されたとしても(ルーティングされないため)途中で破棄されるが、不要な情報を少しでも流出させないという点からみると、インターネット側へ送信する前ににブロックすべきである。また、ある種のクラッキングでは、このようなIPアドレスを持つパケットを使うので、ブロックしておくほうが望ましいだろう。この場合、インターネット側から内部へ送られてくるパケットでも(プライベートIPアドレスになっていないかどうかの)チェックを行うのが望ましい(今回のフィルタ設定例では、インターネット側からのポートをほとんど空けていないので、特に必要はないが、万全を期すならそのようなフィルタも設定したほうがよいだろう)。
後者のWindows系ネットワーク・サービスに固有のパケットも、情報漏洩やセキュリティ・ホールになりやすので、外部へそのようなパケットが流れないようにフィルタリングを行うのがよい。Windows系ネットワークでよく使われるポートについては、やや古いが、マイクロソフトのサポート技術情報で提供されている「[NT]TCP/IP ポートの使用について」などを参考にして、最低限のフィルタはセットしておきたい(もちろん、それらのポートを使うサービスを使わないというのが一番の解決法であるが、NetBIOS関連はどうしても避けることができないので、これらについてはぜひともフィルタしておくべきであろう)。
以上のようなことを考慮して、ここでは、プライベートIPアドレスを持つパケットと、Windows系OSでよく使われるポートを持つパケットについて、パケット・フィルタの設定を行ってみよう。最初のフィルタ設定とまとめて、以下に掲載しておく。これをファイルに保存し、コマンド プロンプト上で“netsh -f setup-filter.cnf”などとすれば簡単にフィルタ設定を行うことができる。フィルタ設定をクリアするには、“add filter”を“del filter”に変更して実行すればよい(入力フィルタのデフォルト設定をforwardにするのも忘れないように)。
|
|
※以上のコマンド列を ここ に用意した。これを setup-filter.cnf というファイル名で保存して、実行していただきたい。 |
最後に
以上で、RRASを用いたパケット・フィルタリングの設定は完了である。前回の設定と比べると、より高度なフィルタ設定が可能なこととがお分かりいただけたであろう。ただし、今回紹介した設定方法はあくまでも一例であるので、ユーザーの環境に合わせて適宜ルールの追加や削除などを行っていただきたい。
例えば、今回のセキュリティ・ポリシーでは、「(インバウンドのTCP/UDP通信は)デフォルトでほとんどクローズしておくが、最低限必要なものだけは通す」というふうに設定している。このようなセキュリティ・ポリシーは、セキュリティ的には非常に望ましいのだが、一方で、アプリケーションによっては(必要な通信までもがブロックされてしまって)動かなくなる可能性がある。そのような場合の対策としては、さらに必要な通信を通すようにルールを追加するという方法がある。アプリケーションが稼動中に「netstat -an」コマンドなどを実行すればどのポートを待ち受けしているかが分かるので、そのポートを通すようにルールを追加するのである。しかしこの方法では、いちいちルールを追加しなければならないし、場合によっては(アプリケーションが動的なポート番号の使用をしている場合など)ルールとして設定することが不可能な場合もある。
そこでもうひとつのセキュリティ・ポリシーとして、「デフォルトではポートをすべてオープンしておき、危険なポートだけをブロックする」という方法も考えられる。つまり、パケットのデフォルト・ルールを「FORWARD」にしておいて、ポート135/137〜139/445番などをブロックするように例外ルールを追加するのである(「netstat -an」コマンドなどで他にも使われているポートがないかどうか調べ、それらに対するフィルタも追加するほうがよいだろう)。この方法は、セキュリティ的には今回紹介した方法よりもやや劣るが、利用できるアプリケーションなどに制約が少なくなるので、ユーザーとしてはこちらの方が使いやすいかもしれない。ユーザーの環境や用途に応じて設定を行っていただきたい。
次回は、市販のファイアウォール・ソフトウェアを使ったセキュリティ対策について解説する。
関連リンク | |
[NT]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をインストールしてみる
|
|