セキュリティ : Cisco PIX 500 シリーズ セキュリティ アプライアンス

PIX 6.2 の認証とコマンド許可

2008 年 5 月 29 日 - ライター翻訳版
その他のバージョン: PDFpdf | 機械翻訳版 (2013 年 8 月 21 日) | 英語版 (2006 年 2 月 2 日) | フィードバック

目次

概要
はじめに
      表記法
      前提条件
      使用するコンポーネント
認証/許可を追加する前のテスト
特権設定について
認証/許可 - ローカル ユーザ名
AAA サーバによる認証/許可
      ACS - TACACS+
      CSUnix - TACACS+
      ACS - RADIUS
      CSUnix - RADIUS
ネットワーク アクセス制限
デバッグ
アカウンティング
TAC のサービスリクエストをオープンする場合の情報の収集
関連するシスコ サポート コミュニティ ディスカッション
関連情報

概要

PIX のコマンド許可とローカル認証の拡張機能は、バージョン 6.2 で導入されました。このドキュメントでは、これらの機能を PIX で設定する方法の例について説明しています。以前から使用可能な認証機能も利用できますが、このドキュメントでは説明していません(Secure Shell(SSH)、PC からの IPSec クライアント接続など)。実行するコマンドは、PIX でローカルに制御することも、TACACS+ を通じてリモートから制御することもできます。RADIUS によるコマンド許可はサポートされていません。これは、RADIUS プロトコルの制限によります。

ローカルのコマンド許可を行うには、コマンドとユーザを特権レベルに割り当てます。

リモートのコマンド許可は、TACACS+ の Authentication, Authorization, and Accounting(AAA; 認証、許可、アカウンティング)サーバを通じて行います。AAA サーバに到達できない場合に備えて、複数の AAA サーバを定義できます。

認証は、以前に設定した IPSec や SSH 接続でも機能します。SSH 認証では、次のコマンドを発行する必要があります。

 aaa authentication ssh console <LOCAL | server_tag>
 

設定が正しく行われていれば、PIX からロックアウトされることはありません。設定を保存しなければ、PIX をリブートしたときに前の設定状況に戻ります。設定ミスが原因で PIX にアクセスできない場合は、『パスワードの回復と AAA 設定の回復手順 PIX 用』を参照してください。

はじめに

表記法

ドキュメント表記の詳細は、『シスコ テクニカル ティップスの表記法』を参照してください。

前提条件

このドキュメントに適用される特定の前提条件はありません。

使用するコンポーネント

このドキュメントの情報は、次のソフトウェアとハードウェアのバージョンに基づくものです。

  • PIX ソフトウェア バージョン 6.2

  • Cisco Secure ACS for Windows バージョン 3.0(ACS)

  • Cisco Secure ACS for UNIX(CSUnix)バージョン 2.3.6

このドキュメントの情報は、特定のラボ環境にあるデバイスに基づいて作成されたものです。このドキュメントで使用するすべてのデバイスは、クリアな(デフォルト)設定で作業を開始しています。対象のネットワークが実稼働中である場合には、どのような作業についても、その潜在的な影響について確実に理解しておく必要があります。

認証/許可を追加する前のテスト

新しい 6.2 の認証/許可機能を実装する前に、次のコマンドを使用して、現在 PIX にアクセスできることを確認します。

 
 !--- PIX への Telnet 接続に使用できる IP 範囲(値はネットワークによって異なります)。
 
 telnet 172.18.124.0 255.255.255.0
 
 !--- Telnet パスワード。
 
 passwd <password>
 
 !--- イネーブル パスワード。
 
 enable password <password>
 

特権設定について

PIX のほとんどのコマンドはレベル 15 ですが、レベル 0 のコマンドもいくつかあります。全コマンドの現在の設定を確認するには、次のコマンドを使用します。

 show privilege all
 

ほとんどのコマンドは、次の例のように、デフォルトでレベル 15 です。

 privilege configure level 15 command route
 

次の例のように、少数のコマンドがレベル 0 になっています。

 privilege show level 0 command curpriv
 

