パスワードの強度を高めるうえで、文字数の拡張はとても重要です。しかし、Windows Server 2016や2019では、グループポリシーで15文字以上に設定できないという声も聞かれます。そこで今回は、この問題の原因と対処法について、実践的な手順を交えながら詳しく解説していきます。
Windows Serverにおけるパスワード長の背景
Windowsは長らくNT系のOSとして進化を続けてきましたが、古いバージョンとの互換性や歴史的なハッシュ方式(LMハッシュ)などの影響で、パスワード長に制限が生じる場面がありました。特にドメイン環境下では、ドメインコントローラーのバージョンやドメイン機能レベル、さらに更新プログラムの有無によって設定可能なパスワードの長さが変わる場合があります。
NT系OSの歴史と制限の背景
Windows NT系OSは、当初からビジネス向けに設計されたセキュリティ機能を備えていました。しかし、Windows NT 4.0やWindows 2000などの初期バージョンでは、古いハッシュ方式であるLMハッシュに対応する関係上、パスワードが14文字を超えると整合性を保つのが難しくなるといった歴史的背景があります。
こうした制限は徐々に撤廃されてきましたが、Windows Server 2016や2019の特定のビルドや未適用の累積アップデートにより、グループポリシー画面上では14文字までしか選択肢が出ないケースが報告されています。
LMハッシュの廃止と現在のパスワードポリシー
LMハッシュはWindows 7以降のクライアント向けOSや、Windows Server 2008以降ではデフォルトで無効化されている場合が多いです。そのため、原則としてパスワード最小長は14文字という制限は事実上緩和されているものの、管理ツールのUIが古い制限を反映してしまうパターンが残っています。
Windows Server 2016・2019で15文字以上設定できない理由
Windows Server 2016や2019でも、グループポリシー管理コンソール(GPMC)から「パスワードの最小長」を設定しようとすると、選択肢が14文字までに限られることがあります。実際にはもっと長いパスワードを強制する仕組みはOS上に存在するのですが、以下のような要因が絡んでいるケースが多いです。
グループポリシー管理コンソールのUI制限
グループポリシー管理コンソールのUIが、古い仕様の上限(14文字)を反映してしまい、選択肢に15文字や16文字といった項目が表示されない場合があります。これは必ずしも設定自体が不可能というわけではなく、UI側の制約でオプションが見えないだけという可能性も考えられます。
更新プログラム(累積アップデート)の適用漏れ
Windows Server 2016や2019向けには、パスワード長の監査機能や設定画面の仕様をアップデートする累積アップデートが提供されている場合があります。もしサーバーに最新の更新プログラムが適用されていない場合、ポリシー設定画面で14文字までしか選択できないままになることがあるため、まずはWindows UpdateやWSUSなどを通じて最新の状態にアップデートしてみるとよいでしょう。
ドメイン機能レベルの影響
Active Directoryドメインにおいて、ドメイン機能レベルが古いままの場合、パスワードポリシーの高度な機能や新しい設定が反映されない可能性があります。
- Windows Server 2008ドメイン機能レベル
- Windows Server 2008 R2ドメイン機能レベル
- Windows Server 2012ドメイン機能レベル
- Windows Server 2012 R2ドメイン機能レベル
- Windows Server 2016ドメイン機能レベル
など、ドメイン機能レベルを段階的に上げることで、新しい機能が利用できるようになる場合があります。ただし、一度上げたドメイン機能レベルは基本的に元に戻せないため、慎重に実施する必要があります。
細分化されたパスワードポリシー(Fine-Grained Password Policy)の活用
もしグループポリシーの設定項目で15文字以上の指定が難しい場合、Active Directoryの細分化されたパスワードポリシー(Fine-Grained Password Policy、以下FGPPと略)を利用することで回避できるケースがあります。
FGPPとは
FGPPは、Windows Server 2008以降のドメイン機能レベルで利用可能になった機能で、従来の「Default Domain Policy」1つだけではなく、ユーザーやグループに対してより細やかなパスワード要件を設定できる仕組みです。
これにより、特定のグループに対してはより厳密なパスワードポリシーを適用し、一般ユーザーには標準のポリシーを適用するといった運用が可能になります。
従来のドメインベースポリシーとの違い
従来のドメインポリシーでは、ドメイン全体に一律のパスワード要件が適用されます。一方FGPPは、セキュリティグループや個別のユーザー単位でパスワードポリシーを変えられる点が特徴です。たとえば、管理者アカウントはより厳格なパスワード長と複雑性を設定し、一般ユーザーは標準的な要件に留めることができます。
管理単位(PSO)について
FGPPを設定する際には、「Password Settings Object(PSO)」という専用のオブジェクトを作成します。PSOにパスワード最小長や複雑性、有効期限などの設定を行い、指定したセキュリティグループやユーザーにリンクすることで、細分化されたポリシーが適用されます。
FGPPの設定手順
Windows Server 2012以降では、Active Directory管理センター(AD Administrative Center)を用いてGUIベースで比較的簡単に設定できます。以下は大まかな手順例です。
Active Directory管理センターでの設定
- Active Directory管理センターを起動し、左ペインでドメイン名を展開します。
- 「システム」コンテナ配下にある「Password Settings Container」を選択します。
- 右クリックから「新規」→「Password Settings」を選択し、新しいPSOを作成します。
- Password Settings Object (PSO) のプロパティ画面で以下の項目を設定します。 項目 意味 例 Password Settings Name PSOの名前 StrictPWPolicy Precedence 優先度(数値が小さいほど高優先度) 1 Minimum Password Length パスワード最小長 15 Password must meet complexity req. 複雑性ルールの適用 チェックを入れる(推奨) Maximum Password Age パスワードの有効期限 30日など
- 「Directly Applies To」の欄で、適用したいセキュリティグループまたはユーザーを選択・追加します。
- 作成したPSOを保存し、Active Directoryにレプリケーションが行き渡るのを待ちます。
PowerShellでの設定
よりスクリプトベースで管理する場合、PowerShellのActiveDirectoryモジュールを使用してPSOを作成することも可能です。以下は一例です。
Import-Module ActiveDirectory
New-ADFineGrainedPasswordPolicy `
-Name "FGPP_15Chars" `
-Precedence 1 `
-MinPasswordLength 15 `
-ComplexityEnabled $true `
-PasswordHistoryCount 24 `
-MaxPasswordAge (New-TimeSpan -Days 60) `
-MinPasswordAge (New-TimeSpan -Days 1)
Add-ADFineGrainedPasswordPolicySubject `
-Identity "FGPP_15Chars" `
-Subjects "CN=Administrators,OU=Groups,DC=example,DC=com"
上記の例では、MinPasswordLength
を15に設定しています。また、適用先グループとして「Administrators」グループを例示しており、複雑性要件やパスワード履歴なども設定しています。
パスワードポリシー設定のチェック方法
パスワードポリシーが正しく適用されているかどうかを確認するには、いくつかの方法があります。GUIベースとコマンドラインベース、どちらも活用すると確実です。
コマンドラインでの確認
- net accountsコマンド
「net accounts」を実行すると、ドメインコントローラーに設定されたパスワードポリシーの情報が表示されます。ただし、FGPPが適用されるユーザーに対して個別の設定を反映している場合、net accountsコマンドの結果はデフォルトドメインポリシーの内容を示すことに留意しましょう。 - secedit /exportコマンド
ローカルセキュリティポリシーをエクスポートして詳細を確認する方法もありますが、ドメイン全体のポリシーを反映するにはドメインコントローラー側での設定やFGPPの適用状況を合わせて調査する必要があります。
GUIでの確認
- Active Directory管理センター
「Password Settings Container」の配下にあるPSOのプロパティを開くと、設定したパスワード最小長や複雑性などが確認できます。 - グループポリシーの結果のセット(RSoP、gpresult)
ドメインポリシーが適用された結果をgpresultコマンドやRSoPで確認する方法があります。ただし、FGPPはグループポリシーではなくActive Directoryオブジェクトとして管理されるため、RSoPに直接は反映されない点に注意が必要です。
パスワードの運用管理におけるベストプラクティス
パスワード長を15文字以上に引き上げるだけでなく、運用面からもセキュリティを高める工夫が求められます。以下のベストプラクティスを参考にしてください。
定期的なパスワード監査
パスワードポリシーを厳格に設定していても、現場で適切に運用されていないとセキュリティリスクは高まります。定期的に監査ツールやログを使って、不正なパスワードの使用や短いパスワードが流通していないかチェックすることが大切です。
複雑性要件との組み合わせ
文字数だけでなく、英大文字・英小文字・数字・特殊文字の混在などの複雑性要件を適用することで、総合的なパスワード強度を高められます。特に管理者権限を持つアカウントは、長さと複雑性の両面から厳格に管理するのが望ましいです。
パスフレーズの活用
昨今では「Passphrase(パスフレーズ)」と呼ばれる、複数の単語を組み合わせた長めのフレーズの使用が推奨される傾向にあります。例として「Sunset-Lemon@Horizons!」のように複数単語や記号を混在させると、長さを確保しながら覚えやすいパスワードを作成できます。
よくあるトラブルシューティング例
パスワード最小長を15文字以上にしたいと思っていても、思わぬトラブルに遭遇する場合があります。その際のチェックポイントをいくつか挙げます。
更新プログラムを適用しても変更できないケース
- Windows Serverのビルド番号を再度確認
いくつかの更新プログラムは、OSのビルド番号を特定の範囲以上に引き上げなければ有効にならない場合があります。Updateの履歴だけでなく、実際のOSバージョンやビルド番号(winver
コマンドなどで確認)を再度チェックしましょう。 - 複数のアップデートが必要な場合
1つの累積アップデートでUIが対応し、別のアップデートで機能がアクティブになる、というように複数パッチが必要となる可能性もあります。
細分化されたパスワードポリシーが反映されないケース
- ドメイン機能レベルが未対応
FGPPはドメイン機能レベル2008以降が必要です。機能レベルが低いままだと、PSOを作成しても反映されない場合があります。 - PSOの優先度(Precedence)の競合
同一ユーザーやグループに複数のPSOが適用されている場合、数値が小さいPrecedenceを持つPSOが優先されます。意図したPSOが適用されるようにPrecedenceを調整し、競合を解消する必要があります。 - リンク先の指定ミス
適用先のセキュリティグループやユーザーを間違えて設定しているケースは意外と多いです。AD管理センターで「Directly Applies To」またはPowerShellコマンドの「-Subjects」パラメータを再確認しましょう。
まとめ
Windows Server 2016や2019でパスワードの最小長を15文字以上に拡張できない原因は、必ずしも機能自体が存在しないわけではなく、古いUIの制限や未適用の更新プログラム、ドメイン機能レベル、そしてPSO(FGPP)の適用方法など、複数の要因が影響していることが多いです。
まずはサーバーOSを最新の更新プログラムまで適用し、ドメイン機能レベルの確認を行い、それでもダメなら細分化されたパスワードポリシー(FGPP)を活用する、というステップを踏むとよいでしょう。
セキュリティを強固に保つためには、単にパスワード長を長く設定するだけでなく、複雑性要件や定期的な監査との組み合わせが不可欠です。運用ポリシー全体を見直すことで、組織全体の情報セキュリティをより高い次元へと引き上げられるでしょう。
コメント