Windows Server 2019 ハードニングガイド:Microsoft セキュリティベースライン(SCT)とスタンドアロン適用手順

Windows Server 2019 を安全に運用するには、個別の設定ノウハウよりも「公式の基準(ベースライン)」を起点にするのが近道です。本記事では Microsoft の Security Baseline と Security Compliance Toolkit を使い、GPO が使えないスタンドアロン環境でもローカルポリシーで段階的にハードニングする方法をまとめます。

目次

Windows Server 2019 のハードニングで「まず公式」を押さえるべき理由

Windows Server 2019 のハードニングは、闇雲に設定を締めると運用障害につながりやすい一方で、何もしないと攻撃面(Attack Surface)が広いままになりがちです。そこで役に立つのが、Microsoft が推奨する「セキュリティ ベースライン(Security Baseline)」です。

セキュリティ ベースラインは、Microsoft のセキュリティ エンジニアリングや製品チーム、パートナー、顧客フィードバックなどを踏まえてまとめられた推奨設定の集合で、組織ごとの事情に合わせて“出発点”として調整する前提のものです。

実務的には、次の順で進めると事故が減ります。

  • 公式ベースラインで「基準点」を作る(どこまで締めるかの共通認識)
  • サーバーの役割(AD DS / ファイル / IIS など)に応じて、影響が出る設定を洗い出す
  • 検証 → 段階適用 → 監査ログ・運用ログで影響確認

結論:Windows Server 2019 の公式ベースラインは「Security Compliance Toolkit」から入手できる

Windows Server 2019 の公式推奨設定(ベースライン)を探すとき、まず見るべき配布元は Microsoft の「Microsoft Security Compliance Toolkit(SCT)」です。SCT は、推奨ベースラインのダウンロードに加えて、比較・検証・適用に使えるツール群(Policy Analyzer、LGPO など)も含むパッケージです。

資料・ツール何ができるか主な用途公式リンク
Microsoft Security Compliance Toolkit(SCT)Windows/Server 各種ベースラインとツールをまとめて提供ダウンロード元(まずここ)Microsoft Download Center(SCT)
SCT ガイド(Microsoft Learn)SCT/Policy Analyzer/LGPO などの概要と使い方ツールの役割理解、運用手順の整理SCT ガイド
セキュリティ ベースライン ガイド(Microsoft Learn)ベースラインの考え方、入手方法、適用の前提「なぜベースラインなのか」を説明する根拠にセキュリティ ベースライン ガイド
Windows 10 v1809 / Windows Server 2019 Baseline(解説ブログ)WS2019 ベースラインに同梱される成果物の説明(Excel/PolicyRules/スクリプト等)中身の構成理解、Member Server / DC の違い把握Security baseline (FINAL) for Windows 10 v1809 and Windows Server 2019

Windows Server 2019 Security Baseline は「Windows 10 v1809 と同梱」で提供される

Windows Server 2019 のベースラインは、SCT のダウンロード一覧の中で「Windows 10 Version 1809 and Windows Server 2019 Security Baseline.zip」として提供されています。SCT のページからダウンロード項目を選択して入手します。

また、Microsoft の解説では、このベースラインは Windows 10 1809(October 2018 Update)と Windows Server 2019 のセキュリティ構成ベースラインとして公開されており、パッケージには適用・比較・ドキュメントが同梱されます。

ベースラインの「中身」:GPO 一式だけではなく、検証・適用のための材料が揃っている

Windows 10 v1809 / Windows Server 2019 ベースライン(zip)には、単に「推奨値の一覧」だけでなく、運用に必要な成果物が含まれます。代表的な同梱物は次のとおりです。

  • インポート可能な GPO(バックアップ形式):Active Directory 環境で GPO として取り込める形
  • ローカル ポリシーへ適用するための PowerShell スクリプト:スタンドアロン適用の入口になる
  • カスタム ADMX:ポリシー設定の管理・表示のため
  • Excel のドキュメント(設定一覧):推奨値の確認・差分管理に使える
  • Policy Analyzer 用ファイル(.PolicyRules):ベースラインと現在設定の比較に使える
  • 差分資料(旧ベースラインとの比較、Server 2016→2019 新規設定一覧など):世代差の把握に役立つ

特に重要なのが、Excel の一覧が「Windows Server 2019 Member Server(メンバーサーバー)」と「Windows Server 2019 Domain Controller(ドメインコントローラー)」で推奨値を分けて示している点です。さらに、AD ドメイン参加が前提の設定は色分けされ、非ドメイン参加(=スタンドアロン)では適用を避けるべきものが判別できるようになっています。

