WindowsドメインでNTLM認証を無効にする方法

Active DirectoryでNTLMv1とv2を無効にしてKerberosを完全に使用する方法

NTLM プロトコルを無効にするのは面倒に思えるかもしれませんが、セキュリティを強化したいのであれば必須です。とはいえ、多くのレガシーシステムや一部のデバイスが頑固に NTLM に依存しているため、バランスを取るのが難しくなります。さらに、Windows は NTLM を完全にロックダウンすることを必要以上に難しくする傾向があるため、複数の手順が必要になる場合があります。このチュートリアルでは、NTLM を使用しているものを特定する方法、すべてを Kerberos にプッシュするためのポリシーを構成する方法、および注意すべき点について、適切なアイデアを提供します。NTLM を無効にすると、一部の古い機能が動作しなくなる可能性がありますが、理想的には、スムーズな切り替えに必要な構成の調整だけです。セットアップによっては、NTLMv1 を完全に無効にしてから NTLMv2 を制限し、最後にすべてで Kerberos を使用するように強制することができます。一部のアプリやデバイスはKerberos認証に対応していない場合、アップデートや特別な例外設定が必要になる場合があることにご注意ください。特にNTLMの脆弱性について以前から認識していた場合は、このプロセス全体を通してより安全な環境を構築できるはずです。

ドメインにおけるNTLMの使用を修正する方法

NTLM を監査し、誰がまだ使用しているのか調べる

まず、すべてのスイッチを切り替える前に、まだNTLMを使用しているものを確認する必要があります。もちろん、一部のレガシープリンター、古いネットワークスキャナー、または特定のNASデバイスは、おそらく気付かないうちにNTLM応答を送信しているでしょう。目標は、これらを特定し、更新または再構成することです。監査を開始するには、GPOを介してすべてのドメインコンピューターでNTLMログを有効にする必要があります。既定のドメインコントローラーポリシー を開き、コンピューターの構成 > Windowsの設定 > セキュリティの設定 > ローカルポリシー > セキュリティオプション に移動します。ネットワークセキュリティ: NTLMの制限: このドメインのNTLM認証を監査する を探し、すべてのNTLMトラフィックの監査を有効にするに設定します。これにより、イベントビューアーKerberos への切り替えと NTLM のロックダウン NTLM をまだ使用しているユーザーがわかったら、次のステップでは、最初に NTLMv1 をブロックし、次に NTLMv2 をブロックして、すべてを Kerberos 経由に強制します。次のようにパスワード ポリシーと GPO 構成を設定する必要があります。 gpmc.msc を開き、既定のドメイン コントローラー ポリシーを編集します。コンピューターの構成 > ポリシー > Windows の設定 > セキュリティの設定 > ローカル ポリシー > セキュリティ オプションで、次を探して構成します。ネットワーク セキュリティ: LAN Manager 認証レベルここで、次のようなオプションが表示されます。-LM および NTLM 応答を送信する-NTLMv2 応答のみを送信する-NTLMv2 応答のみを送信する。LM を拒否する-NTLMv2 応答のみを送信する。LM と NTLM を拒否するこれを「NTLMv2 応答のみを送信する。LM と NTLM を拒否する」(オプション 6) に設定します。これは基本的に、すべての Windows マシンに最も安全な NTLMv2 方式 *のみ* を使用し、古い脆弱なプロトコルをすべて拒否するように指示します。さらに厳重な制御が必要な場合は、レジストリを微調整できます。テキスト HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa で`LmCompatibilityLevel`という DWORD を作成し、最も安全なオプションである「NTLMv2 応答のみを送信します。LM と NTLM を拒否します」の 5 に設定します。また、LM ハッシュの作成を防ぐために、「ネットワーク セキュリティ: 次回のパスワード変更時に LAN Manager ハッシュ値を保存しない」などのポリシーが有効になっていることを確認します。特定のサーバーで引き続き NTLM が必要なことに不安がある場合は、次を実行して例外リストに追加できます。ネットワーク セキュリティ: NTLM を制限: このドメインの NTLM 認証のサーバー例外を追加するNTLM がまだ必要な可能性があるサーバー名または IP を入力します。ただし、このリストを必要なものだけに最小限に抑えることが目標です。リモートデスクトップゲートウェイをご利用の場合は、以下のレジストリキーを追加して、NTLMv1 をブロックしてください。 bash REG add “HKLM\Software\Microsoft\Windows NT\CurrentVersion\TerminalServerGateway\Config\Core” /v EnforceChannelBinding /t REG_DWORD /d 1 /f 最後に、「ネットワークセキュリティ: NTLM を制限する: このドメインでの NTLM 認証」すべて拒否** に設定することで、ドメインでの NTLM を完全に制限できます。ただし、注意が必要です。特に古いアプリや特定のレガシーサービスでは、一部の機能が動作しなくなる可能性があります。必ず事前にテストを行ってください。

