Wi-Fiのパスワード、そろそろ「使い回し」をやめませんか?
こんにちは!「LINUX工房」管理人の「リナックス先生」です。
今回から全8回にわたり、ネットワークエンジニアやサーバー管理者の必須スキル、「認証サーバー(FreeRADIUS)」の構築・運用講座をスタートします!
突然ですが、あなたの会社のWi-Fi、まさかホワイトボードに書かれた「パスワード」を社員全員で共有していませんか?
先生、ドキッとしました…。
うちの会社、入社した時に教えてもらったWi-Fiパスワード、もう5年くらい変わってないです。
退職した人も知ってるパスワードだから、セキュリティ的にヤバいですよね?
でも、社員ごとに違うパスワードを設定するなんて、Wi-Fiルーターの設定画面じゃ無理ですよ!
そう、家庭用ルーターや小規模な設定では限界があるわね。
そこで登場するのが「RADIUS(ラディウス)サーバー」よ。
これを使えば、「田中さんはこのパスワード」「佐藤さんはこのパスワード」といった個別認証が可能になるし、「誰がいつ接続したか」も全部記録できるわ。
Linuxを使えば無料で構築できる最強のセキュリティシステム、一緒に作っていきましょう!
本連載では、世界で最も利用されているオープンソースのRADIUSサーバーソフトウェア「FreeRADIUS(フリーラディウス)」を使用し、AlmaLinux 9上に堅牢な認証基盤を構築する手順をゼロから学びます。
🔐 FreeRADIUS完全攻略講座(全8回)目次
現在地:【第1回】RADIUSサーバーとは?仕組みの完全図解とインストール
- 【第2回】基本設定とユーザー追加(clients.conf/users)&接続テスト
- 【第3回】脱・テキスト管理!MariaDB(MySQL)との連携設定
- 【第4回】Web GUIで楽々管理!daloRADIUSの導入と設定
- 【第5回】Wi-Fi認証の鉄板!EAP-PEAP認証と電子証明書の作成
- 【第6回】セキュリティ極限強化!Google Authenticatorによる多要素認証
- 【第7回】「誰がいつ繋いだ?」ログ管理とアカウンティングの極意
- 【第8回】トラブルシューティングと冗長化(Failover)構成
第1章:RADIUSサーバーの仕組みと「AAA」モデル
構築を始める前に、RADIUSが何をしているのか、その概念を理解しておきましょう。
これを知らないと、設定ファイルの意味が全く分かりません。
1. 3つの登場人物
RADIUS認証の世界には、必ず3つの役割が登場します。
| 役割名 | 具体例 | 説明 |
|---|---|---|
| Supplicant (サプリカント) |
PC、スマホ | ネットワークに接続したい利用者(端末)。 |
| Authenticator / NAS (オーセンティケーター) |
Wi-Fi AP、VPNルーター | 「関所」の役割。利用者からの接続を受け付け、RADIUSサーバーに「この人通していい?」と問い合わせる機器。 RADIUSの世界では「RADIUSクライアント」とも呼びます。 |
| Authentication Server (認証サーバー) |
FreeRADIUS | ユーザー情報(ID/PASS)を持っており、NASからの問い合わせに対して「OK/NG」を判定するサーバー。 |
初心者が一番混乱するのが「RADIUSクライアント」という言葉です。
これは「PCやスマホのことではなく、Wi-FiアクセスポイントやVPN機器のこと」を指します。
RADIUSサーバーから見れば、問い合わせてくる相手(クライアント)はルーターだからです。
これだけは絶対に覚えておいてください。
2. AAA(トリプルエー)モデル
RADIUSプロトコルは、以下の3つの機能を提供します。頭文字をとって「AAA」と呼ばれます。
- Authentication(認証):「あなたは誰?」を確認する。(IDとパスワードの照合)
- Authorization(認可):「何をしていい?」を決める。(接続許可、VLAN IDの割り当て、速度制限など)
- Accounting(アカウンティング):「いつどれくらい使った?」を記録する。(接続開始時刻、終了時刻、通信量のログ保存)
FreeRADIUSは、このすべてに対応した強力なソフトウェアです。
第2章:環境構築(AlmaLinux 9)
それでは、実際にサーバーを構築していきましょう。
今回は、Red Hat Enterprise Linux (RHEL) 9 互換の無料OSである AlmaLinux 9 を使用します。
ステップ1:サーバーの準備
以下の環境を前提に進めます。
- OS: AlmaLinux release 9.x (Minimalインストール推奨)
- IPアドレス: 192.168.1.100 (固定IP推奨)
- ユーザー: root権限またはsudoが使えるユーザー
まずはお決まりのパッケージ更新を行います。
sudo dnf update -y
ステップ2:FreeRADIUSのインストール
AlmaLinux 9の標準リポジトリ(AppStream)には、安定版の FreeRADIUS 3.0系が含まれています。
外部リポジトリを追加することなく、dnf コマンド一発でインストール可能です。
# サーバー本体と、テスト用ツール(utils)をインストール sudo dnf install freeradius freeradius-utils -y
インストールが完了したら、バージョンを確認してみましょう。
radiusd -v
以下のような出力が出ればOKです。
radiusd: FreeRADIUS Version 3.0.26 Copyright (C) 1999-2022 The FreeRADIUS server project and contributors.
第3章:設定ファイル構造の完全解説
FreeRADIUSが難しいと言われる理由の一つが、「設定ファイルの多さと複雑さ」です。/etc/raddb/ ディレクトリの中を見ると、大量のファイルがあって圧倒されるかもしれません。
しかし、初心者が触るべきファイルは決まっています。
まずはこのディレクトリ構造を整理して理解しましょう。
主要な設定ファイル(/etc/raddb/)
| ファイル名 | 役割 | 重要度 |
|---|---|---|
| radiusd.conf | サーバー全体の基本設定。ログの場所やモジュールの読み込み指定など。 | ★★☆☆☆ (基本はいじらない) |
| clients.conf | RADIUSクライアント(NAS)の定義。 どのルーターからの接続を許可するか、共有シークレット(パスワード)は何かを設定する。 |
★★★★★ (必ず設定する) |
| users (mods-config/files/authorize) |
ユーザー情報の定義。 接続する人(ID/PASS)をここに書く。DBを使わない場合はここがメイン。 |
★★★★★ (必ず設定する) |
モジュール管理(mods-available / mods-enabled)
FreeRADIUSは機能(LDAP連携、SQL連携、EAP認証など)が「モジュール」として分かれています。
Debian/Ubuntu系のApacheのように、「available(利用可能)」ディレクトリにあるファイルのシンボリックリンクを「enabled(有効)」ディレクトリに貼ることで機能をオンにする仕組みです。
/etc/raddb/mods-available/: 全モジュールの設定ファイル置き場/etc/raddb/mods-enabled/: 現在有効になっているモジュール(リンク)
例えば、第3回で行う「DB連携」では、ここに sql モジュールのリンクを貼る作業を行います。
この仕組みを覚えておいてください。
第4章:ファイアウォールの設定(ポート開放)
RADIUSサーバーは、UDPプロトコルを使用します。
Linuxのファイアウォール(firewalld)で、以下のポートを開放する必要があります。
- UDP 1812: 認証(Authentication)用
- UDP 1813: アカウンティング(Accounting)用
※古い規格では 1645/1646 が使われていましたが、現在は 1812/1813 が標準です。
firewalldの設定コマンド
# radiusサービス(1812/udp, 1813/udp)を許可 sudo firewall-cmd --add-service=radius --permanent # 設定を反映 sudo firewall-cmd --reload # 確認 sudo firewall-cmd --list-all
services: の欄に radius が追加されていれば成功です。
第5章:サービスの起動とステータス確認
設定はまだデフォルトのままですが、一度起動して正常に動くか確認しましょう。
1. サービスの起動
プロセス名は freeradius ではなく radiusd である点に注意してください。
# 起動 sudo systemctl start radiusd # 自動起動設定(サーバー再起動時にも上がるように) sudo systemctl enable radiusd
2. ステータスの確認
sudo systemctl status radiusd
緑色の文字で Active: active (running) と表示されていれば、インストールは成功しています。
3. ログの確認
もし起動に失敗した場合、ログファイルを確認するのが解決の早道です。
FreeRADIUSのログはデフォルトで /var/log/radius/radius.log に出力されます。
sudo tail -f /var/log/radius/radius.log
Ready to process requests という行があれば、リクエストを受け付ける準備ができています。
第6章:セキュリティグループ(クラウド利用時の注意)
もしAWS(EC2)やKAGOYA CLOUD VPSなどのクラウド環境で構築している場合、OS内部のfirewalldだけでなく、クラウド側の「セキュリティグループ」や「パケットフィルター」の設定も必要です。
⚠️ よくあるミス
Webサーバー(TCP 80/443)と違って、RADIUSは UDP です。
セキュリティグループで「TCP 1812」を開放しても繋がりません。
必ずプロトコルを UDP に指定して開放してください。
まとめ:認証サーバーの土台が完成
お疲れ様でした!
これで、あなたのAlmaLinuxサーバーにFreeRADIUSがインストールされ、認証を受け付ける準備が整いました。
今回の重要ポイント:
- RADIUSは「AAA」モデル(認証・認可・課金)を実現するプロトコル。
- クライアント(NAS)とは、PCではなくWi-Fi APやVPNルーターのこと。
- FreeRADIUSの設定ファイルは
/etc/raddb/に集約されている。 - ポート番号は UDP 1812 と 1813 を使う。
しかし、今のままでは「どのルーターからの接続も受け付けない」し、「認証するユーザーも登録されていない」空っぽの状態です。
次回、第2回は「基本設定とユーザー追加(clients.conf/users)&接続テスト」です。
設定ファイルを編集してルーターを登録し、テストユーザーを作成して、実際にコマンドラインから認証テスト(radtest)を行う手順を解説します。
ここからがいよいよ本番です。お楽しみに!
▼ エンジニアとしてのキャリアを加速させる ▼
認証サーバーを構築
「VPS」で自分専用環境
サーバー知識を年収に
「ITエンジニア転職」


コメント