ニフクラ ブログ

ニフクラやクラウドの技術について、エンジニアが語るブログです。

リージョンをまたいだWSUSの階層化(チェーン化)構成を検証してみた

こんにちは、ニフクラテクニカルアカウントチームです。

Windowsサーバーで構成されるシステムにおいて、WindowsUpdateによる更新プログラムの適用は、セキュリティ上の問題点(脆弱性)の修正という重要な目的のためとはいえ極めて煩雑な手順が必要であり、多くの工数を伴います。
そのため、更新プログラムの適用を集中管理する目的で、Windows Server Update Services(以降:WSUS)を使用している方も多いのではないでしょうか。
今回は、VPNゲートウェイを使用して。リージョンをまたいだWSUSの階層化(チェーン化)構成を検証してみました。
WSUSアップストリームサーバー障害時のリストアや、グローバルIPのないWSUSサーバーに対して、オフラインで更新プログラムを適用する方法を紹介します。

f:id:TechnicalAccountEngineer:20190315175754p:plain

前提条件

本ブログは、以下の前提知識がある方を想定しています。

  • ニフクラの基本的なコントロールパネルの操作、サービスを利用する知識
    (サーバー作成、ネットワーク構築など)
  • Windowsサーバーの基本的な操作、知識

検証概要

WSUSを階層化(チェーン化)し、2環境を構成しています。

  • Microsoft Updateに対し、更新プログラムをダウンロードし、システム全体のWindowsサーバーのパッチの集中管理を行うメイン環境。
  • メイン環境とは別リージョンでVPN接続したサブ環境。サブ環境のWSUSサーバーはメイン環境のWSUSサーバー(アップストリーム)と同期し、サブ環境内のパッチを管理。

本ブログでは、以下の検証を実施しました。
1)WSUS(アップストリーム)に障害が発生した場合、WSUS(ダウンストリーム)からWSUSデータのリストアができることを確認 f:id:TechnicalAccountEngineer:20190315175747p:plain

2)インターネットに接続しているWSUS(アップストリーム)からカタログ情報や更新プログラムをエクスポートし、オフラインのWSUS(ダウンストリーム)に更新プログラムが適用できることを確認 f:id:TechnicalAccountEngineer:20190315175751p:plain

利用リソース

本検証を実施するにあたり、利用したニフクラのリソース情報に関して以下に記載します。
※各リソースのアクセス制限に関しては、ニフクラのファイアウォール等を用いて適切に設定の上実施しています。

リソース 数量
仮想サーバー(サーバーOS:Windows Server 2016) 4
プライベートLAN 2
ルーター 1
VPNゲートウェイ 2
カスタマーゲートウェイ 2

今回の検証で各リソースのコンピュータ名、IPアドレスは以下で設定しています。

リージョン リソース コンピュータ名 IPアドレス
east-11 WSUSサーバー
(アップストリーム)
WSUSSV01 192.168.10.10
クライアント(1) WSUSCL01 192.168.10.20
VPNゲートウェイ(1) 192.168.10.250
webプロキシ
(ルーター)
192.168.10.254
west-12 WSUSサーバー
(ダウンストリーム)
WSUSSV02 192.168.20.10
クライアント(2) WSUSCL02 192.168.20.20
VPNゲートウェイ(2) 192.168.20.250

各リソースのファイアウォールのINルールは以下のように設定しています。
※作業用のリモートデスクトップ接続等は適切な許可設定が必要です。
※本検証では、OUTルールの設定は行っていません。(制限していません。)

リソース 許可IPアドレス ポート番号 備考
WSUSサーバー
(アップストリーム)
192.168.20.10 8530 WSUS通信用
192.168.10.20 8530 WSUS通信用
WSUSサーバー
(ダウンストリーム)
192.168.20.20 8530 WSUS通信用

検証環境構築

1)WSUSサーバー(アップストリーム)の構築

■ルーティング設定
コマンドプロンプトを起動し、west-12環境に構築するWSUSサーバーと通信するためのルーティングを設定します。

route -p add 192.168.20.0 mask 255.255.255.0 192.168.10.250 metric 1

