非常に鋭い質問です。
結論から言うと、nginxをRADIUSサーバとして採用するのは不適切であり、実質的に不可能に近いです。
理由と代替案を以下で詳しく説明します。
1. そもそもRADIUSサーバとは
RADIUS(Remote Authentication Dial-In User Service)は、
ユーザ認証・認可・課金(AAA:Authentication, Authorization, Accounting) を行うプロトコルで、
主に次のような用途で使われます。
RADIUSは UDPベースのプロトコル(通常ポート1812/1813) を使用します。
2. nginxの性質
一方で nginx は、
HTTP/HTTPS(TCP)を扱うリバースプロキシ/Webサーバ
です。
nginxが得意なこと
静的ファイルの配信
リバースプロキシ
ロードバランサ/APIゲートウェイ
TLS終端処理
WebSocketやgRPCの中継
nginxが扱えないこと
UDPベースのプロトコル(RADIUS、DNSなど)
認証プロトコル(EAP, PAP, CHAP)そのものの処理
RADIUSパケットの生成や認可レスポンス
3. 技術的な理由:nginxではRADIUSが実現できない
RADIUSはHTTPではなく独自のバイナリUDPプロトコルです。
nginxはHTTP(S)プロキシとして設計されているため、
RADIUSのようなバイナリUDPプロトコルの認証要求を解釈も転送もできません。
よくある誤解
「nginxでRADIUSリクエストを受けて、認証を外部APIに渡せばいいのでは?」
→ これは "HTTP API Gateway" としての利用 であって、
RADIUSサーバとして振る舞うことはできません。
(例:nginxがREST API認証のフロントにはなれるが、RADIUSプロトコルの応答は返せない)
4. 代替となる適切なRADIUSサーバソフト
以下のソフトウェアが代表的で、信頼性・実績・拡張性があります。
| ソフト名 | 特徴 | 用途例 |
|---|
| FreeRADIUS | 最も一般的。高性能で拡張性が高く、認証方式(PAP/CHAP/EAP)に対応。 | 大企業、大学、ISPなど。業界標準。 |
| Radiator | 商用版RADIUSサーバ。柔軟な設定とスクリプト連携が得意。 | 金融機関、通信キャリア向け。 |
| Microsoft NPS (Network Policy Server) | Windows Serverに組み込み。Active Directoryと連携しやすい。 | Windows環境の企業LAN。 |
| TekRADIUS | Windows向けフリーソフト。GUI管理可能。 | 小規模ネットワーク・検証環境。 |
特に FreeRADIUS は圧倒的に採用実績が多く、
Linuxベースのシステムでは事実上の標準です。
5. nginxとRADIUSの“共存”は可能
直接RADIUSサーバにはなれませんが、nginxをフロントに置いてRADIUSを裏で使う構成は可能です。
例:Web認証ポータルでRADIUSを利用
User (Browser) ↓ HTTPS [nginx: Web Portal] ↓ REST API [Backend: FreeRADIUS or PAM-RADIUS module] ↓ [RADIUS clients: Wi-Fi AP / Switch]
→ nginxはRADIUSサーバではなく、RADIUSクライアントやWebポータルの一部として使う構成です。
6. まとめ
| 観点 | nginx | FreeRADIUSなどRADIUSサーバ |
|---|
| 対応プロトコル | HTTP(S) | RADIUS (UDP) |
| 認証機能 | Basic/Auth/JWTなどWeb認証 | PAP/CHAP/EAPなどネットワーク認証 |
| 主な用途 | Webアプリ・APIゲートウェイ | ネットワーク認証(Wi-Fi, VPN, 802.1X) |
| RADIUSサーバとしての利用 | ×(非対応) | ○(標準的) |
| 共存構成 | Webポータル+RADIUSバックエンド | 適合 |
結論:
nginxはRADIUSサーバとして利用することはできません。
RADIUS機能が必要であれば、FreeRADIUSが最も安定かつ柔軟な選択です。
nginxはあくまでHTTPレイヤのゲートウェイとして、RADIUSと連携させる形が現実的です。
この記事へのコメント