RADIUS

システム開発や検証用に認証サーバを構築する必要があった場合、FreeRADIUSを使う場合が多いです。
設定が比較的簡単で、ユーザ数にもよりますが 1000ユーザ/分 くらいの性能がでるので使いやすいからです。

商用利用は下記の限界を許容できるならば可能だと思います。
  • ユーザ数は10,000程度まで (ユーザファイルを上から検索する仕様のため)
  • ログファイルのカスタマイズができない (レポーティング処理は別途用意が必要)
  • パラメータ(レルム、ポート)別でプロセスを分けることできない (サービス別のプロセス分散が不可能)

管理人の経験では、ロードバランサーを用いた2台冗長構成で5年間安定稼働した例を知っています。
(ただし、認証処理のみでアカウンティング処理はしていない)




FreeRADIUSのインストール (CentOS)

ソースからインストールするのは、細かく諸元を指定できるメリットがあるのですが、FreeRADIUSを使う状況は内部検証など使用することが多いと思いますのでyum(ヤム)でインストールしてしまうのが簡単だと思います。

インストール例
$sudo su -
# yum install freeradius
Loaded plugins: fastestmirror, kmod
Repository 'vz-base' is missing name in configuration, using id
Repository 'vz-updates' is missing name in configuration, using id
Loading mirror speeds from cached hostfile
 * addons: rsync.atworks.co.jp
 * base: rsync.atworks.co.jp
 * extras: rsync.atworks.co.jp
 * updates: rsync.atworks.co.jp
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package freeradius.i386 0:1.1.3-1.6.el5 set to be updated
--> Processing Dependency: perl(DBI) for package: freeradius
--> Processing Dependency: libltdl.so.3 for package: freeradius
--> Running transaction check
---> Package libtool-ltdl.i386 0:1.5.22-7.el5_4 set to be updated
---> Package perl-DBI.i386 0:1.52-2.el5 set to be updated
--> Finished Dependency Resolution

Dependencies Resolved

========================================================================================
 Package                Arch           Version                     Repository      Size
========================================================================================
Installing:
 freeradius             i386           1.1.3-1.6.el5               base           1.1 M
Installing for dependencies:
 libtool-ltdl           i386           1.5.22-7.el5_4              base            37 k
 perl-DBI               i386           1.52-2.el5                  base           600 k

Transaction Summary
========================================================================================
Install      3 Package(s)         
Update       0 Package(s)         
Remove       0 Package(s)         

Total download size: 1.8 M
Is this ok [y/N]: y                                         (yesでインストール実行)

Downloading Packages:
(1/3): libtool-ltdl-1.5.22-7.el5_4.i386.rpm                      |  37 kB     00:00     
(2/3): perl-DBI-1.52-2.el5.i386.rpm                              | 600 kB     00:00     
(3/3): freeradius-1.1.3-1.6.el5.i386.rpm                         | 1.1 MB     00:00     
----------------------------------------------------------------------------------------
Total                                                   4.9 MB/s | 1.8 MB     00:00     
Running rpm_check_debug
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing     : perl-DBI [                                                     ] 1/3  Installing
  Installing     : libtool-ltdl [                                                 ] 2/3  Installing
  Installing     : freeradius [                                                   ] 3/3  Installing
Installed:
  freeradius.i386 0:1.1.3-1.6.el5                                                       

Dependency Installed:
  libtool-ltdl.i386 0:1.5.22-7.el5_4             perl-DBI.i386 0:1.52-2.el5            

Complete!
# rpm -q freeradius        (インストールされたバージョンを確認)
freeradius-1.1.3-1.6.el5

FreeRADIUSの設定

インストールした後、取り急ぎ使用する場合は /etc/raddb 配下にある下記の3点の設定を更新します。

  • 基本設定(radius.conf)
 FreeRADIUSの全般的な設定をします。
  • クライアント設定(clients.conf)
 認証やアカウンティング要求を受け付ける、RADIUSクライアント(ネットワーク機器、アプリケーションサーバなど)を定義します。
  • ユーザ登録(users)
 認証するユーザの情報を定義します。ファイル名はradius.confで定義すれば変更可能です。


radius.confの編集例
# cd /etc/raddb
# pwd
# cp radiusd.conf radiusd.conf.orig
# vi radiusd.conf

log_auth = no を yes に変更する。
(/var/log/radius.logに認証したユーザ名が出力される様になる)


clients.confの設定例
# cd /etc/raddb
# pwd
# cp clients.conf clients.conf.orig
# vi clients.conf

下記を追記
client 192.168.250.100 {  ★認証要求を受け付ける対抗機器のIPアドレス(RADIUSサーバが名前解決できるならばDomain名でもOK)
       secret          = testing123   ★クライアントで設定するパスフレーズ
       shortname       = hoge         ★適当な名前
}

usersの設定例
# cd /etc/raddb
# pwd
# vi users

下記を追記 (ユーザ名が"taro"、パスワードが"testing"のユーザを登録する)
taro  Auth-Type := Local, User-Password == "testing"


FreeRADIUSの動作確認

FreeRADIUS起動したらradtestというテストコマンドで動作確認します。

テストコマンド
radtest ユーザ名 パスワード ショートネーム NASポート パスフレーズ


確認例 (RADIUSサーバ側)
#service radiusd start   ★FreeRADIUSを起動
#ps aux | grep radius    ★起動しているかpidを確認 (service radiusd status でも可能)

#radtest taro testing loakloackcal host 1812 testing123
Sending Access-Request of id 194 to 127.0.0.1 port 1812
	User-Name = "taro"
	User-Password = "testing"
	NAS-IP-Address = 255.255.255.255
	NAS-Port = 1812
rad_recv: Access-Accept packet from host 127.0.0.1:1812, id=194, length=20 ★Access-Acceptで認証されたことを確認
最終更新:2011年05月18日 11:12
ツールボックス

下から選んでください:

新しいページを作成する
ヘルプ / FAQ もご覧ください。