追記

ただユーザー認証のみを行っているだけでは少し寂しいので、FreeRADIUSからPrivilegeを渡す設定を追加してみる。

確認、設定が必要なファイルは以下の2つ。

  • /etc/raddb/users
  • /usr/share/freeradius/dictionary.netscreen

dictionary.netscreen

各ベンダーごとのパラメータが記載されたファイル。今回はNetScreenのためdictionary.netscreenだが、Cisco機器の場合はdictionary.ciscoとなる。

参考までにdictionary.netscreenの全文を記載する。

# -*- text -*-
#
#       From:
#       http://www.netscreen.com/support/downloads/4.0_configuring_screenOS_for_
NTdomain_v11.pdf
#

VENDOR          Netscreen                       3224

BEGIN-VENDOR    Netscreen

ATTRIBUTE       NS-Admin-Privilege                      1       integer
ATTRIBUTE       NS-VSYS-Name                            2       string
ATTRIBUTE       NS-User-Group                           3       string
ATTRIBUTE       NS-Primary-DNS                          4       ipaddr
ATTRIBUTE       NS-Secondary-DNS                        5       ipaddr
ATTRIBUTE       NS-Primary-WINS                         6       ipaddr
ATTRIBUTE       NS-Secondary-WINS                       7       ipaddr

#
#  Values VSYS-Admin and Read-Only-VSYS-Admin require a NS-VSYS-Name
#  attribute in the response packet.
#
VALUE   NS-Admin-Privilege              Root-Admin              1
VALUE   NS-Admin-Privilege              All-VSYS-Root-Admin     2
VALUE   NS-Admin-Privilege              VSYS-Admin              3
VALUE   NS-Admin-Privilege              Read-Only-Admin         4
VALUE   NS-Admin-Privilege              Read-Only-VSYS-Admin    5

END-VENDOR      Netscreen

これを見ると、NS-Admin-Privilegeという属性に1〜5の整数値を付与することでPrivilegeをRADIUSから渡すことができそうだ。

属性と値を確認したら、usersファイルを編集する。

users

viで普通に開き、ファイルの任意の位置に以下のような文を追加する。

hoge[Privilegeを付与したい任意のユーザー名]
                NS-Admin-Privilege = 1

また、以下のように書くことでLinuxユーザーではなく、このファイルで定義したユーザー名とパスワードを使用した認証も可能である。

hoge  Auth-Type := Local, User-Password == "hogehoge"
         NS-Admin-Privilege = 1

ここまで設定を完了したら以下のコマンドを実行し、NetScreenの設定変更を行う。

# /etc/init.d/radiusd restart

NetScreenの設定

ネットスクリーンでの変更点は、メニューバーより、Configuration > Admin > Administratorsへと移動し、先ほど External admin has read-write privilegeに設定した箇所をGet privilege from RADIUS serverに変更すればよい。

最後に

FreeRADIUSそんなに詳しくないにも関わらず、思いつくまま勢いで書いたため、かなり適当である。そのうちきちんとまとめよう。