12
04
2007
LeopardサーバのRADIUS #1
Leopard Server のRADIUS
Leopard Server で新たにRADIUSサーバが標準でインストールされるようになりましたが、このRADIUSサーバがどのようにLeopard Serverにインプリメントされているか、ちょっと覗いてみました.
Leopard Server のFreeRADIUSでは、GUIベースで管理できる項目は極わずかで、実質的にAirMacベースステーションと組み合わせて使うという前提でインプリメントされているようです.勿論、Free RADIUSですので、自分で各種設定ファイルを編集すれば普通のRADIUSサーバとして使用可能です.
Leopard Serverで使われているRADIUSサーバは “Free RADIUS” で、オープンソースベースのものとしては一般的に良く用いられているものです.インストールされているFree RADIUSのバージョンは OSXServer 10.5.1 (Build 9B18)で最新版のVersion 1.1.7のようです.
sh-3.2# /usr/sbin/radiusd -v
radiusd: FreeRADIUS Version 1.1.4, with security changes through 1.1.7, for host apple.com, built on Sep 23 2007 at 22:52:02
Copyright (C) 2000-2007 The FreeRADIUS server project.
Free RADIUS 関係の設定ファイルは /etc/raddb 配下に納められています.このディレクトリ内を覗いてみましょう.
sh-3.2# pwd
/etc/raddb
sh-3.2# ls -la
total 472
drwxr-xr-x 27 root wheel 918 Dec 1 00:22 .
drwxr-xr-x 132 root wheel 4488 Dec 3 11:28 ..
-rw-r--r-- 1 root wheel 422 Sep 24 14:52 acct_users
-rw-r--r-- 1 root wheel 4116 Sep 24 14:52 attrs
drwxr-xr-x 5 root wheel 170 Dec 1 00:20 certs
-rw-r--r-- 1 root wheel 189 Sep 24 14:52 clients
-rw-r--r-- 1 root wheel 2937 Sep 24 14:52 clients.conf
-rw-r--r-- 1 root wheel 929 Sep 24 14:52 dictionary
-rw------- 1 root wheel 10844 Dec 1 00:22 eap.conf
-rw-r--r-- 1 root wheel 4437 Sep 24 14:52 experimental.conf
-rw-r--r-- 1 root wheel 2396 Sep 24 14:52 hints
-rw-r--r-- 1 root wheel 1604 Sep 24 14:52 huntgroups
-rw-r--r-- 1 root wheel 2424 Sep 24 14:52 ldap.attrmap
-rw-r--r-- 1 root wheel 8901 Sep 24 14:52 mssql.conf
-rw-r--r-- 1 root wheel 1020 Sep 24 14:52 naslist
-rw-r--r-- 1 root wheel 856 Sep 24 14:52 naspasswd
-rw-r--r-- 1 root wheel 13044 Sep 24 14:52 oraclesql.conf
-rw-r--r-- 1 root wheel 14657 Sep 24 14:52 postgresql.conf
-rw-r--r-- 1 root wheel 1039 Sep 24 14:52 preproxy_users
-rw-r--r-- 1 root wheel 8834 Sep 24 14:52 proxy.conf
-rw-r--r-- 1 root wheel 66389 Sep 24 14:52 radiusd.conf
-rw-r--r-- 1 root wheel 187 Sep 24 14:52 realms
-rw-r--r-- 1 root wheel 1405 Sep 24 14:52 snmp.conf
-rw-r--r-- 1 root wheel 16483 Sep 24 14:52 sql.conf
-rw------- 1 root wheel 3072 Nov 28 19:14 sqlite_radius_client_database
-rw-r--r-- 1 root wheel 248 Nov 28 19:15 ssid_table.plist
-rw-r--r-- 1 root wheel 6928 Sep 24 14:52 users
上記の各種設定ファイルで、日付が Sep 24 以外のファイルが、GUIベースの “Server Admin” によって設定が書き換えられた設定ファイルです.メインの設定ファイルは “radiusd.conf” で、この中身を覗いてみると Appleが独自に拡張したと思われる “opendirectory” というモジュールによってユーザの認証を行っているようです.Free RADIUS自体は様々な認証の仕組みが使えるようになっているのですが、ディレクトリサーバであるOpenLDAPをFree RADIUSから呼び出しているのではなく、”opendirectory” というモジュールによってAppleのディレクトリシステム(OpenDirectory 4) と直接連携しているようです.
RADIUSサーバの機能としては無線LANの802.1X 認証に特化してあるようですが、802.1X認証の EAP 機能として、標準的な EAP-TLS, EAP-TTLS, EAP-PEAP には対応しているようです.他のEAPプロトコルにも対応しているかどうかは今のところ不明です.EAP関係の設定は “eap.conf” というファイルに書き込まれて居ます.”Server Admin” のRADIUSの設定の Certificateの設定ダイアログによって、この”eap.conf”のTLSの項目が書き換えられるようです.ただし、現状の”Server Admin” のRADIUSの設定にはバグがあるらしく、”Private Key Passphrase”の項目のテキストの修正が上手くできないようです.エラーが出て上手くRADIUSサーバを起動できない場合は、”eap.conf”のTLSの項目の最初にある “private_key_password = ” の部分が正しく設定されているかどうか確認してみて下さい.
## EAP-TLS
#
# To generate ctest certificates, run the script
#
# ../scripts/certs.sh
#
# The documents on http://www.freeradius.org/doc
# are old, but may be helpful.
#
# See also:
#
# http://www.dslreports.com/forum/remark,9286052~mode=flat
#
tls {
private_key_password = xxxxxxxxxxxxxxxxxxxxxxxxxx <=== パスフレーズ
private_key_file = /etc/certificates/server2.home.yoko.key
# If Private key & Certificate are located in
# the same file, then private_key_file &
# certificate_file must contain the same file
# name.
certificate_file = /etc/certificates/server2.home.yoko.crt
# Trusted Root CA list
CA_file = /etc/certificates/cacert.crt
dh_file = ${raddbdir}/certs/dh
random_file = ${raddbdir}/certs/random
Leopard ServerのRADIUSは無線LANの802.1X認証用としては十分なのですが、認証VLANへの対応などを行うには自分でかなり手を加えないと無理なようです.このような用途では市販のRADIUSサーバの方が無難でしょう.折角GUIベースでサーバの管理ができることを最大の売りにしているのですから、できれば認証VLANの設定が簡単にできるような仕組みをOS X Serverに標準で取り入れて欲しいものです.
OpenDirectory 側のLDAPスキーマに認証VLANの設定項目を加えて、RADIUSサーバからこれらのスキーマにアクセスする仕組みを作る必要がありそうです.Alcatelの認証VLANに対応したスイッチでは、LDAPサーバに独自のスキーマを追加して直接LDAPサーバからユーザの認証情報を引っ張ってくるような事が行われているようですが、OSのバージョンアップやメンテナンス等の事を考えれば、できるだけ標準的な状態でサーバの管理を行いたいところです.
Leopard ServerのRADIUSがもっと便利になってくれると良いですね.市販のRADIUSサーバを導入するとなると数十万円〜数百万近くかかってしまいますね.OS X Serverならハードウェアも買えてしまいます.
今回は、RADIUSサーバの概要について簡単に紹介しましたが、次回は実際に802.1X認証に必要な各種証明書を作成して、無線LANのクライアントからアクセスする方法について紹介したいと思います.