完全なロックダウンとKerberosが機能していることの確認

Protected Users グループ のメンバーは、Kerberos 経由でのみ認証されます。このグループにユーザーを追加すると、Kerberos が正しく機能していることを確認できます。NTLM を無効にした後もユーザーが引き続き動作すれば、ミッションは達成されます。ポリシーを適用したら、イベント ログでイベント ID 6038 (NTLM の使用が検出されました) と 4771 (Kerberos 事前認証の失敗) を監視して、未解決の問題や構成ミスを検出します。場合によっては、NTLM を無効にすると、一部のマシンでユーザーがロックアウトされたり、ログインが異常になったりすることがあります。特に、アプリまたはマシンが NTLM を既定で使用している場合です。イベント ID 4776 で NTLM の再試行を注意深く監視するだけでなく、PowerShell で `klist sessions` をチェックして、Kerberos チケットが期待どおりに発行されているかどうかも確認してください。問題が発生し始めた場合は、レガシ アプリが Kerberos の使用を拒否しているか、適切な SPN が構成されていないことが原因である可能性があります。次に、それらのアプリを更新または再構成します。

まとめ

NTLMを完全に排除するのは野心的な目標ですが、より安全なネットワークへの大きな一歩です。通常は、問題の原因を特定し、グループポリシーでKerberosを優先するように設定し、徹底的にテストすることで解決できます。ただし、古いハードウェアや特殊なアプリケーションでは、いくつかの例外設定が必要になる場合があります。ただし、それらは弱点であることを忘れないでください。すべての設定が完了したら、イベントログを監視して、NTLMが再び侵入していないことを確認してください。特にレガシーシステムでは、忍耐が重要です。しかし、これが厄介なPass-the-Hash攻撃や認証情報の盗難からドメインを守ることができるのであれば、努力する価値はあります。

まとめ

  • NTLM監査ログを有効にして、まだNTLMを使用しているユーザーを特定します。
  • GPOポリシーを設定してNTLMv2を優先し、NTLMv1を無効にする
  • レジストリ設定を更新してより厳密な制御を実現
  • 必要な場合にのみ例外ケースを追加する(レガシーアプリ)
  • チケットをチェックして Kerberos が動作していることを確認します (`klist sessions`)
  • NTLMの使用状況についてイベントログを定期的に監視する
  • 切り替えができない重要なアプリについては慎重に検討し、例外を設定してください

最後に

Kerberosに全面的に移行するのは、特に多様な環境では難しい場合がありますが、セキュリティの観点からは確実な方法です。NTLMが必要なユーザーを把握し、アップデートや設定の調整が必要になる場合もあります。古いハードウェアやソフトウェアが大きな障害となる場合もありますが、セキュリティが重要であれば、その努力は無駄ではありません。この方法が、すべてを壊すことなくドメイン防御を強化するのに役立つことを願っています。