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は正常に動作していることになる。