RADIUS認証の仕組みとは?認証の仕組みやプロトコル、設定項目など詳しく解説

大手電機メーカー系のSierに入社後、インフラエンジニアとしてLinuxサーバーの構築や保守・運用、ソフトウェアの開発業務を経験。アイティベル入社後は、IT領域の執筆などを行う。


RADIUS認証はネットワークアクセス時に用いられる認証方式です。自社のネットワークにアクセスするユーザーやデバイスが正規のものであることを認証します。

RADIUS認証の特徴は、ユーザー(デバイス)とRADIUSサーバーの間にRADIUSクライアントが存在し、認証を仲介する点です。それぞれどのように設定するのかを理解しておきましょう。

本記事では、RADIUS認証の仕組みと認証プロトコル、設定項目、トラブルシューティングの方法を解説します。

目次

1. RADIUS認証とは

RADIUS(Remote Authentication Dial In User Service)はネットワーク接続時に用いられる認証の仕組みです。RADIUSを使用することで、悪意のある第三者が無断で社内ネットワークにアクセスすることを防げます。

RADIUSは、AAAサービスにもとづき、「Authentication(認証)」「Authorization(認可)」「Accounting(課金)」の機能を提供します。

なお、RADIUS認証については以下の記事で解説していますので、参考にしてください。

あわせて読みたい
RADIUS認証とは?RADIUSの基本概念から設定方法、クラウド環境でのユースケースまでを徹底解説 現代のビジネス環境は、リモートワークの普及やクラウドサービスの利用拡大により大きく変化しています。このような状況下で、企業のネットワークセキュリティを強化し...

2. RADIUSの仕組み

RADIUS認証の仕組みを知るためには、RADIUS認証の機能と、ユーザー(デバイス)、RADIUSクライアント、RADIUSサーバーの役割を理解することが非常に重要です。本章では、RADIUS認証の機能と認証の流れを解説します。

RADIUS認証の機能

RADIUS認証は以下の3者間で通信を行います。

  • ユーザー(デバイス):認証要求をする
  • RADIUSクライアント:認証要求を受け付けてRADIUSサーバーとのやり取りを行う
  • RADIUSサーバー:認証を行う

これらの3者が連携することで、ネットワークにアクセスするための認証(Authentication)、認可(Authorization)、課金(Accounting)の各機能が提供されます。

Authentication(認証)

Authentication は、ユーザーやデバイスが正当なものであるかを確認する機能です。RADIUSサーバーに登録されているユーザー情報やディレクトリサービスの情報にもとづいて、ユーザー認証を行います。

通常のRADIUS認証では、RADIUSクライアントが「Access-Request」を送信し、RADIUSサーバーで認証後に認証が成功すると「Access-Accept」、失敗すると「Access-Reject」が返されます。

Authorization(認可)

Authorizationは、認証されたユーザーがリソースにアクセスすることを許可する機能です。VLANやSSIDごとに設定が可能で、サーバーで定義したポリシーやルールに従ってアクセスを制御します。

たとえば、WindowsのNPS(ネットワークポリシーサービス)を利用する場合、アカウントやグループごとにアクセス許可を設定し、接続の可否を決定できます。また、アクセス元のサーバーやネットワーク機器(特定のIPアドレスやMACアドレスなど)にもとづいたアクセス制御も可能です。

Accounting(課金)

Accounting は、RADIUSサーバーでユーザーの認証に関するログを取得する機能です。下記のような情報が取得できます。

  • 認証日時
  • ユーザーID
  • 認証の成功または失敗

RADIUS認証後の「Accounting-Request」が送信され、そのあとに「Accounting-Response」を返すことによって、RADIUSクライアントに対してログの記録開始と完了が通知されます。RADIUSサーバーの設定でAccounting機能を有効・無効に設定することも可能です。

RADIUS認証の流れ

RADIUS認証の各ステップでは、以下の処理を行います。

1.ユーザー(デバイス)からRADIUSクライアントに対して接続を要求

ユーザー(デバイス)からRADIUSクライアントへ認証を要求します。ユーザー(デバイス)から送信された認証要求は、RADIUSクライアントによって受信されます。

