RADIUS, TACACS+は認証および認可を定義する事ができるサーバです。Cisco IOSがRADIUS, TACACS+に接続する方法についてまとめます。
認証サーバの定義方法
基本設定
認証サーバを定義するためには、まずaaaを有効にする必要があります。以下のコマンドでaaaを有効にして下さい。
aaa new-model
説明の都合上、しばらくはRADIUSに話を絞って説明します。
最低限必要となる設定は、以下の通りRADIUSサーバのIPアドレスのみですが、RADIUSサーバが認証を求める場合は鍵の設定も投入して下さい。
Router(config)# radius-server host <addr> Router(config)# radius-server key <string>
その他の任意の設定として、以下が挙げれます。ヘルプストリングから容易に想像できるため省略します。
Router(config)# radius-server timeout <sec> Router(config)# ip radius source-interface <interface>
direct-requestの有効化
以下のコマンドでdirect-requestを有効にする事ができます。direct-requestとはユーザ名として”username@server”の書式を認める事を指します。
direct-requestは複数台のRADIUSサーバがある環境では有用です。例えば、radius01, radius02の2台の認証サーバがある環境で、
Jamesさんはradius02にのみ登録されているとします。その場合、Jamesさんは”James@radius02″と入力する事で
認証の処理を通過する事ができます。
しかし、direct-requestはセキュリティホールになりやすので有効化は推奨されていません。例えば、自身でradiusサーバを構築し、自身で構築したradiusサーバに認証を求めるようにすれば、どんなルータでも侵入する事ができてしまいます。この機能を有効にする場合は、このような脆弱性がある事を認識した上で使って下さい。
Router(config)# radius-server directed-request
deadtimeの定義
もしRADIUSサーバがダウンしている場合、認証のたびにRADIUSサーバとのタイムアウト(デフォルト5秒)を待つのは、非常に煩わしいです。そこで登場する機能がdeadtimeです。
もし、RADIUSサーバからの応答がなかった場合、ルータはRADIUSサーバが”dead”の状態であると判断します。”dead”の状態になると、ルータはRADIUSサーバに問い合わせを行わなくなります(例えば、radius, localの順で認証するならば、raidusへの問い合わせ処理をスキップしlocal databaseへ問い合わせを試みます)。”dead”の状態はdeadtimeが尽きるまで続き、deadtimeが0になれば再びRADIUSサーバに問い合わせを行うようになります。
Router(config)# radius-server deadtime <min>
様々な認証サーバの定義方法
RADIUS global configutation
RADIUSサーバの設定は、全体に対する設定方法とグループ毎の個別設定の2通りの方法があります。今までの説明は全体に対する設定方法でした。設定例は以下の通りです。
aaa new-model ! ip radius source-interface Loopback0 radius-server host 192.168.11.11 auth-port 1645 acct-port 1646 key CISCO radius-server timeout 1 radius-server deadtime 3
RADIUS group configutation
グループ毎の個別設定例は以下の通りです。認証が不要なサーバならば”server”コマンドを使用し、認証が必要なサーバならば”server-private”コマンドを使用します。
aaa new-model ! aaa group server radius MY_RADIUS server 192.168.11.11 server-private 192.168.22.22 key CISCO deadtime 1
TACACS+ global configutation
TACACS+サーバの設定も、全体に対する設定方法とグループ毎の個別設定の2通りの方法が可能です。全体に対する設定例は以下の通りです。
aaa new-model ! ip tacacs source-interface Loopback0 tacacs-server host 192.168.11.11 key CISCO tacacs-server timeout 1
TACACS+ group configutation
グループ毎の個別設定例は以下の通りです。
aaa new-model ! aaa group server tacacs+ MY_TAC_PLUS server 192.168.11.11 server-private 192.168.22.22 key CISCO
認証サーバの指定例
指定例
認証サーバの使い方は以下の通りです。詳細な説明は”Authentication”の項を参照して下さい。しかし、認証の設定は理解に時間がかかるので、まずは、以下の設定例を見て何となくの雰囲気を掴んで頂ければと思います。
以下は、telnetログイン時にglobalで設定されたRADIUSサーバに認証を求める設定です。ますはRADIUSサーバに認証を求め、仮にRADIUSからの応答がなかった場合のみlocal databaseに基づいて認証する動作になります。
aaa authentication login default group radius local
以下は、enable mode昇格時にMY_TAC_PLUSという名前で登録されたTACACS+サーバに認証を求める設定です。ますはTACACS+サーバに認証を求め、仮にTACACS+からの応答がなかった場合のみenable passwordに基づいて認証する動作になります。
enable secret cisco aaa authentication enable default group MY_TAC_PLUS enable