LoginSignup
1
1

NPS + WiFi + 802.1x 認証 (MS-CHAPv2) 構築手順

Last updated at Posted at 2023-12-28

はじめに

WiFi-AP へ アクセスを行う際には、SSID と 固定のキー を使って接続する方法は 個人向けとして広く普及していて、実際に 自宅の WiFi-AP に スマートフォン や PC を接続したことがある人も多くいると思います。
これに対して、固定のキーでは無く、Active Directory のアカウントや、クライアント証明書 などを使って認証する方法があり、この仕組みのことを 802.1x認証 と呼びます。

固定のキーでは、キーが人づてで共有されてしまうと、誰でも ネットワークに接続できてしまうため、企業用途ではセキュリティを維持できません。

そのため、802.1x認証 を活用する事で、ユーザー や コンピューター ごとに ネットワークへの接続可否を制御する事で、適切な 人 や PC だけが ネットワークへアクセスできるようになります。

例1:退職した人のアカウントを停止することで、以後 アクセスできなくなる。
例2:紛失や盗難に遭った PC のクライアント証明書を失効させることで、以後 アクセスできなくなる。

802.1x認証 の環境を構築するには、さまざまな技術を組み合わせる必要であり、難易度が高くなります。

この記事では、その中でも 難易度が低めな ユーザーアカウントでの認証を実現する、MS-CHAPv2 での構築手順を紹介します。

なお、クライアント証明書での認証を行う EAP-TLS を構築したい場合も、いきなり それを目指すのではなく MS-CHAPv2 で構成に成功した環境から、構成変更して作っていく事をお勧めします。

802.1x認証で使われる、EAPプロトコル(MS-CHAPv2 や EAP-TLS)は、保護された PEAP と組み合わせて使われるのですが、各方面で 表現に "ゆらぎ" があって、大変理解しづらいです。
その点を、以下の記事で説明してみましたので、参考にしてみてください。

PEAP (EAP-TLS) で構成する場合は、以下の記事を参考にしてください。
クライアント証明書を扱う分、高難度になっていますが、セキュリテイは向上します。

1. 事前準備

本構成を行うために必要な 前提となる環境です。

1-1. AD DS インストール

構築済みの Active Directory ドメイン を用意してください。
まだ構築していない場合は、以下の手順を参考に構築しましょう。

新規構築したら、ドメイン内に テスト用のユーザーを作っておきましょう。
この記事では、user01 というユーザーが作られている前提で 手順が作られています。
「パスワードを無期限にする」にチェックを入れない場合は、作成したユーザーで PCからログオンして 初回パスワードの変更をしておいてください。
image.png

1-2. NPS インストール

NPS サーバー を用意してください。
事前に サーバーを 1-1. で構築した ドメイン に ドメイン参加 させてください。

まだ構築していない場合は、以下の手順を参考に構築しましょう。

1-3. AD CS インストール

AD CS サーバー を用意してください。
※AD CS サーバーは、ドメインへの参加要件はなく、WORKGROUP でも構いません。

この手順では、AD CS が、以下の構成となっていることを想定しています。

  • スタンドアロン CA
  • 証明機関 を導入済み
  • 証明機関 Web 登録 を導入済み

まだ構築していない場合は、以下の手順を参考に準備しましょう。
※スタンドアロン CA を選択してください。

AD CS サーバーをドメイン参加せず、WORKGROUP で構成した場合は、CRL を HTTP 匿名アクセス の構成にしておきましょう。
以下の記事を参考に「2-2. CRL 配布ポイントの変更手順」まで実施すれば大丈夫です。

1-4. 802.1x認証 に対応した WiFi アクセスポイント

802.1x 認証 に対応した WiFi アクセスポイントが必要です。
私が検証した時には、Cisco AIR-AP1832I-Q-K9 という機種を使いました。

それから、私が自宅で使っている WiFiルーター (TP-Link製 Archer AX73 | AX5400) も、設定画面を見る限りは、 802.1x 認証に対応しているみたいでした。仕様的にも対応していそうです。
お値段としては、安価で手に入るので、試してみる価値はありそうです。
※私の方で、検証までは実施できていません(家族も使っているので、自宅から動かせない)

1-5. 検証用 クライアント PC

本記事では、無線LAN に対応した Windows 10 / 11 の PC を想定しています。
この PC を 1-1. で構築した ドメイン に ドメイン参加 させてください。

