FreeRADIUS


   RADIUS(ラディウス)(Remote Authentication Dial In User Service)とは、リモートユーザの認証を行うための規格で、RFC(The Request for Comments)の2866(RADIUS Accounting)にその内容が記載されています。RADIUSは、RADIUSサーバとRADIUSクライアントの二つの要素からなります。通常、RADIUSクラアントはルータやスイッチなどのネットワーク機器です。RADIUSクライアントは、リモートユーザ(ユーザ端末)から認証要求を受けたときにRADIUSサーバに問い合わせ、RADIUSサーバからの認証結果に従って動作します。

 ここでは、RADIUSクラインアントとなるルータやスイッチのソフトウェアを開発する際に必要となるフリーのRADIUSサーバ(FreeRADIUS)を紹介します。
 
■FreeRADIUSの公式サイト(英文)
http://www.freeradius.org/

■RFC 2866 "RADIUS Accounting"のサイト(英文)
ftp://ftp.rfc-editor.org/in-notes/rfc2866.txt

■FreeRADIUSのインストール方法
 FreeRADIUSの公式サイト(http://www.freeradius.org/)から任意のディレクトリ(ここでは、$HOME/TOOL)にソースコードのアーカイブ(freeradius-x.x.x.tar.gz)をダウンロードする。
 
 
$ cd $HOME/TOOL # ダウンロードしたディレクトリに移動
$ tar xzvf freeradius-x.x.x.tar.gz # ファイルの解凍・展開
(free
radius-x.x.xというディレクトリが生成され配下にファイルが展開される)
$ cd freeradius-x.x.x # 展開してできたディレクトリに移動
$ ./configure # 環境設定
$ make # コンパイル
$ su # スーパーユーザに変更
Password: (パスワード)  
# make install # インストール
# exit #一般ユーザに戻る
$  
 

■FreeRADIUSの使用方法
 ここでは、極々簡単な使用方法を紹介します。RADIUSサーバを使用するには、スーパーユーザの権限が必要となります。

 なお、FreeRADIUSは、市販本の「RADIUS ユーザ認証セキュリティプロトコルO'REILLY Japan)」に詳しく載っています。

1. 定義ファイルの設定
 RADIUSサーバを起動する前に、認証条件を各種定義ファイルを設定する必要があります。定義ファイルの設定はRADIUSクライアントの仕様によって異なるので、開発するRADIUSクライアントの仕様に従って設定します。
 RADIUSクライアントの仕様の設計は、勿論、RFC2866(ftp://ftp.rfc-editor.org/in-notes/rfc2866.txt)に従って行う必要があります。  

【定義ファイルの場所】/usr/local/etc/raddb

1.1. radius.confファイル
 radius.confファイルは、FreeRADIUSの設定ファイルです。設定項目はあまりにも多いので、ここでは省略します。取りあえずはデフォルト値で大丈夫だと思います。

 ただ、「reject-delay」は「0」にしておいた方が良いかもしれません。「reject-dalay」は認証失敗のときに、クライアントにrejectを返すタイミングを遅らせる時間を設定するものですが、デフォルト値は「1」、つまり1秒となっています。「0」にすればクライアントに即座にrejectを返します。タイミングを遅らせるようにしていると、クライアントの仕様によってはrejectを受信できずにタイムアウトになってしまう可能性があります。

1.2. usersファイル
 usersファイルの設定も、RADIUSクライアントの仕様によりますが、最も一般的なユーザIDとパスワードによる認証を行う場合は、以下のような設定を追加します。
    例)「ユーザID:user1, パスワード:qwertyui」の場合

 
user1 Auth-Type := Local, User-Password == qwertyui
 

2. RADIUSサーバの起動

 
$ su # スーパーユーザに変更
Password: (パスワード)  
# /usr/local/sbin/radiusd -fxx # RADIUSサーバの起動
(停止させる場合は、Ctrl+Cを押す。)
 

※)radiusdには様々なオプションがありますが、取り合えずRADIUSクライアントとRADIUSサーバが送受信したパケットの内容さえ確認できればいいという場合は、-fxxを付ければ十分です。
【オプションの意味】
   f:フォアグラウンド処理モード
    x:デバッグモード(xxと二つ付けるとより詳細な情報が得られる)

 より詳細なパケットの内容を参照したい場合は、Etherealを併用すると全てのパケット情報を解析することができます。
 

 


Copyright (C) 2003-2004 Taketo Kamikawa