大雪山 緑岳(第一花畑)


Date/Time: 2016:09:25 13:35:26
Camera: RICOH
Model: GR DIGITAL 4
Exporsure Time: 1/400
FNumber: 5.0
Aperture Value: 4.6
Focal Length: 6.0

Close

y2blog » LeopardサーバのRADIUS #1

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 = ” の部分が正しく設定されているかどうか確認してみて下さい.

  • Certificate Setup 証明書関係のセットアップダイアログ

 


                ## 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のクライアントからアクセスする方法について紹介したいと思います.