ドメイン参加あり/なしで、ベースラインの使い方は変わる

ベースラインは「GPO 前提」と誤解されがちですが、SCT 自体が“Active Directory で広く適用する”だけでなく、“ローカル ポリシーとして個別に適用する”ユースケースも想定しています。

適用方式向いている環境メリット注意点
AD の GPO として適用ドメイン参加、OU で管理できる集中管理・一括適用・例外管理がしやすい影響範囲が広いので、必ず検証 OU から段階展開
LGPO.exe でローカルへ適用スタンドアロン、ワークグループ、閉域環境ドメイン不要で“ベースライン準拠”に寄せられるローカルの変更管理が課題。バックアップと手順化が必須
gpedit.msc / secpol.msc で手作業台数が少ない、検証環境設定の意図を理解しながら進めやすい人手ミスが出やすい。チェックリスト化・二重チェック推奨
secedit / auditpol / PowerShell で自動化繰り返し展開、標準化したい再現性が高い。差分監査もしやすい対象設定の切り分け(どれを自動化するか)設計が必要

スタンドアロンでも実現できる:ローカル ポリシーでのハードニング手順

まず押さえる:スタンドアロンの「ローカル ポリシー」3兄弟

ツール主に触れる範囲ポイント
ローカル グループ ポリシー(gpedit.msc)管理用テンプレート、Windows の各種ポリシー「GPO で設定するもの」は多くがここで操作できる
ローカル セキュリティ ポリシー(secpol.msc)アカウント ポリシー、監査、ユーザー権利、セキュリティ オプション等“締めると壊れやすい”設定も多いので影響確認が重要
LGPO.exe(SCT 同梱)ローカル GPO のバックアップ/復元、GPO バックアップの注入非ドメインでも一括適用でき、標準化に強い

LGPO.exe は、非ドメイン参加のシステム管理にも役立つローカル グループポリシー管理ユーティリティとして説明されており、GPO バックアップやセキュリティテンプレート、監査設定などからローカルポリシーへ取り込めます。

方法1:LGPO.exe で「ベースライン(GPOバックアップ)」をローカルに注入する

スタンドアロン環境で最も現実的なのは、SCT の LGPO.exe を使って、ベースラインの GPO バックアップをローカルへ適用する方法です。LGPO.exe は、GPO バックアップ配下から設定を取り込み、ローカルに適用できます。

手順の全体像

  1. SCT から「Windows 10 Version 1809 and Windows Server 2019 Security Baseline.zip」と「LGPO.zip」を入手して展開する
  2. 適用前に、現在のローカルポリシーをバックアップする(ロールバック用)
  3. ベースラインの GPO バックアップをローカルへ適用する
  4. gpupdate、再起動(必要に応じて)
  5. Policy Analyzer で差分確認、イベントログで影響確認

適用前バックアップ(例)

LGPO.exe はローカルポリシーを GPO バックアップとして出力できます。

REM 管理者として実行
REM 事前バックアップ(ロールバック用)
LGPO.exe /b C:\Hardening\Backup\Before

ベースライン適用(例)

LGPO.exe の /g オプションは「指定パス配下にある GPO バックアップから設定をインポートして適用」します。ベースライン zip を展開したフォルダ内の “GPO バックアップが置かれている場所” を指定します(配布物の構造はベースラインにより異なるため、展開後にフォルダ名を確認してください)。

REM 管理者として実行
REM ベースライン(GPOバックアップ)をローカルに適用
LGPO.exe /g C:\Hardening\Baselines\WS2019\GPO_Backups

REM 反映
gpupdate /force 

監査(高度な監査ポリシー)も一緒に扱える

LGPO.exe は、監査設定(Advanced Auditing)の CSV を適用するオプションも用意されています(/a や /ac など)。ベースライン側に監査のバックアップファイルが含まれている場合、ローカルへ適用するルートになります。

重要:いきなり本番適用しない

  • まずは検証機(同一ロール・同一アプリ)で適用し、稼働確認
  • Member Server 用と Domain Controller 用を取り違えない(Excel で区別される)
  • 非ドメイン参加に適用すべきでない設定がある(色分け等で判別)

方法2:gpedit.msc / secpol.msc で “ベースラインに寄せていく”

台数が少ない、または「設定の意味を理解しながら進めたい」場合は、ベースラインの Excel を見ながら手作業で寄せるやり方も現実的です。

