【FreeRADIUS講座 第1回】RADIUSサーバーとは?仕組みの完全図解とAlmaLinux 9へのインストール入門

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」と呼ばれます。

  1. Authentication(認証):「あなたは誰?」を確認する。(IDとパスワードの照合)
  2. Authorization(認可):「何をしていい?」を決める。(接続許可、VLAN IDの割り当て、速度制限など)
  3. 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」で自分専用環境

おすすめVPSを見る

サーバー知識を年収に
「ITエンジニア転職」

転職エージェントを見る

コメント