システム開発や検証用に認証サーバを構築する必要があった場合、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点の設定を更新します。
FreeRADIUSの全般的な設定をします。
認証やアカウンティング要求を受け付ける、RADIUSクライアント(ネットワーク機器、アプリケーションサーバなど)を定義します。
認証するユーザの情報を定義します。ファイル名は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