PIX はイネーブル モードと設定モードで動作可能です。show logging など、一部のコマンドは両方のモードで使用できます。このようなコマンドに特権を設定するには、次の例のように、そのコマンドが分類されているモードを指定する必要があります。もう 1 つのモード オプションは enable です。logging is a command available in multiple modes エラー メッセージが表示されます。モードを設定していない場合は、mode [enable|configure] コマンドを使用します。

 privilege show level 5 mode configure command logging
 
 
 

次の例では clock コマンドを取り上げています。clock コマンドの現在の設定を確認するには、次のコマンドを発行します。

 show privilege command clock
 

show privilege command clock の出力から、clock コマンドには次の 3 つの形式が存在することがわかります。

 
 !--- レベル 15 のユーザが show clock コマンドを使用できます。
 
 privilege show level 15 command clock
 
 !--- レベル 15 のユーザが clear clock コマンドを使用できます。
 
 Privilege clear level 15 command clock
 
 !--- レベル 15 のユーザがクロックを設定できます
 !--- (例:clock set 12:00:00 Jan 01 2001)。
 
 privilege configure level 15 command clock
 

認証/許可 - ローカル ユーザ名

clock コマンドの特権レベルを変更する前に、次の例のように、コンソール ポートから管理ユーザを設定して、LOCAL ログイン認証をオンにする必要があります。

 GOSS(config)# username poweruser password poweruser privilege 15
 GOSS(config)# aaa-server LOCAL protocol local 
 GOSS(config)# aaa authentication telnet console LOCAL
 

次の例のように、ユーザの追加を確認するメッセージが表示されます。

 GOSS(config)# 502101: New user added to local dbase:
       Uname: poweruser Priv: 15 Encpass: Nimjl8wRa7VAmpm5
 

ユーザ「poweruser」は、PIX に Telnet で接続し、既存のローカル PIX イネーブル パスワード(enable password <password> コマンドで設定されたパスワード)でイネーブル ユーザとなります。

次の例のように、イネーブル モードに入るための認証を追加することで、セキュリティをさらに強化できます。

 GOSS(config)# aaa authentication enable console LOCAL
 

これによってユーザは、ログインとイネーブルの両方のパスワードの入力が必要になります。この例では、パスワード「poweruser」がログインとイネーブルの両方に使用されています。ユーザ「poweruser」は、PIX に Telnet で接続し、ローカルの PIX パスワードでイネーブル モードに入ることができます。

一部のユーザに対して特定のコマンドの使用のみを許可する場合は、次の例のように、権限の低いユーザを設定します。

 GOSS(config)# username ordinary password ordinary privilege 9
 

実際にはすべてのコマンドがレベル 15 であるため、「ordinary」ユーザが使用できるように一部のコマンドをレベル 9 に下げる必要があります。ここでは次の例のように、レベル 9 のユーザに対して show clock コマンドの使用は許可し、クロックの再設定は許可しないようにします。

 GOSS(config)# privilege show level 9 command clock
 

また、次の例のように、ユーザが PIX からログアウトできるようにする必要があります(この操作を行うときのユーザのレベルは 1 または 9 です)。

 GOSS(config)# privilege configure level 1 command logout
 

次の例のように、ユーザが enable コマンドを使用できるようにする必要があります(この操作を行う際のユーザのレベルは 1 です)。

 GOSS(config)# privilege configure level 1 mode enable command enable
 

次の例のように、disable コマンドをレベル 1 に移すと、レベル 2 〜 15 の全ユーザがイネーブル モードから出ることができます。

 GOSS(config)# privilege configure level 1 command disable
 

ユーザ「ordinary」として Telnet で接続し、同じユーザでイネーブル ユーザとなる場合(パスワードも「ordinary」)、次の例のように privilege configure level 1 command disable を使用する必要があります。

 GOSS# show curpriv
 Username : ordinary
 Current privilege level : 9
 Current Mode/s : P_PRIV
 

