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