MENU

Windowsサーバーのハードニング入門|情シス1人でもできるOS強化とセキュリティ設定チェックリスト

管理しているWindowsサーバーが「インターネットにつながっている」だけで、日々無数のスキャンや攻撃プローブにさらされています。IPA(情報処理推進機構)の調査でも、ランサムウェアや不正アクセスの侵入口として「OSのデフォルト設定や未適用パッチ」が繰り返し挙げられています。

この記事では、Windowsサーバーのハードニング(堅牢化)について、具体的なPowerShellコマンドと設定手順を交えて解説します。インフラエンジニアや情シス担当者が明日から実践できるチェックリスト形式で進めますので、ぜひ参考にしてください。

Windowsサーバーのハードニング入門|情シス1人でもできるOS強化とセキュリティ設定チェックリスト - 解説

目次

Windowsサーバーのハードニングとは?

ハードニング(Hardening)とは、OSやアプリケーションを「攻撃者が悪用しにくい状態」に設定変更・最小化する作業です。デフォルト状態のWindowsサーバーには、管理の利便性を優先した設定が多く含まれており、そのまま本番環境で稼働させるのはリスクを伴います。

ハードニングの目的を整理すると次の通りです。

・攻撃面(アタックサーフェス)の削減: 使っていないサービスや機能を無効化し、攻撃者が入り込める入り口を減らす
・設定ミスによるリスクの排除: デフォルト設定の弱点を修正し、既知の攻撃パターンをブロックする
・監査ログの確保: インシデント発生時の追跡と証拠保全ができる状態を作る

Linuxサーバーと同様に、Windowsサーバーでもハードニングは「導入時の一度限りの作業」ではなく、パッチ適用サイクルと組み合わせた継続的なプロセスです。

攻撃者が狙う「デフォルト設定の弱点」

攻撃者の視点から見ると、Windowsサーバーのデフォルト状態には侵入や横移動(ラテラルムーブメント)を助ける設定が残っていることがあります。代表的なものを確認しましょう。

・SMB v1(Server Message Block v1): WannaCryやEternalBlueで悪用された脆弱プロトコル。Windows Server 2008 R2以前の環境ではデフォルトで有効なケースがある
・Print Spoolerサービス: 2021年に発覚した「PrintNightmare」(CVE-2021-1675)など、権限昇格の踏み台になりやすいサービス。プリントサーバーでなければ無効にすべき対象
・Administratorアカウントの名称: 「Administrator」のままだと、辞書攻撃や総当たり攻撃で名前を先読みされるリスクがある
・Guestアカウント: 環境によって有効のままになっていることがある。確認と無効化が必要
・Remote Registryサービス: ネットワーク越しにレジストリを操作できるため、攻撃者に悪用されるリスクが高い
・WDigest認証: Windows Server 2012 R2以前では有効になっている場合があり、Mimikatzなどのツールで平文パスワードを取得されるリスクがある
・古いTLSバージョン(TLS 1.0/1.1): 暗号強度が不十分であり、ダウングレード攻撃の経路になる

具体的な強化手順

1. SMB v1の無効化

最初に実施すべき最重要設定です。PowerShellを管理者権限で実行します。

# SMB v1の現在の状態を確認 Get-SmbServerConfiguration | Select EnableSMB1Protocol # SMB v1を無効化(デフォルト値: $true → $false に変更) Set-SmbServerConfiguration -EnableSMB1Protocol $false -Confirm:$false # 反映確認 Get-SmbServerConfiguration | Select EnableSMB1Protocol

2. 不要なサービスの停止と無効化

Print SpoolerとRemote Registryは、プリントサーバーや特定の管理用途でない限り無効化します。

# Print Spoolerの状態確認 Get-Service -Name "Spooler" | Select Name, Status, StartType # Print Spoolerを停止して無効化(プリントサーバーでない場合のみ) Stop-Service -Name "Spooler" -Force Set-Service -Name "Spooler" -StartupType Disabled # Remote Registryを停止して無効化 Stop-Service -Name "RemoteRegistry" -Force Set-Service -Name "RemoteRegistry" -StartupType Disabled

3. WDigest認証の無効化

古いOSでは有効になっている場合があり、資格情報の平文取得を防ぐために必ず確認します。

# WDigestを無効化(UseLogonCredential=0 に設定) # デフォルトでキーが存在しない環境では新規作成される Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest" ` -Name "UseLogonCredential" -Value 0 -Type DWORD # 設定確認 Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest" ` -Name "UseLogonCredential"

4. アカウントとパスワードポリシーの強化

Administratorアカウントのリネームと、ゲストアカウントの無効化を実施します。

# Administratorアカウントをリネーム(例: "sysadm01"に変更) Rename-LocalUser -Name "Administrator" -NewName "sysadm01" # Guestアカウントが有効な場合は無効化 Disable-LocalUser -Name "Guest" # アカウント一覧で確認 Get-LocalUser | Select Name, Enabled, PasswordRequired # パスワードポリシーの設定(コマンドプロンプトから実行) # net accounts /minpwlen:14 # 最小パスワード長: 14文字 # net accounts /maxpwage:90 # 最大有効期間: 90日 # net accounts /lockoutthreshold:5 # ロックアウトしきい値: 5回 # net accounts /lockoutduration:30 # ロックアウト期間: 30分 # net accounts # 設定確認

5. Windowsファイアウォールの有効化確認

全プロファイル(ドメイン・プライベート・パブリック)でファイアウォールが有効になっていることを確認します。

