マイクロソフトが提供するセキュリティ診断ツールMBSA(Microsoft Baseline Security Analyzer) 2.0を使って,社内のクライアントやサーバーにおけるセキュリティ・パッチの適用状況をチェックしようとしています。
診断対象のWindows XPのコンピュータはService Pack 2を適用してWindowsファイアウオールを有効にしており,これが原因だということは分かりました。しかし,MBSAのスキャンのためにWindowsファイアウオールを無効にするのは避けたいと考えています。Windowsファイアウオールの設定を変更することで,リモート・スキャンは可能になるでしょうか。現状では,例外設定で「ファイルとプリンタの共有」を有効としており,Windowsファイアウオールが有効でも共有フォルダを開けるようにしています。
設定によってWindowsファイアウオールが有効のままでもリモート・スキャンが可能になります。ただし,2005年10月の時点では少し工夫が必要です。MBSAのスキャンがどの通信ポートを使って処理されるかを知ることが不可欠です。
ファイルの共有のみの許可では不十分
MBSA 2.0とエージェントの以上のやり取りにおいては,「ファイルとプリンタの共有」で使用するポートに加えて,TCP 135ポートと,DCOMの通信手段であるRPC*の動的割り当てで指定されたポートを用います。このため,Windowsファイアウオールが有効な環境では各種設定を行わないとスキャンの実行に失敗します。「ファイルとプリンタの共有」のポートに対する着信を許可するだけでは不十分なのです。
MSのFAQ記載の方法では失敗 この方法は,マイクロソフトの技術文書「MBSA 2.0 よく寄せられる質問」にも記載されています。そこでは「Q. ファイアウオールで保護されているコンピュータはどのようにリモート・スキャンできますか?」という項目で,スキャンを行う際に実行されるエージェント「Windows Update Agent」が使用する通信ポートを1つに固定し,指定したカスタム・ポートとTCP 135ポートでの着信を有効にすることで,Windowsファイアウオールが有効なままリモート・スキャンを実施する方法が記されています。 しかし,この文書で記された方法を実施する際には,Windows XP向けのCOM+*修正ロールアップ・パッケージを適用する必要があります。この修正プログラムは2005年10月現在,サポート・サービス契約者のみに提供されていて一般には入手できません。このパッケージが適用されていない場合は,エージェントに対して固定的にポートを割り当てられず,技術文書通りに設定してもスキャンできません。
最小限の動的ポートの通信を許可
なお,実際に試したところ,「1024-1025」が[ポート範囲の割り当て]欄と[既定の動的ポート割り当て]欄で[イントラネットの範囲]となるよう指定し,併せてWindowsファイアウオールで許可することで,正常にスキャン結果が得られることを確認しています([イントラネットの範囲]で「1024-1025」を設定する手順は少し面倒ですが可能です)。ただし,環境によっては[インターネットの範囲]が適切な場合があります。実際に設定を変更する前に,必ずテストしてください。
多数のクライアントに設定を展開 まず,バッチ・ファイルでの設定方法を説明します。RPC動的割り当てポートを[管理ツール]の[コンポーネントサービス]で設定すると,レジストリ・キーHKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Rpc\Internetに設定値が登録されます。 具体的には[COMインターネットサービスのプロパティ]画面において追加したポートの設定が,複数行文字列値Portsとして記録されます。また,「ポート範囲の割り当て」が文字列値PortsInternetAvailableで,「既定の動的ポート割り当て」が文字列値UseInternetPortsとして,それぞれ格納されます。 以上のレジストリ値をエクスポートしたファイルから,設定をインポートするバッチ・ファイルを作成し,各コンピュータのユーザーに実行してもらうことで,設定を反映させることができます。 例えば,次のようにするとよいでしょう。まず,レジストリ・エディタ(regedit.exe)でレジストリ・キー Internetを右クリックして[エクスポート]を選択し,これらの設定をレジストリ・ファイル(.reg)としてエクスポートします。インポート時はregedit.exeのパラメータに.regファイルを指定して実行します。このとき,「regedit /s exports.reg」のように「/s」をパラメータに加えることで,「regファイル内の情報をレジストリに追加しますか?」といったダイアログ・ボックスが表示されることなく,レジストリに設定が追加可能です。 次に,Windowsファイアウオールの例外設定を追加します。これにはnetshコマンドのfirewallコンテキストを使うとよいでしょう。今回はTCPの135および1024と1025番ポートでの着信を許可するように追加設定するため,図5のコマンドを実行します。このコマンド例では,スコープの範囲をローカル・サブネット(LocalSubnet)に設定しています。
なお,Windowsファイアウオールの設定には管理者権限が必要です。普段使用しているアカウントが一般ユーザー権限などの場合には,管理者権限を持つユーザー・アカウントでスケジュール実行するといった方法で対応します。
Active Directoryでも展開可能 まず,RPC動的割り当てに関する設定項目は既定のポリシー・テンプレートには用意されていません。そこで,先ほど説明したレジストリ設定をインポートするバッチ・ファイルを共有フォルダにコピーし,コンピュータのスタートアップ・スクリプトとして実行することで設定を適用させられます。グループ・ポリシー・オブジェクト・エディタ(gpedit.msc)でグループ・ポリシー・オブジェクト(GPO)を開き,左側ツリーで[コンピュータの構成]−[Windowsの設定]−[スクリプト(スタートアップ/シャットダウン)]と展開して,右側の[スタートアップ]をダブル・クリックして開かれた画面で,共有フォルダに置いたバッチ・ファイルを指定します。 ただし,この方法ではコンピュータが起動するたびにバッチ・ファイルが実行されてしまうため,レジストリの項目に関するテンプレート・ファイル(.adm)を作成してGPOに追加し,値を設定することで実現するとよいでしょう。 Windowsファイアウオールの例外ポートについては,既定で用意されているテンプレートを使って設定できます。スタートアップ・スクリプトと同じようにグループ・ポリシー・オブジェクト・エディタから[コンピュータの構成]−[管理用テンプレート]−[ネットワーク]−[ネットワーク接続]−[Windowsファイアウォール]と展開すると,その下の[ドメインプロファイル]と[標準プロファイル]にそれぞれ同じ設定項目が用意されています。その中の[Windowsファイアウォール:ポートの例外を定義する」を有効にして開放したいポートを「135:TCP:LocalSubnet:enabled:DCOM」といった形で指定します。 [ドメインプロファイル]と[標準プロファイル]の違いは次の通りです。 [ドメインプロファイル]はドメイン・コントローラと通信可能な社内ネットワークで適用される設定群です。一方,[標準プロファイル]は自宅などスタンドアロンな環境で適用されます。 例えば,[ドメインプロファイル]ではMBSA 2.0でのスキャンを実施する社内ネットワーク環境を考慮してポートの例外設定を行います。一方[標準プロファイル]では,より危険度の高い状況となることを考慮してポートの例外を定義せず,さらに[Windowsファイアウォール:例外を許可しない]を有効としてセキュリティ強度を向上させるとよいでしょう。 |
テクニカルサポート担当