手作業のコツは、ベースラインをそのまま “全コピペ” するのではなく、以下の粒度で進めることです。

  • 通信経路の入口:Windows ファイアウォール、RDP 設定、不要ポートの遮断
  • アカウントと権限:ローカル管理者の棚卸し、不要アカウント無効化、特権割り当ての最小化
  • 監査ログ:ログオン・権限使用・ポリシー変更などの記録強化(後追いできる状態を先に作る)
  • 古いプロトコル:SMBv1、古い TLS、不要な匿名アクセスなどの整理

ローカル セキュリティ ポリシー(secpol.msc)でよく触る領域

  • アカウント ポリシー(パスワード、アカウント ロックアウト)
  • ローカル ポリシー(監査ポリシー、ユーザー権利の割り当て、セキュリティ オプション)
  • イベント ログ(ログサイズや保持)
  • Windows Defender ファイアウォール(プロファイル別の基本方針)

ここでのポイントは「サーバーの役割次第で、締めると壊れる設定が変わる」ことです。たとえば、ファイルサーバーと IIS サーバーでは必要な通信や権限が違います。ロール別に“許可すべきもの”を洗い出し、禁止を増やしていく方が安定します。

方法3:セキュリティ テンプレート(secedit)やコマンドで “再現性” を上げる

スタンドアロンが複数台ある場合、手作業は必ずブレます。再現性を重視するなら、次のような手段を組み合わせるのがおすすめです。

  • secedit:セキュリティテンプレート(.inf)ベースで適用・監査しやすい
  • auditpol:監査カテゴリの有効化をコマンドで統一
  • PowerShell:レジストリやサービス構成、機能の有効/無効などを標準化

ただし、ベースラインには「ADMX ポリシーで管理される設定」「レジストリ(registry.pol)として配布される設定」「監査(Audit.csv)」「セキュリティテンプレート(GptTmpl.inf)」など複数の表現が混在します。LGPO.exe がそれらを取り込めるのは、まさにこの混在を現場で扱いやすくするためです。

Policy Analyzer で “今の設定” を可視化して、事故を減らす

ハードニングで失敗しやすいのは、

  • 「何を変えたか」が追えなくなる
  • いつの間にか別の人が設定を変えて“逸脱”している
  • サーバーごとに微妙に設定が違う

という運用面です。

SCT の Policy Analyzer は、複数の GPO セットの差分、重複や矛盾、そしてローカルポリシーやローカルレジストリとの比較、Excel への出力などを支援するツールとして説明されています。

スタンドアロン環境でも、次の使い方ができます。

  • ベースライン(.PolicyRules)を読み込む
  • 対象サーバーのローカル設定と比較して “差分” を出す
  • 差分を Excel に出力して、レビュー・承認・変更履歴として残す

実務で効く:Windows Server 2019 ハードニングの優先順位(チェックリスト)

ベースラインは最終的に Excel の設定値で確認・適用するのが正道ですが、現場で最初に押さえると効果が出やすい項目を「優先順位」で整理します。ここを先に固めると、残りの細かい設定調整が楽になります。

優先度領域やること(例)狙い注意点
高パッチ/更新更新適用の運用設計(定期・緊急)、再起動計画、更新失敗時の復旧手順既知脆弱性を放置しない業務影響が出るので、メンテ枠・段階展開・ロールバックをセットで
高リモートアクセスRDP を必要最小限に限定(許可元IP、VPN/RD Gateway、NLA、管理者グループ制限)侵入経路の縮小運用保守の導線を残す(緊急時に詰まない設計)
高ファイアウォール受信は原則拒否→必要ポートのみ許可、不要ルール削減、ログ有効化攻撃面の削減ロール追加・アプリ追加で必要通信が増えるため、例外は台帳管理
高ローカル管理者管理者の棚卸し、不要なローカル管理者排除、管理用アカウント分離横展開リスク低減運用担当の作業フロー変更が必要になりやすい
中監査ログログオン/権限使用/ポリシー変更などを記録、イベントログ容量と保持を調整事故時の追跡性確保ログ量が増える。保管先とローテーション設計が必要
中古いプロトコルSMBv1 無効、弱い暗号/古い TLS の整理(必要性を確認しつつ)既知の弱点を塞ぐレガシー機器・古いアプリが依存している場合がある
中サービス/機能不要な役割・機能・サービス停止、不要な管理共有/リモート機能の見直し攻撃面の削減“止めたら困る”を見落とすと復旧が面倒。段階的に