■WSUSインストール

(1) サーバーマネージャーで「役割と機能の追加」をクリックします。
(2) 「次へ」をクリックします。
(3) 「次へ」をクリックします。
(4) 対象サーバーが選択されている状態で「次へ」をクリックします。
(5) 「Windows Server Update Services」にチェックを入れます。
(6) WSUS に必要な追加機能が表示されるため、「機能の追加」をクリックします。
(7) 「次へ」をクリックします。
(8) 「次へ」をクリックします。
(9) 「次へ」をクリックします。
(10) 「役割サービスの選択」画面で「次へ」をクリックします。
(11) パスには今回は「C:\wsus」と入力し、「次へ」をクリックします。
(12) 「次へ」をクリックします。
(13) 「役割サービスの選択」画面で「次へ」をクリックします。
(14) 「インストール」をクリックします。
(15) インストールが正常に完了したことを確認し、「閉じる」をクリックします。
(16) サーバーマネージャー画面に戻り、「インストール後のタスクを起動する」をクリックします。
(17) 正常に完了したことを確認します。

(1)
f:id:TechnicalAccountEngineer:20190222112851p:plain
(2)
f:id:TechnicalAccountEngineer:20190222112855p:plain
(3)
f:id:TechnicalAccountEngineer:20190222112901p:plain
(4)
f:id:TechnicalAccountEngineer:20190222112906p:plain
(5)
f:id:TechnicalAccountEngineer:20190222112910p:plain
(6)
f:id:TechnicalAccountEngineer:20190222112913p:plain
(7)
f:id:TechnicalAccountEngineer:20190222112916p:plain
(8)
f:id:TechnicalAccountEngineer:20190222112921p:plain
(9)
f:id:TechnicalAccountEngineer:20190222112926p:plain
(10)
f:id:TechnicalAccountEngineer:20190222112930p:plain
(11)
f:id:TechnicalAccountEngineer:20190222112934p:plain
(12)
f:id:TechnicalAccountEngineer:20190222112938p:plain
(13)
f:id:TechnicalAccountEngineer:20190222112942p:plain
(14)
f:id:TechnicalAccountEngineer:20190222112946p:plain
(15)
f:id:TechnicalAccountEngineer:20190222112951p:plain
(16)
f:id:TechnicalAccountEngineer:20190222112956p:plain
(17)
f:id:TechnicalAccountEngineer:20190222113000p:plain

■WSUS(アップストリーム)の設定

※本サーバーは直接Microsoft Updateと同期しますが、グローバルIPを付与していないため、ルーターの「Webプロキシ」機能で通信するように設定します。

(1) サーバーマネージャーで「ツール」の「Windows Server Update Services」をクリックします。
(2) 「次へ」をクリックします。
(3) 任意でチェックを入れ、「次へ」をクリックします。
(4) Microsoftのサーバーから更新プログラムを取得するため、「Microsoft Updateから同期する」を選択し、「次へ」をクリックします。
(5) プロキシサーバの設定として、ルーターのプライベートIPとWebプロキシの受け側ポートを設定し、「次へ」をクリックします。
(6) 「接続の開始」をクリックします。
(7) 「次へ」をクリックします。
(8) 任意の言語をチェックし、「次へ」をクリックします。
(9) 対象の製品をチェックします。今回は「Windows Server 2016」および「Windows Server 2016 and Later Servicing Drivers」をチェックし、「次へ」をクリックします。
(10) 対象とする更新プログラムの分類を選択し、「次へ」をクリックします。
(11) 更新プログラムを同期する時刻と周期を選択し、「次へ」をクリックします。
(12) 「初期同期を開始します」にチェックし、「次へ」をクリックします。
(13) 「完了」をクリックします。
(14) WSUSを起動し、同期が開始されたことを確認します。

