3. LDAP を使った Radius 認証

Radius サーバは、Radius プロトコルサーバの開設を Un*x オペレーティングシステムで可能とするデーモンです。これはふつう、 ダイアルアップユーザの認証およびアカウント管理のために使われます。 サーバを利用するには、そのサーバに話しかけることになる クライアントも適切に設定する必要があります。通常、クライアントは ターミナルサーバか、またはターミナルサーバをエミュレートする 適切なソフト (PortSlave や radiusclient 等々) のある PC です。 [FreeRadius の FAQ より]

Radius はユーザについての自前のデータベースを持っていますが、 同じ情報が LDAP にも含まれているので、こっちを使う方が便利です!

フリーウェアの Radius サーバは幾つかありますが、 LDAP へのサポートが良いものに FreeRadius というサーバ (http://www.freeradius.org) があります。これはまだ開発版とはいえ、 LDAP モジュールはうまく動作しています。

3.1. FreeRadius 版 Radiusd の設定

サーバをインストールしたなら、 設定ファイルを用いて設定しなくてはなりません。 設定ファイルは /etc/raddb (または /usr/local/etc/raddb) 以下に配置されています。

radiusd.conf の内容は、以下のように 編集してください。

[省略]
# Uncomment this if you want to use ldap (Auth-Type = LDAP)
# Also uncomment it in the authenticate{} block below
        ldap {
                server   = ldap.yourorg.com
                #login    = "cn=admin,o=My Org,c=US"
                #password = mypass
                basedn   = "ou=users,dc=yourorg,dc=com"
                filter   = "(&(objectclass=posixAccount)(uid=%u))"
        }

[省略]

# Authentication types, Auth-Type = System and PAM for now.
authenticate {
        pam
        unix
#       sql
#       sql2  
# Uncomment this if you want to use ldap (Auth-Type = LDAP)
        ldap
}
[省略]

また、dictionary ファイルも 以下のように編集してください。

[省略]
#
#       Non-Protocol Integer Translations
#

VALUE           Auth-Type               Local                   0
VALUE           Auth-Type               System                  1
VALUE           Auth-Type               SecurID                 2
VALUE           Auth-Type               Crypt-Local             3
VALUE           Auth-Type               Reject                  4
VALUE           Auth-Type               ActivCard               4
VALUE           Auth-Type               LDAP                    5
[省略]

さらに users ファイルの デフォルトの認証方式のエントリを次のようにしてください。

[省略]
DEFAULT		Auth-Type = LDAP
		Fall-Through = 1
[省略]

すでに LDAP サーバを Un*x のアカウント管理のために 設定してあれば、これで十分です。

LDAP サーバ上では、Radius サーバがあらゆる posixAccount の 属性 (特に uiduserpassword) を確実に読むことができるようにしておいてください。

3.2. Radius 認証のテスト

サーバをテストするために、次のように radiusd をデバッグモードで起動してください。

/usr/local/sbin/radiusd -X -A

それから次のような構文で radtest を使います。

radtest ユーザ名 "パスワード" radius.yourorg.com 1 testing123 

すべてうまくいけば、Access-Accept パケットを その Radius サーバから受信するはずです。

クライアントモードで stunnel を使って、 Radius サーバと LDAPS サーバ間の接続に SSL を提供することもできます。 SSL の詳細については Section 10 を参照してください。

3.3. Cisco IOS の設定例

万全を期するために、ここに Cisco IOS の設定例を書いておきます。 ただ、この例はこの HOWTO の目的とは外れていますので、 あなたの要求には適合していないかもしれません。

[省略]
aaa new-model
aaa authentication login default radius enable
aaa authentication ppp default radius
aaa authorization network radius
[省略]
radius-server host 192.168.10.1
radius-server timeout 10
radius-server key cisco
[省略]

Note: ほとんどすべての NAS は Radius に 1645 番のポートを使用します。 確認のうえ、適切にサーバを設定してください。