ドメイン参加は、必須ではなく WORKGROUP の PC でも構いませんが、ちょっと制約があるので 手順の中で、補足説明などを入れてあります。

2. サーバー側 の 構築手順

2-1. NPS を Active Directory サーバー に登録する

(この作業の目的)

  • 承認プロセス中に ユーザー アカウントのダイヤルイン プロパティを読み取るアクセス許可を付与します。
  • NPS サーバーが Active Directory の RAS and IAS Servers グループに追加されます。
  1. NPS サーバーに ドメイン管理者 でサインインして、サーバーマネージャーから、ネットワークポリシーサーバー のツールを起動します。
    image.png
     
  2. NPS (ローカル) を右クリックして「Active Directory にサーバーを登録」を選択する。
    image.png
     
  3. 以下のメッセージで「OK」を押します。
    image.png
     
  4. 以下のメッセージで「OK」を押します。
    image.png

ちゃんと登録されたかどうかを見る場合は、下図のメニューを再表示して「Active Directory にサーバーを登録」が グレーアウト していることを確認します。
image.png

以上で、本作業は完了です。
この作業に関する 公開情報 は、以下を参照ください。

2-2. NPS 用 サーバー証明書の作成

NPS には、以下の要件で作成された サーバー証明書 が必要ですが、これを見ただけで 意図された証明書を作成することは難しいと思います。
※見なくても 当記事の手順を参考に進めていただければ問題はありません。

そのため、以下の記事を参照し、NPS サーバー用の サーバー証明書 を発行してください。
この記事から参照するために書き下ろした記事となっています。

2-3. NPS ポリシー(MS-CHAPv2)の作成

2-3-1. ウィザード での ポリシー作成

まず、NPS ポリシーは、以下の公開情報で紹介されている ウィザード を使って作成していきます。

(公開情報:ネットワーク ポリシーを構成する)
https://learn.microsoft.com/ja-jp/windows-server/networking/technologies/nps/nps-np-configure#create-network-policies-for-8021x-wired-or-wireless-with-a-wizard
★以下の2つの章が、以降の手順で紹介している箇所に該当しています。
・ウィザードを使用した 802.1X 有線またはワイヤレスのポリシーの作成
・ウィザードを使用して 802.1X ワイヤード (有線) または 802.1X ワイヤレス (無線) のポリシーを作成するには

  1. サーバーマネージャーから、ネットワークポリシーサーバー を起動します。
    image.png
     
  2. 「802.1Xワイヤレス接続またはワイヤード(有線)接続用の RADIUS サーバーを選択して「802.1X を構成する」のリンクをクリックして ウィザード を開始します。
    image.png
     
  3. 「ワイヤレス接続をセキュリティで保護する」を選択し、名前(任意で変更)を設定し「次へ」を押します。
    image.png
     
  4. NPS では、あらかじめ許可された RADIUS クライアント からのみ、認証を受け付けます。
    許可されていない RADIUS クライアントから、認証要求が来た場合は、拒否されます。

    許可する RADIUS クライアントを追加するために、「追加」を押します。
    image.png
     
  5. ここで、RADIUSクライアント(WiFI-AP)の情報を入力します。
    ・フレンドリ名は、あとで この設定が どの WiFi-AP のものだったのかを識別するための名前です。
    ・機器のメーカー名や、機器の資産番号などを設定します。
    ・アドレスは、WiFi-AP 自身の IP アドレス を設定します。
    ・緑下線の共有シークレットは、RADIUS クライアント (WiFi-AP) 側の設定と同一の文字列である必要があります(つまり、合言葉)
    image.png
     
  6. 下図の通りに追加されたことを確認して「次へ」を押します。
    image.png
     
  7. 「Microsoft 保護された EAP (PEAP)」を選択して「構成」を押します。
    ★(要注意)ここでは、決して EAP-MS-CHAPv2 を選択しないようにしてください。
    image.png

上記の図の 緑枠「構成」ボタンを押すと、以下の画面になります。
ここで、以下の2点を確認します。

  • 証明書の発行先が、AD CS で発行した サーバー証明書 になっていること。
  • EAP の種類が「セキュリティで保護されたパスワード(EAP-MSCHAP v2)」になっていること。
    image.png

なお、以下の画面が出た場合は、サーバー証明書 がうまく導入されていません。
サーバー証明書 の状態を確認して 再度 インポートしなおすなどを実施してください。
image.png

