豊田 孝

 今回はファイアウオールを取り上げます。ファイアウオール(Firewall)は,防火壁という意味を持っています。防火壁は,そのものずばり,隣の建物から自宅への延焼を食い止めるための壁です。このような語源的な背景をさかのぼってみると,ファイアウオールを最初に考え出した人の発想の中には,インターネットは延焼中の大変危険な電脳空間である,という認識があったのかもしれませんね。

 Windows XP以降のWindowsオペレーティング・システムには,インターネット接続ファイアウオール(ICF:Internet Connection Firewall)という名称のファイアウオールが標準で付いています。皆さんはこのICFをお使いですか? 先日の「MSBLAST.EXE」プログラムの騒動などもあり,おそらく皆さんの中には,このICFを初めて有効にした人も結構いるでしょう。ところで皆さん,ICFは将来的にはデフォルトで有効になるという報道をご存知ですか? 詳細はこちらを参照してください。今回は,この「デフォルトで有効となる」という意味を理解することにしましょう。

図1(上),図2(下)●サンプル・プログラムの実行結果(上:Windows XP,下:Windows Server 2003)

今回のサンプル・プログラム

 それではいつものようにこちらからサンプル・プログラムをダウンロードし,実行してみましょう。私のWindows Server 2003とWindows XP環境では図1[拡大表示],図2[拡大表示]のような情報が返されます。

 上記2つの画面の「Description」(説明)項目を見ると分かりますが,2つの情報にはかなりの違いがあります。この事実から,Windowsシステムの種類が異なれば,返される説明内容が異なると考えてよいでしょう。ちなみにWindows 2000では,このような説明文字列は返しません。

 それでは,多少時間をかけてその他の表示情報を眺めてください。本稿では,ICFを有効にするための操作手順やその際の注意事項などは取り上げません。こちらの情報はマイクロソフトのページを参照してください。

 ICFは,Windowsプログラムの種類としては「Windowsサービス」の仲間に入ります。Windowsサービスは以前は「NTサービス」と呼ばれていました。最近では,Webサービスという用語もあり,これと区別するために,Windowsサービスと呼ばれるようになったと思われます。

 それでは,Windowsサービスとは何か? ということになりますが,その答えを教えてくれるのが今回のサンプル・プログラムの出力情報です。表示画面を下方向にスクロールしていくと,例えば,「StartMode」(起動モード)欄があります。特別に設定変更していない場合には,現在値は「Manual」となっているはずです。基本的には,起動モード欄には,次の値のいずれかが設定されると考えて差し支えありません。

  • Auto:システム起動時に動作を自動開始する
  • Manual:私たちが必要に応じて手動起動する
  • Disabled:起動できないようにする

 ところで,普通のプログラム,例えば「メモ帳」などはこのような起動モードを持っているでしょうか? 持っていませんね。実は,Windowsサービスはメモ帳などの一般的なWindowsプログラムと異なり,Windowsシステム機能を拡張するという性格もあるのです。

 「Auto」という起動モードはこのあたりの事情を端的に示しています。つまり,Windowsシステムと同時に「自動的に」サービス提供を開始する,というわけです。ICFが将来デフォルトで有効になる,というのは,この起動モード欄が「Manual」から「Auto」に変更されるということなのです。この変更は,Windows XPの場合,サービスパック2(SP2)で行われるといわれますから,SP2インストール直後にこのサンプル・プログラムを実行してみてください。変更内容を把握できるはずです。

サンプル・プログラムの機能と拡張上のヒント

 今回のサンプル・プログラムはリスト1のようになっています。これまでのほぼすべてのサンプル・プログラムと同じように,DMTF定義クラスから派生した「Win32_BaseService」クラスを応用しています。これまでの連載を継続して読んでいる皆さんは,何の問題もなく理解できると思います。

 それでは,拡張上のヒントを紹介しておきます。ICFはWindowsサービスの1つであることはすでに説明したとおりですが,メモ帳などと同じように,プログラムであり,プロセスであることに変わりはありません。出力画面を下方向にスクロールすると,「ProcessId」という欄があります。実は,この値は結構使えます。それは,この値からICFプロセスとICFスレッド情報を取得できるからです。

 ファイアウオールの動きがおかしい,ICFを有効にしたらシステム全体の動きが重たくなった,あるいは,インターネットへの接続が極端に低下した,などの症状が出た場合には,プロセスとスレッド情報から解決策が得られることもあるのです。プロセスとスレッドは第12回第13回で取り上げたように,CPUやメモリーなどのシステム資源を消費するのでしたね。プロセスとスレッドのプログラミング方法を忘れてしまった人は,それぞれの連載回を復習しておいてください。

 今回は以上で終了です。次回またお会いいたしましょう。ごきげんよう!