2.RADIUSクライアントからユーザー(デバイス)に対して認証情報を要求

RADIUSクライアントは、ユーザー(デバイス)に対して認証に必要な情報を要求します。このとき、双方で通信を行うための認証プロトコルを選択します。

3.ユーザー(デバイス)が認証情報を提示

ユーザー(デバイス)は、RADIUSクライアントへ「Authentication-Request」を送信し、認証に必要な情報を提示します。送信する情報は、ユーザーIDとパスワードです。

4.RADIUSクライアントからRADIUSサーバーに認証情報を提示

RADIUSクライアントからRADIUSサーバーに対して「Access-Request」を送信し、認証情報を提示します。

また、追加で情報が必要な場合は、RADIUSサーバーから「Access-Challenge」を発行し、追加情報を要求します。この場合は、RADIUSクライアントからRADIUSサーバーへ、追加情報が含まれた「Access-Request」の再送信が必要です。

5.RADIUSサーバーが認証実施

RADIUSクライアントから受信した認証情報にもとづき認証を行います。

6.認証結果の通知

RADIUSサーバーからRADIUSクライアントへ「Access-Accept」を送信し、認証結果を通知します。認証が失敗した場合は「Access-Reject」を送信します。

7.RADIUSクライアントからユーザー(デバイス)に認証結果を通知

「Authentication-Ack」を送信し、RADIUSクライアントからユーザーへ認証結果を通知します。通知後、IPアドレスをはじめとする情報をユーザーとRADIUSクライアント間で交換します。

8.RADIUSクライアントからRADIUSサーバーへ利用開始を通知

「Accounting-Request」を送信し、RADIUSサーバーへログの記録を要求します。

9.RADIUSサーバーからRADIUSクライアントへ利用ログの記録開始を通知

RADIUSサーバーから「Accounting-Response」を送信し、ログの記録を開始します。

10.通信開始

認証されたユーザー(デバイス)がネットワークに接続し通信を行います。

ユーザーが接続を終了する際には、RADIUSクライアントから「Accounting-Request」の発行が必要です。この通知にもとづきRADIUSサーバーは「Accounting-Response」を発行し、ログの記録を終了します。

3. RADIUS認証のプロトコル

RADIUS認証で使用される認証プロトコルは、以下のとおりです。

  • PAP
  • CHAP
  • MS-CHAPv2
  • EAP

以前は、PAP(Password Authentication Protocol)、CHAP(Challenge Handshake Authentication Protocol)が使用されていました。しかし、脆弱性が多いため、現在ではMS-CHAPv2やEAP(Extensible Authentication Protocol)が広く普及しています。

なお、EAPはさらに複数の認証方式に分かれます。その中でも、EAP-TLS、EAP-TTLS、PEAP、EAP-MSCHAPv2がよく使用されています。

4. RADIUSの設定項目

RADIUSを使用する際には、ユーザー(デバイス)、RADIUSサーバー、RADIUSクライアントのそれぞれに設定が必要です。具体的な設定項目は、IPアドレス、認証ポート、共有シークレット、認証プロトコルなどです。

本章では、それぞれの設定項目を解説します。

ユーザー(デバイス)の設定

ユーザー(デバイス)に設定する項目は、以下のとおりです。

  • RADIUSサーバーのIPアドレス
  • 認証プロトコル
  • 証明書(EAPの場合)

ユーザー(デバイス)には、RADIUSクライアントとの通信で使用する認証プロトコルを設定します。EAPを設定する場合は、使用するサーバー証明書やクライアント証明書の設定も合わせて行います。

RADIUSクライアントの設定

RADIUSクライアントに設定する項目は、以下のとおりです。

  • RADIUSサーバーのIPアドレス
  • 認証ポート
  • 共有シークレット
  • 認証プロトコル
  • 認証の試行時間、試行回数

RADIUSクライアントには、RADIUSサーバーとの接続情報(IPアドレス、認証ポート、共有シークレット)と、ユーザー(デバイス)との通信で使用する認証プロトコルの設定を行います。