8.802.1x 認証をさせたい オブジェクト の グループ を選択します。
未選択の場合は、全ユーザーが対象となるため、そのまま「次へ」進んで問題ありません。
ここで、複数の条件を設定した場合は、アンド条件になるので、覚えておきましょう。
image.png

9.以下の画面では、そのまま「次へ」を押します。
image.png

10.以下の画面になれば完了です。「完了」を押して ウィザードを終了させます。
image.png

2-3-2. ウィザード構成後の 差分設定(任意)

ウィザード構成後に、差分で設定をする内容です。
なお、この設定をやらなくても、PEAP (MS-CHAPv2) で認証は可能です。
ここでは 単に、想定していない認証については、"オフ" にしているだけです。
image.png

2-3-3. RADIUS プロトコル の Firewall 解放(必要に応じて)

WiFi-AP から、NPS サーバー への RADIUS の通信を許可する必要があります。
なお、NPS サーバー では、既定で RADIUS の Firewall ポートは解放されているハズです。
ですが、特定の条件で ポートが空いていない場合があるので、WiFi-AP と疎通が取れない場合などは、この設定を入れることを検討ください。

  1. サーバーマネージャーから「ツール」-「セキュリティが強化された Windows Defender ファイアウォール」を起動します。
    image.png
     
  2. 「受信の規則」を右クリックして「新しい規則」を選択します。
    image.png
     
  3. 「ポート」を選んで「次へ」を押します。
    image.png
     
  4. 「UDP」を 選び、特定のローカルポート欄に「1812」を入力して「次へ」を押します。
    Ciscoルーターが 1812 を使っているのでそうしましたが、必要によって 1813 , 1645 , 1646 を開けることも検討ください。
    image.png
     
  5. 「接続を許可する」を選択して「次へ」を押します。
    image.png
     
  6. 「ドメイン・プライベート・パブリック」全てに チェックが入った状態にして「次へ」を押します。
    image.png
     
  7. 任意の名前をつけて、「完了」を押します。
    image.png
     
  8. こんな感じで追加されれば OK です。
    image.png

(参考情報)

特に、上記の記事によると、Windows Server 2019 だと 既定のルールで通信ができなくて、ハマる場合があるようです。
"sc sidtype IAS unrestricted" コマンドを実行すれば良いのですが、こういうのって、忘れますよね?
なので、ここで紹介したように 明確にポートを空ければ OK と覚えておくと良いと思います。

3. WiFi アクセスポイント側の設定例

以下の記事に、例として Cisco 社の WiFi-AP で設定した際の内容などを説明してあります。

  • RADIUS サーバーの IPアドレス には、NPSサーバー の IPアドレスを設定します。
  • RADIUS シークレット に設定した シークレットキー は、あとで NPS サーバーに設定します。

4. クライアント側 の 設定手順(推奨)

この時点で WiFi-AP への接続は可能なはずです。
接続できるかどうか、確認してみましょう。
しかし、ID + Pass を入力したあとに、以下の画面が表示されます。

「接続を続けますか?」で、「接続」ボタンを押す必要があります。
image.png

クライアント が ドメインに参加していれば、以下の記事の手順をすべて実施することで、「接続を続けますか?」の画面の表示を抑制できます。

5. 接続テスト

5-1. 正常に接続できた場合のパターン

  1. クライアント PC から、SSID を選択して WiFi-AP に接続すると、以下の認証窓が出ます。
    ここに、ドメインユーザー の ID と パスワード を入力して「OK」を押します。
    image.png
     
  2. 接続成功 した場合の画面
    image.png
     
  3. セキュリティ の イベントログ を確認すると、以下の ログ が確認できます。
  • イベント ID: 6272
  • メッセージ: ネットワークポリシーサーバーがユーザーのアクセスを許可しました。
  • アカウント名: 認証をおこなったユーザー名
  • 接続要求ポリシー名: NPSで定義したポリシー名
  • 認証サーバー:NPSのサーバー名
  • 認証の種類:PEAP
  • EAP の種類:Microsoft: セキュリティで保護されたパスワード (EAP-MSCHAPv2)
  • キーワード:成功の監査

image.png

