RADIUS問題解決ガイド
概要
MRアクセス ポイント、MSスイッチ、MX/Zセキュリティ アプライアンス(Merakiデバイス)では、外部サーバーをRADIUS認証用に設定できます。ここでは、RADIUSのトラブルシューティングを伴う問題が発生した場合の一般的なトラブルシューティング方法と、問題を切り離して体系的に解決する流れについて説明します。
RADIUSの設定や初期セットアップについては、以下の記事を参照してください。
RADIUS認証のトラブルシューティングの流れ
以下のフロー チャートは、RADIUS認証に関する一般的な問題を切り離してトラブルシューティングする際のステップを示しています。どのようなシナリオでも、このフロー チャートを上から下へたどる必要があります。ここでは、RADIUSに関するごく一般的な問題を解決することと、ネットワーク内の特定のポイントまで問題を切り離すことを目的としています。
ダッシュボードの設定
最初に確認すべきことは、ダッシュボード上でRADIUSが正しく設定されているかどうかです。RADIUSの設定にアクセスするには、以下のように選択して移動します。
Wireless(ワイヤレス) > Configure(設定) > Access Control:Select (SSID)(アクセス制御:選択(SSID)) > RADIUS Servers(RADIUS サーバー)
Switch(スイッチ) > Configure(設定) > Access Policies(アクセス ポリシー) > Radius Servers(RADIUS サーバー)
Security & SD-WAN/Teleworker Gateway(セキュリティ & SD-WAN/テレワーカー ゲートウェイ) > Configure(設定) > Access Policies(アクセス ポリシー) > RADIUS for Splash Page(スプラッシュ ページ用RADIUS)
以下のパラメータを確認する必要があります。
-
RADIUSサーバーのIPアドレスが正しく追加されていること
-
ダッシュボードとRADIUSサーバーでポートが同じように設定されていること
-
ダッシュボードとRADIUSサーバーでシークレットが同一であること
RADIUSサーバーのPingテスト
RADIUS認証時には、MerakiデバイスがRADIUSパケットを使用してRADIUSサーバーへの到達を試みます。これを成功させるには、MerakiデバイスからRADIUSサーバーへ到達可能な状態でなければなりません。そのため、以下のステップに従ってRADIUSサーバーの到達可能性をテストします。
-
デバイス ステータス ページに移動します。
-
MR:Wireless(ワイヤレス) > Access Points(アクセス ポイント) > Select Access Point(アクセス ポイントの選択) > Tools(ツール) > Ping
-
MS:Switch(スイッチ) > Switches(スイッチ) > Select Switch(スイッチの選択) > Tools(ツール) > Ping
-
MX:Security & SD-WAN(セキュリティ & SD-WAN) > Appliance Status(機器のステータス) > Tools(ツール) > Ping
-
Zシリーズ:Teleworker Gateway(テレワーカー ゲートウェイ) > Appliance Status(機器のステータス) > Tools(ツール) > Ping
-
-
Pingツールを使用して、RADIUSサーバーのIPをPingテストします。
-
Pingが失敗した場合は、RADIUSサーバーまでのルーティングを確認します。
ダッシュボードのRADIUSテスト ツール
ダッシュボード設定には、上記のようにRADIUSサーバーとの接続性を確認するためのテスト ツールが備わっています。 RADIUS認証情報を指定して「Begin test(テストを開始)」をクリックすると、「Test = Pass」または「Test = Fail」のいずれかの結果が返されます。このテスト ツールを実行すると、APとRADIUSサーバーの間で、EAP-PEAPとMS-CHAPv2を使用したRADIUS Access-Request/Challengeの交換が開始されます。このツールは、APからサーバーに到達可能かどうかと、指定された認証情報が有効かどうかだけを確認するよう設計されています。APには証明書がインストールされていないため、クライアント側の証明書(EAP-TLSなど)を必要とするEAPタイプを使用すると、テストは失敗します。実際のクライアント デバイスでテストすることをお勧めします。MRアクセス ポイントでサポートされるEAPタイプについては、こちらを参照してください。
Test = Pass
ダッシュボードのRADIUSテストに合格した場合は、以下のステップに進むことができます。
-
テストに合格した場合は、RADIUSサーバーが到達可能で、認証用に設定されています。クライアントが接続できない場合は、クライアント デバイスがEAPセッションを生成しているかどうかを確認してください。
-
クライアント認証に失敗した後でRADIUSサーバー上に生成されるログを確認してください。
Test = Fail
RADIUSサーバーがPingを実行できるが、テストに失敗する場合は、ダッシュボードのパケット キャプチャに進んでください。
ダッシュボードのパケット キャプチャ
Merakiダッシュボードでは、ネットワーク内のすべてのRADIUS対応Merakiデバイスを対象に、パケット キャプチャを直接実行できます。この機能を使用するには、Network Wide(ネットワーク全体) > Monitor(監視) > Packet Capture(パケット キャプチャ)に移動します。
パケット キャプチャは、RADIUSサーバーに到達可能なMerakiデバイスの有線インターフェースで実行する必要があります。Wireshark対応の.pcapファイルとして出力をダウンロードすることを強くお勧めします。
パケット キャプチャが開始されたら、失敗したクライアントにRADIUSへの接続を再試行させ、このプロセスが完了するまでの間にパケット キャプチャが実行されるようにしてください。パケット キャプチャはWiresharkで開くことができ、以下のようにフィルタを適用できます。
RADIUS用のWiresharkフィルタ:
例:ip.addr==192.168.128.254 && radius(192.168.128.254はRADIUSサーバーのIP)
汎用フィルタを適用したRADIUSパケット キャプチャの例を以下に示します。
上記のスクリーンショットは、成功したRADIUS認証の例です。Access-Request、Access-Challenge、Access-Acceptを使用して双方向通信が行われているのがわかります。サンプルのパケット キャプチャは、参照用にダウンロード可能です。
RADIUSトラフィック フロー
RADIUS認証に失敗した場合は、トラフィック フローが異なり、以下に示す3つの結果のいずれかになる可能性があります。
-
RADIUSプロトコル トラフィックがない
-
Access-Requestが単方向
-
RADIUSサーバーがAccess-Rejectを送信する
RADIUSプロトコル トラフィックがない
前述のWiresharkフィルタを適用すると、RADIUSトラフィックのみが出力内でフィルタリングされ、MerakiデバイスからRADIUSサーバーにRADIUSプロトコル トラフィックが送信されていない場合は、出力が空になります。トラフィックがある場合は、ユーザ名を確認して、正しいクライアント デバイスに対するトラフィックかどうかを確認してください。
MerakiデバイスからのRADIUSプロトコル トラフィックがない場合は、以下のステップに従ってください。
-
クライアントが正しいSSIDまたはポートへの接続を試みていて、EAPセッションを生成しているかどうかを確認します。
-
クライアント デバイスの設定を確認して、RADIUS認証の要件と一致していることを確認します。
-
クライアント デバイスに対してワイヤレスまたは有線のパケット キャプチャを実行して、クライアント デバイスからトラフィックが送信されているかどうかを確認します。
-
クライアント デバイスが必要なトラフィックを送信していることを確認した後も認証が失敗する場合は、パケット キャプチャを再実行して、フロー チャートに従います。
クライアントがEAPセッションを生成してMerakiデバイスにトラフィックを送信すると、MerakiデバイスがAccess-RequestをRADIUSサーバーに転送します。
Access-Requestが単方向
クライアント デバイスがEAPセッション トラフィックを生成していて、パケット キャプチャ内のAccess-Requestが単方向になっている場合は、サーバーから応答を受信していないためRADIUS認証が失敗します。この失敗には、以下のような複数の理由が考えられます。
-
RADIUSサーバーへのルーティング:
-
Access-RequestはRADIUSサーバーに送信されているが、応答が通知されないため、RADIUSサーバーに到達する前にトラフィックがドロップされている可能性があります。
-
Pingが成功した場合は、どこでRADIUSトラフィックがドロップされるかを確認し、ルーティングを修正する必要があります。
-
-
RADIUSサービス:
-
ルーティングが正しく、RADIUSパケットがRADIUSサーバーに送信されている場合は、RADIUSサーバー上でRADIUSサービスがオンになっているかどうかを確認する必要があります。
-
-
RADIUSクライアント:
-
クライアントによって生成されるEAPセッション トラフィックがRADIUSサーバーの設定で許可されていない場合は、RADIUSサーバーによってパケットがドロップされます。
-
MerakiデバイスがRADIUSクライアントとして追加され、許可されていることを確認します。
-
これらの設定が正しいことを確認した後も認証が失敗する場合は、パケット キャプチャを再実行して、フロー チャートに従います。
RADIUSサーバーがAccess-Rejectで応答する
Access-Requestを受け取ったRADIUSサーバーは、Access-Acceptを送信してクライアントを認証するか、Access-Rejectを送信して認証を拒否することができます。
RADIUSサーバーからAccess-Rejectが返された場合は、複数の理由が考えられます。その一部を以下に示します。
-
RADIUSサーバーに証明書がインストールされていないか、証明書の有効期限が切れている
-
RADIUSサーバーにインストールされたデジタル証明書がまだ有効かどうかを確認します。
-
証明書の有効期限が切れているか、証明書がない場合は、デジタル証明書の更新またはインストールが必要です。
-
-
ユーザ名またはパスワードが間違っている
-
クライアントが間違った認証情報(ユーザ名、パスワード、またはその両方)でログインすると、RADIUSサーバーはAccess-Rejectで認証を拒否します。
-
-
ダッシュボード上のシークレットが間違っている
-
ダッシュボードで設定されたシークレットは、RADIUSクライアントの設定時にRADIUSサーバー上で追加されたシークレット キーと一致している必要があります。
-
RADIUSサーバーが認証を拒否する要因はいくつかあります。その一部を以下に示します。
-
ネットワーク ポリシーの設定が間違っている
-
接続要求ポリシーの設定が間違っている
-
認証設定の不一致
-
(サーバー上でActive Directoryを使用している場合)クライアントがドメインのメンバーでない
-
クライアント デバイスにルート証明書が追加されていない
-
サーバーまたはクライアントで使用しているEAP方式が間違っている
RADIUSトラフィックの検証
前述のステップを確認し、要件どおりに設定を行ったら、ダッシュボードのパケット キャプチャ ツールを使用してパケット キャプチャを再実行し、RADIUSトラフィック フローを確認します。
この時点でクライアントが認証され、サーバーからクライアントにAccess-Acceptメッセージが送信されるはずです。それでもサーバーがAccess-Rejectを送信する場合は、サーバーに問題がある可能性が高いため、RADIUSサーバーにアクセスして、生成されたログを確認する必要があります。