共有シークレットは、RADIUSクライアント、RADIUSサーバー間のパスフレーズの役割を果たします。RADIUSサーバーのIPアドレス、認証ポート、共有シークレットを正しく設定しないとRADIUSサーバーとの接続ができなくなるため、特に注意しなければなりません。

認証ポートは、デフォルトではUDPポート1812番を設定します。なお、RADIUSサーバー側で任意のポートを設定することも可能です。その場合は、RADIUSサーバー側で設定したポートに合わせましょう。

RADIUSサーバーの設定

RADIUSサーバーに必要な設定項目は、以下のとおりです。

  • RADIUSサーバー構成情報
  • RADIUSクライアント情報
  • ユーザー情報
  • 認証プロトコル

サーバーのIPアドレスやホスト名、ポート番号、ログ設定などRADIUSサーバーの構成情報以外に、RADIUSクライアントと接続するための情報(IPアドレス、共有シークレット)を登録します。このほか、ユーザー情報(ID、パスワード)の登録も必要です。

5. RADIUSのトラブルシューティング

RADIUS認証を利用した際に、トラブルが発生することもあるでしょう。問題を解決する際には、以下のステップをひとつずつ確認します。

ステップ1. ログメッセージの確認
ステップ2. 疎通確認
ステップ3. 設定確認
ステップ4. パケットキャプチャ
ステップ5. キャプチャ結果に応じて対応

それぞれのステップを解説します。

ステップ1. ログメッセージの確認

RADIUS認証で問題が発生した際には、まずログやエラーメッセージを確認します。ログやエラーメッセージから原因を特定できる可能性があるためです。

ログの出力内容やエラーメッセージはRADIUSサーバー、RADIUSクライアントの製品によって異なります。製品サポートに問い合わせのうえ、エラーメッセージの内容をもとに、適切に対処しましょう。

ステップ2. 疎通確認

次は、ユーザー(デバイス)、RADIUSクライアント、RADIUSサーバー間の疎通確認を実施します。はじめにpingコマンドで疎通確認を行い、ネットワーク経路上に問題がないか、あるいは機器に異常がないか確認しましょう。

製品によってはテストツールを備えているため、RADIUSクライアント、RADIUSサーバー双方に設定不備がないか確認することも可能です。

経路上に問題があるケースでは、機器やルーティングに問題が発生している可能性が考えられます。ひとつずつ異常がないか確認してみましょう。

ステップ3. 設定確認

ログチェックと疎通確認で問題が解決できない場合は、ユーザー(デバイス)、RADIUSクライアント、RADIUSサーバーの設定を確認します。

主な確認項目は以下のとおりです。

  • RADIUSサーバーのIPアドレス(ホスト名)
  • RADIUSクライアントのIPアドレス(ホスト名)
  • 共有シークレット
  • 認証プロトコル
  • ルート証明書、サーバー証明書の設定

なお、上記のチェック項目は一例にすぎません。エラーログに照らし合わせて、設定値を確認することが重要です。

ステップ4. パケットキャプチャ

設定を確認しても原因が特定できない場合は、パケットキャプチャで通信内容を解析します。パケットキャプチャを行うことで適切でない設定を特定できたり、未知の現象を発見できたりすることもあるためです。

たとえば、以下の原因を特定できます。

  • EAP通信の問題(EAP設定時)
  • 証明書の有効期限切れ
  • VLANタグの設定誤り(VLAN設定時)
  • SSIDの誤り(Wi-Fi使用時)

通信内容の解析には専門的な知識を有する必要があるため、難しい場合にはサポートに依頼するとよいでしょう。

ステップ5. キャプチャ結果に応じて対応

キャプチャ結果に応じてユーザー(デバイス)、RADIUSクライアント、RADIUSサーバーの問題を解決します。

まとめ

RADIUS認証は、ユーザー(デバイス)、RADIUSクライアント、RADIUSサーバーで行われるネットワーク接続時の認証の仕組みです。かつては、PAPやCHAPといった認証プロトコルが使用されてきましたが、現在ではPEAP、EAP-TLSをはじめとするEAPを使用します。ユーザー(デバイス)、RADIUSクライアント、RADIUSサーバーのそれぞれに適切な設定を施し、問題が発生した際にはステップを踏んで解決することが重要です。

目次