🔐

ADCSとNPSを使ったEAP-TLSの無線LANを構築

2024/12/30に公開

Active Directory 証明書サービスとは

Active Directory 証明書サービス (AD CS) は、セキュリティで保護された通信と認証プロトコルで使われる公開キー インフラストラクチャ (PKI) 証明書を発行および管理するための Windows Server ロールです。

https://learn.microsoft.com/ja-jp/windows-server/identity/ad-cs/active-directory-certificate-services-overview

「Active Directory ドメイン サービス」と連携して、証明書を発行・配布することができるので、ドメイン環境を利用している場合に証明書の運用・管理がしやすい!

構築手順

大まかに以下の順でやっていく

  1. NPSサービスのインストール&ADと連携設定
  2. RADIUSクライアント設定
  3. NPSのポリシー設定
  4. CAサービスのインストール
  5. 証明書の配布
  6. 証明書の自動配布設定
  7. GPOで無線プロファイル配布

NPSサービスのインストール&ADとの連携設定

NPSのサービスをインストール、管理ツールを開いて設定(ポチポチしていくだけなので割愛)

NPSを右クリックして、「ADにサーバ登録」

  • NPSサーバが「RAS and IAS Servers」のセキュリティグループに追加される

※ローカルユーザーでサインインしているとグレーアウトになる。
 ADの管理者ユーザで作業はしましょう。

RADIUSクライアント設定

フレンドリ名:AP名とか判別できるもの
アドレス:APのIPかDNS
共有シークレット:適当に。
RADIUSクライアントはコマンドでまとめて追加可能

コマンドの例

netsh nps add client name=test-ap address=192.168.10.1 state=enable sharedsecret=testkey

NPSのポリシー設定

ポリシー → ネットワークポリシー → 新規
ポリシー名は任意のものを設定

接続を許可するセキュリティグループを追加
NASポートは無線なら、ワイヤレスを追加

EAPの種類に「Microsoft スマートカードまたはその他の証明書」を追加
セキュリティレベルの低い認証方法のチェックをはずす

あとはOK

CAサービスのインストール

サーバマネージャから、機能の追加で「Active Directory 証明書サービス」を追加する。
とりあえずは「証明機関」のみでOK

インストールが終わったら、サーバマネージャにに戻り、右上の「旗マーク」をクリックし「対象サーバにActive Directory 証明書サービスを構成する」をクリックして、設定していく。

  • エンタープライズCA
  • ルートCA
  • 新しい秘密キーを作成する
    • 初期値は「SHA256」でだが、現在ではこれでいい気はする。気になる人は「SHA512」にしてもOK
  • CAの名前は適当につける(サーバ名と一致してなくても大丈夫)

CAサービスのインストールは完了

証明書の配布

AD CSのインストールが終わったら、「証明機関」を開いて証明書テンプレートを作る
証明書テンプレートを右クリック→管理
「コンピュータ」を右クリック→複製
テンプレート表示名は任意のものに
有効期間や更新期間も任意のものに
「ADの証明書を発行する」に☑

互換性は最新にしておけばOKか?

ADの情報から構築する を確認

証明書を配布したいセキュリティグループを追加
読み取り、登録、自動登録の許可にチェック
あとはOK

証明書テンプレート → 右クリック →新規作成 → 発行する証明書テンプレート

から作成したテンプレートを追加
証明書テンプレートに表示されているテンプレートがアクセス権やGPOの設定に基づいて配布される
不要なテンプレートは削除してOK
→ テンプレート自体が消えるものではない

※ここまで終わったら、一度サーバを再起動しておいた方がよい。
※イベントビューアで、証明書が発行された際にイベントID80のログがでている場合は、サーバ再起動すると止まった。(権限周りの適用関係で再起動が必要っぽい)

証明書の自動配布設定

以下のポリシーを設定することで、自動で端末に証明書が配布され、有効期限が近づいたものは自動更新されるようになる。

コンピュータの構成 - ポリシー - Windowsの設定 - 公開キーのポリシー - 「証明書サービス クライアント – 自動登録」

構成モデル:有効
有効期限が切れた証明書を書き換え、保留中の証明書を更新、および失効した証明書を削除する:チェック
証明書テンプレートを使用する証明書を更新する:チェック

ドメイン参加しており証明書の発行が許可されている端末で「certlm.msc」から、

  • 信頼されたルート証明
  • 中間証明
  • 個人(OID(1.3.6.1.4.1.311.25.2)拡張が含まれることを確認)
    に証明書が配布されていることを確認する。

GPOで無線プロファイル配布

こちらの記事を参照
https://zenn.dev/8chikuwa3/articles/64ab9b612164ca

参考

権限関係

必要な権限についてはこの辺が参考になった
https://sccm.jp/2022/10/30/post-4830/

CAとNPSサーバは↓の権限を持っていれば問題ないはず。

  • Cer Publishers
  • RAS and IAS Servers

ドメインコントローラーでの証明書ベースの認証の変更と対応の流れ

最新のパッチを適用しているWindowsServerで構築していれば問題ないが、塩漬けしてしまっているものでやった場合、認証が失敗してしまう。
https://support.microsoft.com/ja-jp/topic/kb5014754-windows-ドメイン-コントローラーでの証明書ベースの認証の変更-ad2c23b0-15d8-4340-a468-4d4f3b188f16

対策はこちら
https://jpwinsup.github.io/blog/2023/04/11/PublicKeyInfrastructure/CertificateManagement/certificate-based-authentication-changes-on-may-2022/

対処方法は

  • アカウントへ証明書をマッピング
  • 証明書へアカウントをマッピング
    の2つがあるが、2022年5月以降のセキュリティ更新プログラムを適用することで OID(1.3.6.1.4.1.311.25.2) 拡張付きの証明書を発行することが可能になるので、構築する際は最新のパッチをサーバに当てましょう。

ADの認証周りの変更のパッチがちょいちょいあるので、クライアントだけパッチ適用するのではなく、各サーバもパッチ適用はちゃんとやりましょうね。

Discussion