手当たり次第に書くんだ

飽きっぽいのは本能

Ubuntu 26.04 FreeRADIUS の基本設定 – EAP-TLS と clients.conf を管理する

関連する記事

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 起動での検証
対象 OSUbuntu 26.04 Server
パッケージfreeradiusfreeradius-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.crtradius.example.com.crtradius.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/site

RADIUS 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.conf

EAP-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-pager

debug 起動で確認する

認証が通らない場合は、通常サービスを一度止め、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 の切り分けがしやすくなります。

関連する記事
Ubuntu 26.04 FreeRADIUS の基本設定 – EAP-TLS と clients.conf を管理する

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

トップへ戻る