(1)
f:id:TechnicalAccountEngineer:20190225185716p:plain
(2)
f:id:TechnicalAccountEngineer:20190222123950p:plain
(3)
f:id:TechnicalAccountEngineer:20190222123727p:plain
(4)
f:id:TechnicalAccountEngineer:20190222123731p:plain
(5)
f:id:TechnicalAccountEngineer:20190222123737p:plain
(6)
f:id:TechnicalAccountEngineer:20190225183748p:plain
(7)
f:id:TechnicalAccountEngineer:20190222123643p:plain
(8)
f:id:TechnicalAccountEngineer:20190222123647p:plain
(9)
f:id:TechnicalAccountEngineer:20190222123651p:plain
(10)
f:id:TechnicalAccountEngineer:20190222123655p:plain
(11)
f:id:TechnicalAccountEngineer:20190222123658p:plain
(12)
f:id:TechnicalAccountEngineer:20190222123702p:plain
(13)
f:id:TechnicalAccountEngineer:20190222123709p:plain
(14)
f:id:TechnicalAccountEngineer:20190225190154p:plain

インストールされた更新プログラムを承認します。

(1) WSUS の左ペインから「WSUSSV01」-「更新プログラム」-「すべての更新プログラム」をクリックし、更新プログラムを全件選択後、右クリックから「承認」をクリックします。
(2) 「更新プログラムの承認」画面で「すべてのコンピューター」を右クリックし、「インストールの承認」をクリックします。
(3) 「OK」をクリックします。
(4) 承認が完了したことを確認し、「閉じる」をクリックします。

(1)
f:id:TechnicalAccountEngineer:20190222131838p:plain
(2)
f:id:TechnicalAccountEngineer:20190222131826p:plain
(3)
f:id:TechnicalAccountEngineer:20190222131831p:plain
(4)
f:id:TechnicalAccountEngineer:20190222131835p:plain

■WSUSに関するグループポリシーの設定

(1) 「ファイル名を指定して実行」を起動し「gpedit.msc」と入力し、グループポリシーエディタを起動します。
(2) 左ペインから 「コンピュータの構成」-「管理用テンプレート」-「Windowsコンポーネント」を選択します。
(3) 左ペインの「Windows Update」を選択し、「自動更新を構成する」「イントラネットのMicrosoft更新サービスの場所を指定する」「インターネット上のWindows版Updateni接続しない」を設定します。
(4) 「イントラネットのMicrosoft更新サービスの場所を指定する」設定を「有効」にし、画面赤枠2箇所に「http://127.0.0.1:8530」を指定し、「OK」をクリックします。
(5) 「自動更新を構成する」設定を「有効」を選択し、「OK」をクリックします。
(6) 「インターネット上のWindows Updateに接続しない」設定を「有効」を選択し、「OK」をクリックします。
(7) 上記3つのグループポリシー設定が変更されたことを確認します。
(8) 管理者権限でコマンドプロンプトを起動し、gpupdateコマンドでグループポリシー設定を反映します。

(1)
f:id:TechnicalAccountEngineer:20190222133600p:plain
(2)
f:id:TechnicalAccountEngineer:20190222133531p:plain
(3)
f:id:TechnicalAccountEngineer:20190320182703p:plain
(4)
f:id:TechnicalAccountEngineer:20190222133544p:plain
(5)
f:id:TechnicalAccountEngineer:20190222133540p:plain
(6)
f:id:TechnicalAccountEngineer:20190222133548p:plain
(7)
f:id:TechnicalAccountEngineer:20190222133552p:plain
(8)
f:id:TechnicalAccountEngineer:20190222133556p:plain

自サーバー(WSUSサーバー(アップストリーム))を対象にWindows Updateを実施します。


f:id:TechnicalAccountEngineer:20190225130739p:plain

f:id:TechnicalAccountEngineer:20190225130749p:plain

f:id:TechnicalAccountEngineer:20190225130743p:plain

自サーバー(WSUSサーバー(アップストリーム))が登録されていることを確認します。

f:id:TechnicalAccountEngineer:20190222134459p:plain

2)WSUSサーバー(ダウンストリーム)の構築

■ルーティング設定
コマンドプロンプトを起動し、east-11環境に構築したWSUSサーバーと通信するためのルーティングを設定します。

route -p add 192.168.10.0 mask 255.255.255.0 192.168.20.250 metric 1

■WSUSインストール
前述と同じ手順で「役割と機能の追加」からWSUSをインストールします。