まだ元のセッション(認証を追加する前のセッション)が開いたままの場合、最初にユーザ名を使用してログインしていないため、PIX はこのセッションのユーザを認識できません。このケースで debug コマンドを発行すると、ユーザ「enable_15」または「enable_1」(対応するユーザ名がないユーザ)についてのメッセージが表示されます。そのため、コマンド許可を設定する前にユーザ「poweruser」(「レベル 15」のユーザ)として PIX に Telnet 接続してください。これによって PIX が、実行されるコマンドにユーザ名を対応付けられるようになります。次のコマンドを使用すると、コマンド許可をテストする準備は完了です。

 GOSS(config)# aaa authorization command LOCAL
 

ユーザ「poweruser」は Telent で接続してイネーブル モードに入り、すべてのコマンドを実行できます。次の例のように、ユーザ「ordinary」は、show clockenabledisable、および logout コマンドは使用できますが、それ以外のコマンドは使用できません。

 GOSS# show xlate
 Command authorization failed
 

AAA サーバによる認証/許可

AAA サーバを使用してユーザの認証と許可を行うこともできます。コマンド許可が可能なため、TACACS+ が最適ですが、RADIUS も使用できます。次の例のように、PIX に以前の AAA Telnet/console コマンドが残っているかどうかを確認します(これまで LOCAL AAA コマンドを使用していた場合)。

 GOSS(config)# show aaa
 AAA authentication telnet console LOCAL
 AAA authentication enable console LOCAL
 AAA authorization command LOCAL
 

以前の AAA Telnet/console コマンドが残っている場合は、次のコマンドを使用して、それらのコマンドを削除します。

 GOSS(config)# no aaa authorization command LOCAL
 GOSS(config)# no aaa authentication telnet console LOCAL
 GOSS(config)# no aaa authentication enable console LOCAL
 

ローカル認証の設定と同様に、次のコマンドを使用して、ユーザが PIX に Telnet 接続できることを確認します。

 telnet 172.18.124.0 255.255.255.0
 
 !--- PIX への Telnet 接続に使用できる IP 範囲(値はネットワークによって異なります)。
 
 passwd <password>
 
 !--- Telnet パスワード。
 
 Enable password <password>
 
 !--- イネーブル パスワード。
 
 

使用しているサーバに応じて、PIX に AAA サーバを使用した認証と許可を設定します。

ACS - TACACS+

Network Configuration で「Authenticate Using」に TACACS+(Cisco IOS(R) ソフトウェア用)を指定して PIX を定義し、ACS が PIX と通信できるように設定します。ACS ユーザの設定は、PIX の設定によって異なります。ACS ユーザには、少なくともユーザ名とパスワードを設定する必要があります。

PIX では、次のコマンドを使用します。

 GOSS(config)# enable password cisco123
 GOSS(config)# aaa-server TACSERVER protocol tacacs+
 GOSS(config)# aaa-server TACSERVER (inside) host   timeout 10
 GOSS(config)# aaa authentication telnet console TACSERVER
 

この時点で、ACS ユーザは PIX に Telnet で接続し、既存のイネーブル パスワードを使用して PIX のイネーブル モードに入り、すべてのコマンドを実行できます。次の手順を実行します。

  1. ACS で PIX のイネーブル認証を行う必要がある場合は、Interface Configuration > Advanced TACACS+ Settings の順に選択します。

  2. Advanced TACACS+ Features in Advanced Configuration Options ボックスにチェックマークを付けます。

  3. Submit をクリックします。これで、ユーザ設定の下に Advanced TACACS+ Settings が表示されるようになります。

  4. AAA クライアントの最大特権をレベル 15 に設定します。

  5. ユーザのイネーブル パスワード方式を選択します(別のイネーブル パスワードを設定することもできます)。

  6. Submit をクリックします。

PIX で TACACS+ を介したイネーブル認証をオンにするには、次のコマンドを使用します。

 GOSS(config)# aaa authentication enable console TACSERVER
 

この時点で、ACS ユーザは PIX に Telnet で接続し、ACS で設定したパスワードを使用してイネーブル モードに入ることができます。

PIX コマンド許可を追加する前に、ACS 3.0 にパッチを当てる必要があります。パッチは Software Center からダウンロードできます(登録ユーザ専用)。また、Cisco Bug ID CSCdw78255登録ユーザ専用)で、このパッチの詳細情報を参照できます。
一部ツールについては、ゲスト登録のお客様にはアクセスできない場合がありますことを、ご了承ください。

