FreeRADIUSの設定
まずはFreeRADIUSの設定を行う。yumでインストールした場合、おそらく/etc/raddbに設定ファイルが一式インストールされているはずだ。
参考までに検証環境でのls出力を記載する。
# ls /etc/raddb/ acct_users dictionary ldap.attrmap preproxy_users sqlippool.conf attrs eap.conf naslist proxy.conf users certs example.pl naspasswd radiusd.conf clients hints otp.conf realms clients.conf huntgroups otppasswd.sample snmp.conf
この中で、ごく初歩的な認証のみを実施する場合、編集するファイルは以下の2つである。
- radiusd.conf
- clients.conf
順に見ていこう。
radius.conf
RADIUSサーバーに関する設定を記載するためのファイル。
今回の目的において、デフォルトの状態で確認が必要なのは以下の2点である。
port = 0
- /etc/servicesからポート番号を取得するため(Port 1812)
- おそらくデフォルトが0であるため変更の必要はない
user = root
- /etc/shadowをradiusdが読めるようにするため
- 通常はradiusdとなっている
認証はmoduleディレクティブに定義されている方式分(preprocess, CHAP, MS-CHAP, EAP等)実行される。
clients.conf
認証を実施するクライアントに関する設定を記載するためファイル。
認証を実施するクライアントをここに登録する。このファイルの末尾に以下のような記述を追加すればよい。
client [認証を行うクライアントのIP Address/Domain Name] { secret = [クライアントとなるためのパスワード] shortname = [任意の名前] }
実際に例を挙げる。
client 192.168.1.254 { secret = juniper shortname = ns5gt }
起動/確認
これでとりあえずはLinuxユーザーを利用したRADIUS認証の準備が整った。早速起動して確認するとしよう。
# /etc/init.d/radiusd start
もし、認証プロセスを検証する必要がある場合はデバッグモードで立ち上げることもできる。
# radiusd -X -A
radiusdが無事に起動したら、テストコマンドを使用してRADIUS認証が行えることを確認する。
# radtest [User] [Pass] localhost [NAS Port] [secret]
これはあくまでlocalhostに対してRADIUS認証が可能かどうかのテストであるため、先ほど設定した値ではないことに注意。
# radtest hoge hogehoge localhost 1 testing123 Sending Access-Request of id 146 to 127.0.0.1 port 1812 User-Name = "hoge" User-Password = "hogehoge" NAS-IP-Address = 255.255.255.255 NAS-Port = 1 rad_recv: Access-Accept packet from host 127.0.0.1:1812, id=146, length=20
hogeは自分のサーバーのユーザー名、hogehogeはそのパスワードを入力して欲しい。localhostのsecretはデフォルトでtesting123になっている。実行した結果、Access-Acceptと帰ってくればFreeRADIUSは正常に動作していることになる。
インストール
個人的にLinuxはDebianかGentooを愛用しているため、RedHat系のディストリビューションに触るのは久しぶりである。
RHL9では基本的にyumはインストールされていないかもしれないが、細かい検証が必要ないただの試験環境であれば、rpmでいちいちダウンロードと依存性の解決をするのは時間の無駄なので、まずyumを入れることをおすすめしたい。
RedHat Linux 9の開発は終了しているが、Fedora Legacy Projectでメンテナンスがされている。
詳細は以下を参照。
@IT:サポートが終了したRed Hat Linuxをアップデートするには(yum編)
yumをインストールしたら、アップデートやリポジトリの設定変更などをしたいところだが、今回の目的はFreeRADIUSの構築であるため割愛する。
さて、まずはfreeradiusがyumによって提供可能かどうかとそのバージョンを確認しよう。当然ながら、全ての作業はroot権限で実行する必要がある。
# yum list freeradius Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile * base: www.ftp.ne.jp * updates: rsync.atworks.co.jp * addons: www.ftp.ne.jp * extras: www.ftp.ne.jp Available Packages freeradius.i386 1.1.3-1.4.el5 base
コマンド実行の結果、freeradiusのパッケージ情報(赤文字部分)が表示されれば問題なくインストール可能だ。
それが確認できたら続いてインストールを実行する。
# yum install freeradius Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile * base: www.ftp.ne.jp * updates: rsync.atworks.co.jp * addons: www.ftp.ne.jp * extras: www.ftp.ne.jp Setting up Install Process Parsing package install arguments Resolving Dependencies
-
- > Running transaction check
- > Package freeradius.i386 0:1.1.3-1.4.el5 set to be updated
- > Processing Dependency: net-snmp-utils for package: freeradius
- > Processing Dependency: net-snmp for package: freeradius
- > Processing Dependency: perl(DBI) for package: freeradius
- > Running transaction check
- > Processing Dependency: libsensors.so.3 for package: net-snmp
- > Running transaction check
- > Package lm_sensors.i386 0:2.10.7-4.el5 set to be updated
- > Finished Dependency Resolution
- > Running transaction check
リポジトリへの問い合わせと依存関係の確認が行われ、必要なすべてのパッケージの一覧が表示される。
確認をし、問題がなければプロンプトにyと答えればダウンロードとインストールが始まる。
インストールの最中にいくつかの警告や質問が表示されることがあるので、都度確認し答える。それが面倒ならばyumのオプションに-yを与えることで、全ての質問に対して同意(y)したものと見なされる。
# yum install freeradius -y
問題なくインストールが実行されればComple!という表示とともにyumの処理が完了する。
Running rpm_check_debug Running Transaction Test Finished Transaction Test Transaction Test Succeeded Running Transaction Installing : perl-DBI [1/5] Installing : lm_sensors [2/5] Installing : net-snmp [3/5] Installing : net-snmp-utils [4/5] Installing : freeradius [5/5] Installed: freeradius.i386 0:1.1.3-1.4.el5 Dependency Installed: lm_sensors.i386 0:2.10.7-4.el5 net-snmp.i386 1:5.3.2.2-5.el5 net-snmp-utils.i386 1:5.3.2.2-5.el5 perl-DBI.i386 0:1.52-2.el5 Complete!
インストールが完了したら念のため以下のコマンドなどで確認をする。
# yum list freeradius freeradius.i386 1.1.3-1.4.el5 installed # rpm -q freeradius freeradius-1.1.3-1.4.el5 # command -v radiusd /usr/sbin/radiusd
無事インストールされたことが確認できたら、いよいよ設定に移る。
発端
知人よりFreeRADIUSの建て方を聞かれた。文書化が面倒なのでブログに記載することにする。前提条件はこんなところだろうか。
- サーバーに使用しているディストリビューションはRHL9とかそのあたり
- NetScreenの認証ができるようになればよい(具体的になにをどう認証するかの指定はなし)
- 実装はFreeRADIUSを指定
とりあえず、RHL9なんていう古いディトリビューションにはとんとお目にかかっていないので、RHELクローンのCentOSで代用することにする。
NetScreenの認証についてだが、何をどう認証するのかの指定がないため、運用やセキュリティは考えないことにして一番単純な構成で構築しようと思う。
具体的にはこうだ。
今回の構成はとりあえずFreeRADIUSでユーザー認証ができることのみを目的とするため、実運用には耐えられないものであることを付け加えておく。
さて、インストールにかかろう。
Mac OS X Serverで任意のディレクトリに共有ポイントを設定する
仮想マシンと仮想ネットワークの準備は整った。次はApacheで公開(といっても仮想ネットワーク上だが)するディレクトリをゲストOS側にマウントできるようにするための共有設定だ。
さて、個人的な好みであるし、開発環境なので気にする必要もあまりないのだが、HTTPの公開用ディレクトリは/varの直下に設置することにしている。
当然、/varはUNIX領域のため、デフォルトのままではMac OS XのGUIから見えない。
これらのファイルを全部表示するようにしてしまってもよいのだが、Finderで扱わない大量のファイルを表示しておくのは気分的に微妙なので、今回はsharingコマンドを使用する。
まずはディレクトリの作成。Djangoのチュートリアル用に/var/www/djangoというディレクトリをつくる。
mkdir /var/www mkdir /var/www/django
ディレクトリができたら、共有ポイントを設定する。
sharing -a /var/www/django
コマンドを使用することで、Mac OS X Serverのサーバー管理からは通常設定できない、不可視領域に共有ポイントをせっていすることができるようになる。
VMware Fusionの仮想マシンIPアドレスを固定にする
仮想マシンのインストールが終了したら、NATを使用した環境で仮想マシンのIPアドレスを固定化する。
Mac間はBonjourで勝手にサービス自動検索とアドレス解決をしてくれるが、ブリッジする必要がない限り、仮想マシンなNATの奥に隠蔽し、アドレスは固定しておきたい。
DHCPクライアント側でアドレスを手入力するのはあまり好みではないので、ゲスト側仮想MACアドレスをDHCPサーバー側に登録することにする。
NATを使用している場合、仮想マシンはネットワークアダプタVMnet8と通信をする。NATやDHCP関係の設定はVMnet8に記述すればよい。
今回はDHCPの設定のため、dhcpd.confを編集する。
vi /Library/Application Support/VMware Fusion/vmnet8/dhcpd.conf
中身は普通のDHCPdのコンフィグであるため、ここに仮想マシン用の設定を追加する。
host VM1 { hardware ethernet 00:0c:29:**:**:**; fixed-address 192.168.***.***; }
host部分のVM1には任意のホスト名。
haedware ethernet にはVMに割り当てられた仮想MACアドレス。
fixed-addresには割り当てるアドレスを、DHCPで配布するアドレスレンジ内で任意に設定することができる。
要件
PythonとDjangoによるウェブアプリケーション開発試験プロジェクト。
Python自体はその昔触ったものの、アプリケーション開発実績は無いに等しいため、自分が欲しかった暗号化アカウントマネージャを作ることにした。
その前に、まずは環境構築と簡単なチュートリアルを一通りこなしてみようと思う。
まずは環境構築に向けた要件を洗い出す。
ぱっと思いつくのはこの程度だろうか。
実運用環境でもあり、最初からApacheとMySQLとPythonが入っているのだからMac OS X Serverを使って開発するのが一番よい。Pythonが入っていれば、Djangoはインストールできるだろうから、開発環境にMac OS X Serverを使えば要件の1から3は解決できる。4に関しては開発環境の領域を、TextMateの入ったマシンにマウントできれば問題ないはずだ。Mac OS X ServerでNFSかAFPを使えばいい。
さすがに実運用環境での開発はできないので、ADCからダウンロードしたMac OS X ServerをVMware FusionのゲストOSとしてインストールする。
ソフトウェア一覧
必要な構成でのインストールと、まっさらな状態でのTimeMachineによるバックアップが完了したので、ソフトウェアのインストールにかかる。
とりあえず一覧。
- Xcode
- VMware Fusion
- SQLEditor
- iWork
- OmniGraffle Professional
- OmniOutliner Professional
- OmniFocus
- Quicksilver
- TextMate
- Evernote
- SIMBL
- LiveDictionary
- DiDi Dictionary Viewer
- MITKerberosExtra
- Versions
- MasterMoney