はじめに
このドキュメントでは、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コマンドを設定する前に save
、設定を行います。AAAの設定が完了し(正常に動作することに満足した後)、設定を再 save
度実行できます。これにより、ルータのリロードで変更をロールバックできるため、予期しないロックアウトから回復できます。
外部AAAサーバの指定
グローバル コンフィギュレーションでは、AAA を使ってセキュリティ プロトコル(Radius、TACACS+)を定義します。この 2 つのプロトコルをどちらも使わない場合は、ルータ上のローカル データベースを使用できます。
TACACS+を使用する場合は、tacacs-server host <AAAサーバのIPアドレス> <key> コマンドを使用します。
Radiusを使用する場合は、radius-server host <AAAサーバのIPアドレス> <key>コマンドを使用します。
AAA サーバ設定
AAAサーバで、次のパラメータを設定します。
-
アクセス サーバ名
-
AAA サーバとの通信にアクセス サーバが使用する IP アドレス
注:両方のデバイスが同じイーサネットネットワーク上にある場合、デフォルトでは、アクセスサーバはAAAパケットを送信する際にイーサネットインターフェイスで定義されたIPアドレスを使用します。ルータが複数のインターフェイスを備えている(したがって複数のアドレスが割り当てられている)場合、この問題は重要です。
-
アクセス サーバに設定されているのとまったく同じキー<key> 。
注:キーでは大文字と小文字が区別されます。
-
アクセス サーバが使用するプロトコル(TACACS+ または Radius)
前述のパラメータの設定に使用した正確な手順については、AAAサーバのドキュメントを参照してください。AAAサーバが正しく設定されていない場合、NASからのAAA要求はAAAサーバによって無視され、接続が失敗する可能性があります。
AAA サーバは、アクセス サーバから IP 上到達可能である必要があります(接続を確認するには、ping テストを実行します)。
認証の設定
認証によりユーザを確認してから、ユーザによるネットワークとネットワーク サービス(これらは認証を使って確認されます)への接続を許可します。
AAA 認証を設定するには、次の手順を実行します。
-
まず認証方式の名前付きリストを(グローバル コンフィギュレーション モードで)定義します。
-
このリストを 1 つまたは複数のインターフェイスに(インターフェイス コンフィギュレーション モードで)適用します。
唯一の例外は、デフォルトの方式リスト(default)です。デフォルトの方式リストは、明示的に定義された名前付き方式リストが存在するインターフェイス以外のすべてのインターフェイスに、自動的に適用されます。定義された方式リストは、デフォルトの方式リストを無効にします。
これらの認証例では、Radius、ログイン、およびPoint-to-Point Protocol(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など)に対してログイン認証が自動的に適用されます。
注:アクセスサーバがAAAサーバ上で正しく定義されていない場合、またはAAAサーバがアクセスサーバ上で正しく定義されていない場合、IP接続が存在しない場合、サーバ(RadiusまたはTACACS+)はアクセスサーバから送信された aaa authentication要求に応答できません。
注:前述の例をlocal キーワードなしで使用すると、結果は次のようになります。
Router(config)#aaa authentication login default group radius
注:AAAサーバが認証要求に応答しない場合、認証は失敗します(ルータには代替の試行方法がないため)。
注:groupキーワードは、現在のサーバホストをグループ化する方法を提供します。この機能により、ユーザは設定されたサーバ ホストのサブセットを選択し、特定のサービスに対してそのサブセットを使用できます。
例2:回線パスワードで使用されるコンソールアクセス
例1の設定を展開して、コンソールログインがline con 0に設定されたパスワードによってのみ認証されるようにします。
リスト CONSOLE を定義し、line con 0 に適用します。
設定:
Router(config)#aaa authentication login CONSOLE line
前のコマンドでは、次の操作を行います。
-
名前付きリストは CONSOLE です。
-
認証方式(回線)は1つだけです。
名前付きリスト(この例ではCONSOLE)を作成する場合は、実行する前に回線またはインターフェイスに適用する必要があります。これは次のコマ login authentication
ンドで行います。
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
このコマンドは、すべてのPPPユーザをRadiusで認証します。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セキュリティ設定ガイド』を参照してください。
エグゼクティブ認証
aaa authorization exec コマンドは、ユーザが EXEC シェルの実行を許可されているかどうかを決定します。この機能は、自動コマンド情報、アイドルタイムアウト、セッションタイムアウト、アクセスリストと特権、およびその他のユーザごとの要因などのユーザプロファイル情報を返すことができます。
EXEC 許可は、vty または tty 回線を介してしか実行されません。
次の例では、Radiusを使用しています。
例1:すべてのユーザに対して同じExec認証方式
次のコマンドで認証された場合:
Router(config)#aaa authentication login default group radius local
アクセスサーバにログインするすべてのユーザは、Radius(1番目の方法)またはローカルデータベース(2番目の方法)で認証される必要があります。
設定:
Router(config)#aaa authorization exec default group radius local
注:AAAサーバでは、Service-Type=1(login)を選択する必要があります。
注:この例では、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)および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:開始および終了アカウンティングレコードの生成
クライアントが認証され、キーワードstart-stopを使用して接続解除が行われると、すべてのダイヤルインPPPセッションについて、アカウンティング情報が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と相互にリンクされています。
関連情報