CCNA試験勉強対策

RADIUSインストール方法

RADIUSサーバを構築してみる

2004/02/24,
最近Linuxを触っていない。いまいち正体の掴めないRADIUSサーバについて構築してみようという気になり、O'REILLY 「RADIUS」を買った。構築上Linuxは操作しまくるので一石二鳥である。早速AMAZONで発注し、まずは理論を学習する。重要用語を適度に抑えていく。

【RADIUSサーバの構築】
さて、いよいよRADIUSサーバ構築だ。ここからは構築メモ風に記していく。本当は構築など、./configure>make>make installで終わってしまうのだが、今回はこういったやり方が理解に効率的かどうか確認するためにも、書籍の項目を細かく筆記した上で構築するという方法を行っている。

構築に使うLinuxサーバは、SOTECのノートPC「WINBOOK」。元々OSにXPが入っており、PEN4/1.6GHZの大排気量マシンであるが、ノートPCの故排気しきれず熱暴走しがちのため、長時間運用のサーバにははっきりいって適していない。会社でネットワークの勉強をするため1年半前に買いすぐにRedHatLinux7.3をデュアルインストールし、XPと共存させつつSnortやNagiosといったLinux系ツールを構築していたが、マンションに移ってからはメール専用のメインPCとし、win98/win2kサーバのデュアルPCはバックアップ専用となっている。現在所有するマシンでLinuxが入っているのがこのノートしかないため、これを使ってRADIUSサーバのインストールを行う。RedHatは現在企業用のEnterprise版のみサポートがあり、フリー板はFedora Coreとして新生したので、Errata等は打ち切りになっており、余り構築検証には相応しいとはいえないが、一方で企業で使っているフリーサーバ、ツール群は未だ過去のものを使い続けているという現状がある。金が絡むため、客先がうんと言わないと金が下りず、とっくにサポートが打ち切られたリリースのサーバやツールを使い続けるしかないのである。そういう意味では7.3で検証することに何の意味もないということには当たらない。(逆にバグフィックスやセキュリティが完全かどうか分からないリリース直後のサーバやツールを使うケースの方が珍しいと言える)
IPは会社でも家でもルータから閉鎖LANかましていたのでそのままとする。(192.168.0.90)DNSは会社のイントラ用になっていたためインターネットのDNSを指定する。ルータへのping、インターネットへのping、Mozzilaでヤフー閲覧できることなどを確認する。

O'REILLY 「RADIUS」を途中まで読んでみると分かるが、RADIUS単体ではなくpostgresqlやMySQLでのDB構築前提で話が進んでいることが分かる。元々Snort用にpostgresqlはインストール済みであったが、
ポスグレユーザ会の話題では全くRADIUSに触れていないし、本でも構築DBサーバにMySQLを使っているので、MySQLを先にインストールし、データベーススキーマを作った上でRADIUSを入れることにする。
(!!インストール順番はMySQL>RADIUSであること。逆であると動かない!!)
日曜まる1日かけてMySQLをインストールしたが、mysql.sockがexistといって怒られ、全く起動しない。
仕方がないので本屋で「MySQL徹底攻略ガイド」(技術評論社)を買い求め、添付のCDROMのソースからインストール。あっさり入ったので拍子抜けする。とかく動かない場合は成功例を探してネットの記事を参照するが、ソースがついているなら本でやった方が成功率は圧倒的に高いということが分かった。
Linux系ツールの場合、自分であれこれ試行錯誤するのは完全に時間の無駄である。メール等を送ってとっとと教えてもらうか、100%成功する書籍の手順に従う方がよい。

次にFREERADIUSをインストールする。完全に本の手順と同じやり方で行う。
http://www.freeradius.oragからTARBALLのソースをダウンロードし、解凍する。
できたディレクトリに移動し、環境設定のため、configする。
root# ./configure --localstatedir=/var --sysconfdir=/etc

コンパイル、インストールする。
root# make
root# make install

設定ファイルを書き換える。
/etc/raddb/clientsに
RADIUSを入れているPCと、同じLANセグにいるWindowsPCのIPをそれぞれ書き加える。

/etc/raddb/naslistに
同様の情報を書き加える。

動作確認を行う。
RADIUSデーモンを起動する。
root# /etc/raddb/radiusd

以下のメッセージが表示され正常起動が確認できた。
Starting - reading configuration files ......

エラーメッセージが何も出ないのでOKである。
念のためプロセスを確認したが、radiusdが起動している。
RADIUSクライアントの動作確認のため、NTRadPingというWindows用のツールが紹介されており、
WindowsPCにインストールする。
インストールというほどのものはなく、ZIPファイルをダウンロードしてLHACAで解凍し、
解凍されたフォルダ内のNTRadPing.exeを起動するだけ。

NTRadPingのコンソール画面のそれぞれの項目に入力してRADIUSサーバとの疎通を確認する。
[RADIUS Server/port] 192.168.0.90 1645
[RADIUS Secret key] testing123
[User Name] root
[Password] rootのパスワード
[Request type] Authentication Request

注意点としては
・radiusdを起動する際はrootで起動すること。
・clientsファイルに接続元(ここではWindows)のIPが記されていること。
・Secret keyがclientsファイルに記されたものであること。
・サーバと接続元の間でFW等で1645ポートを遮断していないこと。

一回目、繋がらない。
RADIUS側でポートを指定して再度起動させる。
root# radiusd -p 1645

NTRadPingを行うと、今度は問題なく接続できた。
ユーザのアカウント情報をMySQLのテーブルで管理するために、テーブルを作成する。作成に使うsqlはFREERADIUSのツールセットに入っている。ソースを展開したディレクトリ(俺の場合は/usr/local/src/radius/freeradius-0.9.3)配下の/src/modules/rlm_sql/drivers/rlm_sql_mysql/db_mysql.sqlが使用するsqlファイルとなる。実行には以下のコマンドを使った。

1.mysql起動
root# mysql -u root

2.DATABASE作成
mysql>create database myradiusdb

3.一旦抜ける
mysql>exit

4.SQLファイルを流し込む
root# mysql -u root myradiusdb < db_mysql.sql

5.use databaseに指定する
root# mysql -u root
mysql>use myradiusdb

6.確認する
以下のテーブルの一覧が表示されればOK

mysql>show tables;
radacct
raccheck
radgroupcheck
radgroupreply
radreply
usergroup

設定ファイルを書き換えているので、radiusdを起動後にlogの書き込み権限がないので書き込めない、などと怒られる場合がある。そういう場合は該当するディレクトリの権限を
chown nobody.nobody DirName
chmod 775 DirName で変えたりして対応する。

CCNAの学習に役立つ定番のおすすめ参考書

シスコ技術者認定教科書 CCNA 完全合格テキスト&問題集[対応試験]200-301
シスコ技術者認定教科書 CCNA 完全合格テキスト&問題集[対応試験]200-301

徹底攻略Cisco CCNA問題集[200-301 CCNA]対応 (模擬問題、スマホ問題集付き)
徹底攻略Cisco CCNA問題集[200-301 CCNA]対応 (模擬問題、スマホ問題集付き)

CCNAの教科書と問題集はまだ買うな
CCNA(Ciscoのネットワーク技術者入門資格試験)の教科書と問題集はまだ買うな!失敗しない勉強法とIT業界の指南書【CCNA200-301対応!】: 15個の資格試験を1発で合格した男の「インフラエンジニア登竜門資格」独学勉強法と黒歴史を徹底公開! IT業界超入門書

1週間でCCNAの基礎が学べる本
1週間でCCNAの基礎が学べる本