「スタンドアロンだからこそ」注意したいポイント

非ドメイン参加で適用すべきでない設定が混ざることがある

Windows Server 2019 ベースラインのドキュメント(Excel)では、非ドメイン参加のシステムには適用すべきでない設定が区別できるようになっています。スタンドアロン環境では、この区別を無視して一括適用すると、認証や管理の導線が詰まるリスクがあります。

Member Server と Domain Controller を取り違えない

ベースラインは “WS2019 Member Server” と “WS2019 DC” で推奨値が異なる前提で提供されます。ドメインコントローラーにメンバーサーバー向けの設定を入れる、またはその逆は、トラブルの原因になりやすいので最優先で避けます。

「適用」より先に「戻せる」状態を作る

ハードニングは“正しい設定”でも、環境依存でアプリが止まることがあります。スタンドアロンほど復旧が大変なので、必ず以下を先に用意します。

  • 適用前のローカルポリシー バックアップ(LGPO.exe /b)
  • 変更手順書(適用コマンド、適用順、再起動要否)
  • 影響確認項目(ログオン、バックアップ、監視、アプリ疎通)

Server 2016 の資料が役立つ場面:差分を見て“考え方”を継承する

「Server 2019 だけの実務情報が見つからない」という場合でも、近い世代の Server 2016 を参照しながら整理するのは有効です。理由は単純で、Windows Server のセキュリティ設定は“世代で完全に別物”というより、積み上げ型で増減していくからです。

Windows Server 2019 ベースラインには、Server 2016 と比較した差分資料(ベースライン差分、Server 2016→2019 の新規設定一覧)が含まれると説明されており、世代差を理解しながら設計する材料になります。

ベースライン以外の「実務向けチェックリスト」も併用すると抜けが減る

Microsoft のベースラインは最優先の出発点ですが、要件によっては、他の標準やチェックリストが役に立ちます。例えば、監査対応や外部規格に寄せる必要がある場合です。

チェックリスト/標準特徴向いているケース参考リンク
CIS Benchmarks(Windows Server)コミュニティ合意で作られたセキュア設定ガイド第三者基準での説明が必要、要件が厳しめCIS Microsoft Windows Server Benchmarks
DISA STIGDoD 向けの厳格な実装ガイド。NIST 800-53 などを背景に要求が構成される強い統制が必要、厳格な監査や規制対応DoD Cyber Exchange(STIGs)
NIST SP 800-123サーバー一般のセキュリティ(選定〜運用まで)の考え方OS/ミドル/運用を横断して整理したいNIST SP 800-123(PDF)

注意点として、CIS や STIG は Microsoft ベースラインより厳しい(または前提が異なる)ことが多く、現場にそのまま流し込むと運用が破綻することがあります。まずは Microsoft ベースラインで土台を整え、必要に応じて“上乗せ”する発想が扱いやすいです。

最後に:Windows Server 2019 ハードニングを成功させる「運用の型」

設定内容そのものより、運用の型が結果を左右します。特にスタンドアロン環境では、次の型を作ると継続しやすくなります。

フェーズやること成果物
現状把握現在のローカルポリシーをバックアップし、差分比較の土台を作るLGPO バックアップ、現状メモ
ベースライン選定Member Server / DC を選び、非ドメイン適用不可の設定を除外方針にする適用方針(除外リスト)
検証検証機に適用し、アプリ疎通・運用作業・監視を確認検証結果、問題と対処
段階適用本番に段階展開。変更点を記録し、戻し手順もセットで運用変更記録、ロールバック手順
継続監査Policy Analyzer 等で逸脱を定期点検し、更新・追加要件に合わせて見直す差分レポート、定期点検ログ

ベースラインは「一度当てたら終わり」ではなく、更新(パッチ・構成変更・アプリ追加)に合わせて“守れる形”にメンテするものです。Microsoft のベースラインと SCT(Policy Analyzer / LGPO)を中心に、標準化→例外管理→継続監査の流れを作ると、Windows Server 2019 のハードニングは現実的に回り始めます。

この記事を書いた人

実務の現場で詰まりがちなポイントを地図にするITブログ「IT trip」を運営。Windows/Office(Teams・Excel)からSQL、サーバ運用、ガジェットまで、再現性のある手順と“なぜそうなるか”を丁寧に解説します。読んだらすぐ試せること、そして迷った人の次の一歩が見えることを大切にしています。

コメント

コメントする

目次