5-2. 認証エラー

  1. 以下の 認証ウィンドウ に対して、誤った アカウント情報 が入力された場合です。
    image.png

  2. このとき、セキュリティ の イベントログ を確認すると、以下の ログ が確認できます

  • イベント ID: 4625
  • メッセージ: アカウントがログオンに失敗しました。
  • 失敗の原因: ユーザーを識別できないか、またはパスワードが間違っています。
  • ログオン プロセス: CHAP
  • キーワード: 失敗の監査

image.png

3.クライアントには、以下のような 再認証の ウィンドウ が開きます。
image.png

4.その後、正しいパスワードを入れると、接続が成功します。
image.png

5.このとき、セキュリティ の イベントログ には、接続に成功した際と同様に「成功の監査」の ログ が確認できます

5-3. 接続できないパターン

5-3-1. 設定不足によるポリシー不一致の場合

  1. 認証窓が表示されずに、以下のようなエラーが出ます。
    image.png

  2. セキュリティ の イベントログ には、以下の ログ が出力されています。

  • イベント ID: 6273
  • 接続要求ポリシー名: NPSで定義したポリシー名
  • ネットワークポリシー名: 他のアクセスサーバーへの接続
  • 認証サーバー:NPSのサーバー名
  • 認証の種類:EAP
  • EAP の種類:-
  • 理由コード:65
  • 理由:Active Directory 内のユーザー アカウントのダイヤルイン プロパティの [リモートアクセス許可]設定が、ユーザーに対して [アクセス拒否] に設定されています。
  • キーワード:失敗の監査

image.png

3.ここでは、「ネットワークポリシー名」が 「他のサーバーへの接続」になっている点や、EAPの種類が - になっている点、キーワードが「失敗の監査」となっている点に着目。

対策として、ネットワークポリシーが 合致 しなかった理由を探します。

5-3-1 の事象に対する対策例

ウィザードの構成を終えただけでは、条件が不足している場合があります。

  1. ネットワークポリシー を開く。
    image.png

  2. 以下の画面で、「NASポートの種類」が「ワイヤレス - その他」になっている事を確認して「編集」を押す。
    image.png

  3. 以下で、ワイヤレス - IEEE 802.11 のチェックが外れていれば、チェックを入れる。
    image.png

5-3-2. 証明書が 失効している場合

この事象は、ルート証明書を あえて「信頼されていない証明機関」に配置させることで再現させています。実際には、証明書が失効された場合に出るメッセージです。

  1. 認証窓が出て、認証を成功させます。
    image.png

  2. しかし、認証成功したあとに、「このネットワークに接続できません」のエラーが出て接続できません。
    image.png

3.セキュリティ の イベントログ には、以下のように、証明書失効 の ログ が出ています。

  • イベント ID: 6273
  • 接続要求ポリシー名: NPSで定義したポリシー名
  • ネットワークポリシー名: NPSで定義したポリシー名
  • 認証サーバー:NPSのサーバー名
  • 認証の種類:PEAP
  • 理由コード:256
  • 理由:この証明書は失効しています。
  • EAP の種類:-
  • キーワード:失敗の監査

image.png

4.証明書が失効している原因(AD CS 側で 証明書が失効されていないか)・・などを確認します。
このテストでは、ルート証明書を「信頼されたルート証明機関」に戻したところ、接続できるようになりました。

おまけ

ウィザード終了時の設定画面(チェック用)

NPS サーバーで、ウィザードで ポリシーを作成した際に 自動的に構成された設定値です。

RADIUS クライアント

image.png

接続要求ポリシー

image.png
(概要)
image.png
(条件)
image.png
(NAS ポートの種類)
 ※上記の画面で、NASポートの種類を選んだあと「編集」を押して表示
image.png
(設定)
image.png

ネットワークポリシー

image.png
(概要)
image.png
(条件)
image.png
(NAS ポートの種類)
 ※上記の画面で、NASポートの種類を選んだあと「編集」を押して表示
image.png
(制約)
image.png
(保護された EAP プロパティの編集)
 ※上記の画面で「Microsoft 保護された EAP (PEAP)」を選んだあと「編集」を押して表示
image.png

image.png

関連情報

NPS + 802.1x認証 の 公式の手順です。

NPS Server の イベントログ で出力されるエラーの 理由コード の一覧です。

以下の サイトは、うまくいかなくて ハマっていたときに参考にしたサイトです。

これらの記事のおかげで、 NT Auth ストア というものが存在する事に気が付きました。

(参考)Windows 11 で、MS-CHAPv2 認証を使う場合の注意についての記事がありました。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1