Windows Server 2019のネットワークポリシーサーバーでRADIUS認証が失敗する

ネットワークポリシーサーバー(NPS)を使って、Active DirectoryのドメインユーザでRADIUS認証を行う環境を構築するお話の続き。

症状・現象

一通り設定を終えて、RADIUS認証のテストをしてみると……認証に失敗してしまいます。

イベントビューワを開いて、「カスタム ビュー」→「サーバーの役割」→「ネットワーク ポリシーとアクセス サービス」を見ると、アクセスの形跡がありません。

どうも、認証のリクエストがネットワークポリシーサーバーに届いていないように見受けられます。

それならば、とひとまずサーバのWindows Defenderファイアウォールを無効化してみると、認証が通りました。そして、Windows Defenderファイアウォールを再びオンにすると認証失敗

どうもファイアウォールが怪しそうです。

調査

そこでRADIUS認証に使うポートを確認してみると、以下の通り。

  • 1812(UDP)
  • 1813(UDP)

レガシーな場合は以下を使うようです。

  • 1645(UDP)
  • 1646(UDP)

これらをWindows Defenderファイアウォールの詳細設定から「受信の規則」で確認すると、チェックが入っておりポートが開いています

一応、KerberosやLDAPなど関連する他の機能についても確認してみると、例外に追加されています。

試しにnetstat -anも叩いてみると、こちらもポートが開いていることが確認できます。

……でも認証は通らないという謎現象。

色々調べた結果、以下の記事に当たりました。

これらの記事に拠ると、この現象はWindows Server 2019のネットワークポリシーサーバーの不具合らしいです。

症状としては概ね上述の現象の通りで、「例外追加など画面上ではポートが開いているように見えるが、実際はファイアウォールで1812,1813がブロックされる」というもの。

検証

では試しにファイアウォールのログを取ってみましょう(デフォルトではログは取らないようになっています)。

Windows Defenderファイアウォールの詳細設定で「ローカル コンピューター のセキュリティが強化されたWindows Defender ファイアウォール」を右クリックして「プロパティ」。

所属するネットワーク(ネットワークカテゴリ)のタブを開いて、「ログ」の中の「カスタマイズ」ボタンをクリック。

「ログ設定のカスタマイズ」ウインドウが表示されたら、「破棄されたパケットをログに記録する」の「いいえ(既定)」を「はい」に変更し、「OK」。

ログの出力先は同じウインドウの上の「名前」のパス。デフォルトだと以下のような感じ。

%SYSTEM%\system32\LogFiles\Firewall\pfirewall.log

これで再度RADIUS認証のリクエストを投げてみます。

すると、上述のログファイルの容量が増えました。このログファイルを管理者実行したテキストエディタで開きます。

2019-09-12 19:47:09 DROP UDP XXX.XXX.XXX.XXX YYY.YYY.YYY.YYY 46959 1812 231 - - - - - - - RECEIVE
2019-09-12 19:47:15 DROP UDP XXX.XXX.XXX.XXX YYY.YYY.YYY.YYY 46959 1812 231 - - - - - - - RECEIVE
2019-09-12 19:47:39 DROP UDP XXX.XXX.XXX.XXX YYY.YYY.YYY.YYY 46959 1812 231 - - - - - - - RECEIVE
2019-09-12 19:47:45 DROP UDP XXX.XXX.XXX.XXX YYY.YYY.YYY.YYY 46959 1812 231 - - - - - - - RECEIVE
2019-09-12 19:47:48 DROP UDP XXX.XXX.XXX.XXX YYY.YYY.YYY.YYY 46959 1812 231 - - - - - - - RECEIVE
2019-09-12 19:47:51 DROP UDP XXX.XXX.XXX.XXX YYY.YYY.YYY.YYY 46959 1812 231 - - - - - - - RECEIVE
2019-09-12 19:47:57 DROP UDP XXX.XXX.XXX.XXX YYY.YYY.YYY.YYY 46959 1812 231 - - - - - - - RECEIVE

……がっつりブロックされています

記事の通りです。

対処

原因がはっきりしたので、記事と同じコマンドを叩くことにしました。

>sc sidtype IAS unrestricted
[SC] ChangeServiceConfig2 SUCCESS

これでサーバ(一応OSごと)を再起動。

軌道を確認してから、再々度RADIUS認証のリクエストを投げてみると……認証成功しました


ということで、Windows Server 2019のネットワークポリシーサーバーの不具合に悩まされたお話でした。

ちなみに、1812は「Always On VPN」でも使用するポートのようです(参考記事の1つ目はそちらについての話)。

参考

NPSのログの場所

RADIUSのポート

Windowsファイアウォールのログの取得方法

この記事を書いた人

アバター

アルム=バンド

フルスタックエンジニアっぽい何か。LAMPやNodeからWP、gulpを使ってejs,Scss,JSのコーディングまで一通り。たまにRasPiで遊んだり、趣味で開発したり。