追記
ただユーザー認証のみを行っているだけでは少し寂しいので、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そんなに詳しくないにも関わらず、思いつくまま勢いで書いたため、かなり適当である。そのうちきちんとまとめよう。