認証は、コマンド許可を行う前に有効になっている必要があります。ACS でコマンド許可を行う必要がある場合は、Interface Configuration > TACACS+ (Cisco) > Shell (exec) for user and/or group の順に選択し、Submit をクリックします。これで、ユーザ(またはグループ)設定の下にシェル コマンド許可設定が表示されるようになります。

コマンド許可用に権限の高い ACS ユーザを少なくとも 1 つ設定し、一般の ACS ユーザよりも格段に豊富な Cisco IOS コマンドを許可することをお勧めします。

他の ACS ユーザには一部のコマンドだけを許可するようにコマンド許可を設定できます。ここでは次の手順を使用しています。

  1. Group Settings を選択してドロップダウン ボックスから目的のグループを探します。

  2. Edit Settings をクリックします。

  3. Shell Command Authorization Set を選択します。

  4. Command ボタンをクリックします。

  5. login と入力します。

  6. Unlisted Arguments の下の Permit を選択します。

  7. logoutenable、および disable コマンドについて同じ操作を繰り返します。

  8. Shell Command Authorization Set を選択します。

  9. Command ボタンをクリックします。

  10. show と入力します。

  11. Arguments の下に permit clock と入力します。

  12. Unlisted Arguments の下の deny を選択します。

  13. Submit をクリックします。

上記の手順の例を次に示します。

pix_command1.gif

コマンドの許可と拒否の設定画面
※ 画像をクリックすると、大きく表示されます。

まだ元のセッション(認証を追加する前のセッション)が開いたままの場合、最初に ACS ユーザ名を使用してログインしていないため、PIX はこのセッションのユーザを認識できません。このケースで debug コマンドを使用すると、ユーザ「enable_15」または「enable_1」(対応するユーザ名がない場合)についてのメッセージが表示されます。実行するコマンドとユーザ名を PIX が対応付けられるようにする必要があります。コマンド許可を設定する前にレベル 15 の ACS ユーザとして PIX に Telnet 接続すると、この対応付けを行うことができます。次のコマンドを使用すると、コマンド許可をテストする準備は完了です。

 aaa authorization command TACSERVER
 

この時点で、Telnet 接続および全コマンドを使用できるイネーブル ユーザが 1 人と、5 つのコマンドのみ実行できる 2 番目のユーザが存在します。

CSUnix - TACACS+

他のネットワーク デバイスの場合と同様に、まず CSUnix が PIX と通信できるように設定します。CSUnix ユーザの設定は、PIX の設定によって異なります。CSUnix ユーザには、少なくともユーザ名とパスワードを設定する必要があります。この例では、3 つのユーザがすでに設定されています。

 
 
 !--- これはイネーブル モードへの切り替え、全コマンドの使用、
 !--- およびログインが可能な「poweruser」です。
 !--- ログイン パスワードは、「clear "********"」文の中にあります。
 !--- イネーブル パスワードは、「clear "********" 15」文の中にあります。
 user = pixtest{
 password = clear "********"
 privilege = clear "********" 15 
 service=shell {
 default cmd=permit
 default attribute=permit
 } 
 }
 
 
 !--- このユーザは、Telnet 接続、イネーブル モードへの切り替え、および
 !--- 4 個のコマンド(show clock、logout、exit、および enable)の使用が可能です。
 !--- ログイン パスワードは、「clear "********"」文の中にあります。
 !--- イネーブル パスワードは、「clear "********" 15」文の中にあります。
 user = limitpix{
 password = clear "********" 
 privilege = clear "********" 15 
 service=shell {
 cmd=show {
 permit "clock"
 } 
 cmd=logout {
 permit ".*"
 } 
 cmd=enable {
 permit ".*"
 } 
 cmd=exit {
 permit ".*"
 } 
 } 
 }
 
 
 
 !--- このユーザは Telnet 接続は可能ですが、イネーブル モードへの切り替えは
 !--- 許可されていません。このユーザは、非イネーブル モードでの
 !--- show コマンドと logout、exit、および ? を使用できます。
 
 user = oneuser{
 password = clear "********" 
 service=shell {
 cmd=show {
 permit ".*"
 } 
 cmd=logout {
 permit ".*"
 } 
 cmd="?" {
 permit ".*"
 } 
 cmd=exit {
 permit ".*"
 } 
 } 
 }
 

