オープンソース(RadiusサーバとFreeRadiusとDaloRadius)

サーバー構築のデージーネットTOP > OSS情報 > 一押しOSS >Radiusサーバ〜FreeRadiusとDaloRadius〜

Radiusサーバ〜FreeRadiusとDaloRadius〜

目次

FreeRadiusとdaloRadius

FreeRadiusは、RedHat Enterprise LinuxSuSE Linux Enterprise Server、Debian、Ubuntuなど、様々なLinuxディストリビューションに採用されているRadiusサーバです。FreeRadiusはオープンソースソフトウェアですので、ユーザ数に関係なく自由に利用することができます。

FreeRadiusは、Radiusサーバのデファクトスタンダードで、Radiusサーバとして必要な次の機能を備えています。

  • AAA(認証、承認、アカウンティング)の機能
  • Radiusクライアントの共有鍵
  • Radiusプロキシの機能
  • IEEE 802.1X認証(EAP-TLS、EAP-PEAP、EAP-TTLS)

Radiusサーバ導入の問題点

一般的なRadiusサーバ製品は、ユーザライセンス制を取っているものがほとんどです。したがって、利用するユーザが多ければ多いほど、導入コストも保守サポートのコストも高くなる傾向があります。そのため、無料で入手することができるOSSを使ってRadiusサーバを構築したいと考えるシステム管理者は多いようです。しかし、実際には、OSSを導入するのに躊躇するシステム管理者がほとんどです。それは、管理に対する不安があるためです。

FreeRadiusの初期設定や認証を行なう機器との連携設定等は、SIerなどのシステム構築ベンダーに依頼することができます。そのため、導入することは難しくありません。しかし、実際に利用するには、日々の運用管理が必要です。FreeRadiusの管理は、Linux上でファイルやコマンドラインを使って行う必要があります。管理マニュアルなどが整備されているわけでもありません。そのため、製品のRadiusソフトウェアと比べて、管理しにくいという欠点があります。例えば、FreeRadiusにユーザを追加する場合には、/etc/raddb/usersというファイルに、次のようなエントリーを追加します。

/etc/raddb/users

user01 Cleartext-Password := "T3tz@W2vc"
       Service-Type = Framed-User,
       Framed-Protocol = PPP,
       Framed-IP-Address = 172.16.1.33,
       Framed-IP-Netmask = 255.255.255.0,
       Framed-Routing = Broadcast-Listen,
       Framed-Filter-Id = "std.ppp",
       Framed-MTU = 1500,
       Framed-Compression = Van-Jacobsen-TCP-IP
                                    

これは、PPPによるリモートアクセスを行なうユーザの追加の例です。それぞれの項目を理解するのも難しく、またテキストファイルでの管理というのにも抵抗があるかもしれません。もし障害が発生すると、ログなどを解析して原因究明をする必要もあります。しかし、OSSなので何の支援もないのではないかと不安になってしまいます。こうした運用上の負荷が気になってしまうため、FreeRadiusを検討しても、導入に躊躇してしまうのです。

デージーネットからの提案【daloRADIUS】

この欠点を補うために、デージーネットではFreeRadiusと一緒にdaloRADIUSを導入することをお勧めしています。

daloRADIUSは、Liran Tal氏が開発し、管理しているオープンソースソフトウェアです。GNU General Public License version 2.0 (GPLv2)の下で公開されています。daloRADIUSは、FreeRadiusのフロントエンドとして利用することができます。FreeRadiusとdaloRADIUSを組み合わせて使うことで、通常の運用で必要なログの管理やユーザの管理などのオペレーションをWEB経由で行うことができるようになります。そのため、FreeRadius導入の大きな課題であった運用管理の負荷を、大幅に低減することができるのです。

なお、以前のdaloRADIUSは日本語化されていませんでした。しかし、2016年にデージーネットが日本語化を行い、作者にパッチを提供しました。また、オリジナルのdaloRadiusには、いくつかのセキュリティの問題とバグがありました。デージーネットでは、これらの問題の対策パッチも製作者にフィードバックを行ない、採用されています。

デージーネットでは、daloRADIUSとFreeRadiusを組み合わせたシステムを、インターネットサービスプロバイダに導入し稼働しています。そこでは、PPPoEの認証サーバとして利用しています。他にも、WiFiやVPN装置のユーザ認証のために利用している実績もあります。



daloRADIUSとFreeRadiusのシステム構成

daloRADIUSは、PHPとJavaScriptで書かれています。そのため、稼働させるには、WebサーバとPHPが必要です。また、FreeRadiusとの連携は、バックエンドのデータベースを介して行ないます。バックエンドデータベースとしては、MySQLPostgreSQL、SQLiteなどをサポートしています。

Radiusサーバ構成

daloRADIUSを使うことのメリット

daloRADIUSを使うと、FreeRadiusの管理がやりやすくなります。ここでは、具体的な管理機能について紹介します。

ユーザ管理