■WSUS(ダウンストリーム)の設定
続いてWSUSの設定も前述の通りに設定していき、以下の「アップストリームサーバーの選択」画面からダウンストリームサーバーとしての設定をします。
(1) アップストリームサーバのIP、ポート番号を指定し、「これはアップストリームサーバのレプリカです」にチェックを入れ、「次へ」をクリックします。
(2) 「次へ」をクリックします。
(3) 更新プログラムを同期する時刻と周期を選択し、「次へ」をクリックします。

(1)
f:id:TechnicalAccountEngineer:20190222135318p:plain
(2)
f:id:TechnicalAccountEngineer:20190222135556p:plain
(3)
f:id:TechnicalAccountEngineer:20190222135551p:plain

■WSUSに関するグループポリシーの設定
前述と同じ手順でグループポリシーの設定をしていきます。
ダウンストリームサーバは「イントラネットのMicrosoft更新サービスの場所を指定する」の設定のみアップストリームサーバと設定が異なります。

(1)「イントラネットのMicrosoft更新サービスの場所を指定する」設定を「有効」にし、画面赤枠2箇所に「http://192.168.20.10:8530」を指定し、「OK」をクリックします。
(2)「自動更新を構成する」設定を「有効」を選択し、「OK」をクリックします。
(3)「インターネット上のWindows Updateに接続しない」設定を「有効」を選択し、「OK」をクリックします。

(1)
f:id:TechnicalAccountEngineer:20190222143202p:plain
(2)
f:id:TechnicalAccountEngineer:20190222133540p:plain
(3)
f:id:TechnicalAccountEngineer:20190222133548p:plain

前述と同様に自サーバー(WSUSサーバー(ダウンストリーム))を対象にWindows Updateを実施します。

自サーバー(WSUSサーバー(ダウンストリーム))が登録されていることを確認します。

f:id:TechnicalAccountEngineer:20190222152420p:plain

3)クライアントの構築

各リージョン毎に1台ずつWSUSのクライアントを構築します。

■グループポリシーの設定
前述と同じ手順でグループポリシーの設定をしていきます。
クライアントは「イントラネットのMicrosoft更新サービスの場所を指定する」の設定のみWSUSサーバーと設定が異なります。 本検証では、クライアント毎に同期先のWSUSサーバーを表の通り設定しています。

コンピュータ名 同期するWSUSの設定
WSUSCL01 http://192.168.10.10:8530
WSUSCL02 http://192.168.20.10:8530
f:id:TechnicalAccountEngineer:20190319094154p:plain f:id:TechnicalAccountEngineer:20190319094157p:plain

(1)「自動更新を構成する」設定を「有効」を選択し、「OK」をクリックします。
(2)「インターネット上のWindows Updateに接続しない」設定を「有効」を選択し、「OK」をクリックします。

(1)
f:id:TechnicalAccountEngineer:20190222133540p:plain
(2)
f:id:TechnicalAccountEngineer:20190222133548p:plain

4)WSUS管理の登録確認

WSUSサーバー(アップストリーム)の「Update Services」画面には全4台、WSUSサーバー(ダウンストリーム)の「Update Services」画面には全2台の管理対象コンピュータが表示されていることを確認します。

(1)
f:id:TechnicalAccountEngineer:20190222140923p:plain
(2)
f:id:TechnicalAccountEngineer:20190222140930p:plain

検証内容

1)WSUSサーバー(アップストリーム)の障害検証

WSUSサーバー(アップストリーム)に障害が発生した場合に、WSUSサーバー(ダウンストリーム)からデータのリストアができることを確認していきます。

初めに障害前のWSUSSV01(アップストリーム)とWSUSSV02(ダウンストリーム)のサーバーの統計情報を確認します。

WSUSSV01
f:id:TechnicalAccountEngineer:20190318145031p:plain
WSUSSV02
f:id:TechnicalAccountEngineer:20190318145310p:plain

■WSUSサーバー(アップストリーム)の削除(WSUSSV01)
WSUSサーバー(アップストリーム)に障害が発生した場合を想定し、サーバー(WSUSSV01)を削除します。
サーバー削除については、以下のヘルプを参照してください。
クラウドヘルプ(サーバーの削除)

