暗号技術入門 第3版 秘密の国のアリス
公開鍵暗号、電子署名、証明書など、TLS や内部 PKI の前提になる暗号技術を確認したい場合の参考書籍です。価格や在庫はリンク先で確認してください。
Amazon で見るこのリンクは Amazon アソシエイトリンクです。
Ubuntu 26.04 で 802.1X や EAP-TLS を扱う場合、FreeRADIUS は RADIUS server として中心になるソフトウェアです。EAP-TLS では、ユーザー名とパスワードだけでなく、CA、server 証明書、client 証明書、RADIUS client の共有 secret を分けて管理します。
この記事では、FreeRADIUS のインストール、EAP-TLS 用証明書の配置、clients.d による RADIUS client 定義、EAP module の確認、構文検証、debug 起動までをまとめます。
- FreeRADIUS のインストールとサービス確認
- EAP-TLS 用の CA / server 証明書配置
clients.dによる RADIUS client 定義mods-available/eapの TLS 設定確認radiusd -XCと debug 起動での検証
| 対象 OS | Ubuntu 26.04 Server |
|---|---|
| パッケージ | freeradius、freeradius-utils |
| サービス | freeradius.service |
| 主な設定 | /etc/freeradius/3.0/ |
| 主な用途 | 802.1X、EAP-TLS、RADIUS client 認証 |
FreeRADIUS で決めること
FreeRADIUS の設定では、認証方式、証明書、RADIUS client、待ち受け、ログの確認方法を先に決めます。EAP-TLS では、証明書の役割を混同しないことが重要です。
- RADIUS client として許可する機器を限定する
- 共有 secret を機器ごとに管理する
- EAP-TLS 用の CA 証明書と server 証明書を分ける
- client 証明書の発行元 CA を明確にする
- debug 起動で認証失敗の理由を追えるようにする
FreeRADIUS をインストールする
まず FreeRADIUS と確認用ツールをインストールし、サービス状態を確認します。
sudo apt update
sudo apt install -y freeradius freeradius-utils
systemctl status freeradius.service --no-pager
freeradius -v
radtest -h設定ディレクトリを確認する
Ubuntu の FreeRADIUS 設定は /etc/freeradius/3.0/ 配下にあります。RADIUS client は clients.conf または clients.d、EAP 設定は mods-available/eap を中心に確認します。
sudo ls -la /etc/freeradius/3.0
sudo ls -la /etc/freeradius/3.0/clients.d
sudo ls -la /etc/freeradius/3.0/mods-enabled
sudo grep -n 'clients.d' /etc/freeradius/3.0/clients.conf証明書を配置する
EAP-TLS で使う CA 証明書、server 証明書、server 秘密鍵を配置します。ここでは、事前に作成した ca.crt、radius.example.com.crt、radius.example.com.key を配置する例です。
sudo install -d -o freerad -g freerad -m 0750 /etc/freeradius/3.0/certs/site
sudo install -o freerad -g freerad -m 0644 ca.crt /etc/freeradius/3.0/certs/site/ca.crt
sudo install -o freerad -g freerad -m 0644 radius.example.com.crt /etc/freeradius/3.0/certs/site/server.crt
sudo install -o freerad -g freerad -m 0640 radius.example.com.key /etc/freeradius/3.0/certs/site/server.key
sudo ls -l /etc/freeradius/3.0/certs/siteRADIUS client を追加する
アクセスポイントやスイッチなど、RADIUS server へ問い合わせる機器を RADIUS client として定義します。clients.d に分けると、機器ごとの管理がしやすくなります。
sudo tee /etc/freeradius/3.0/clients.d/10-switches.conf >/dev/null <<'EOF'
client sw01 {
ipaddr = 192.0.2.11
secret = change-this-shared-secret
shortname = sw01
nas_type = other
}
client ap01 {
ipaddr = 192.0.2.21
secret = change-this-shared-secret
shortname = ap01
nas_type = other
}
EOF
sudo chown root:freerad /etc/freeradius/3.0/clients.d/10-switches.conf
sudo chmod 0640 /etc/freeradius/3.0/clients.d/10-switches.confEAP-TLS の参照先を確認する
EAP module では、TLS の server 証明書、秘密鍵、CA 証明書の参照先を確認します。既存ファイルを丸ごと置き換える前に、現在の設定と参照先を確認します。
sudo grep -nE 'default_eap_type|private_key_file|certificate_file|ca_file|tls-config' /etc/freeradius/3.0/mods-available/eap
sudo test -e /etc/freeradius/3.0/mods-enabled/eap
sudo ls -l /etc/freeradius/3.0/mods-enabled/eap
sudo openssl x509 -in /etc/freeradius/3.0/certs/site/server.crt -noout -subject -issuer -dates
sudo openssl x509 -in /etc/freeradius/3.0/certs/site/ca.crt -noout -subject -issuer -dates構文を検証する
設定を変更したら、サービス再起動の前に構文を検証します。FreeRADIUS では radiusd -XC が設定確認に使えます。
sudo radiusd -XC
sudo freeradius -XC
sudo systemctl restart freeradius.service
systemctl status freeradius.service --no-pagerdebug 起動で確認する
認証が通らない場合は、通常サービスを一度止め、debug 起動で EAP の進行、証明書検証、RADIUS client の一致を確認します。作業後は通常サービスへ戻します。
sudo systemctl stop freeradius.service
sudo freeradius -X
sudo systemctl start freeradius.service
systemctl status freeradius.service --no-pager待ち受けとログを確認する
RADIUS は通常 UDP 1812 / 1813 を使います。待ち受け、journal、ログファイルを確認して、RADIUS client からの要求が届いているかを見ます。
sudo ss -lunp | grep -E ':(1812|1813) '
journalctl -u freeradius.service --no-pager -n 100
sudo tail -n 100 /var/log/freeradius/radius.log
sudo grep -R 'change-this-shared-secret' /etc/freeradius/3.0確認ポイント
freeradius.serviceが起動している- RADIUS client を
clients.dに分けて定義している - 共有 secret を機器ごとに管理している
- EAP-TLS 用の CA 証明書、server 証明書、server 秘密鍵を分けて配置している
radiusd -XCで構文検証しているfreeradius -Xで認証失敗の理由を追える
まとめ
Ubuntu 26.04 の FreeRADIUS では、EAP-TLS の証明書、RADIUS client、共有 secret、ログ確認を分けて管理します。特に clients.d を使うと、機器ごとの定義を追いやすくなります。
設定変更後は、すぐに再起動するのではなく radiusd -XC で構文を検証し、必要に応じて freeradius -X で debug 起動します。証明書、client 定義、secret、接続元 IP を分けて確認すると、EAP-TLS の切り分けがしやすくなります。

