はじめに
このドキュメントでは、Radius または TACACS+ プロトコルを使用して、Cisco ルータで認証、許可、およびアカウンティング(AAA)を設定する方法について説明します。
前提条件
要件
このドキュメントに関する固有の要件はありません。
表記法
ドキュメント表記の詳細は、『シスコ テクニカル ティップスの表記法』を参照してください。
使用するコンポーネント
このドキュメントの情報は、Cisco IOS® ソフトウェアリリース 12 メインラインに基づいています。
このドキュメントの情報は、特定のラボ環境にあるデバイスに基づいて作成されました。このドキュメントで使用するすべてのデバイスは、クリアな(デフォルト)設定で作業を開始しています。本稼働中のネットワークでは、各コマンドによって起こる可能性がある影響を十分確認してください。
背景説明
このドキュメントでは、RADIUS または TACACS+ プロトコルを使用して、Cisco ルータで認証、許可、およびアカウンティング(AAA)を設定する方法について説明します。この文書の目的は、AAA 機能全体を説明することではなく、主なコマンドについて説明し、その例とガイドラインを提供することです。
注:Cisco IOS の設定に進む前に、「一般的な AAA 設定」の項に目を通してください。これを行わないと、誤った設定によってロックアウトが発生する可能性があります。
詳細については、『Authentication, Authorization, and Accounting Configuration Guide』を参照してください。
ネットワーク図
ネットワーク図
一般的なAAA設定
AAA の有効化
AAA をイネーブルにするには、グローバル コンフィギュレーションで aaa new-model コマンドを設定する必要があります。
注:このコマンドが有効になるまで、他のすべての AAA コマンドは表示されません。
警告:aaa new-model コマンドにより、ローカル認証がすべての回線およびインターフェイス(コンソール回線 line con 0 を除く)にただちに適用されます。 このコマンドが有効になった後にルータへの Telnet セッションを開く場合(または接続がタイムアウトになって再接続する必要がある場合)、ユーザーは、ルータのローカルデータベースで認証される必要があります。AAA 設定を開始する前に、アクセスサーバーでユーザー名とパスワードを定義して、ルータからロックアウトされないようにすることをお勧めします。次のコード例を参照してください。
Router(config)#username xxx password yyy
ヒント:AAAコマンドを設定する前に、設定を保存
します。AAAの設定が完了して(さらに正しく動作することを確認した後で)初めて、設定を再度保存
できます。 これにより、ルータのリロードによって変更をロールバックすることが可能になり、予期しないロックアウトから回復できます。
外部 AAA サーバーの指定
グローバル コンフィギュレーションでは、AAA を使ってセキュリティ プロトコル(Radius、TACACS+)を定義します。 この 2 つのプロトコルをどちらも使わない場合は、ルータ上のローカル データベースを使用できます。
TACACS+ を使用する場合は、 tacacs-server host <IP address of the AAA server> <key> コマンドを使用します。
RADIUS を使用する場合は、 radius-server host <IP address of the AAA server> <key> コマンドを使用します。
AAA サーバ設定
AAA サーバーで、次のパラメータを設定します。
-
アクセス サーバ名
-
AAA サーバとの通信にアクセス サーバが使用する IP アドレス
注:両方のデバイスが同じイーサネットネットワーク上にある場合、デフォルトでは、アクセスサーバーは、AAA パケットを送信するときにイーサネット インターフェイスで定義された IP アドレスを使用します。ルータが複数のインターフェイスを備えている(したがって複数のアドレスが割り当てられている)場合、この問題は重要です。
-
アクセス サーバに設定されているのとまったく同じキー<key> 。
注:キーは大文字と小文字が区別されます。
-
アクセス サーバが使用するプロトコル(TACACS+ または Radius)
上記のパラメータを設定するために使用される正確な手順については、AAA サーバーのドキュメントを参照してください。AAA サーバーが正しく設定されていない場合、NAS からの AAA 要求は AAA サーバーによって無視され、接続が失敗する可能性があります。
AAA サーバは、アクセス サーバから IP 上到達可能である必要があります(接続を確認するには、ping テストを実行します)。
認証の設定
認証によりユーザを確認してから、ユーザによるネットワークとネットワーク サービス(これらは認証を使って確認されます)への接続を許可します。
AAA 認証を設定するには、次の手順を実行します。
-
まず認証方式の名前付きリストを(グローバル コンフィギュレーション モードで)定義します。
-
このリストを 1 つまたは複数のインターフェイスに(インターフェイス コンフィギュレーション モードで)適用します。
唯一の例外は、デフォルトの方式リスト(「default」という名前)です。 デフォルトの方式リストは、明示的に定義された名前付き方式リストが存在するインターフェイス以外のすべてのインターフェイスに、自動的に適用されます。定義された方式リストは、デフォルトの方式リストを無効にします。
以下の認証の例では、RADIUS、ログイン、およびポイントツーポイント プロトコル(PPP)認証を使用して、「方式」や「名前付きリスト」などの概念を説明します。すべての例中で、Radius またはローカル認証を TACACS+ で置き換えることが可能です。
Cisco IOS ソフトウェアは、ユーザを認証するため、リストに掲載されている最初の方式が使用されます。その方式で応答に失敗した場合(ERROR によって示されます)、Cisco IOS ソフトウェアは、方式リストに掲載されている次の認証方式を選択します。リストに掲載されている認証方式での通信に成功するか、方式リストで定義されているすべての方式がなくなるまで、このプロセスが続きます。
注意する必要がある重要な点は、Cisco IOS ソフトウェアは、前の方式では応答がなかった場合にだけ、次に掲載されている認証方式を使って認証を実行するということです。このサイクルのいずれかの時点で認証に失敗した場合、つまり AAA サーバーまたはローカルユーザー名データベースの応答がユーザーアクセスの拒否であった場合(「FAIL」で示される)には、許可プロセスが停止し、それ以上の認証方式は試行されません。
ユーザ認証を許可するには、AAA サーバ上でユーザ名とパスワードを設定する必要があります。
ログイン認証
aaa authentication login コマンドを使って、アクセス サーバへ EXEC アクセスする(tty、vty、コンソール、および aux)ユーザを認証できます。
例 1:RADIUS の使用後にローカルでの EXEC アクセス
Router(config)#aaa authentication login default group radius local
このコマンドの各項目の意味は以下のとおりです。
すべてのユーザーが RADIUS サーバーで認証されます(最初の方式)。 RADIUS サーバーが応答しない場合は、ルータのローカルデータベースが使用されます(2 つ目の方式)。 ローカル認証の場合、ユーザ名とパスワードを定義します。
Router(config)#username xxx password yyy
aaa authentication login コマンドで list default が使用されているため、ログイン認証はすべてのログイン接続(TTY、VTY、コンソール、AUX など)に自動的に適用されます。
注:IP 接続がない場合、アクセスサーバーが AAA サーバーで正しく定義されていない場合、または AAA サーバーがアクセスサーバーで正しく定義されていない場合、サーバー(RADIUS または TACACS+)は、アクセスサーバーから送信される AAA 認証要求に応答できません。
注:上記の例を local キーワードなしで使用する場合、結果は次のようになります。
Router(config)#aaa authentication login default group radius
注:AAA サーバーが認証要求に応答しない場合、認証は失敗します(ルータに試行する代替方式がないため)。
注:group キーワードを使用すると、現在のサーバーホストをグループ化することができます。この機能により、ユーザは設定されたサーバ ホストのサブセットを選択し、特定のサービスに対してそのサブセットを使用できます。
例 2:回線パスワードを使用したコンソールアクセス
例 1 の設定を展開して、コンソール ログインが回線 con 0 に設定されたパスワードによってのみ認証されるようにします。
リスト CONSOLE を定義し、line con 0 に適用します。
設定:
Router(config)#aaa authentication login CONSOLE line
このコマンドの各項目の意味は以下のとおりです。
-
名前付きリストは CONSOLE です。
-
認証方式は 1 つ(回線)だけです。
名前付きリスト(この例では CONSOLE)を作成する場合は、実行する前に回線またはインターフェイスに適用する必要があります。これは、login authentication <list_name>
コマンドで実行されます。
Router(config)#line con 0
Router(config-line)#exec-timeout 0 0
Router(config-line)#password cisco
Router(config-line)#login authentication CONSOLE
CONSOLE リストにより、line con 0 でデフォルト方式リストのデフォルト値が上書きされます。line con 0 でのこの設定の後にコンソールにアクセスするには、パスワードに「cisco」と入力する必要があります。TTY、VTY、および AUX ではデフォルトのリストが引き続き使用されます。
注:ローカルユーザー名とパスワードでコンソールアクセスを認証するには、次のコード例を使用します。
Router(config)#aaa authentication login CONSOLE local
このケースでは、ルータのローカル データベースでユーザ名とパスワードを設定する必要があります。このリストは回線またはインターフェイスにも適用する必要があります。
注:認証を行わない場合は、次のコード例を使用します。
Router(config)#aaa authentication login CONSOLE none
このケースでは、コンソール アクセスを有効にするための認証はありません。このリストは回線またはインターフェイスにも適用する必要があります。
例 3:外部 AAA サーバーを使用したモードアクセスの有効化
authentication を発行して、イネーブル モードにできます(特権レベル 15)。
設定:
Router(config)#aaa authentication enable default group radius enable
パスワードのみを要求できます。ユーザー名は「$enab15$」です。したがって、ユーザ名 $enab15$ を AAA サーバで定義する必要があります。
RADIUS サーバーが応答しない場合は、ルータでローカルに設定されている有効なパスワードを入力する必要があります。
PPP認証
PPP 接続を認証するには、aaa authentication ppp コマンドを使用します。通常、アクセスサーバーを介してインターネットやセントラルオフィスにアクセスする ISDN またはアナログリモートユーザーを認証するために使用されます。
例 1:すべてのユーザーに単一の PPP 認証方式
アクセスサーバーには、PPP ダイヤルインクライアントを受け入れるように設定された ISDN インターフェイスがあります。 dialer rotary-group 0 を使用しますが、メインインターフェイスまたはダイヤラ プロファイル インターフェイスで設定を行うことができます。
設定:
Router(config)#aaa authentication ppp default group radius local
このコマンドは RADIUS を使用してすべての PPP ユーザーを認証します。RADIUS サーバーが応答しない場合は、ローカルデータベースが使用されます。
例 2:特定のリストを使用した PPP 認証
デフォルトのリストではなく名前付きリストを使用するには、次のコマンドを設定します。
Router(config)#aaa authentication ppp ISDN_USER group radius
Router(config)#interface dialer 0
Router(config-if)#ppp authentication chap ISDN_USER
この例では、リストは ISDN_USER で、方式は Radius です。
例 3:文字モードセッションからの PPP の起動
アクセス サーバは、内部モデム カード(Mica、Microcom または Next Port)を備えています。 aaa authentication login コマンドと aaa authentication ppp コマンドの両方が設定されているとします。
モデムユーザーが最初に文字モード EXEC セッション(たとえば、ダイヤル後のターミナルウィンドウ)でルータにアクセスすると、そのユーザーは TTY 回線で認証されます。パケット モード セッションを起動するには、ppp default または ppp をタイプする必要があります。PPP 認証は(aaa authentication ppp を使って)明示的に設定されているため、ユーザは PPP レベルで再度認証されます。
この 2 つ目の認証を回避するには、 if-needed キーワードを使用します。
Router(config)#aaa authentication login default group radius local
Router(config)#aaa authentication ppp default group radius local if-needed
注:クライアントが PPP セッションを直接開始する場合、アクセスサーバーへのログインアクセスがないため、PPP 認証が直接実行されます。
許可の設定
許可は、ユーザーが実行できることを制御できるプロセスです。
AAA 許可には認証と同じルールがあります。
-
まず、許可方式の名前付きリストを定義します。
-
次にそのリストを 1 つまたは複数のインターフェイスに適用します(デフォルトの方式リストを除きます)。
-
リストに掲載されている最初の方式が使用されます。最初の方式で応答に失敗すると、2 番目の方式が使用され、以降同様の処理が実行されます。
方式リストは要求された許可タイプに固有です。このドキュメントでは、EXEC およびネットワーク許可タイプに焦点を当てています。
他の許可タイプの詳細については、『Cisco IOS Security Configuration Guide』を参照してください。
エグゼクティブ認証
aaa authorization exec コマンドは、ユーザが EXEC シェルの実行を許可されているかどうかを決定します。この機能は、ユーザープロファイル情報(自動コマンド情報、アイドルタイムアウト、セッションタイムアウト、アクセスリストと特権、その他のユーザーごとの要因など)を返すことができます。
EXEC 許可は、vty または tty 回線を介してしか実行されません。
次の例では、RADIUS を使用しています。
例 1:すべてのユーザーに同じ EXEC 認証方式
次のコマンドで認証されるとします。
Router(config)#aaa authentication login default group radius local
アクセスサーバーにログインするすべてのユーザーは、RADIUS(最初の方式)またはローカルデータベース(2 つ目の方式)で認証される必要があります。
設定:
Router(config)#aaa authorization exec default group radius local
注:AAA サーバーで、Service-Type=1(ログイン)を選択する必要があります。
注:この例で local キーワードが含まれていない場合、AAA サーバーが応答しないと、許可は不可能であり、接続が失敗する可能性があります。
注:次の例 2 および 3 では、ルータにコマンドを追加する必要はありません。アクセスサーバーでプロファイルを設定することだけが必要です。
例 2:AAA サーバーからの EXEC 特権レベルの割り当て
例 1 に基づいて、ユーザーがアクセスサーバーにログインして有効モードを直接開始できるように、AAA サーバーで次の Cisco AV ペアを設定します。
shell:priv-lvl=15
これで、ユーザーは有効モードに直接移行できます。
注:最初の方式で応答がない場合は、ローカルデータベースが使用されます。ただし、ユーザーは有効モードに直接移行できず、enable コマンドを使用して enable パスワードを入力する必要があります。
例 3:AAA サーバーからのアイドルタイムアウトの割り当て
アイドルタイムアウトを設定するには(アイドルタイムアウト後にトラフィックがない場合にセッションが切断されるようにするため)、ユーザープロファイルで IETF RADIUS 属性 28:Idle-Timeout を使用します。
ネットワーク許可
aaa authorization network コマンドは、PPP、SLIP、ARAP など、ネットワーク関連のすべてのサービス リクエストに対し、許可を実行します。ここでは、最も一般的に使用される PPP に焦点を当てます。
AAA サーバは、PPP セッションがクライアントに許可されているかどうかをチェックします。さらに、コールバック、圧縮、IP アドレスなどの PPP オプションをクライアントから要求できます。こうしたオプションは、AAA サーバ上のユーザ プロファイルで設定する必要があります。さらに、特定のクライアントについて、AAA プロファイルに、アイドルタイムアウト、アクセスリスト、およびその他のユーザーごとの属性を含めることができます。これらの属性は、Cisco IOS ソフトウェアがダウンロードしてこのクライアントに適用できます。
次の例は、RADIUS を使用した許可を示しています。
例 1:すべてのユーザーに同じネットワーク許可方式
PPP ダイヤルイン接続を受け入れるためにアクセスサーバーが使用されます。
ユーザーは(以前に設定されたように)次の方法で認証されます。
Router(config)#aaa authentication ppp default group radius local
ユーザーを許可するには、次のコマンドを使用します。
Router(config)#aaa authorization network default group radius local
注:AAA サーバーで、Service-Type=7(フレーム化)と Framed-Protocol=PPP を設定します。
例 2:ユーザー固有属性の適用
AAA サーバーを使用して、ユーザーごとの属性(IP アドレス、コールバック番号、ダイヤラ アイドル タイムアウト値、アクセスリストなど)を割り当てることができます。このような実装では、NAS は適切な属性を AAA サーバのユーザ プロファイルからダウンロードします。
例 3:特定のリストを使用した PPP 許可
認証と同様に、デフォルトの名前ではなくリスト名を設定します。
Router(config)#aaa authorization network ISDN_USER group radius local
その後、このリストをインターフェイスに適用します。
Router(config)#interface dialer 0
Router(config-if)#ppp authorization ISDN_USER
アカウンティングの設定
AAA アカウンティング機能を使用すると、ユーザーがアクセスするサービスや、ユーザーが消費するネットワークリソースの量を追跡できます。
AAA アカウンティングには認証や許可と同じルールがあります。
-
最初にアカウンティング方式の名前付きリストを定義する必要があります。
-
次にそのリストを 1 つまたは複数のインターフェイスに適用します(デフォルトの方式リストを除きます)。
-
リストに掲載されている最初の方式を使用した場合に応答に失敗すると、次の方式が使用され、以降同様の処理が実行されます。
-
ネットワーク アカウンティングは、すべての PPP、SLIP、および AppleTalk Remote Access Protocol(ARAP)セッションの情報(パケット数、オクテット数、セッション時間、開始時間、終了時間)を提供します。
-
EXEC アカウンティングは、ネットワーク アクセス サーバーのユーザー EXEC ターミナルセッション(たとえば Telnet セッション)の情報(セッション時間、開始時間、終了時間)を提供します。
次の例では、AAA サーバーに情報を送信する方法に焦点を当てています。
アカウンティングの設定例
例 1:アカウンティングの開始レコードと終了レコードの生成
ダイヤルイン PPP セッションごとに、クライアントが認証され、キーワード start-stop を使用して切断されると、アカウンティング情報が AAA サーバーに送信されます。
Router(config)#aaa accounting network default start-stop group radius local
例 2:アカウンティングの終了レコードのみの生成
クライアントが切断された後にのみアカウンティング情報を送信する必要がある場合は、キーワード stop を使用して、次の行を設定します。
Router(config)#aaa accounting network default stop group radius local
例 3:認証およびネゴシエーションの失敗に関するリソースレコードの生成
この時点まで、AAA アカウンティングは、ユーザ認証をパスしたコールに対して開始と終了レコードのサポートを提供します。
認証または PPP ネゴシエーションが失敗した場合、認証のレコードは生成されません。
この問題の解決策が、AAA リソース失敗の終了アカウンティングを使用することです。
Router(config)#aaa accounting send stop-record authentication failure
終了レコードは AAA サーバに送信されます。
例 4:フル リソース アカウンティングの有効化
(コール セットアップ時の開始レコードと、コール終了時の終了レコードの両方を生成する)フル リソース アカウンティングをイネーブルにするには、次のように設定します。
Router(config)#aaa accounting resource start-stop
このコマンドは、Cisco IOS ソフトウェア リリース 12.1(3)T でサポートされました。
このコマンドを使うと、コール セットアップとコール接続解除の開始 - 終了アカウンティング レコードにより、デバイスに対するリソース接続の経過が追跡できます。個別のユーザ認証の開始 - 終了アカウンティング レコードにより、ユーザ管理の経過が追跡できます。これら 2 セットのアカウンティングレコードは、そのコールで固有のセッション ID を使用して相互リンクされます。
関連情報