■ダウンストリームからアップストリームへ変更(WSUSSV02)
WSUSSV02(ダウンストリーム)を(アップストリーム)へ変更します。
(1)サーバーマネージャーで「ツール」の「Windows Server Update Services」をクリックします。
(2)左ペインから「オプション」-「更新元およびプロキシサーバー」をクリックします。
(3)「このサーバーはアップストリームサーバーのレプリカです」のチェックを外します。
(4)「Microsoft Updateから同期する」を選択し、「OK」をクリックします。
(5)「オプション」-「ロールアップのレポート」をクリックします。
(6)「レプリカダウンストリームサーバーから状態をロールアップしない」を選択し、「OK」をクリックします。

(1)
f:id:TechnicalAccountEngineer:20190318150004p:plain
(2)
f:id:TechnicalAccountEngineer:20190318150024p:plain
(3)
f:id:TechnicalAccountEngineer:20190318154200p:plain
(4)
f:id:TechnicalAccountEngineer:20190318154210p:plain
(5)
f:id:TechnicalAccountEngineer:20190318150207p:plain
(6)
f:id:TechnicalAccountEngineer:20190318162647p:plain

■サーバー再作成(WSUSSV01)
WSUSサーバーを再作成します。サーバー作成については、以下のヘルプを参照してください。
クラウドヘルプ(サーバーの作成)
※リストア実施には、WSUSSV02のファイアウォールに以下のINルール設定が必要です。

リソース 許可IPアドレス ポート番号 備考
WSUSSV02 192.168.10.10 8530 WSUSリストア用

■WSUSのインストールと設定(WSUSSV01)
前述と同じ手順でWSUSのインストールとダウンストリームサーバーとしての設定をします。
※ここではグループポリシーの設定は実施しません。
※以下の設定が異なります。
(1)アップストリームサーバーの選択画面では、サーバー名にWSUSSV02のIPアドレスを入力します。
(2)同期スケジュールの設定画面の「1回目の同期」は、WSUSSV01作成時の値を入力します。

(1)
f:id:TechnicalAccountEngineer:20190318150812p:plain
(2)
f:id:TechnicalAccountEngineer:20190318150821p:plain

初期同期の終了後、更新プログラムの数が初めに確認したものと一致していることを確認します。

f:id:TechnicalAccountEngineer:20190318151457p:plain

■アップストリームサーバーへ変更(WSUSSV01)
前述と同じ手順でWSUSSV01をアップストリームサーバーに変更します。
※以下の設定が異なります。
・「オプション」-「ロールアップのレポート」-「レプリカダウンストリームサーバーから状態をロールアップする」を選択し、「OK」をクリックします。

f:id:TechnicalAccountEngineer:20190318160101p:plain

■グループポリシーの設定(WSUSSV01)
前述と同じ手順でグループポリシーの設定と自サーバーを対象にWindows Updateを実施します。

■クライアント同期(WSUSCL01)
WSUSクライアントでWindows Updateを実施します。

■ダウンストリームサーバーへ変更(WSUSSV02)
前述と同じ手順でダウンストリームサーバーとしての設定をします。
※ここではグループポリシーの設定は実施しません。

WSUSSV02(ダウンストリーム)と同期後、WSUSSV01(アップストリーム)のサーバーの統計情報が、障害発生前の状態と一致していることを確認します。

f:id:TechnicalAccountEngineer:20190318151942p:plain

以上でリストア検証は終了となります。

2)WSUSサーバー(ダウンストリーム)へ更新プログラムのオフライン適用

インターネットに接続しているWSUS(アップストリーム)からカタログ情報や更新プログラムをエクスポートし、オフラインのWSUS(ダウンストリーム)に更新プログラムが適用できることを確認していきます。
※オフライン適用に使用する更新プログラムは下記となります。
・ 更新プログラム(KB3150513)
・ 累積更新プログラム(KB4051963)

■更新プログラムのエクスポート
※前提として、エクスポート対象の更新プログラムをインストール済みであること。

