このドキュメントでは、Cisco IOS® ルータまたはスイッチや Cisco Security Appliances(ASA/PIX/FWSM)などの AAA クライアントの Cisco Secure Access Control Server(ACS)のシェル コマンド許可セットを、TACACS+ を承認プロトコルとして設定する方法について説明します。
注:ACS Expressはコマンド許可をサポートしていません。
このドキュメントでは、AAA クライアントと ACS の両方で基本設定が実行されていることを想定しています。
ACS で [Interface Configuration] > [Advanced Options] を選択し、[Per-user TACACS+/RADIUS Attributes] チェックボックスがオンになっていることを確認します。
このドキュメントの情報は、ソフトウェア バージョン 3.3 以降が稼働する Cisco Secure Access Control Server(ACS)に基づいています。
このドキュメントの情報は、特定のラボ環境にあるデバイスに基づいて作成されました。このドキュメントで使用するすべてのデバイスは、初期(デフォルト)設定の状態から起動しています。対象のネットワークが実稼働中である場合には、どのようなコマンドについても、その潜在的な影響について確実に理解しておく必要があります。
ドキュメント表記の詳細については、『シスコ テクニカル ティップスの表記法』を参照してください。
コマンド許可セットは、任意のネットワーク デバイス上で発行された各コマンドの許可を制御する中心的なメカニズムとなります。この機能で、許可の制限を設定するために必要なスケーラビリティと管理性が大幅に向上します。
ACS では、デフォルトのコマンド許可セットとして、シェル コマンド許可セットと PIX コマンド許可セットがあります。CiscoWorks Management Center for Firewalls などのシスコ デバイス管理アプリケーションは、追加のコマンド許可セット タイプをサポートするように ACS に指示できます。
注:PIXコマンド許可セットでは、TACACS+コマンド許可要求がサービスをpixshellとして識別する必要があります。このサービスが、ファイアウォールで使用される PIX OS のバージョンに実装されていることを確認します。そうでない場合は、シェル コマンド許可セットを使用して、PIX デバイスのコマンド許可を実行します。詳細については、「ユーザ グループのシェル コマンド許可セットの設定」を参照してください。
注:PIX OSバージョン6.3では、pixshellサービスは実装されていません。
注:Ciscoセキュリティアプライアンス(ASA/PIX)では現在、ログイン時にユーザを直接イネーブルモードにすることはできません。ユーザは、手動でイネーブル モードにする必要があります。
デバイスがホストする管理 Telnet セッションをより詳細に制御するために、TACACS+ を使用するネットワーク デバイスは、各コマンド ラインの許可を、その実行前に要求できます。一連のコマンドを定義して、所定のデバイスでの特定のユーザによる実行が許可または拒否されるようにすることができます。ACS は、次の機能で、この能力をさらに強化しています。
Reusable Named Command Authorization Sets:ユーザもユーザ グループも直接引用せずに、コマンド許可の名前付きセットを作成できます。さまざまなアクセス プロファイルを表す複数のコマンド許可セットを定義できます。以下に、いくつかの例を示します。
コマンド許可セット [Help desk] は、show run などの上位レベルのブラウジング コマンドへのアクセスを許可しますが、コンフィギュレーション コマンドはすべて拒否します。
コマンド許可セット [All network engineers] には、企業のすべてのネットワーク技術者に許可するコマンドの限定リストを含めることができます。
[Local network engineers] コマンド許可セットでは、すべてのコマンドを許可できます(また、IP アドレス設定コマンドを含むことができます)。
Fine Configuration Granularity:名前付きコマンド許可セットとネットワーク デバイス グループ(NDG)の間の関連付けを作成できます。 したがって、ユーザがアクセスするネットワーク デバイスに応じて、ユーザに異なるアクセス プロファイルを定義できます。1 つの名前付きコマンド許可セットを複数の NDG に関連付け、複数のユーザ グループで使用できます。ACS では、データ整合性が強化されています。名前付きコマンド許可セットは、ACS 内部データベースに保持されます。ACS のバックアップ機能と復元機能を使用すると、バックアップや復元を実行できます。さらに、コマンド許可セットを他の設定データとともにセカンダリ ACS に複製することもできます。
シスコ デバイス管理アプリケーションをサポートするコマンド許可セット タイプでは、コマンド許可セット使用時に同様の利点があります。デバイス管理アプリケーションのユーザを含む ACS グループにコマンド許可セットを適用して、デバイス管理アプリケーションのさまざまな特権の許可を実行できます。この ACS グループは、デバイス管理アプリケーションにある各種のロールに対応できるため、必要に応じて、各グループに異なるコマンド許可セットを適用できます。
ACS には、コマンド許可フィルタリングに関する一連の 3 つの段階があります。各コマンド許可要求は、次のリストの順に評価されます。
Command Match:ACS は、処理されたコマンドが、コマンド許可セットに含まれるコマンドに一致するかどうかを判断します。コマンドが一致しない場合は、[Unmatched Commands] 設定のpermit または deny でコマンド許可が決定されます。一致するコマンドが見つかった場合は、評価が続行されます。
Argument Match:ACS は、提示されたコマンド引数が、コマンド許可セットに含まれるコマンド引数と一致するかどうかを判断します。
どの引数も一致しない場合は、[Permit Unmatched Args] オプションが有効かどうかでコマンド許可が決定されます。一致しない引数が許可されている場合は、コマンドが許可され、評価が終了します。それ以外の場合は、コマンドが許可されず、評価が終了します。
すべての引数が一致した場合は、評価が続行されます。
Argument Policy:ACS は、コマンドの引数がコマンド許可セットの引数と一致すると判断した後は、各コマンド引数が明示的に許可されているかどうかを判断します。すべての引数が明示的に許可されている場合、ACS はコマンド許可を付与します。許可されない引数がある場合、ACS はコマンド許可を拒否します。
このセクションには、コマンド許可セットの追加方法を説明する以下のシナリオが含まれます。
注:コマンド許可セットの作成方法の詳細については、『Cisco Secure Access Control Server 4.1ユーザガイド』の「コマンド許可セットの追加」セクションを参照してください。コマンド許可セットの編集方法と削除方法に関する情報については、「コマンド許可セットの編集」および「コマンド許可セットの削除」を参照してください。
このシナリオでは、ユーザに読み取り/書き込み(またはフル)アクセスが許可されています。
[Shared Profile Components] ウィンドウの [Shell Command Authorization Set] 領域で、次のように設定します。
[Name] フィールドに、コマンド許可セット名として ReadWriteAccess と入力します。
[Description] フィールドに、コマンド許可セットの説明を入力します。
[Permit] オプション ボタンをクリックし、[Submit] をクリックします。
このシナリオでは、ユーザは show コマンドだけを使用できます。
[Shared Profile Components] ウィンドウの [Shell Command Authorization Set] 領域で、次のように設定します。
[Name] フィールドに、コマンド許可セット名として ReadOnlyAccess と入力します。
[Description] フィールドに、コマンド許可セットの説明を入力します。
[Deny] オプション ボタンをクリックします。
[Add Command] ボタンの上のフィールドに show コマンドを入力し、[Add Command] をクリックします。
[Permit Unmatched Args] チェックボックスをオンにし、[Submit] をクリックします。
このシナリオでは、ユーザは選択コマンドを使用できます。
[Shared Profile Components] ウィンドウの [Shell Command Authorization Set] 領域で、次のように設定します。
[Name] フィールドに、コマンド許可セット名として Restrict_access と入力します。
[Deny] オプション ボタンをクリックします。
AAA クライアントで許可するコマンドを入力します。
[Add Command] ボタンの上にあるフィールドに show コマンドを入力し、[Add Command] をクリックします。
configure コマンドを入力し、[Add Command] をクリックします。
configure コマンドを選択し、右側のフィールドに permit terminal と入力します。
interface コマンドを入力し、[Add Command] をクリックします。
interface コマンドを選択し、右側のフィールドに permit Ethernet と入力します。
ethernet コマンドを入力し、[Add Command] をクリックします。
interface コマンドを選択し、右側のフィールドに permit timeout、permit bandwidth、および permit description と入力します。
bandwidth コマンドを入力し、[Add Command] をクリックします。
timeout コマンドを入力し、[Add Command] をクリックします。
description コマンドを入力し、[Add Command] をクリックします。
[Submit] をクリックします。
ユーザ グループのシェル コマンド許可セットの設定方法に関する情報については、『Cisco Secure Access Control Server 4.1 ユーザ ガイド』の「ユーザ グループのシェル コマンド許可セットの設定」セクションを参照してください。
[ACS] ウィンドウで [Group Setup] をクリックし、[Group] ドロップダウン リストから [Admin Group] を選択します。
[Edit Settings] をクリックします。
[Jump To] ドロップダウン リストで [Enable Options] を選択します。
[Enable Options] 領域で [Max privilege for any AAA client] オプション ボタンをクリックし、ドロップダウン リストで [Level 15] を選択します。
[Jump To] ドロップダウン リストで [TACACS+] を選択します。
[TACACS+ Settings] 領域で [Shell (exec)] チェックボックスと [Privilege level] チェックボックスをオンにし、[Privilege level] フィールドに 15 と入力します。
[Shell Command Authorization Set] 領域で [Assign a Shell Command Authorization Set for any network device] オプション ボタンをクリックし、ドロップダウン リストで [ReadWriteAccess] を選択します。
[Submit] をクリックします。
[ACS] ウィンドウで [Group Setup] をクリックし、[Group] ドロップダウン リストから [Read-Only Group] を選択します。
[Edit Settings] をクリックします。
[Jump To] ドロップダウン リストで [Enable Options] を選択します。
[Enable Options] 領域で [Max privilege for any AAA client] オプション ボタンをクリックし、ドロップダウン リストで [Level 1] を選択します。
[TACACS+ Settings] 領域で [Shell (exec)] チェックボックスと [Privilege level] チェックボックスをオンにし、[Privilege level] フィールドに 1 と入力します。
[Shell Command Authorization Set] 領域で [Assign a Shell Command Authorization Set for any network device] オプション ボタンをクリックし、ドロップダウン リストで [ReadOnlyAccess] を選択します。
[Submit] をクリックします。
ユーザのシェル コマンド許可セットの設定方法に関する情報については、『Cisco Secure Access Control Server 4.1 ユーザ ガイド』の「ユーザのシェル コマンド許可セットの設定」セクションを参照してください。
注:ユーザレベルの設定は、ACSのグループレベルの設定よりも優先されます。つまり、ユーザがユーザレベルの設定でシェルコマンド許可を設定している場合は、グループレベルの設定よりも優先されます。
[User Setup] > [Add/Edit] をクリックして、「Admin_user」という名前の新しいユーザを作成し、管理グループに加えます。
ユーザが割り当てられているグループのドロップダウン リストで [Admin Group] を選択します。
[Shell Command Authorization Set] 領域で [Assign a Shell Command Authorization Set for any network device] オプション ボタンをクリックし、ドロップダウン リストで [Restrict_access] を選択します。
注:このシナリオでは、このユーザは管理グループの一部です。[Restrict_access] シェル許可セットは適用できますが、[ReadWrite Access] シェル許可セットは適用できません。
注:[Interface Configuration]領域の[TACACS+ (Cisco)]セクションで、[User]列の[Shell (exec)] オプションが選択されていることを確認します。
プリセット設定に加えて、ACS サーバでコマンド許可を実装するために、次のコマンドが IOS ルータまたはスイッチで必要です。
aaa new-model aaa authorization config-commands aaa authorization commands 0 default group tacacs+ local aaa authorization commands 1 default group tacacs+ local aaa authorization commands 15 default group tacacs+ local tacacs-server host 10.1.1.1 tacacs-server key cisco123
プリセット設定に加えて、ACS サーバでコマンド許可を実装するために、次のコマンドが ASA/PIX/FWSM で必要です。
aaa-server authserver protocol tacacs+ aaa-server authserver host 10.1.1.1 aaa authorization command authserver
注:RADIUSプロトコルを使用して、ASDMへのユーザアクセスを読み取り専用に制限することはできません。RADIUSパケットには認証と許可が同時に含まれているため、RADIUSサーバで認証されるすべてのユーザの特権レベルは15になります。これは、TACACSを使用してコマンド許可セットを実装することで実現できます。
注:ACSがコマンド許可を実行できない場合でも、入力した各コマンドの実行に時間がかかります。ACS が使用不可で、ASA でコマンド許可が設定されている場合でも、ASA は各コマンドについてコマンド許可を要求します。
問題
TACACS のロギングを介してファイアウォールにログインした後、コマンドが機能しません。コマンドを入力すると、エラー[command authorization failed] が表示されます。
解決方法
この問題を解決するには、次の手順を実行します。
正しいユーザ名が使用されていることと、必要な権限がすべてユーザに割り当てられていることを確認します。
ユーザ名と特権が正しい場合は、ASA に ACS との接続性があり、ACS がアクティブであることを確認します。
注:このエラーは、管理者が誤ってローカルおよびTACACSユーザに対してコマンド許可を設定した場合にも発生する可能性があります。この場合は、パスワード回復を実行して問題を解決してください。
改定 | 発行日 | コメント |
---|---|---|
1.0 |
12-Oct-2007 |
初版 |