PIX では、次のコマンドを使用します。

 GOSS(config)# enable password cisco123
 GOSS(config)# aaa-server TACSERVER protocol tacacs+ 
 GOSS(config)# aaa-server TACSERVER (inside) host <ip> <key> timeout 10
 GOSS(config)# aaa authentication telnet console TACSERVER
 

この時点で、いずれかの CSUnix ユーザが PIX に Telnet で接続し、既存のイネーブル パスワードを使用して PIX のイネーブル モードに入り、すべてのコマンドを使用できます。

PIX で TACACS+ を介した認証を有効にします。

 GOSS(config)# aaa authentication enable console TACSERVER
 

この時点で、「privilege 15」パスワードを持つ CSUnix ユーザが PIX に Telnet で接続し、それぞれの「enable」パスワードでイネーブル モードに入ることができます。

まだ元のセッション(認証を追加する前のセッション)が開いたままの場合、最初にユーザ名を使用してログインしていないため、PIX はこのセッションのユーザを認識できません。このケースで debug コマンドを発行すると、ユーザ「enable_15」または「enable_1」(対応するユーザ名がない場合)についてのメッセージが表示される場合があります。コマンド許可を設定する前に、ユーザ「pixtest」(「レベル 15」のユーザ)として PIX に Telnet 接続してください。これによって PIX が、実行されるコマンドにユーザ名を対応付けられるようになります。イネーブル認証は、コマンド許可を行う前に有効になっている必要があります。CSUnix でコマンド許可を実行する必要がある場合は、次のコマンドを追加します。

 GOSS(config)# aaa authorization command TACSERVER
 

この 3 人のユーザのうち、「pixtest」はすべてのコマンドを実行可能で、他の 2 人のユーザは一部のコマンドのみ実行できます。

ACS - RADIUS

RADIUS によるコマンド許可はサポートされていません。ACS を使用した Telnet とイネーブル認証は可能です。ACS が PIX と通信できるように設定するには、Network Configuration で「Authenticate Using」に RADIUS(どのタイプでも可)を指定して PIX を定義します。ACS ユーザの設定は、PIX の設定によって異なります。ACS ユーザには、少なくともユーザ名とパスワードを設定する必要があります。

PIX では、次のコマンドを使用します。

 GOSS(config)# enable password cisco123
 GOSS(config)# aaa-server RADSERVER protocol radius GOSS(config)
   # aaa-server RADSERVER (inside)
     host <ip> <key> timeout 10
 GOSS(config)# aaa authentication telnet console RADSERVER
 

この時点で、ACS ユーザは PIX に Telnet で接続し、既存のイネーブル パスワードを使用して PIX のイネーブル モードに入り、すべてのコマンドを使用できます(PIX は RADIUS サーバにコマンドを送信しません。RADIUS によるコマンド許可はサポートされていません)。

PIX で ACS と RADIUS についてイネーブルにするには、次のコマンドを追加します。

 aaa authentication enable console RADSERVER
 

TACACS+ とは異なり、RADIUS のログインと同じパスワードが RADIUS のイネーブルにも使用されます。

CSUnix - RADIUS

他のネットワーク デバイスの場合と同様に、CSUnix が PIX と通信できるように設定します。CSUnix ユーザの設定は、PIX の設定によって異なります。次のプロファイルは、認証とイネーブル モードへの切り替えに使用できます。

 user = pixradius{
 profile_id = 26 
 profile_cycle = 1 
 
 
 !--- ログイン パスワードは、「clear "********"」文の中にあります。
 !--- これは、login、enable、および non-enable コマンドに使用されます。
 password = clear "********" < pixradius
 }
 

PIX では、次のコマンドを使用します。

 GOSS(config)# enable password cisco123
 GOSS(config)# aaa-server RADSERVER protocol radius
 GOSS(config)# aaa-server RADSERVER (inside) host <ip> <key> timeout 10
 