FreeRadiusを利用するために、必ず必要で、もっとも手間が掛かるのがユーザの登録です。ユーザの登録は、通常は/etc/raddb/usersファイルで行ないます。例えば、次の設定は、設定ファイルにサンプルとして掲載されているものです。

/etc/raddb/users

steve  Cleartext-Password := "omX8lG^v4"
       Service-Type = Framed-User,
       Framed-Protocol = PPP,
       Framed-IP-Address = 172.16.3.33,
       Framed-IP-Netmask = 255.255.255.0,
       Framed-Routing = Broadcast-Listen,
       Framed-Filter-Id = "std.ppp",
       Framed-MTU = 1500,
       Framed-Compression = Van-Jacobsen-TCP-IP
                                    

この例では、steveというユーザのパスワードや利用するプロトコル、割り当てるIPアドレスなどを登録しています。daloRADIUSでは、ユーザの設定もWEBから行なうことができます。次の画面は、daloRADIUSのユーザ登録画面です。(+をクリックして詳細をご覧ください。)

アカウント情報

 

Radiusユーザ登録

ユーザ情報

  

さらに、ユーザ情報タブをクリックすると、該当ユーザの名前や場所などの情報を記録しておくこともできます。これは、FreeRadius単体では実現できない機能です。ユーザアカウントと実際の利用者情報を紐付けておくことができ、とても便利です。

Radiusユーザ情報登録

              

ユーザの属性・ユーザ管理

              

アカウント名やパスワード以外のFramed-IP-Address、Framed-IP-Netmaskなど、認証する機器が利用する属性も属性タブで登録することができます。

Radiusユーザ属性登録

              

daloRADIUSは、Cisco、Aruba、Nokiaなど100以上のベンダーの属性をサポートしています。そのため、標準の設定だけで、市販されているほとんどのネットワーク機器に対応することができます。万一、利用しようとしているベンダーがサポートされていなくても、ベンダ属性管理メニューから追加することができます。

作成したユーザは、ユーザ一覧で管理することができます。

Radiusユーザ一覧

この画面から、ユーザを一時的に無効にしたり、削除したりすることもできます。

 

グループとプロファイルの機能

認証する機器に必要な属性の情報は、ユーザ毎に個別の設定ではありません。そのため、ユーザを登録する毎に、いちいち設定するのは面倒です。こうした場合には、事前にプロファイルとよばれる属性セットを作成し、それをユーザに適用することができます。次は、プロファイルの登録画面です。(+をクリックして詳細をご覧ください。)

           

プロファイル登録画面

Radiusプロフィール登録

             

この画面で作成したプロファイルは、ユーザ登録画面のグループのメニューに表示されます。そのため、ユーザを登録する時に、グループを指定しておくだけで、面倒な属性の指定を省くことができるようになります。

              
                 

NASの管理

FreeRadiusを利用して認証を行なうネットワーク機器を増やしたいときに必要なのが、NASの設定です。NASは、Radiusサーバを利用して認証を行なうネットワーク機器のことです。どのNASがFreeRadiusを利用できるのかを、あらかじめ登録しておく必要があります。FreeRadiusでは、NASの設定は/etc/raddb/clients.confというファイルに設定します。次は、その設定例です。

/etc/raddb/clients.conf

client 192.168.7.22 {
        secret = iw79GldQ.
        shortname = RT011
}
                                    

daloRADIUSを使うと、次のように簡単にWEB画面からNASを登録することができます。

Radius-NAS登録

IPアドレスの割り当て

FreeRadiusには、あらかじめ決められたアドレスプールの中から、接続ユーザへアドレスを割り当てるippoolと呼ばれる機能があります。次の例は、そのようなIPプールを利用するユーザの設定例です。

/etc/raddb/users

steve  Cleartext-Password := "omX8lG^v4"
       Pool-Name := "main_pool"
       Service-Type = Framed-User,
       Framed-Protocol = PPP,
       Framed-Routing = Broadcast-Listen,
       Framed-Filter-Id = "std.ppp",
       Framed-MTU = 1500,
       Framed-Compression = Van-Jacobsen-TCP-IP
                                    

この例では、「main_pool」という名称のIPプールからアドレスを割り当てます。通常のFreeRadiusでは、アドレスプールを次のように設定します。

/etc/raddb/radiusd.conf

ippool main_pool {
	filename = ${db_dir}/db.ippool
	range_start = 192.0.2.1
	range_stop = 192.0.2.254
	netmask = 255.255.255.0
	cache_size = 800
	ip_index = ${db_dir}/db.ipindex
	override = no
	maximum_timeout = 0
}
                                    

IPプールの設定は、一度初期設定を行なえば、それほど修正が必要な設定ではありません。しかし、利用者の増加などのためにIPプールに登録しているアドレスがいっぱいになると、拡張が必要となります。daloRADIUSでは、このようなIPプールの登録もGUIで行なうことができます。(+をクリックして詳細をご覧ください。)

IPプール登録画面

  

Radius-ip-pool一覧

Radius-ip-pool登録

                

アカウンティング

