2015.6.29 初出
2015.7.1 更新
2015.7.31 更新
2017.2.7 更新
2020.7.22 更新
2022.8.22 更新
FreeRADIUS 3 を用いて eduroam 対応の RADIUS サーバ (proxy および IdP 機能) を構築する方法について説明します。
機関 example.ac.jp のトップレベルのサーバ(RADIUS proxy)の設定を想定。小規模なIdPとしても利用可能とする。
注: FreeRADIUS3.0.25以前にはTLSの処理が不安定になる不具合があるため、必ず3.2.0以降を使う必要があります。 |
ダウンロードしたファイルを展開し、ビルド後、インストールします。
$ tar zxf freeradius-server-3.2.0.tar.gz $ cd freeradius-server-3.2.0 $ ./configure --prefix=/usr/local/freeradius/3.2.0 $ make # make install |
・makeまでは一般ユーザで構いませんが、make installはroot権限で行ってください。
# cd /usr/local/freeradius/3.2.0/etc # tar zxpf raddb-3.2.0-eduroamJP.tgz |
最低限、変更が必要なファイルは、以下のとおりです。設定の注意点も示します。
mods-available/eap
FreeRADIUSが自動的に作成したサーバ証明書で動作確認の後、正規のサーバ証明書を用意して、ファイル中のprivate_key_password, private_key_file, certificate_file, ca_file
を適宜書き換えて下さい。UPKI電子証明書発行サービスなどのサーバ証明書が利用できます。
注意:サーバ認証において、公共のCAから発行された証明書を用いた場合、プライベートのCA証明書を端末に導入する煩雑さを回避できます。 |
注意2: EAP-TLSのクライアント認証のフェーズでは、公共のCAを使うべきではありません (eapファイルにコメントあり)。 |
sites-available/nonexistent, sites-enabled/nonexistent
FreeRADIUSのパッケージに含まれないファイルです。機関に存在しないレルムを受信した際に、その旨をエラーとして返すためのvirtual server定義です。サンプルのtarファイルに含まれているものをコピーして、Example Universityの部分を自機関の名前に書き換えてください。
debugモードでradiusサーバを起動します。
# /usr/local/freeradius/3.2.0/sbin/radiusd -fxx -l stdout |
パスを通した後、テスト用コマンドを実行します。
# export PATH=$PATH:/usr/local/freeradius/3.2.0/bin # radtest ユーザ名@example.ac.jp パスワード localhost 1 testing123 # radtest -t mschap ユーザ名@example.ac.jp パスワード localhost 1 testing123 # radtest -t mschap ユーザ名@example.ac.jp パスワード localhost:18120 1 testing123 |
動作確認後は、必ずテスト用アカウントを削除して、radiusd を再起動してください。
eduroam JPのトップレベルRADIUS proxyに接続する際に、機関側の設定不足によって認証連携がうまく動作しない例が散見されます。事務局の負担軽減のため、問い合わせの前に以下の点を確認、修正するようにお願いします。
機関のFirewallでRADIUSの通信がブロックされていないか?
機関のFirewallの設定で、RADIUSプロトコルが使用するポート(1812/udpと1813/udp)を開けてください。