PIX で ACS と RADIUS についてイネーブルにするには、次のコマンドを使用します。

 GOSS(config)# aaa authentication enable console RADSERVER
 

TACACS+ とは異なり、RADIUS のログインと同じパスワードが RADIUS のイネーブルにも使用されます。

ネットワーク アクセス制限

ネットワーク アクセス制限は ACS と CSUnix の両方で使用でき、管理目的で PIX に接続できるユーザを制限します。

  • ACS — Group Settings の Network Access Restrictions の部分で PIX を設定します。PIX の設定は、「Denied Calling/Point of Access Locations」または「Permitted Calling/Point of Access Locations」のどちらかになります(セキュリティ計画によって異なります)。

  • CSUnix — PIX へのアクセスは許可されているものの、それ以外のデバイスにはアクセスできないユーザの例を次に示します。

     user = naruser{
     profile_id = 119 
     profile_cycle = 1 
     password = clear "********" 
     privilege = clear "********" 15 
     service=shell {
     allow "10.98.21.50" ".*" ".*"
     refuse ".*" ".*" ".*"
     default cmd=permit
     default attribute=permit
     } 
     }
     

デバッグ

デバッグを有効にするには、次のコマンドを使用します。

 logging on
 logging <console|monitor> debug
 

次に正常な状態と問題発生時のデバッグ例を示します。

  • 正常な状態のデバッグ — ユーザは log inenable、および perform コマンドを使用できます。

     307002: Permitted Telnet login session from 172.18.124.111
     111006: Console Login from pixpartial at console
     502103: User priv level changed: Uname: pixpartial From: 1 To: 15
     111009: User 'pixpartial' executed cmd: show clock
     
  • 問題発生時のデバッグ — 次の例では、ユーザの許可が失敗しています。

     610101: Authorization failed: Cmd: uauth Cmdtype: show
     
  • リモートの AAA サーバが到達不能

     AAA server host machine not responding
     

アカウンティング

現時点で実際にアカウンティングを可能にするコマンドはありませんが、PIX で syslog を有効にすれば、次の例のように、実行された操作を表示できます。

 307002: Permitted Telnet login session from 172.18.124.111
 111006: Console Login from pixtest at console
 611103: User logged out: Uname: pixtest
 307002: Permitted Telnet login session from 172.18.124.111
 111006: Console Login from pixtest at console
 502103: User priv level changed: Uname: pixtest From: 1 To: 15
 111008: User 'pixtest' executed the 'enable' command.
 111007: Begin configuration: 172.18.124.111 reading from terminal
 111008: User 'pixtest' executed the 'configure t' command.
 111008: User 'pixtest' executed the 'write t' command.
 

TAC のサービスリクエストをオープンする場合の情報の収集

上記のトラブルシューティング手順を実行した後も、依然としてサポートが必要で、Cisco TAC でサービスリクエストをオープンする必要がある場合は、PIX ファイアウォールのトラブルシューティングに必要な次の情報を必ず収集してください。
  • 問題の説明と関連するトポロジの詳細

  • サービスリクエストをオープンする前に実施したトラブルシューティング

  • show tech-support コマンドの出力

  • logging buffered debugging コマンド実行後の show log コマンドの出力、あるいは、問題を示す画面キャプチャ(採取されている場合)

収集したデータは、圧縮しないプレーンなテキスト形式(.txt)でサービス リクエストに添付してください。情報をサービス リクエストに添付するには、TAC Service Request Tool登録ユーザ専用)を使用してアップロードします。TAC Service Request Tool にアクセスできない場合は、情報を電子メールの添付ファイルとし、メッセージの件名にサービス リクエスト番号を付けて attach@cisco.com 宛てに送信してください。
一部ツールについては、ゲスト登録のお客様にはアクセスできない場合がありますことを、ご了承ください。


関連するシスコ サポート コミュニティ ディスカッション

シスコ サポート コミュニティは、どなたでも投稿や回答ができる情報交換スペースです。


関連情報


Document ID: 22923