(1)WSUSサーバー(アップストリーム)にログインし、管理者権限でコマンドプロンプトを起動します。
適切なディレクトリに移動後、下記コマンドを実行しカタログのメタデータ (更新プログラムのリスト) をエクスポートします。

cd "C:\Program Files\Update Services\Tools"
wsusutil.exe export export.xml.gz export.log

(2)「export.xml.gz」(メタデータ)と「export.log」(ログ)が出力されたことを確認します。
(3)下記2点をコピーします。
1.)WSUSサーバー(アップストリーム)の構築 - (11) で設定したディレクトリにある 「WSUSContents」フォルダ(更新ファイル)
・(2)でエクスポートした「export.xml.gz」(メタデータ)

(1)
f:id:TechnicalAccountEngineer:20190319180456p:plain
(2)
f:id:TechnicalAccountEngineer:20190319180506p:plain
(3)
f:id:TechnicalAccountEngineer:20190319180501p:plain

■更新プログラムをインポート
(1)WSUSサーバー(アップストリーム)にログインし、「更新プログラムのエクスポート」- (3)でコピーした「WSUSContents」フォルダを「1.)WSUSサーバー(アップストリーム)の構築 」- (11) で設定したディレクトリに配置します。
※ここではWSUSサーバー(ダウンストリーム)への配置方法は割愛させて頂きます。
(2)「更新プログラムのエクスポート」- (3)でコピーした「export.xml.gz」(メタデータ)を「C:\Program Files\Update Services\Tools」フォルダ配下へ配置します。
(3)管理者権限でコマンドプロンプトを起動し、適切なディレクトリに移動後、下記コマンドを実行しカタログのメタデータ (更新プログラムのリスト) をインポートします。

cd "C:\Program Files\Update Services\Tools"
wsusutil.exe import import.xml.gz import.log

(4)インポート後、「import」(ログ)が出力されます。
(5)「WSUS」を起動し、「WSUSSV02」の画面から「承認された更新プログラム」を確認します。
(6)「WSUSSV02」-「更新プログラム」-「すべての更新プログラム」から対象の更新プログラムを選択し、「右クリック」-「承認」をクリックします 。
(7)「更新プログラムの承認」から対象のサーバーを選択して「OK」をクリックします。
(8)「承認の進行状況」から「承認が正常に完了しました」を確認して「閉じる」をクリックします。
(9)「WSUSSV02」の画面から「承認された更新プログラム」を確認し、統計数が増えていることを確認します。

(1)
f:id:TechnicalAccountEngineer:20190319180512p:plain
(2)
f:id:TechnicalAccountEngineer:20190319180517p:plain
(3)
f:id:TechnicalAccountEngineer:20190225181423p:plain
(4)
f:id:TechnicalAccountEngineer:20190319180525p:plain
(5)
f:id:TechnicalAccountEngineer:20190319173219p:plain
(6)
f:id:TechnicalAccountEngineer:20190319173240p:plain
(7)
f:id:TechnicalAccountEngineer:20190319173100p:plain
(8)
f:id:TechnicalAccountEngineer:20190319173105p:plain
(9)
f:id:TechnicalAccountEngineer:20190319173209p:plain

以上で、WSUSサーバー(ダウンストリーム)へ更新プログラムのオフライン適用の検証は終了となります。 特に問題なく実施が出来たことを確認できました。

まとめ

VPN接続を用いてリージョンを跨いだWSUS構成を検証しました。
WSUSはチェーン化し、WSUSサーバー(アップストリーム)障害時を想定したリージョン単位の冗長化についても検証・確認ができました。
複数台のWindowsサーバーシステムでのパッチ管理方式の参考になれば幸いです。

注意事項

  • WSUSサーバーとクライアント間および同期するWSUSサーバー間の通信はSSL通信にすることも可能です。システムごとの要件に応じて設定してください。
  • 本記事については検証結果の1つとなります。実際に検討される場合は、事前にそれぞれの要件を鑑みて実装するか確認してください。
  • 本記事ではOS上の操作についても記載していますが、ニフクラではOS以上はご利用者様の責任範囲となりますのでご留意ください。