# 全プロファイルのファイアウォール状態確認 Get-NetFirewallProfile | Select Name, Enabled, DefaultInboundAction, DefaultOutboundAction # 全プロファイルを有効化 Set-NetFirewallProfile -Profile Domain,Private,Public -Enabled True # 受信許可ルールの一覧(有効なものだけ確認) Get-NetFirewallRule | Where-Object {$_.Enabled -eq "True" -and $_.Direction -eq "Inbound"} | ` Select DisplayName, Profile | Sort DisplayName

6. 監査ポリシーの有効化

インシデント発生時の追跡のために、主要な監査カテゴリを有効化します。Windowsイベントログの具体的な分析方法はあわせて参照してください。

# 現在の監査ポリシーを確認 auditpol /get /category:* # ログオン/ログオフ監査を有効化 auditpol /set /subcategory:"ログオン" /success:enable /failure:enable auditpol /set /subcategory:"ログオフ" /success:enable /failure:enable # アカウント管理監査を有効化 auditpol /set /subcategory:"ユーザー アカウント管理" /success:enable /failure:enable # 特権の使用監査を有効化 auditpol /set /subcategory:"機密性の高い特権の使用" /success:enable /failure:enable # 設定確認 auditpol /get /category:"ログオン/ログオフ"

7. TLS 1.0/1.1の無効化

Webサービスやリモート管理に古いTLSが使われている場合は無効化します。変更後はOSの再起動が必要です。事前に連携するサービスへの影響を確認してから実施してください。

# TLS 1.0(サーバー側)を無効化 $path = "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Server" New-Item -Path $path -Force Set-ItemProperty -Path $path -Name "Enabled" -Value 0 -Type DWORD Set-ItemProperty -Path $path -Name "DisabledByDefault" -Value 1 -Type DWORD # TLS 1.1(サーバー側)も同様に無効化 $path = "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Server" New-Item -Path $path -Force Set-ItemProperty -Path $path -Name "Enabled" -Value 0 -Type DWORD Set-ItemProperty -Path $path -Name "DisabledByDefault" -Value 1 -Type DWORD # 変更後はOS再起動が必要

中小企業でも今日からできること

フル実装が難しい場合でも、次の優先5項目から始めるだけで攻撃リスクを大幅に下げられます。

・SMB v1の無効化: 5分で完了。WannaCry系攻撃を即座にブロックできる最重要設定
・Administratorアカウントのリネーム: 辞書攻撃・ブルートフォースへの即効策
・Windows Updateの自動適用確認: 既知の脆弱性パッチを確実に当てる。パッチ管理の基礎もあわせて参照
・Print Spoolerの無効化: プリントサーバー以外では停止一択
・ログオン失敗の監査有効化: 不正アクセス試行を検出するための最低限の証跡確保

Active Directoryドメイン環境では、グループポリシー(GPO)を使って複数サーバーに設定を一括展開できます。個別サーバーへの手動設定より確実で、設定のドリフト(意図しない設定変更)も防ぎやすくなります。ADセキュリティ全般については中小企業のActive Directoryセキュリティ対策をご参照ください。

また、ハードニングは「やりっぱなし」では効果が維持できません。定期セキュリティ点検チェックリストに組み込んで、月次・四半期ごとに設定の状態を確認する習慣をつけることをおすすめします。

よくある誤解と注意点

・「ファイアウォールがあれば内部は安全」は通用しない: フィッシングや標的型攻撃経由で侵入された後は、内部での横移動が始まります。ハードニングは境界防御の「内側の壁」として機能します
・変更前には依存関係を必ず確認する: Print SpoolerやSMB v1の無効化は、連携しているアプリケーションや業務機器に影響することがあります。テスト環境での事前確認を怠らないこと
・「ハードニングすれば100%安全」ではない: ハードニングはリスクを下げる手段であり、EDR・ログ監視・最小権限の原則の実践と組み合わせた多層防御が重要です
・Linuxサーバーとの混在環境では両方を管理する: WindowsとLinuxが混在するハイブリッド環境では、それぞれのOSに適したハードニングを実施する必要があります。Linuxのセキュリティ設定については、姉妹サイトLinuxMaster.JPで詳しく解説しています

Windowsサーバーのハードニング入門|情シス1人でもできるOS強化とセキュリティ設定チェックリスト - まとめ

本記事のまとめ

設定項目 主な手順・コマンド 優先度
SMB v1の無効化 Set-SmbServerConfiguration -EnableSMB1Protocol $false 最高(即実施)
Print Spooler無効化 Stop-Service / Set-Service Disabled 高(依存確認後)
WDigest認証無効化 レジストリ UseLogonCredential=0 高(古いOS必須)
Administratorリネーム Rename-LocalUser 高
パスワードポリシー強化 最小長14文字・ロックアウト5回 高
監査ポリシー有効化 auditpol /set(ログオン・アカウント管理) 中(証跡確保)
TLS 1.0/1.1無効化 SCHANNELレジストリ変更 中(互換性確認後)

Windowsサーバーのハードニングは、難解な専門知識が要る特別な作業ではありません。PowerShellコマンドと設定確認の積み重ねで、攻撃者が狙いやすいデフォルト設定の弱点を一つずつ塞いでいけます。まずSMB v1の無効化とAdministratorアカウントのリネームから着手し、定期メンテナンスに少しずつ組み込んでいきましょう。

PR

情報セキュリティ白書2025(IPA)

IPAが毎年発行する国内外のセキュリティ動向をまとめた定番資料。Windowsサーバーを含むシステム全体の脅威動向や対策の基準を把握するのに役立ちます。情シス担当者の年間リファレンスとして活用できます。

関連記事をもっと読む

同じテーマの記事をまとめています。あわせて読みたい記事はこちらからご覧いただけます。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

目次