アカウンティングは、ユーザ毎の利用状況を管理する機能です。時間での従量課金などで使うデータとして利用することができます。FreeRadiusでは、/var/log/radius/radacct//detail-YYYYMMDDという形式のファイル名で、アカウンティング情報が保存されます。

このファイルは、テキスト形式のログファイルです。そのため、アカウンティング情報を取り出すには、このファイルの情報を元に解析を行なう必要があります。

アカウンティングログの例

Fri Feb 10 16:56:06 2017
        Acct-Status-Type = Start
        Acct-Session-Id = '12345678'
        User-Name = 'test0001'
        NAS-Port = 0
        Framed-IP-Address = 10.10.10.10
        Calling-Station-Id = '052-123-4567'
        NAS-IP-Address = 127.0.0.1
        Event-Timestamp = 'Feb 10 2017 16:56:06 JST'
        Acct-Unique-Session-Id = '907b3d6551e764d5630c5b10b20034c3'
        Timestamp = 1486713366

Fri Feb 10 17:00:02 2017
        User-Name = 'test0001'
        Acct-Session-Id = '12345678'
        Acct-Status-Type = Stop
        NAS-IP-Address = 127.0.0.1
        NAS-Port = 0
        Service-Type = Login-User
        Framed-IP-Address = 10.10.10.10
        Acct-Session-Time = 236
        Calling-Station-Id = '052-123-4567'
        Event-Timestamp = 'Feb 10 2017 17:00:02 JST'
                                    

daloRADIUSでは、次のような画面が用意されていて、非常に簡単にアカウンティング情報を参照することができます。

Radius-アカウンティング

           

なお、アカウンティング情報は、ユーザの利用開始のログと利用終了のログを確認して集計します。ユーザが適切に接続を終了しなかった場合や、突然の回線切断、機器の障害などによって、利用終了のログが登録されないと、ユーザが接続したままの状態に見えてしまいます。FreeRadiusでは、コマンドを使って、この状態をクリアすることができます。

# radzap -x -u test0001 127.0.0.1 testing123
                                    

daloRADIUSでは、このようなアカウンティングレコードの削除もWEB画面から行なえます。

Radius-アカウンティングレコード削除

                

レポート

システム管理者は、Radiusサーバの利用頻度や最終接続などの状況を調べたい場合があります。FreeRadiusには、こうした状況を調査するためのコマンドが用意されています。そのため、サーバにログインして、管理コマンドを実行すれば状況を確認することができます。

例えば、FreeRadiusでは、現在利用しているユーザを表示するには、サーバにログインしてradwhoコマンドを実行します。

# radwho
Login    Name	    What  TTY  When      From	    Location
test0002 test0002   shell S0   Fri 17:08 127.0.0.1  10.10.10.12
test0001 test0001   shell S1   Fri 17:08 127.0.0.1  10.10.10.10
                                    

daloRADIUSには、レポート機能が用意されていて、こうしたコマンドを覚えなくても簡単に状況を見ることができます。例えば、次の画面は、アクセスが多いユーザの一覧と各ユーザの最終接続の情報を表示した画面です。
(+をクリックして詳細をご覧ください。)

トップユーザ表示

  

Radius-レポートトップユーザ

各ユーザの最終接続表示

              

Radius-レポート最終接続

             
            

ユーザログイン画面(グラフ表示)

              

グラフでの表示も可能です。

Radius-グラフログインユーザ数

           

サーバやサービス状態の確認

システム管理者は、何らかの障害の場合等に、Radiusサーバの状況やログを確認したい場合があります。daloRADIUSでは、ログも簡単に確認することができます。(+をクリックして詳細をご覧ください。)

サーバログ確認画面

  

Radius-サーバログ

サーバ稼働状態の確認画面

                

また、FreeRadiusサーバの稼働状態も確認することができる機能です。

 

Radius-サーバ状態

              

デーモン情報の確認画面

              

Radius-デーモン情報

   

デージーネットのサービスとサポート

デージーネットでは、FreeRadiusを使ったRadiusサーバの構築サービスを行なっています。FreeRadiusで利用するユーザの管理は、ここで紹介したdaloRADIUSで管理することを推奨しています。また、ActiveDirectoryやLDAPなどと連携して、既存のユーザ情報を使って認証を行なうようなシステム構成での導入実績も多数あります。

デージーネットでは、Radiusサーバの保守が気になるというお客様には、RedHat Enterprise Linuxの利用をお勧めしています。FreeRadiusは、RedHat Enterprise Linuxに採用されていて、セキュリティアドバイザリなどの情報や、バージョンアップなども利用することができるためです。また、デージーネットのOpen Smart Assistanceでは、システムの障害時のリモートでの解析、定期的なセキュリティアップデート、定期点検などのサービスも提供しています。こうしたサービスを利用していただくことで、OSSではあっても、安心してFreeRadiusをお使いいただくことができます。

また、daloRADIUSについては開発者と連携して、セキュリティ問題に対応したり、日本語化をしたりした実績もあります。

   

Radiusの導入事例一覧

   

関連情報

Radiusサーバ〜FreeRadiusとDaloRadius〜の先頭へ