こんにちは、
キャスレーコンサルティングのSD(システム・デザイン)部:神田です。

突然ですが自社の中で管理しているネットワーク機器のアカウント情報について、
機器ごとに違うアカウント情報を使用していると管理が面倒だと感じたことはないでしょうか?

今回はOpenLDAP+FreeRADIUS+YAMAHA Routerを使用し、
よりスマートにアカウント情報の管理を行う方法ご紹介したいと思います。

AAAとは

今回はAAAという枠組みを意識しながら構築を進めたいと思います。

AAAとは、認証(Authentication)、認可(Authorization)、アカウンティング(Accounting)の頭文字を
組み合わせたものです。

それぞれの意味は以下の図をご参照ください。

機能 説明
認証 ユーザアカウント/パスワードを確認して
そのユーザがネットワークにアクセスできるかどうかを決定できます。
認可 個々のユーザが利用できるネットワークサービスを制限できます。
アカウンティング 機器にログインしたユーザが入力したコマンド、接続時間、システムイベントなどを
タイムスタンプをつけてログに記録することができます。

AAAを導入するメリット

AAAを導入すると図のように環境が変わります。

before: ネットワーク機器ごとにアカウント情報を管理
blog12

after: ディレクトリサーバーにてアカウント情報を管理
blog11

beforeの環境ではUser1,User2,User3とネットワーク機器ごとにアカウント情報を設定していましたが、
afterではOpenLDAPにアカウント情報の管理を任せ、FreeRADIUSに認証を行わせることで
ネットワーク機器ごとの設定が不要になります。
そのためOpenLDAPに登録されているUser1のみで複数のネットワーク機器にアクセスできるようになります。

メリットを踏まえ以下の環境を構築していきます。

blog10
※ 画像をクリックすると拡大します。

環境概要

OpenLDAP,FreeRADIUSのOSはScientific Linux7.2を使用しました。
それぞれのバージョンと役割は以下の通りです。

  • OpenLDAP2.4: アカウンティングを行う。
  • FreeRADIUS3.0.4: 認証、認可を行う。
  • RTX1200(YAMAHAルーター): ネットワークサービスのゲートウェイを行う。

なお、このブログではOpenLDAP,FreeRADIUSはインストールされており基本的な設定が終わっていること、
RTX1200はWAN側の設定がされていることを前提に進めていきたいと思います。

連携設定

連携時に変更すべき点は大きくわけて

  • FreeRADIUSの設定ファイルの追加、編集
  • RTX1200のConfigに設定を追記

の二点のみです。
OpenLDAPはあくまでアカウント情報をRADIUSサーバーに参照されるため設定ファイルの変更は不要です。

FreeRADIUSの設定ファイルの追加、編集

それではRADIUSサーバー⇔OpenLDAP間の設定を行っていきます。
●/etc/raddb/users
※ 以下を追記します。

DEFAULT Auth-Type = LDAP
Fall-Through = 1

●LDAPライブラリを利用するためにシンボリックリンクを張ります。

※ 以下のコマンドを実行してください。

# cd /etc/raddb/mods-enabled/
# ln -s ../mods-available/ldap ldap

●/etc/raddb/mods-enabled/ldap
※ 以下を編集してください。

ldap {
        server = "192.168.1.20"
        identity = "cn=Manager,dc=casley,dc=blog"
        password = blogblog
        base_dn = "ou=People,dc=casley,dc=blog"

●/etc/raddb/sites-enabled/default
※ 以下の項目のコメントアウトを外してください。

authorize {
ldap

authenticate {
Auth-Type LDAP {
ldap
}

post-auth {
ldap

●/etc/raddb/sites-enabled/inner-tunnel
※ 以下を編集してください。

listen {
ipaddr = *

※ 以下のコメントアウトを外してください。

authorize {
ldap

authenticate {
Auth-Type LDAP {
ldap
}

post-auth {
ldap

次にYAMAHAルーター⇔RADIUSサーバ間のクライアントの情報を追記します。

●/etc/raddb/clients.conf
※ 追記してください。

client 192.168.1.1 {
secret = yamaha
shortname = yamaha-radius
}

●yamahaの属性を追加します。

# cd /usr/share/freeradius
# wget http://www.rtpro.yamaha.co.jp/RT/docs/radius/dictionary.yamaha

●/usr/share/freeradius/dictionary
※ 末尾に追加します。

$INCLUDE dictionary.yamaha

ここまで終了したらRADIUSサーバーの再起動を行ってください。

RTX1200のConfigに設定追記

最後にYAMAHAルーターの設定ファイルに以下を追加します。

# login radius use on
# radius auth on
# radius auth port 1812
# radius server 192.168.1.10
# radius secret yamaha

確認

それでは連携ができているか確認するためにldap-userをOpenLDAPに追加し、
YAMAHAのルータにログインしてみましょう。
blog1
画像のようにログイン成功できれば連携完了です!お疲れ様でした!

最後に

ここまでOpenLDAP+FreeRADIUS+YAMAHA Routerを使用したネットワーク環境について
連携をメインにご説明させていただきました。
変更するポイントがとても少ないように感じますが、基本を押さえた環境を構築できていると思います。

ちなみに今回はルーターをFreeRADIUSのクライアントとしましたが、
RADIUS認証可能な機器(無線APやスイッチ)であればクライアントにすることも可能です。

つたない文章ではありますが、ここまで読んでいただきありがとうございました。