イネーブルEXECコマンドへのアクセスの保護
ネットワークで端末のアクセス制御を行う簡単な方法は、パスワードを使用して権限レベルを割り当てることです。パスワード保護によって、ネットワークまたはネットワーク デバイスへのアクセスが制限されます。権限レベルによって、ネットワーク デバイスにログオン後、ユーザがどのようなコマンドを入力できるかが定義されます。
(注) この章で説明するコマンドの構文および使用方法の詳細については、『Cisco IOS Security Command Reference』Release 12.1を参照してください。
ここでは、コンフィギュレーション ファイルおよびイネーブルEXECコマンドへのアクセスを制御する方法について説明します。具体的な設定情報は次のとおりです。
• 「デフォルトのパスワードおよび権限レベル設定」
• 「スタティック イネーブル パスワードの設定または変更」
• 「暗号化によるイネーブルおよびイネーブル シークレット パスワードの保護」
• 「パスワード回復のディセーブル化」
• 「端末回線に対するTelnetパスワードの設定」
• 「ユーザ名とパスワードのペアの設定」
• 「複数の権限レベルの設定」
デフォルトのパスワードおよび権限レベル設定
表 9-1 に、デフォルトのパスワードおよび権限レベル設定を示します。
表 9-1 デフォルトのパスワードおよび権限レベル
|
|
イネーブル パスワードおよび権限レベル |
パスワードは定義されていません。デフォルトはレベル15です(イネーブルEXECレベル)。パスワードは、コンフィギュレーション ファイル内では暗号化されていない状態です。 |
イネーブル シークレット パスワードおよび権限レベル |
パスワードは定義されていません。デフォルトはレベル15です(イネーブルEXECレベル)。パスワードは、暗号化されてからコンフィギュレーション ファイルに書き込まれます。 |
回線パスワード |
パスワードは定義されていません。 |
スタティック イネーブル パスワードの設定または変更
イネーブル パスワードは、イネーブルEXECモードへのアクセスを制御します。スタティック イネーブル パスワードを設定または変更するには、イネーブルEXECモードで次の手順を実行します。
|
|
|
ステップ 1 |
configure terminal |
グローバル コンフィギュレーション モードを開始します。 |
ステップ 2 |
enable password password |
イネーブルEXECモードのアクセス用に新しいパスワードを定義するか、既存のパスワードを変更します。 デフォルトでは、パスワードは定義されていません。 password には、1~25文字の英数字のストリングを指定します。ストリングは数字で始めることはできません。大文字/小文字を区別し、スペースを使用できますが、先行スペースは無視されます。疑問符(?)は、パスワードを作成する場合に、疑問符の前にキーの組み合わせCtrl-vを入力すれば使用できます。たとえば、パスワードabc?123を作成するときは、次のようにします。 abc を入力します。 Ctrl-v を入力します。 ?123 を入力します。 システムからイネーブル パスワードを入力するよう求められた場合、疑問符の前にCtrl-vを入力する必要はなく、パスワードのプロンプトにそのままabc?123と入力することができます。 |
ステップ 3 |
end |
イネーブルEXECモードに戻ります。 |
ステップ 4 |
show running-config |
設定を確認します。 |
ステップ 5 |
copy running-config startup-config |
(任意)コンフィギュレーション ファイルに設定を保存します。 イネーブル パスワードは暗号化されず、スイッチのコンフィギュレーション ファイル内では読み取ることができる状態です。 |
パスワードを削除するには、 no enable password グローバル コンフィギュレーション コマンドを使用します。
次に、イネーブル パスワードを l1u2c3k4y5 に変更する例を示します。パスワードは暗号化されておらず、レベル15のアクセスが与えられます(従来のイネーブルEXECモード アクセス)。
Switch(config)# enable password l1u2c3k4y5
暗号化によるイネーブルおよびイネーブル シークレット パスワードの保護
追加のセキュリティ レイヤを、特にネットワークを越えるパスワードやTrivial File Transfer Protocol(TFTP;簡易ファイル転送プロトコル)サーバに保存されているパスワードに対して設定する場合には、 enable password または enable secret グローバル コンフィギュレーション コマンドを使用できます。両コマンドはともに同じ働きをします。このコマンドにより、暗号化されたパスワードを設定できます。イネーブルEXECモード(デフォルト設定)または特定の権限レベルにアクセスするには、このパスワードを入力する必要があります。
より高度な暗号化アルゴリズムを使用しているので、 enable secret コマンドを使用することを推奨します。
enable secret コマンドは enable password コマンドに優先します。2つのコマンドが同時に有効になることはありません。
イネーブルおよびイネーブル シークレット パスワードに暗号化を設定するには、イネーブルEXECモードで次の手順を実行します。
|
|
|
ステップ 1 |
configure terminal |
グローバル コンフィギュレーション モードを開始します。 |
ステップ 2 |
enable password [ level level ] { password | encryption-type encrypted- password } または enable secret [ level level ] { password | encryption-type encrypted- password } |
イネーブルEXECモードのアクセス用に新しいパスワードを定義するか、既存のパスワードを変更します。 または シークレット パスワードを定義し、非可逆暗号方式を使用して保存します。 • (任意) level に指定できる範囲は0~15です。レベル1が通常のユーザEXECモード権限です。デフォルト レベルは15です(イネーブルEXECモード権限)。 • password には、1~25文字の英数字のストリングを指定します。ストリングは数字で始めることはできません。大文字/小文字を区別し、スペースを使用できますが、先行スペースは無視されます。デフォルトでは、パスワードは定義されていません。 • (任意) encryption-type には、シスコ独自の暗号化アルゴリズムであるタイプ5しか利用できません。暗号化タイプを指定する場合は、暗号化されたパスワードを使用する必要があります。この暗号化パスワードは、別のスイッチ コンフィギュレーションからコピーしたものです。
(注) 暗号化タイプを指定してクリア テキスト パスワードを入力した場合は、再度イネーブルEXECモードを開始することはできません。暗号化されたパスワードが失われた場合は、どのような方法でも回復することはできません。
|
ステップ 3 |
service password-encryption |
(任意)パスワードを定義するとき、またはコンフィギュレーションを保存するときに、パスワードを暗号化します。 暗号化によって、コンフィギュレーション ファイルのパスワードが読み取り不能になります。 |
ステップ 4 |
end |
イネーブルEXECモードに戻ります。 |
ステップ 5 |
copy running-config startup-config |
(任意)コンフィギュレーション ファイルに設定を保存します。 |
イネーブル パスワードおよびイネーブル シークレット パスワードの両方が定義されている場合、ユーザはイネーブル シークレット パスワードを入力する必要があります。
特定の権限レベルのパスワードを定義するには、 level キーワードを使用します。レベルを指定してパスワードを設定したら、そのレベルでアクセスする必要のあるユーザだけにそのパスワードを渡してください。さまざまなレベルでアクセス可能なコマンドを指定する場合は、 privilege level グローバル コンフィギュレーション コマンドを使用します。詳細については、「複数の権限レベルの設定」を参照してください。
パスワードの暗号化をイネーブルにすると、ユーザ名パスワード、認証鍵パスワード、イネーブル コマンド パスワード、コンソールおよび仮想端末回線パスワードなど、すべてのパスワードに適用されます。
パスワードとレベルを削除するには、 no enable password [ level level ] または no enable secret [ level level ]グローバル コンフィギュレーション コマンドを使用します。パスワードの暗号化をディセーブルにするには、 no service password-encryption グローバル コンフィギュレーション コマンドを使用します。
権限レベル2に対して暗号化パスワード $1$FaD0$Xyti5Rkls3LoyxzS8 を設定する例を示します。
Switch(config)# enable secret level 2 5 $1$FaD0$Xyti5Rkls3LoyxzS8
パスワード回復のディセーブル化
デフォルトでは、スイッチに物理アクセスするすべてのエンド ユーザは、スイッチの電源投入時にブート プロセスを中断して新しいパスワードを入力することで、失われたパスワードを回復できます。
パスワード回復ディセーブル機能では、この機能の一部をディセーブルにすることにより、スイッチ パスワードへのアクセスを防止します。この機能がイネーブルな場合、エンド ユーザはシステムをデフォルト設定に戻すことに同意するだけで、ブート プロセスを中断することができます。パスワード回復をディセーブル化しても、ブート プロセスを中断してパスワードを変更することができますが、コンフィギュレーション ファイル(config.txt)およびVLANデータベース ファイル(vlan.dat)は削除されます。
(注) パスワード回復をディセーブルにする場合は、エンドユーザがブート プロセスを中断してシステムをデフォルト値に戻す場合に備えて、セキュア サーバ上にコンフィギュレーション ファイルのバックアップ コピーを保管しておいてください。スイッチ上にコンフィギュレーション ファイルのバックアップ コピーを保管しないでください。スイッチがVTPトランスペアレント モードで動作している場合は、セキュア サーバ上にVLANデータベース ファイルのバックアップ コピーも保管することを推奨します。スイッチがシステムのデフォルト設定に戻ると、XMODEMプロトコルを使用して、保存したファイルをダウンロードできます。詳細については、「パスワードを忘れた場合の回復」を参照してください。
パスワード回復をディセーブルにするには、イネーブルEXECモードで次の手順を実行します。
|
|
|
ステップ 1 |
configure terminal |
グローバル コンフィギュレーション モードを開始します。 |
ステップ 2 |
no service password-recovery |
パスワード回復をディセーブルにします。 この設定は、フラッシュ メモリのブート ローダがアクセスできる領域およびCisco IOSイメージに保存されます。ただし、ファイル システムの領域ではないのでユーザはアクセスできません。 |
ステップ 3 |
end |
イネーブルEXECモードに戻ります。 |
ステップ 4 |
show version |
コマンド出力の最後の数行を調べて設定を確認します。 |
パスワード回復を再びイネーブルにするには、 service password-recovery グローバル コンフィギュレーション コマンドを使用します。
(注) boot manualグローバル コンフィギュレーション コマンドを使用して、スイッチを手動で起動するように設定している場合は、パスワード回復をディセーブルにできません。このコマンドにより、スイッチのオフ/オン後に、ブート ローダ プロンプト(switch:)が表示されます。
端末回線に対するTelnetパスワードの設定
初めてスイッチに電源を投入すると、自動セットアップ プログラムが起動してIP情報を割り当て、引き続き使用するためのデフォルト設定を作成します。セットアップ プログラムは、パスワードによるTelnetアクセス用にスイッチを設定するよう求めてきます。このとき、セットアップ プログラムを使用してパスワードを設定しなかった場合は、CLI(コマンドライン インターフェイス)を使用して設定できます。
スイッチをTelnetアクセス用に設定するには、イネーブルEXECモードで次の手順を実行します。
|
|
|
ステップ 1 |
|
エミュレーション ソフトウェアを備えたPCまたはワークステーションと、スイッチのコンソール ポートを接続します。 コンソール ポートのデフォルトのデータ特性は、9600ボー、8データ ビット、1ストップ ビット、パリティなしです。コマンドライン プロンプトを表示させるため、Returnキーを数回押すこともあります。 |
ステップ 2 |
enable password password |
イネーブルEXECモードを開始します。 |
ステップ 3 |
configure terminal |
グローバル コンフィギュレーション モードを開始します。 |
ステップ 4 |
line vty 0 15 |
Telnetセッション(回線)の数を設定し、ライン コンフィギュレーション モードを開始します。 コマンド対応スイッチでは、最大16のセッションが可能です。0および15を指定することは、使用できる16個のTelnetセッションを全部設定することを意味します。 |
ステップ 5 |
password password |
1つまたは複数の回線のTelnetパスワードを入力します。 password には、1~25文字の英数字のストリングを指定します。ストリングは数字で始めることはできません。大文字/小文字を区別し、スペースを使用できますが、先行スペースは無視されます。デフォルトでは、パスワードは定義されていません。 |
ステップ 6 |
end |
イネーブルEXECモードに戻ります。 |
ステップ 7 |
show running-config |
設定を確認します。 コマンド line vty 0 15 の下にパスワードが表示されます。 |
ステップ 8 |
copy running-config startup-config |
(任意)コンフィギュレーション ファイルに設定を保存します。 |
パスワードを削除するには、 no password グローバル コンフィギュレーション コマンドを使用します。
Telnetパスワードを let45me67in89 に設定する例を示します。
Switch(config)# line vty 10
Switch(config-line)# password let45me67in89
ユーザ名とパスワードのペアの設定
ユーザ名とパスワードのペアを設定でき、スイッチ上でローカルに保存します。このペアは回線またはポートに割り当てられ、各ユーザを認証します。ユーザは認証後、スイッチにアクセスすることができます。権限レベルを定義している場合は、ユーザ名とパスワードの各ペアに特定の権限レベル(対応する権利および権限付き)を割り当てることもできます。
ユーザ名ベースの認証システムを設定するには、イネーブルEXECモードで次の手順を実行します。この認証システムは、ログイン ユーザ名とパスワードを要求します。
|
|
|
ステップ 1 |
configure terminal |
グローバル コンフィギュレーション モードを開始します。 |
ステップ 2 |
username name [ privilege level ] { password encryption-type password } |
各ユーザのユーザ名、権限レベル、パスワードを入力します。 • name には、ユーザIDを1ワードで指定します。スペースや引用符は使用できません。 • (任意) level には、アクセス後ユーザに設定する権限レベルを指定します。指定できる範囲は0~15です。レベル15ではイネーブルEXECモードでのアクセスが可能です。レベル1では、ユーザEXECモードでのアクセスとなります。 • encryption-type には、暗号化されていないパスワードがあとに続く場合は0を、暗号化されたパスワードがあとに続く場合は7を指定します。 • password には、ユーザがスイッチにアクセスする場合に入力する必要のあるパスワードを指定します。パスワードは1~25文字で、埋め込みスペースを使用でき、 username コマンドの最後のオプションとして指定します。 |
ステップ 3 |
line console 0 または line vty 0 15 |
ライン コンフィギュレーション モードを開始し、コンソール ポート(回線0)またはVTY回線(回線0~15)を設定します。 |
ステップ 4 |
login local |
ログイン時のローカル パスワード チェックをイネーブルにします。認証は、ステップ2で指定されたユーザ名に基づきます。 |
ステップ 5 |
end |
イネーブルEXECモードに戻ります。 |
ステップ 6 |
show running-config |
設定を確認します。 |
ステップ 7 |
copy running-config startup-config |
(任意)コンフィギュレーション ファイルに設定を保存します。 |
特定ユーザのユーザ名認証をディセーブルにするには、 no username name グローバル コンフィギュレーション コマンドを使用します。パスワード チェックをディセーブルにし、パスワードなしでの接続を可能にするには、 no login ライン コンフィギュレーション コマンドを使用します。
複数の権限レベルの設定
Cisco IOSソフトウェアは、デフォルトで、ユーザEXECとイネーブルEXECという2種類のパスワード セキュリティ モードを備えています。各モードについて、コマンドの階層レベルを最大16まで設定できます。複数のパスワードを設定することにより、さまざまなユーザ グループに対して特定のコマンドへのアクセスを許可することができます。
たとえば、多くのユーザに clear line コマンドへのアクセスを許可する場合、レベル2のセキュリティを割り当て、レベル2のパスワードを広範囲のユーザに配布することができます。また、 configure コマンドへのアクセスをより制限されたものにしたい場合は、レベル3のセキュリティを割り当て、そのパスワードを限られたユーザ グループに配布することもできます。
ここでは、次の設定について説明します。
• 「コマンドの権限レベルの設定」
• 「回線に対するデフォルトの権限レベルの変更」
• 「権限レベルへのログインおよび終了」
コマンドの権限レベルの設定
コマンド モードの権限レベルを設定するには、イネーブルEXECモードで次の手順を実行します。
|
|
|
ステップ 1 |
configure terminal |
グローバル コンフィギュレーション モードを開始します。 |
ステップ 2 |
privilege mode level level command |
コマンドの権限レベルを設定します。 • mode には、グローバル コンフィギュレーション モードの場合は configure を、EXECモードの場合は exec を、インターフェイス コンフィギュレーション モードの場合は interface を、ライン コンフィギュレーション モードの場合は line を、それぞれ入力します。 • level に指定できる範囲は0~15です。レベル1が通常のユーザEXECモード権限です。レベル15は、 enable パスワードによって許可されるアクセス レベルです。 • command には、アクセスを制限したいコマンドを指定します。 |
ステップ 3 |
enable password level level password |
権限レベルのイネーブル パスワードを指定します。 • level に指定できる範囲は0~15です。レベル1が通常のユーザEXECモード権限です。 • password には、1~25文字の英数字のストリングを指定します。ストリングは数字で始めることはできません。大文字/小文字を区別し、スペースを使用できますが、先行スペースは無視されます。デフォルトでは、パスワードは定義されていません。 |
ステップ 4 |
end |
イネーブルEXECモードに戻ります。 |
ステップ 5 |
show running-config または show privilege |
設定を確認します。 show running-configコマンドはパスワードとアクセス レベルの設定を表示します。show previlegeコマンドは、権限レベルの設定を表示します。 |
ステップ 6 |
copy running-config startup-config |
(任意)コンフィギュレーション ファイルに設定を保存します。 |
コマンドをある権限レベルに設定すると、構文がそのコマンドのサブセットであるコマンドはすべて、そのレベルに設定されます。たとえば、 show ip traffic コマンドをレベル15に設定すると、 show コマンドおよび show ip コマンドは、個々に別のレベルに設定しないかぎり、自動的にレベル15に設定されます。
特定のコマンドについて、デフォルトの権限に戻すには、 no privilege mode level level command グローバル コンフィギュレーション コマンドを使用します。
configure コマンドを権限レベル14に設定し、レベル14コマンドを使用する場合にユーザが入力するパスワードとして SecretPswd14 を定義する例を示します。
Switch(config)# privilege exec level 14 configure
Switch(config)# enable password level 14 SecretPswd14
回線に対するデフォルトの権限レベルの変更
回線に対するデフォルトの権限レベルを変更するには、イネーブルEXECモードで次の手順を実行します。
|
|
|
ステップ 1 |
configure terminal |
グローバル コンフィギュレーション モードを開始します。 |
ステップ 2 |
line vty line |
アクセスを制限する仮想端末回線を選択します。 |
ステップ 3 |
privilege level level |
回線のデフォルト権限レベルを変更します。 level に指定できる範囲は0~15です。レベル1が通常のユーザEXECモード権限です。レベル15は、 enable パスワードによって許可されるアクセス レベルです。 |
ステップ 4 |
end |
イネーブルEXECモードに戻ります。 |
ステップ 5 |
show running-config または show privilege |
設定を確認します。 show running-configコマンドはパスワードとアクセス レベルの設定を表示します。show previlegeコマンドは、権限レベルの設定を表示します。 |
ステップ 6 |
copy running-config startup-config |
(任意)コンフィギュレーション ファイルに設定を保存します。 |
ユーザは、回線にログインし、別の権限レベルをイネーブルに設定することにより、 privilege level ライン コンフィギュレーション コマンドを使用して設定された権限レベルを上書きできます。また、 disable コマンドを使用すれば、権限レベルを低く設定することができます。上位の権限レベルのパスワードがわかっていれば、ユーザはそのパスワードを使用して上位の権限レベルをイネーブルにできます。回線の使用を制限するには、コンソール回線に高いレベルまたは権限レベルを指定してください。
回線の権限レベルをデフォルトに戻すには、 no privilege level ライン コンフィギュレーション コマンドを使用します。
権限レベルへのログインおよび終了
特定の権限レベルにログインし、特定の権限レベルを終了するには、イネーブルEXECモードで次の手順を実行します。
|
|
|
ステップ 1 |
enable level |
特定の権限レベルにログインします。 level に指定できる範囲は0~15です。 |
ステップ 2 |
disable level |
特定の権限レベルを終了します。 level に指定できる範囲は0~15です。 |
TACACS+によるスイッチ アクセスの制御
ここでは、Terminal Access Controller Access Control System Plus(TACACS+)をイネーブルにして設定する方法について説明します。TACACS+は、詳細なアカウンティング情報を収集し、認証および許可プロセスに対して柔軟な管理を行います。TACACS+は、Authentication, Authorization, Accounting(AAA;認証、許可、アカウンティング)機能が拡張されており、TACACS+をイネーブルにするにはAAAコマンドを使用しなければなりません。
(注) この章で説明するコマンドの構文および使用方法の詳細については、『Cisco IOS Security Command Reference』Release 12.1を参照してください。
ここでは、次の設定情報について説明します。
• 「TACACS+の概要」
• 「TACACS+の動作」
• 「TACACS+の設定」
• 「TACACS+設定の表示」
TACACS+の概要
TACACS+は、スイッチにアクセスしようとするユーザの検証を集中的に行うセキュリティ アプリケーションです。TACACS+サービスは、通常UNIXまたはWindows NTワークステーション上で稼働するTACACS+デーモンのデータベースで管理されます。スイッチにTACACS+機能を設定するには、TACACS+サーバにアクセスして設定する必要があります。
(注) スイッチ スタックとTACACS+サーバとの間では冗長接続を確立することを推奨します。これは、接続されているスタック メンバーがスイッチ スタックから削除された場合でも、TACACS+サーバがアクセス可能なまま維持されるように保証する上で役立ちます。
TACACS+は、個別のモジュール型認証、許可、およびアカウンティング機能を備えています。TACACS+では、単一のアクセス制御サーバ(TACACS+デーモン)が各サービス(認証、許可、およびアカウンティング)を別個に提供します。各サービスを固有のデータベースに結合し、デーモンの機能に応じてそのサーバまたはネットワークで利用できる他のサービスを利用することができます。
TACACS+の目的は、1つの管理サービスから複数のネットワーク アクセス ポイントを管理する方式を提供することです。スイッチは、他のシスコ製ルータやアクセス サーバとともにネットワーク アクセス サーバにすることができます。ネットワーク アクセス サーバは、単一のユーザ、ネットワークまたはサブネットワーク、および相互接続されたネットワークとの接続を実現します(図 9-1を参照)。
図 9-1 一般的なTACACS+ネットワーク構成
TACACS+は、AAAセキュリティ サービスによって管理され、次のようなサービスを提供します。
• 認証 ― ログインおよびパスワード ダイアログ、チャレンジおよび応答、メッセージ サポートによって認証の総合的な制御を行います。
認証機能は、ユーザとの対話を実行できます(たとえば、ユーザ名とパスワードが入力されたあと、自宅の住所、母親の旧姓、サービス タイプ、社会保険番号などのいくつかの質問をすることによりユーザを試す)。TACACS+認証サービスは、ユーザ画面にメッセージを送信することもできます。たとえば、会社のパスワード有効期間ポリシーに従い、パスワードの変更の必要があることをユーザに通知することもできます。
• 許可 ― オートコマンド、アクセス制御、セッション期間、プロトコル サポートの設定といった、ユーザ セッション内でのユーザ機能についてきめ細かい制御を行います。また、TACACS+許可機能によって、ユーザが実行できるコマンドを制限することもできます。
• アカウンティング ― 課金、監査、レポートに使用する情報を収集してTACACS+デーモンに送信します。ネットワークの管理者は、アカウンティング機能を使用して、セキュリティ監査のためにユーザの活動状況を追跡したり、ユーザ課金用の情報を提供したりすることができます。アカウンティング レコードには、ユーザID、開始時刻および終了時刻、実行されたコマンド(PPPなど)、パケット数、およびバイト数が含まれます。
TACACS+プロトコルは、スイッチとTACACS+デーモンとの間の認証を行い、スイッチとTACACS+デーモンとの間のプロトコル交換をすべて暗号化することにより機密保持を実現します。
スイッチでTACACS+を使用するには、TACACS+デーモン ソフトウェアが稼働するシステムが必要です。
TACACS+の動作
ユーザが、TACACS+を使用しているスイッチに対して簡易ASCIIログインを試行し、認証が必要になると、次のプロセスが発生します。
1. 接続が確立すると、スイッチはTACACS+デーモンに接続してユーザ名プロンプトを取得し、これがユーザに表示されます。ユーザがユーザ名を入力すると、スイッチはTACACS+デーモンに接続してパスワード プロンプトを取得します。スイッチがパスワード プロンプトを表示し、ユーザがパスワードを入力すると、そのパスワードがTACACS+デーモンに送信されます。
TACACS+によって、デーモンとユーザとの間の会話が可能になり、デーモンはユーザを認証できるだけの情報を取得できるようになります。デーモンは、ユーザ名とパスワードの組み合わせを入力するよう指示しますが、ユーザの母親の旧姓など、その他の項目を含めることもできます。
2. スイッチは、最終的にTACACS+デーモンから次のいずれかの応答を受信します。
• ACCEPT ― ユーザが認証され、サービスを開始できます。許可を必要とするようにスイッチが設定されている場合は、この時点で許可処理が開始されます。
• REJECT ― ユーザは認証されません。TACACS+デーモンに応じて、ユーザはアクセスを拒否されるか、ログイン シーケンスを再試行するよう求められます。
• ERROR ― デーモンによる認証サービスのある時点で、またはデーモンとスイッチの間のネットワーク接続においてエラーが発生しました。ERROR応答が表示された場合は、スイッチは、通常別の方法でユーザを認証しようとします。
• CONTINUE ― ユーザは、さらに認証情報の入力を求められます。
認証後、スイッチで許可がイネーブルになっている場合、ユーザは追加の許可フェーズに入ります。ユーザはまず、TACACS+認証を正常に終了しなければTACACS+許可に進めません。
3. TACACS+許可が必要な場合は、再度TACACS+デーモンに接続し、デーモンがACCEPTまたはREJECTの許可応答を返します。ACCEPT応答が返された場合は、その応答には、そのユーザのEXECまたはNETWORKセッション宛ての属性の形式でデータ、およびユーザがアクセスできるサービスが含まれます。
• Telnet、Secure Shell(SSH)、rlogin、またはイネーブルEXECサービス
• 接続パラメータ(ホストまたはクライアントのIPアドレス、アクセス リスト、ユーザ タイムアウトなど)
TACACS+のデフォルト設定
TACACS+とAAAは、デフォルトでディセーブルに設定されています。
セキュリティの失効を防止するため、ネットワーク管理アプリケーションを使用してTACACS+を設定することはできません。TACACS+をイネーブルに設定すると、CLIを使用してスイッチにアクセスするユーザを認証します。
(注) TACACS+の設定はCLIを使用して行いますが、TACACS+サーバは権限レベル15に設定されたHTTP接続を許可します。
TACACS+サーバ ホストの特定と認証鍵の設定
認証用に1つのサーバを使用することも、また、既存のサーバ ホストをグループ化するためにAAAサーバ グループを使用するよう設定することもできます。設定済みサーバ ホストのサブセットを選択してサーバをグループ化し、特定のサービスに使用することができます。サーバ グループは、グローバル サーバホスト リストとともに使用され、選択されたサーバ ホストのIPアドレスのリストを含んでいます。
IPホストまたはTACACS+サーバを保持するホストを特定し、任意で暗号鍵を設定するには、イネーブルEXECモードで次の手順を実行します。
|
|
|
ステップ 1 |
configure terminal |
グローバル コンフィギュレーション モードを開始します。 |
ステップ 2 |
tacacs-server host hostname [ port integer ] [ timeout integer ] [ key string ] |
TACACS+サーバを保持するIPホストまたはホストを識別します。このコマンドを複数回入力すると、優先ホストのリストが作成されます。ソフトウェアは、指定された順序でホストを検索します。 • hostname には、ホストの名前またはIPアドレスを指定します。 • (任意) port integer には、サーバのポート番号を指定します。デフォルトはポート49です。指定できる範囲は1~65535です。 • (任意) timeout integer には、スイッチがデーモンからの応答を待つ時間を秒数で指定します。これを過ぎるとスイッチは時間切れとなりエラーを宣言します。デフォルト値は5秒です。指定できる範囲は1~1000秒です。 • (任意) key string には、スイッチとTACACS+デーモンとの間のすべてのトラフィックを暗号化および暗号解除するための暗号鍵を指定します。暗号化が成功するにはTACACS+デーモンに同じ鍵を設定する必要があります。 |
ステップ 3 |
aaa new-model |
AAAをイネーブルにします。 |
ステップ 4 |
aaa group server tacacs+ group-name |
(任意)グループ名でAAAサーバグループを定義します。 このコマンドによって、スイッチはサーバ グループ サブコンフィギュレーション モードになります。 |
ステップ 5 |
server ip-address |
(任意)特定のTACACS+サーバを定義済みサーバ グループに対応付けます。AAAサーバ グループの各TACACS+サーバに対してこのステップを繰り返します。 グループの各サーバは、ステップ2で定義済みのものでなければなりません。 |
ステップ 6 |
end |
イネーブルEXECモードに戻ります。 |
ステップ 7 |
show tacacs |
設定を確認します。 |
ステップ 8 |
copy running-config startup-config |
(任意)コンフィギュレーション ファイルに設定を保存します。 |
指定されたTACACS+サーバ名またはアドレスを削除するには、 no tacacs-server host hostname グローバル コンフィギュレーション コマンドを使用します。設定リストからサーバ グループを削除するには、 no aaa group server tacacs+ group-name グローバル コンフィギュレーション コマンドを使用します。TACACS+サーバのIPアドレスを削除するには、 no server ip-address サーバ グループ サブコンフィギュレーション コマンドを使用します。
TACACS+ログイン認証の設定
AAA認証を設定するには、認証方式の名前付きリストを作成してから、さまざまなポートにそのリストを適用します。方式リストは実行される認証のタイプと実行順序を定義します。このリストを特定のポートに適用してから、定義済み認証方式を実行する必要があります。唯一の例外はデフォルトの方式リスト(偶然に default と名前が付けられている)です。デフォルトの方式リストは、名前付き方式リストが明示的に定義されたポートを除いて、自動的にすべてのポートに適用されます。定義済みの方式リストは、デフォルトの方式リストに優先します。
方式リストは、ユーザ認証のためクエリ送信を行う手順と認証方式を記述したものです。認証に使用する1つまたは複数のセキュリティ プロトコルを指定できるので、最初の方式が失敗した場合のバックアップ システムが確保されます。ソフトウェアは、リスト内の最初の方式を使用してユーザを認証します。その方式で応答が得られなかった場合、ソフトウェアはそのリストから次の方式を選択します。このプロセスは、リスト内の認証方式による通信が成功するか、定義された方式をすべて試すまで続きます。この処理のある時点で認証が失敗した場合(つまり、セキュリティ サーバまたはローカルのユーザ名データベースがユーザ アクセスを拒否すると応答した場合)、認証プロセスは停止し、それ以上認証方式が試行されることはありません。
ログイン認証を設定するには、イネーブルEXECモードで次の手順を実行します。
|
|
|
ステップ 1 |
configure terminal |
グローバル コンフィギュレーション モードを開始します。 |
ステップ 2 |
aaa new-model |
AAAをイネーブルにします。 |
ステップ 3 |
aaa authentication login { default | list-name } method1 [ method2... ] |
ログイン認証方式リストを作成します。 • login authentication コマンドに名前付きリストが 指定されていない 場合に使用されるデフォルトのリストを作成するには、 default キーワードの後ろにデフォルト状況で使用する方式を指定します。デフォルトの方式リストは、自動的にすべてのポートに適用されます。 • list-name には、作成するリストの名前として使用する文字列を指定します。 • method1... には、認証アルゴリズムが試行する実際の方式を指定します。追加の認証方式は、その前の方式でエラーが返された場合に限り使用されます。前の方式が失敗した場合は使用されません。 |
|
|
次のいずれかの方式を選択します。 • enable ― イネーブル パスワードを認証に使用します。この認証方式を使用するには、 enable password グローバル コンフィギュレーション コマンドを使用して、イネーブル パスワードをあらかじめ定義しておく必要があります。 • group tacacs+ ― TACACS+認証を使用します。この認証方式を使用するには、TACACS+サーバをあらかじめ設定しておく必要があります。詳細については、「TACACS+サーバ ホストの特定と認証鍵の設定」を参照してください。 • line ― 回線パスワードを認証に使用します。この認証方式を使用するには、回線パスワードをあらかじめ設定しておく必要があります。 password password ライン コンフィギュレーション コマンドを使用します。 • local ― ローカル ユーザ名データベースを認証に使用します。データベースにユーザ名情報を入力しておく必要があります。 username password グローバル コンフィギュレーション コマンドを使用します。 • local-case ― 大文字/小文字を区別するローカル ユーザ名データベースを認証に使用します。 username name password グローバル コンフィギュレーション コマンドを使用して、データベースにユーザ名情報を入力する必要があります。 • none ― ログインに認証を使用しません。 |
ステップ 4 |
line [ console | tty | vty ] line-number [ ending-line-number ] |
ライン コンフィギュレーション モードを開始し、認証リストの適用対象とする回線を設定します。 |
ステップ 5 |
login authentication { default | list-name } |
回線または回線セットに対して、認証リストを適用します。 • default を指定する場合は、 aaa authentication login コマンドで作成したデフォルトのリストを使用します。 • list-name には、 aaa authentication login コマンドで作成したリストを指定します。 |
ステップ 6 |
end |
イネーブルEXECモードに戻ります。 |
ステップ 7 |
show running-config |
設定を確認します。 |
ステップ 8 |
copy running-config startup-config |
(任意)コンフィギュレーション ファイルに設定を保存します。 |
AAAをディセーブルにするには、 no aaa new-model グローバル コンフィギュレーション コマンドを使用します。AAA認証をディセーブルにするには、 no aaa authentication login {default | list-name } method1 [ method2... ]グローバル コンフィギュレーション コマンドを使用します。ログインのTACACS+認証をディセーブルにするかデフォルト値に戻す場合は、 no login authentication { default | list-name }ライン コンフィギュレーション コマンドを使用します。
イネーブルEXECアクセスおよびネットワーク サービス用のTACACS+許可の設定
AAA許可は、ユーザが利用できるサービスを制限します。AAA許可がイネーブルに設定されていると、スイッチはユーザのプロファイルから取得した情報を使用します。このプロファイルは、ローカルのユーザ データベースまたはセキュリティ サーバ上にあり、ユーザのセッションを設定します。ユーザは、ユーザ プロファイル内の情報で認められている場合に限り、要求したサービスのアクセスが認可されます。
aaa authorization グローバル コンフィギュレーション コマンドに tacacs+ キーワードを付けて使用すると、イネーブルEXECモードへのユーザのネットワーク アクセスを制限するパラメータを設定できます。
aaa authorization exec tacacs+ localコマンドは、次の許可パラメータを設定します。
• TACACS+を使用して認証を行った場合は、イネーブルEXECアクセス許可にTACACS+を使用します。
• 認証にTACACS+を使用しなかった場合は、ローカル データベースを使用します。
(注) 許可が設定されていても、CLIを使用してログインし、認証されたユーザに対して、許可は省略されます。
イネーブルEXECアクセスおよびネットワーク サービスに関するTACACS+許可を指定するには、イネーブルEXECモードで次の手順を実行します。
|
|
|
ステップ 1 |
configure terminal |
グローバル コンフィギュレーション モードを開始します。 |
ステップ 2 |
aaa authorization network tacacs+ |
ネットワーク関連のすべてのサービス要求に対するユーザTACACS+許可をスイッチに設定します。 |
ステップ 3 |
aaa authorization exec tacacs+ |
イネーブルEXECアクセスの有無を、ユーザTACACS+許可によって判別するようにスイッチを設定します。 exec キーワードを指定すると、ユーザ プロファイル情報( autocommand 情報など)が返されることがあります。 |
ステップ 4 |
end |
イネーブルEXECモードに戻ります。 |
ステップ 5 |
show running-config |
設定を確認します。 |
ステップ 6 |
copy running-config startup-config |
(任意)コンフィギュレーション ファイルに設定を保存します。 |
許可をディセーブルにするには、 no aaa authorization { network | exec } method1 グローバル コンフィギュレーション コマンドを使用します。
TACACS+アカウンティングの開始
AAAアカウンティング機能は、ユーザがアクセスするサービスと、ユーザが消費するネットワーク リソースを追跡します。AAAアカウンティングがイネーブルに設定されていると、スイッチは、アカウンティング レコードの形式でユーザの活動状況をTACACS+セキュリティ サーバに報告します。各アカウンティング レコードには、アカウンティングの属性/値(AV)のペアが含まれ、セキュリティ サーバ上に保存されます。このデータを分析し、ネットワーク管理、クライアントへの課金、または監査に利用できます。
各Cisco IOS権限レベルおよびネットワーク サービスに関するTACACS+アカウンティングをイネーブルにするには、イネーブルEXECモードで次の手順を実行します。
|
|
|
ステップ 1 |
configure terminal |
グローバル コンフィギュレーション モードを開始します。 |
ステップ 2 |
aaa accounting network start-stop tacacs+ |
ネットワーク関連のすべてのサービス要求に対するTACACS+アカウンティングをイネーブルにします。 |
ステップ 3 |
aaa accounting exec start-stop tacacs+ |
TACACS+アカウンティングにより、イネーブルEXECプロセスの開始時に記録開始アカウンティング通知、終了時に記録停止通知を送信するように設定します。 |
ステップ 4 |
end |
イネーブルEXECモードに戻ります。 |
ステップ 5 |
show running-config |
設定を確認します。 |
ステップ 6 |
copy running-config startup-config |
(任意)コンフィギュレーション ファイルに設定を保存します。 |
アカウンティングをディセーブルにするには、 no aaa accounting { network | exec } { start-stop } method1... グローバル コンフィギュレーション コマンドを使用します。
TACACS+設定の表示
TACACS+サーバ統計情報を表示するには、 show tacacs イネーブルEXECコマンドを使用します。
RADIUSによるスイッチ アクセスの制御
ここでは、Remote Authentication Dial-In User Service(RADIUS)をイネーブルにして設定する方法について説明します。RADIUSは、詳細なアカウンティング情報を収集し、認証および許可プロセスに対して柔軟な管理を行います。RADIUSはAAAを介して機能します。RADIUSをイネーブルにするにはAAAコマンドを使用しなければなりません。
(注) この章で説明するコマンドの構文および使用方法の詳細については、『Cisco IOS Security Command Reference』Release 12.1を参照してください。
ここでは、次の設定情報について説明します。
• 「RADIUSの概要」
• 「RADIUSの動作」
• 「RADIUSの設定」
• 「RADIUS設定の表示」
RADIUSの概要
RADIUSは分散型クライアント/サーバ システムで、不正なアクセスからネットワークを保護します。RADIUSクライアントは、サポートされているシスコ製ルータおよびスイッチ上で稼働し、中央RADUISサーバに認証要求を送信します。中央RADUISサーバには、すべてのユーザの認証およびネットワーク サービス アクセス情報が格納されています。RADUISホストは、通常、シスコ(Cisco Secure Access Control Serverバージョン3.0)、Livingston、Merit、Microsoftなどのソフトウェア製造元のRADIUSサーバ ソフトウェアが稼働するマルチユーザ システムです。詳細については、RADIUSサーバのマニュアルを参照してください。
(注) スイッチ スタックとRADIUSサーバとの間では冗長接続を確立することを推奨します。これは、接続されているスタック メンバーがスイッチ スタックから削除された場合でも、RADIUSサーバがアクセス可能なまま維持されるように保証する上で役立ちます。
RADIUSは、アクセスのセキュリティが必要な、次のネットワーク環境で使用します。
• それぞれがRADIUSをサポートする、マルチベンダー アクセス サーバによるネットワーク。たとえば、複数のベンダーのアクセス サーバが、1つのRADIUSサーバベース セキュリティ データベースを使用します。複数のベンダーのアクセス サーバからなるIPベースのネットワークでは、ダイヤルイン ユーザはRADUISサーバを通じて認証されます。RADUISサーバは、Kerberosセキュリティ システムで動作するようにカスタマイズされています。
• アプリケーションがRADIUSプロトコルをサポートするターンキー ネットワーク セキュリティ環境。たとえば、 スマート カード アクセス制御システムを使用するアクセス環境。あるケースでは、RADIUSをEnigmaのセキュリティ カードと併用してユーザを確認し、ネットワーク リソースのアクセスを許可します。
• すでにRADIUSを使用中のネットワーク。RADIUSクライアントを含むシスコ スイッチをネットワークに追加できます。これがTACACS+サーバへの移行の最初のステップとなることもあります(RADIUSからTACACS+サービスへの移行を参照)。
• ユーザが1つのサービスにしかアクセスできないネットワーク。RADIUSを使用すると、ユーザのアクセスを1つのホスト、Telnetなどの1つのユーティリティ、またはIEEE 802.1xなどのプロトコルを使用するネットワークに制御できます。このプロトコルの詳細については、 第10章「802.1xポートベースの認証の設定」 を参照してください。
• リソース アカウンティングが必要なネットワーク。RADUIS認証または許可とは別にRADIUSアカウンティングを使用できます。RADIUSアカウンティング機能によって、サービスの開始および終了時点でデータを送信し、このセッション中に使用されるリソース(時間、パケット、バイトなど)の量を表示できます。インターネット サービス プロバイダーは、RADIUSアクセス制御およびアカウンティング ソフトウェアのフリーウェア バージョンを使用して、特殊なセキュリティおよび請求のニーズを満たすこともできます。
RADIUSは、ネットワーク セキュリティが次のような状況には適していません。
• マルチプロトコル アクセス環境。RADIUSは、AppleTalk Remote Access(ARA)、NetBIOS Frame Control Protocol(NBFCP; NetBIOS フレーム制御プロトコル)、NetWare Asynchronous Services Interface(NASI;NetWare非同期サポート インターフェイス)、またはX.25 PAD接続をサポートしません。
• スイッチ間またはルータ間。RADIUSは、双方向認証を行いません。RADIUSは、他社製のデバイスが認証を必要とする場合に、あるデバイスから他社製デバイスへの認証には使用できます。
• 各種のサービスを使用するネットワーク。RADIUSは、一般に1人のユーザを1つのサービス モデルにバインドします。
図 9-2 RADIUSからTACACS+サービスへの移行
RADIUSの動作
RADIUSサーバによってアクセス制御されているスイッチに、ユーザがログインして認証を試みると、次のイベントが発生します。
1. ユーザ名とパスワードの入力を求めるプロンプトが表示されます。
2. ユーザ名と暗号化されたパスワードが、ネットワークを介してRADIUSサーバに送信されます。
3. ユーザは、RADIUSサーバから次のいずれかの応答を受信します。
a. ACCEPT ― ユーザは認証されます。
b. REJECT ― ユーザは認証されず、ユーザ名とパスワードの再入力を求めるプロンプトが表示されるか、アクセスが拒否されます。
c. CHALLENGE ― ユーザからの追加データが要求されます。
d. CHALLENGE PASSWORD ― ユーザは新しいパスワードを選択するよう要求されます。
ACCEPTまたはREJECT応答には、イネーブルEXECまたはネットワーク許可に使用される追加データがバンドルされています。RADIUS許可がイネーブルになっている場合、ユーザはまず、RADIUS認証に成功しなければRADIUS許可に進めません。ACCEPTまたはREJECTパケットの追加データには、次の項目が含まれています。
• Telnet、SSH、rlogin、またはイネーブルEXECサービス
• 接続パラメータ(ホストまたはクライアントのIPアドレス、アクセス リスト、ユーザ タイムアウトなど)
RADIUSのデフォルト設定
RADIUSとAAAは、デフォルトでディセーブルに設定されています。
セキュリティの失効を防止するため、ネットワーク管理アプリケーション使用してRADIUSを設定することはできません。RADIUSをイネーブルに設定すると、CLIを使用して、スイッチにアクセスするユーザを認証します。
RADIUSサーバ ホストの特定
スイッチとRADIUSサーバ間の通信には、次の要素が関係します。
• ホスト名またはIPアドレス
• 認証宛先ポート
• アカウンティング宛先ポート
• キー ストリング
• タイムアウト時間
• 再送信回数
RADIUSセキュリティ サーバは、ホスト名またはIPアドレス、ホスト名と各UDPポート番号、あるいはIPアドレスと各UDPポート番号で識別されます。IPアドレスとUDPポート番号の組み合わせによって一意の識別子が作成され、特定のAAAサービスを提供するRADIUSホストとしてさまざまなポートを個別に定義できます。この一意の識別子によって、サーバ上の複数のUDPポートに同じIPアドレスでRADIUS要求を送信できるようになります。
同一のRADIUSサーバ上の2つの異なるホスト エントリが同じサービス(たとえば、アカウンティング)を設定している場合、設定された2番めのホスト エントリは、最初のエントリの代替バックアップとして機能します。この例では、最初のホスト エントリがアカウンティング サービスを提供できない場合は、スイッチは、同じデバイス上に設定された2番めのホスト エントリでアカウンティング サービスを試行します(RADIUSのホスト エントリは、設定された順序で試行されます)。
RADIUSサーバおよびスイッチは、共有シークレット テキスト ストリングを使用してパスワードを暗号化し、応答を交換します。AAAセキュリティ コマンドを使用するようにRADIUSを設定するには、RADIUSサーバ デーモンが稼働するホストと、そのスイッチを共用するシークレット テキスト(キー)ストリングを指定する必要があります。
タイムアウト、再送信回数、および暗号化鍵の値は、すべてのRADIUSサーバに対してグローバルにサーバ単位で設定することも、グローバルな設定とサーバ単位の設定を組み合わせることもできます。この設定を、スイッチと通信するすべてのRADIUSサーバに対してグローバルに適用するには、3つの特別なグローバル コンフィギュレーション コマンド、 radius-server timeout 、 radius-server retransmit 、および radius-server key を使用します。特定のRADIUSサーバにこれらの値を適用するには、 radius-server host グローバル コンフィギュレーション コマンドを使用します。
(注) スイッチにグローバルおよびサーバ単位の両方で機能(タイムアウト、再送信回数、およびキー コマンド)を設定すると、サーバ単位のタイマー、再送信回数、およびキー コマンドは、グローバルのタイマー、再送信、およびキー コマンドを上書きします。すべてのRADIUSサーバに対してこれらの値を設定するには、「すべてのRADIUSサーバに対する設定」を参照してください。
認証用に既存のサーバ ホストをグループ化するために、AAAサーバ グループを使用するようスイッチを設定できます。詳細については、「AAAサーバ グループの定義」を参照してください。
サーバ単位でのRADIUSサーバ通信を設定するには、イネーブルEXECモードで次の手順を実行します。この手順は必須です。
|
|
|
ステップ 1 |
configure terminal |
グローバル コンフィギュレーション モードを開始します。 |
ステップ 2 |
radius-server host { hostname | ip-address } [ auth-port port-number ] [ acct-port port-number ] [ timeout seconds ] [ retransmit retries ] [ key string ] |
リモートRADIUSサーバ ホストのIPアドレスまたはホスト名を指定します。 • (任意) auth-port port-number には、認証要求のUDP宛先ポートを指定します。 • (任意) acct-port port-number には、アカウンティング要求のUDP宛先ポートを指定します。 • (任意) timeout seconds には、RADIUSサーバが応答するのを待ってスイッチが再送信するまでのインターバルを指定します。指定できる範囲は1~1000です。この設定は、 radius-server timeout グローバル コンフィギュレーション コマンドの設定を上書きします。 radius-server host コマンドでタイムアウトを設定しない場合は、 radius-server timeout コマンドの設定が使用されます。 • (任意) retransmit retries には、サーバが応答しないか、応答が遅い場合に、RADIUS要求をそのサーバに再送信する回数を指定します。指定できる範囲は1~1000です。 radius-server host コマンドで再送信の値を設定しない場合は、 radius-server retransmit グローバル コンフィギュレーション コマンドの設定が使用されます。 • (任意) key string には、スイッチとRADIUSサーバ上で稼働するRADIUSデーモンとの間で使用する認証および暗号化鍵を指定します。
(注) 鍵は、RADIUSサーバ上で使用する暗号化鍵と照合する必要のあるテキスト ストリングです。鍵は、必ず radius-server host コマンドの最後の項目として設定します。先行スペースは無視されますが、鍵の途中および末尾のスペースは使用されます。鍵にスペースを使用する場合は、鍵の一部として引用符を使用する場合を除いて、鍵を引用符で囲まないでください。
1つのIPアドレスに対応する複数のホスト エントリをスイッチが認識するように設定するには、必要な回数だけこのコマンドを入力し、それぞれのUDPポート番号が必ず異なるようにしてください。スイッチ ソフトウェアは、指定された順序でホストを検索します。特定のRADIUSホストで使用するタイムアウト、再送信回数、および暗号化鍵の値を設定します。 |
ステップ 3 |
end |
イネーブルEXECモードに戻ります。 |
ステップ 4 |
show running-config |
設定を確認します。 |
ステップ 5 |
copy running-config startup-config |
(任意)コンフィギュレーション ファイルに設定を保存します。 |
特定のRADIUSサーバを削除するには、 no radius-server host hostname | ip-address グローバル コンフィギュレーション コマンドを使用します。
次に、あるRADIUSサーバを認証用に、別のRADIUSサーバをアカウンティング用に設定する例を示します。
Switch(config)# radius-server host 172.29.36.49 auth-port 1612 key rad1
Switch(config)# radius-server host 172.20.36.50 acct-port 1618 key rad2
次の例は、RADIUSサーバとして host1 を設定し、認証およびアカウンティングの両方にデフォルト ポートを使用する方法を示します。
Switch(config)# radius-server host host1
(注) さらに、RADIUSサーバでいくつかの設定を行う必要があります。この設定とは、スイッチのIPアドレス、およびサーバとスイッチで共用するキー ストリングです。詳細については、RADIUSサーバのマニュアルを参照してください。
RADIUSログイン認証の設定
AAA認証を設定するには、認証方式の名前付きリストを作成してから、さまざまなポートにそのリストを適用します。方式リストは実行される認証のタイプと実行順序を定義します。このリストを特定のポートに適用してから、定義済み認証方式を実行する必要があります。唯一の例外はデフォルトの方式リスト(偶然に default と名前が付けられている)です。デフォルトの方式リストは、名前付き方式リストが明示的に定義されたポートを除いて、自動的にすべてのポートに適用されます。
方式リストは、ユーザ認証のためクエリ送信を行う手順と認証方式を記述したものです。認証に使用する1つまたは複数のセキュリティ プロトコルを指定できるので、最初の方式が失敗した場合のバックアップ システムが確保されます。ソフトウェアは、リスト内の最初の方式を使用してユーザを認証します。その方式で応答が得られなかった場合、ソフトウェアはそのリストから次の方式を選択します。このプロセスは、リスト内の認証方式による通信が成功するか、定義された方式をすべて試すまで続きます。この処理のある時点で認証が失敗した場合(つまり、セキュリティ サーバまたはローカルのユーザ名データベースがユーザ アクセスを拒否すると応答した場合)、認証プロセスは停止し、それ以上認証方式が試行されることはありません。
ログイン認証を設定するには、イネーブルEXECモードで次の手順を実行します。この手順は必須です。
|
|
|
ステップ 1 |
configure terminal |
グローバル コンフィギュレーション モードを開始します。 |
ステップ 2 |
aaa new-model |
AAAをイネーブルにします。 |
ステップ 3 |
aaa authentication login { default | list-name } method1 [ method2... ] |
ログイン認証方式リストを作成します。 • login authentication コマンドに名前付きリストが 指定されていない 場合に使用されるデフォルトのリストを作成するには、 default キーワードの後ろにデフォルト状況で使用する方式を指定します。デフォルトの方式リストは、自動的にすべてのポートに適用されます。 • list-name には、作成するリストの名前として使用する文字列を指定します。 • method1... には、認証アルゴリズムが試行する実際の方式を指定します。追加の認証方式は、その前の方式でエラーが返された場合に限り使用されます。前の方式が失敗した場合は使用されません。 |
|
|
次のいずれかの方式を選択します。 – enable ― イネーブル パスワードを認証に使用します。この認証方式を使用するには、 enable password グローバル コンフィギュレーション コマンドを使用して、イネーブル パスワードをあらかじめ定義しておく必要があります。 – group radius ― RADIUS認証を使用します。この認証方式を使用するには、RADIUSサーバをあらかじめ設定しておく必要があります。詳細については、「RADIUSサーバ ホストの特定」を参照してください。 – line ― 回線パスワードを認証に使用します。この認証方式を使用するには、回線パスワードをあらかじめ設定しておく必要があります。 password password ライン コンフィギュレーション コマンドを使用します。 – local ― ローカル ユーザ名データベースを認証に使用します。データベースにユーザ名情報を入力しておく必要があります。 username name password グローバル コンフィギュレーション コマンドを使用します。 – local-case ― 大文字/小文字を区別するローカル ユーザ名データベースを認証に使用します。 username password グローバル コンフィギュレーション コマンドを使用して、データベースにユーザ名情報を入力する必要があります。 – none ― ログインに認証を使用しません。 |
ステップ 4 |
line [ console | tty | vty ] line-number [ ending-line-number ] |
ライン コンフィギュレーション モードを開始し、認証リストの適用対象とする回線を設定します。 |
ステップ 5 |
login authentication { default | list-name } |
回線または回線セットに対して、認証リストを適用します。 • default を指定する場合は、 aaa authentication login コマンドで作成したデフォルトのリストを使用します。 • list-name には、 aaa authentication login コマンドで作成したリストを指定します。 |
ステップ 6 |
end |
イネーブルEXECモードに戻ります。 |
ステップ 7 |
show running-config |
設定を確認します。 |
ステップ 8 |
copy running-config startup-config |
(任意)コンフィギュレーション ファイルに設定を保存します。 |
AAAをディセーブルにするには、 no aaa new-model グローバル コンフィギュレーション コマンドを使用します。AAA認証をディセーブルにするには、 no aaa authentication login {default | list-name } method1 [ method2... ]グローバル コンフィギュレーション コマンドを使用します。ログインのRADIUS認証をディセーブルにするかデフォルト値に戻す場合は、 no login authentication { default | list-name } ライン コンフィギュレーション コマンドを使用します。
AAAサーバ グループの定義
認証用に既存のサーバ ホストをグループ化するために、AAAサーバ グループを使用するようスイッチを設定できます。設定済みサーバ ホストのサブセットを選択し、特定のサービスに使用できます。サーバ グループには、グローバル サーバホスト リストを使用します。このリストは、選択したサーバ ホストのIPアドレスのリストです。
サーバ グループには、各エントリが一意の識別子(IPアドレスとUDPポート番号の組み合わせ)を持っていれば、同じサーバに対して複数のホスト エントリを組み込むことができます。また、特定のAAAサービスを提供するRADIUSホストとして、さまざまなポートを個別に定義できます。同一のRADIUSサーバ上の2つの異なるホスト エントリを同じサービス(たとえば、アカウンティング)を設定すると、設定された2番めのホスト エントリは、最初のエントリの代替バックアップとして機能します。
定義済みのグループ サーバに特定のサーバを対応付けるには、 server グループ サーバ コンフィギュレーション コマンドを使用します。IPアドレスでサーバを特定したり、任意の auth-port および acct-port キーワードを使用して複数のホスト インスタンスまたはエントリを識別することもできます。
AAAサーバ グループを定義して特定のRADIUSサーバに対応付けるには、イネーブルEXECモードで次の手順を実行します。
|
|
|
ステップ 1 |
configure terminal |
グローバル コンフィギュレーション モードを開始します。 |
ステップ 2 |
radius-server host { hostname | ip-address } [ auth-port port-number ] [ acct-port port-number ] [ timeout seconds ] [ retransmit retries ] [ key string ] |
リモートRADIUSサーバ ホストのIPアドレスまたはホスト名を指定します。 • (任意) auth-port port-number には、認証要求のUDP宛先ポートを指定します。 • (任意) acct-port port-number には、アカウンティング要求のUDP宛先ポートを指定します。 • (任意) timeout seconds には、RADIUSサーバが応答するのを待ってスイッチが再送信するまでのインターバルを指定します。指定できる範囲は1~1000です。この設定は、 radius-server timeout グローバル コンフィギュレーション コマンドの設定を上書きします。 radius-server host コマンドでタイムアウトを設定しない場合は、 radius-server timeout コマンドの設定が使用されます。 • (任意) retransmit retries には、サーバが応答しないか、応答が遅い場合に、RADIUS要求をそのサーバに再送信する回数を指定します。指定できる範囲は1~1000です。 radius-server host コマンドで再送信の値を設定しない場合は、 radius-server retransmit グローバル コンフィギュレーション コマンドの設定が使用されます。
(注) (任意)key stringには、スイッチとRADIUSサーバ上で稼働するRADIUSデーモンとの間で使用する認証および暗号化鍵を指定します。鍵は、RADIUSサーバ上で使用する暗号化鍵と照合する必要のあるテキスト ストリングです。鍵は、必ず radius-server host コマンドの最後の項目として設定します。先行スペースは無視されますが、鍵の途中および末尾のスペースは使用されます。鍵にスペースを使用する場合は、鍵の一部として引用符を使用する場合を除いて、鍵を引用符で囲まないでください。
1つのIPアドレスに対応する複数のホスト エントリをスイッチが認識するように設定するには、必要な回数だけこのコマンドを入力し、それぞれのUDPポート番号が必ず異なるようにしてください。スイッチ ソフトウェアは、指定された順序でホストを検索します。特定のRADIUSホストで使用するタイムアウト、再送信回数、および暗号化鍵の値を設定します。 |
ステップ 3 |
aaa new-model |
AAAをイネーブルにします。 |
ステップ 4 |
aaa group server radius group-name |
グループ名でAAAサーバ グループを定義します。 このコマンドによって、スイッチはサーバ グループ コンフィギュレーション モードになります。 |
ステップ 5 |
server ip-address |
特定のRADIUSサーバを定義済みサーバ グループに対応付けます。AAAサーバ グループのRADIUSサーバごとに、このステップを繰り返します。 グループの各サーバは、ステップ2で定義済みのものでなければなりません。 |
ステップ 6 |
end |
イネーブルEXECモードに戻ります。 |
ステップ 7 |
show running-config |
設定を確認します。 |
ステップ 8 |
copy running-config startup-config |
(任意)コンフィギュレーション ファイルに設定を保存します。 |
ステップ 9 |
|
RADIUSログイン認証をイネーブルにします。「RADIUSログイン認証の設定」を参照してください。 |
特定のRADIUSサーバを削除するには、 no radius-server host hostname | ip-address グローバル コンフィギュレーション コマンドを使用します。コンフィギュレーション リストからサーバ グループを削除するには、 no aaa group server radius group-name グローバル コンフィギュレーション コマンドを使用します。RADIUSサーバのIPアドレスを削除するには、 no server ip-address サーバ グループコンフィギュレーション コマンドを使用します。
次の例では、2つの異なるRADIUSグループ サーバ( group1 と group2 )を認識するようにスイッチを設定しています。group1では、同一のRADIUSサーバ上の2つの異なるホスト エントリに同じサービスを設定しています。2番めのホスト エントリは、最初のエントリの代替バックアップとして機能します。
Switch(config)# radius-server host 172.20.0.1 auth-port 1000 acct-port 1001
Switch(config)# radius-server host 172.10.0.1 auth-port 1645 acct-port 1646
Switch(config)# aaa new-model
Switch(config)# aaa group server radius group1
Switch(config-sg-radius)# server 172.20.0.1 auth-port 1000 acct-port 1001
Switch(config-sg-radius)# exit
Switch(config)# aaa group server radius group2
Switch(config-sg-radius)# server 172.20.0.1 auth-port 2000 acct-port 2001
Switch(config-sg-radius)# exit
ユーザ イネーブル アクセスおよびネットワーク サービス用のRADIUS許可の設定
AAA許可は、ユーザが利用できるサービスを制限します。AAA許可がイネーブルに設定されていると、スイッチはユーザのプロファイルから取得した情報を使用します。このプロファイルは、ローカルのユーザ データベースまたはセキュリティ サーバ上にあり、ユーザのセッションを設定します。ユーザは、ユーザ プロファイル内の情報で認められている場合に限り、要求したサービスのアクセスが認可されます。
aaa authorization グローバル コンフィギュレーション コマンドに radius キーワードを付けて使用すると、イネーブルEXECモードへのユーザのネットワーク アクセスを制限するパラメータを設定できます。
aaa authorization exec radius localコマンドは、次の許可パラメータを設定します。
• RADIUSを使用して認証を行った場合は、イネーブルEXECアクセス許可にRADIUSを使用します。
• 認証にRADIUSを使用しなかった場合は、ローカル データベースを使用します。
(注) 許可が設定されていても、CLIを使用してログインし、認証されたユーザに対して、許可は省略されます。
イネーブルEXECアクセスおよびネットワーク サービスに関するRADIUS許可を指定するには、イネーブルEXECモードで次の手順を実行します。
|
|
|
ステップ 1 |
configure terminal |
グローバル コンフィギュレーション モードを開始します。 |
ステップ 2 |
aaa authorization network radius |
ネットワーク関連のすべてのサービス要求に対するユーザRADIUS許可をスイッチに設定します。 |
ステップ 3 |
aaa authorization exec radius |
イネーブルEXECアクセスの有無を、ユーザRADIUS許可によって判別するようにスイッチを設定します。 exec キーワードを指定すると、ユーザ プロファイル情報( autocommand 情報など)が返されることがあります。 |
ステップ 4 |
end |
イネーブルEXECモードに戻ります。 |
ステップ 5 |
show running-config |
設定を確認します。 |
ステップ 6 |
copy running-config startup-config |
(任意)コンフィギュレーション ファイルに設定を保存します。 |
許可をディセーブルにするには、 no aaa authorization { network | exec } method1 グローバル コンフィギュレーション コマンドを使用します。
RADIUSアカウンティングの開始
AAAアカウンティング機能は、ユーザがアクセスするサービスと、ユーザが消費するネットワーク リソースを追跡します。AAAアカウンティングがイネーブルに設定されていると、スイッチは、アカウンティング レコードの形式でユーザの活動状況をRADIUSセキュリティ サーバに報告します。各アカウンティング レコードには、アカウンティングの属性/値(AV)のペアが含まれ、セキュリティ サーバ上に保存されます。このデータを分析し、ネットワーク管理、クライアントへの課金、または監査に利用できます。
各Cisco IOS権限レベルおよびネットワーク サービスに関するRADIUSアカウンティングをイネーブルにするには、イネーブルEXECモードで次の手順を実行します。
|
|
|
ステップ 1 |
configure terminal |
グローバル コンフィギュレーション モードを開始します。 |
ステップ 2 |
aaa accounting network start-stop radius |
ネットワーク関連のすべてのサービス要求に関するRADIUSアカウンティングをイネーブルにします。 |
ステップ 3 |
aaa accounting exec start-stop radius |
RADIUSアカウンティングにより、イネーブルEXECプロセスの開始時に記録開始アカウンティング通知、イネーブルEXECプロセスの終了時に記録停止通知を送信するように設定します。 |
ステップ 4 |
end |
イネーブルEXECモードに戻ります。 |
ステップ 5 |
show running-config |
設定を確認します。 |
ステップ 6 |
copy running-config startup-config |
(任意)コンフィギュレーション ファイルに設定を保存します。 |
アカウンティングをディセーブルにするには、 no aaa accounting { network | exec } { start-stop } method1... グローバル コンフィギュレーション コマンドを使用します。
すべてのRADIUSサーバに対する設定
スイッチとすべてのRADIUSサーバ間のグローバル通信コンフィギュレーションを設定するには、イネーブルEXECモードで次の手順を実行します。
|
|
|
ステップ 1 |
configure terminal |
グローバル コンフィギュレーション モードを開始します。 |
ステップ 2 |
radius-server key string |
スイッチとすべてのRADIUSサーバとの間で使用する、共有シークレット テキスト ストリングを指定します。
(注) 鍵は、RADIUSサーバ上で使用する暗号化鍵と照合する必要のあるテキスト ストリングです。先行スペースは無視されますが、鍵の途中および末尾のスペースは使用されます。鍵にスペースを使用する場合は、鍵の一部として引用符を使用する場合を除いて、鍵を引用符で囲まないでください。
|
ステップ 3 |
radius-server retransmit retries |
スイッチが、サーバに各RADIUS要求を送信する回数を指定します。デフォルトは3で、指定できる範囲は1~1000です。 |
ステップ 4 |
radius-server timeout seconds |
スイッチが、RADIUS要求に対する応答を待って要求を再送信するまでの秒数を指定します。デフォルトは5秒で、指定できる範囲は1~1000です。 |
ステップ 5 |
radius-server deadtime minutes |
認証要求に応答しないRADIUSサーバをスキップする時間を指定します。これにより、要求がタイムアウトするまで待たずに、次の設定サーバを試行することができます。デフォルトは0で、指定できる範囲は1~1440分です。 |
ステップ 6 |
end |
イネーブルEXECモードに戻ります。 |
ステップ 7 |
show running-config |
設定を確認します。 |
ステップ 8 |
copy running-config startup-config |
(任意)コンフィギュレーション ファイルに設定を保存します。 |
再送信、タイムアウト、デッドタイムの設定をデフォルトに戻すには、これらのコマンドの no 形式を使用します。
ベンダー固有のRADIUSアトリビュート用にスイッチを設定する方法
Internet Engineering Task Force(IETF)ドラフト規格では、ベンダー固有のアトリビュート(アトリビュート26)を使用して、スイッチとRADIUSサーバとの間のベンダー固有情報の通信方式を定めています。Vendor-Specific Attribute(VSA)を使用すると、ベンダーは、汎用に適さない独自の拡張アトリビュートをサポートできます。シスコの実装RADIUSでは、仕様で推奨されたフォーマットを使用して1つのベンダー固有オプションをサポートします。シスコのベンダーIDは9で、サポート対照のオプションにはベンダータイプ1が設定されており、 cisco-avpair と名前が付けられています。この値は次のフォーマットのストリングです。
protocol : attribute sep value *
protocol は、特定のタイプの許可に対応するシスコ プロトコル アトリビュートの値です。 attribute と value は、シスコTACACS+仕様で定義されている適正な属性/値(AV)のペアです。 sep は、必須アトリビュートの場合は「 = 」、オプションのアトリビュートの場合は「 * 」です。TACACS+許可で利用できるすべての機能は、RADIUSにも使用できます。
たとえば、次のAVペアは、IP許可時(PPPのIPCPアドレス割り当て時)に、シスコの 複数の名前付きIPアドレスプール 機能をアクティブにします。
cisco-avpair= ”ip:addr-pool=first“
次の例は、スイッチからログインしているユーザに、イネーブルEXECコマンドへの直接アクセスを可能にする方法を示します。
cisco-avpair= ”shell:priv-lvl=15“
次の例は、RADIUSサーバ データベース内の許可VLANを指定する方法を示しています。
cisco-avpair= ”tunnel-type(#64)=VLAN(13)”
cisco-avpair= ”tunnel-medium-type(#65)=802 media(6)”
cisco-avpair= ”tunnel-private-group-ID(#81)=vlanid”
次の例は、この接続中にASCII形式の入力ACLをインターフェイスに適用する方法を示しています。
cisco-avpair= “ip:inacl#1=deny ip 10.10.10.10 0.0.255.255 20.20.20.20 255.255.0.0”
cisco-avpair= “ip:inacl#2=deny ip 10.10.10.10 0.0.255.255 any”
cisco-avpair= “mac:inacl#3=deny any any decnet-iv”
次の例は、この接続中にASCII形式の出力ACLをインターフェイスに適用する方法を示しています。
cisco-avpair= “ip:outacl#2=deny ip 10.10.10.10 0.0.255.255 any”
その他のベンダーにも、独自に一意のベンダーID、オプション、および対応するVSAが割り当てられます。ベンダーIDとVSAの詳細については、RFC 2138『Remote Authentication Dial-In User Service (RADIUS)』を参照してください。
VSAを認識して使用するようにスイッチを設定するには、イネーブルEXECモードで次の手順を実行します。
|
|
|
ステップ 1 |
configure terminal |
グローバル コンフィギュレーション モードを開始します。 |
ステップ 2 |
radius-server vsa send [ accounting | authentication ] |
スイッチが、RADIUS IETFアトリビュート26に定義されているVSAを認識して使用できるようにします。 • (任意) accounting キーワードを使用して、認識されるベンダー固有のアトリビュートの集合をアカウンティング アトリビュートに限定します。 • (任意) authentication キーワードを使用して、認識されるベンダー固有のアトリビュートの集合を認証アトリビュートに限定します。 キーワードなしでこのコマンドを入力すると、アカウンティングおよび認証の両方のベンダー固有アトリビュートが使用されます。 |
ステップ 3 |
end |
イネーブルEXECモードに戻ります。 |
ステップ 4 |
show running-config |
設定を確認します。 |
ステップ 5 |
copy running-config startup-config |
(任意)コンフィギュレーション ファイルに設定を保存します。 |
RADIUSアトリビュートの完全リスト、またはベンダー固有のアトリビュート26の詳細については、『 Cisco IOS Security Configuration Guide 』Release 12.1の付録「RADIUS Attributes」を参照してください。
ベンダー固有のRADIUSサーバ通信用にスイッチを設定する方法
RADIUSに関するIETFドラフト規格では、スイッチとRADIUSサーバとの間のベンダー固有情報の通信方式を規定していますが、一部のベンダーは、固有の方法でRADIUSアトリビュートを機能拡張しています。Cisco IOSソフトウェアは、ベンダー固有仕様のRADIUSアトリビュートのサブセットをサポートします。
前述したように、RADIUS(ベンダー固有またはIETFのドラフト準拠)を設定するには、RADIUSサーバ デーモンが稼働しているホスト、およびスイッチと共有するシークレット テキスト ストリングを指定する必要があります。RADIUSホストおよびシークレット テキスト ストリングを指定するには、 radius-server グローバル コンフィギュレーション コマンドを使用します。
ベンダー固有のRADIUSサーバ ホスト、および共有シークレット テキスト ストリングを指定するには、イネーブルEXECモードで次の手順を実行します。
|
|
|
ステップ 1 |
configure terminal |
グローバル コンフィギュレーション モードを開始します。 |
ステップ 2 |
radius-server host {hostname | ip-address} non-standard |
リモートRADIUSサーバ ホストのIPアドレスまたはホスト名を指定し、ベンダー固有の実装RADIUSを使用していることを明確にします。 |
ステップ 3 |
radius-server key string |
スイッチとベンダー固有のRADIUSサーバとの間で使用する、共有シークレット テキスト ストリングを指定します。スイッチおよびRADIUSサーバは、このテキスト ストリングを使用してパスワードを暗号化し、応答を交換します。
(注) 鍵は、RADIUSサーバ上で使用する暗号化鍵と照合する必要のあるテキスト ストリングです。先行スペースは無視されますが、鍵の途中および末尾のスペースは使用されます。鍵にスペースを使用する場合は、鍵の一部として引用符を使用する場合を除いて、鍵を引用符で囲まないでください。
|
ステップ 4 |
end |
イネーブルEXECモードに戻ります。 |
ステップ 5 |
show running-config |
設定を確認します。 |
ステップ 6 |
copy running-config startup-config |
(任意)コンフィギュレーション ファイルに設定を保存します。 |
ベンダー固有のRADIUSホストを削除するには、 no radius-server host {hostname | ip-address} non-standard グローバル コンフィギュレーション コマンドを使用します。 鍵を削除するには、 no radius-server key グローバル コンフィギュレーション コマンドを使用します。
次に、ベンダー固有のRADIUSホストを指定して、スイッチとサーバの間で rad124 という秘密鍵を使用する例を示します。
Switch(config)# radius-server host 172.20.30.15 nonstandard
Switch(config)# radius-server key rad124
RADIUS設定の表示
RADIUS設定情報を表示するには、 show running-config イネーブルEXECコマンドを使用します。
Kerberosによるスイッチ アクセスの制御
ここでは、Kerberosセキュリティ システムをイネーブルにして設定する方法について説明します。Kerberosセキュリティ システムは、信頼できるサードパーティを使用してネットワーク リソースに対する要求を認証します。この機能を使用するには、スイッチ ソフトウェアの暗号化(暗号化をサポートする)バージョンをスイッチにインストールしている必要があります。この機能を使用し、Cisco.comから暗号化ソフトウェア ファイルをダウンロードするための許可を取得する必要があります。詳細については、現リリースのリリースノートを参照してください。
ここでは、次の内容について説明します。
• 「Kerberosの概要」
• 「Kerberosの動作」
• 「Kerberosの設定」
Kerberosの設定例については、『 Cisco IOS Security Configuration Guide 』Release 12.1の「Security Server Protocols」の章にある「Kerberos Configuration Examples」を参照してください。URLは次のとおりです。
http://www.cisco.com/univercd/cc/td/doc/product/software/ios121/121cgcr/secur_c/scprt2/
(注) ここで説明するコマンドの構文および使用方法の詳細については、『Cisco IOS Security Command Reference』Release 12.1の「Security Server Protocols」の章にある「Kerberos Commands」を参照してください。URLは次のとおりです。
http://www.cisco.com/univercd/cc/td/doc/product/software/ios121/121cgcr/secur_r/srprt2/srdkerb.htm
(注) Kerberos構成例および『Cisco IOS Security Command Reference』Release 12.1では、信頼のおけるサードパーティとしてCatalyst 3750スイッチを使用しています。このスイッチはKerberosに対応し、ネットワーク セキュリティ サーバとして設定可能で、Kerberosプロトコルを使用したユーザ認証ができます。
Kerberosの概要
Kerberosはマサチューセッツ工科大学(MIT)が開発した秘密鍵によるネットワーク認証プロトコルです。Data Encryption Standard(DES;データ暗号化規格)という暗号化アルゴリズムを暗号化と認証に使用し、ネットワーク リソースに対する要求を認証します。Kerberosは、信頼できるサードパーティという概念を使ってユーザとサービスに対してセキュリティの検証を実行します。この信頼できるサードパーティを Key Distribution Center (KDC;鍵発行局)と呼びます。
Kerberosは、ユーザが誰であるか、そのユーザが使用しているネットワーク サービスは何であるかを検証します。これを実行するために、KDC(つまり信頼できるKerberosサーバ)がユーザにチケットを発行します。これらのチケットには有効期限があり、ユーザ証明書のキャッシュに保存されます。Kerberosサーバは、ユーザ名やパスワードの代わりにチケットを使ってユーザとネットワーク サービスを認証します。
(注) Kerberosサーバには、ネットワーク セキュリティ サーバとして設定可能で、Kerberosプロトコルを用いてユーザを認証できるCatalyst 3750スイッチを使用できます。
Kerberosの証明書発行スキームでは、 single logon という手順を使用します。この手順では、ユーザを1回認証すると、ユーザ証明書が有効な間は(他のパスワードの暗号化を行わずに)セキュア認証が可能になります。
このソフトウェア リリースはKerberos 5に対応しています。Kerberos 5では、すでにKerberos 5を使用している組織が、(UNIXサーバやPCなどの)他のネットワーク ホストが使用しているKDC上のKerberos認証データベースを使用できます。
このソフトウェア リリースでは、Kerberosは次のネットワーク サービスをサポートしています。
• Telnet
• rlogin
• rsh(リモート シェル プロトコル)
表 9-2 に、一般的なKerberos関連用語とその定義を示します。
表 9-2 Kerberosの用語
|
|
認証 |
ユーザやサービスが他のサービスに対して自分自身の身元を証明する手順。たとえば、クライアントはスイッチに対して認証を得て、スイッチは他のスイッチに対して認証を得ます。 |
許可 |
ネットワークやスイッチにおいてユーザがどのような権限を有していて、またどのような動作を実行できるかを、スイッチが識別する手段。 |
証明書 |
認証チケット(TGTやサービス証明書など)を表す総称。Kerberos証明書で、ユーザまたはサービスのIDを検証します。ネットワーク サービスがチケットを発行したKerberosサーバを信頼することにした場合、ユーザ名やパスワードを再入力する代わりにこれを使用できます。証明書の有効期限は、8時間がデフォルトの設定です。 |
インスタンス |
Kerberosプリンシパルの認証レベル ラベル。ほとんどのKerberosプリンシパルは、「 user@REALM 」という形式です(たとえば、smith@EXAMPLE.COM)。KerberosインスタンスのあるKerberosプリンシパルは、「 user/instance@REALM 」という形式です(たとえば、smith/admin@EXAMPLE.COM)。Kerberosインスタンスは、認証が成功した場合のユーザの許可レベルを指定するのに使用できます。各ネットワーク サービスのサーバは、Kerberosインスタンスの許可マッピングを適用し実行できますが、必須ではありません。
(注) Kerberosプリンシパルとインスタンスの名前はすべての小文字でなければなりません。
(注) Kerberosレルム名はすべて大文字でなければなりません。
|
KDCKDC |
ネットワーク ホストで稼働するKerberosサーバおよびデータベース プログラムで構成される鍵発行局。 |
Kerberos対応 |
Kerberos証明書のインフラストラクチャをサポートするために変更されたアプリケーションやサービスのことを指す用語。 |
Kerberosレルム |
Kerberosサーバに登録されたユーザ、ホスト、およびネットワーク サービスで構成されるドメイン。Kerberosサーバを信頼して、ユーザまたはネットワークサービスに対する別のユーザまたはネットワーク サービスのIDを検証します。
(注) Kerberosレルム名はすべて大文字でなければなりません。
|
Kerberosサーバ |
ネットワーク ホストで稼働しているデーモン。ユーザおよびネットワーク サービスはそれぞれKerberosサーバにIDを登録します。ネットワーク サービスはKerberosサーバにクリエを送信して、他のネットワーク サービスの認証を得ます。 |
KEYTAB |
ネットワーク サービスがKDCと共有するパスワード。Kerberos 5以降のバージョンでは、ネットワーク サービスはKEYTABを使って暗号化されたサービス証明書を暗号解除して認証します。Kerberos 5以前のバージョンでは、KEYTABはSRVTABと呼びます。 |
プリンシパル |
Kerberos IDとも呼ばれ、Kerberosサーバに基づき、ユーザが誰であるか、サービスが何であるかを表します。
(注) Kerberosプリンシパル名はすべて小文字でなければなりません。
|
サービス証明書 |
ネットワーク サービスの証明書。KDCから証明書が発行されると、ネットワーク サービスとKDCが共有するパスワードで暗号化されます。ユーザTGTともパスワードを共有します。 |
SRVTAB |
ネットワーク サービスがKDCと共有するパスワード。Kerberos 5以降のバージョンでは、SRVTABはKEYTABと呼びます。 |
TGT |
身分証明書のことで、KDCが認証済みユーザに発行する証明書。TGTを受け取ったユーザは、KDCが表したKerberosレルム内のネットワーク サービスに対して認証を得ることができます。 |
Kerberosの動作
Kerberosサーバには、ネットワーク セキュリティ サーバとして設定可能で、Kerberosプロトコルを用いてリモート ユーザを認証できるCatalyst 3750スイッチを使用できます。Kerberosをカスタマイズする方法はいくつかありますが、ネットワーク サービスにアクセスしようとするリモート ユーザは、3つのセキュリティ レイヤを通過しないとネットワーク サービスにアクセスできません。
KerberosサーバとしてのCatalyst 3750スイッチを使用してネットワーク サービスに対して認証を得る手順は、次のとおりです。
1. 「境界スイッチに対する認証の取得」
2. 「KDCからのTGTの取得」
3. 「ネットワークに対する認証の取得」
境界スイッチに対する認証の取得
ここでは、リモート ユーザが通過しなければならない最初のセキュリティ レイヤについて説明します。ユーザは、まず境界スイッチに対して認証を得なければなりません。その後、このプロセスは次のように進みます。
1. ユーザが、境界ルータへのKerberos非対応Telnet接続を確立します。
2. ユーザ名とパスワードの入力を求めるプロンプトをスイッチが表示します。
3. スイッチが、このユーザのTGTをKDCに要求します。
4. KDCがユーザIDを含む暗号化されたTGTをスイッチに送信します。
5. スイッチは、ユーザが入力したパスワードを使ってTGTの暗号解除を試行します。
• 暗号解除に成功したら、ユーザはスイッチに対して認証を得ます。
• 暗号解除に成功しなかった場合、ユーザは、ユーザ名とパスワードを再入力するか(Caps LockまたはNum Lockのオン/オフに注意)、別のユーザ名とパスワードを入力してステップ2をやり直します。
境界スイッチに対してKerberos非対応Telnetセッションを確立し認証を得たリモート ユーザは、ファイアウォールの内側にいますが、ネットワーク サービスへのアクセス権を取得するために、さらにKDCに対して直接認証を得る必要があります。ユーザがKDCから認証を得なければならないのは、KDCが発行するTGTはスイッチに保存されていて、ユーザがスイッチにログオンしないと追加の認証に使えないからです。
Kerberosの設定
リモート ユーザがネットワーク サービスに対して認証を得られるように、Kerberosレルム内のホストとKDCを設定して、ユーザおよびネットワーク サービスと通信を行って互いに認証するようにしなければなりません。これを実行するために、互いを識別しなければなりません。KDC上のKerberosデータベースにホストのエントリを追加し、Kerberosレルム内のすべてのホストにKDCが生成したKEYTABファイルを追加します。また、KDCデータベースにユーザ用のエントリも作成します。
ホストおよびユーザのエントリを追加または作成する場合は、次のガイドラインに従ってください。
• Kerberosプリンシパル名はすべて小文字で なければなりません 。
• Kerberosインスタンス名はすべて小文字で なければなりません 。
• Kerberosレルム名はすべて大文字で なければなりません 。
(注) Kerberosサーバには、ネットワーク セキュリティ サーバとして設定可能で、Kerberosプロトコルを用いてユーザを認証できるCatalyst 3750スイッチを使用できます。
Kerberos認証済みサーバ クライアント システムを設定する手順は、次のとおりです。
• Kerberosコマンドを使用してKDCを設定します。
• Kerberosプロトコルを使用するようにスイッチを設定します。
設定については、『 Cisco IOS Security Configuration Guide 』Release 12.1の「Security Server Protocols」の章にある「Kerberos Configuration Task List」を参照してください。URLは次のとおりです。
http://www.cisco.com/univercd/cc/td/doc/product/software/ios121/121cgcr/secur_c/scprt2/ scdkerb.htm#xtocid154007
Secure Shellのためのスイッチの設定
ここでは、SSH機能を設定する方法について説明します。この機能を使用するには、スイッチに暗号化ソフトウェア イメージをインストールする必要があります。この機能を使用し、Cisco.comから暗号化ソフトウェア ファイルをダウンロードするための許可を取得する必要があります。詳細については、現リリースのリリースノートを参照してください。
ここでは、次の情報について説明します。
• 「SSHの概要」
• 「SSHの設定」
• 「SSHの設定およびステータスの表示」
SSHの設定例については、『 Cisco IOS Security Configuration Guide 』Release 12.2の「Configuring Secure Shell」の章にある「SSH Configuration Examples」を参照してください。URLは次のとおりです。
http://www.cisco.com/univercd/cc/td/doc/product/software/ios122/122cgcr/fsecur_c/fothersf/scfssh.htm
(注) この章で使用されるコマンドの構文および使用方法の詳細については、このリリースのコマンド リファレンス、およびCisco IOS Release 12.2のコマンド リファレンスを参照してください。URLは次のとおりです。
http://www.cisco.com/univercd/cc/td/doc/product/software/ios122/122cgcr/index.htm
SSHの概要
SSHは、デバイスへの安全なリモート接続を提供するプロトコルです。SSHは、デバイスの認証時に強力な暗号化を行うことで、リモート接続についてTelnet以上のセキュリティを実現します。このソフトウェア リリースは、SSHバージョン1(SSHv1)およびSSHバージョン2(SSHv2)をサポートします。
ここでは、次の内容について説明します。
• 「SSHサーバ、統合クライアント、およびサポート対象バージョン」
• 「制限事項」
(注) SMIまたはEMIの暗号化バージョンを稼働するスタック マスターに障害が生じたか、それが非暗号化バージョンのソフトウェアを稼働するスイッチと交換された場合には、スイッチ スタックへのSSH接続が失われることがあります。SMIまたはEMIの暗号化バージョンを稼働しているスイッチをスタック マスターにすることを推奨します。スタック マスターがSMIまたはEMIの非暗号化バージョンを稼働している場合は、暗号化機能は使用できません。
SSHサーバ、統合クライアント、およびサポート対象バージョン
SSH機能には、スイッチで稼働するアプリケーションである、SSHサーバおよびSSH統合クライアントがあります。SSHサーバが稼働するスイッチとの接続には、SSHクライアントを使用できます。SSHサーバは、このリリースでサポートされるSSHクライアントおよび他社製のSSHクライアントと連動します。またSSHクライアントも、このリリースでサポートされるSSHサーバおよび他社製のSSHサーバと連動します。
スイッチは、SSHv1サーバまたはSSHv2サーバをサポートします。
スイッチは、SSHv1クライアントをサポートします。
SSHは、Data Encryption Standard(DES;データ暗号化規格)暗号化アルゴリズム、トリプルDES(3DES)暗号化アルゴリズム、およびパスワードベースのユーザ認証をサポートします。
またSSHも、次のユーザ認証方式をサポートします。
• TACACS+(詳細については、TACACS+によるスイッチ アクセスの制御を参照)
• RADIUS(詳細については、RADIUSによるスイッチ アクセスの制御を参照)
• ローカル認証および許可(詳細については、スイッチのローカル認証および許可の設定を参照)
(注) このソフトウェア リリースでは、IP Security(IPSec)をサポートしていません。
制限事項
SSHには、次の制限事項が適用されます。
• スイッチは、Rivest, Shamir, and Adelman(RSA)認証をサポートします。
• SSHは、シェル実行アプリケーションだけをサポートします。
• SSHサーバおよびSSHクライアントは、DES(56ビット)および3DES(168ビット)のデータ暗号化ソフトウェアでのみサポートされます。
• スイッチは、Advanced Encryption Standard(AES)対称暗号化アルゴリズムをサポートしません。
設定時の注意事項
スイッチをSSHサーバまたはSSHクライアントとして設定するときは、次の注意事項に従ってください。
• SSHv1サーバにより生成されたRSA鍵ペアは、SSHv2サーバで使用できます。また、その逆も可能です。
• SSHサーバがスタック マスター上で稼働中に、スタック マスターに障害が生じた場合、新しいスタック マスターは以前のスタック マスターによって生成されたRSA鍵を使用します。
• crypto key generate rsa グローバル コンフィギュレーション コマンドを入力した後、CLIエラー メッセージが表示される場合、RSA鍵ペアは生成されていません。ホスト名およびドメインを再設定してから、 crypto key generate rsa コマンドを入力してください。詳細については、「スイッチでのSSH実行の設定」を参照してください。
• RSA鍵ペアを生成するときに、 「ホスト名が特定されていません」
というメッセージが表示される場合があります。表示される場合は、 hostname グローバル コンフィギュレーション コマンドを使用して、ホスト名を設定する必要があります。
• RSA鍵ペアを生成するときに、 「ホスト名が特定されていません」
というメッセージが表示される場合があります。表示される場合は、 ip domain-name グローバル コンフィギュレーション コマンドを使用して、IPドメイン名を設定する必要があります。
• ローカルのAAA方式を設定する場合は、コンソール上でAAAがディセーブルであることを確認してください。
スイッチでのSSH実行の設定
スイッチにSSHの実行を設定するには、次の手順を実行します。
1. Cisco.comから暗号化ソフトウェア イメージをダウンロードします。この手順は必須です。詳細については、このリリースのリリース ノートを参照してください。
2. スイッチに、ホスト名およびIPドメイン名を設定します。この手順は、スイッチをSSHサーバとして設定している場合にのみ実行します。
3. スイッチにRSA鍵ペアを生成します。これにより自動的にSSHがイネーブルになります。この手順は、スイッチをSSHサーバとして設定している場合にのみ実行します。
4. ローカルまたはリモート アクセスにユーザ認証を設定します。この手順は必須です。詳細については、「スイッチのローカル認証および許可の設定」を参照してください。
ホスト名およびIPドメイン名を設定して、RSA鍵ペアを生成するには、イネーブルEXECモードで次の手順を実行します。この手順は、スイッチをSSHサーバとして設定している場合に必要です。
|
|
|
ステップ 1 |
configure terminal |
グローバル コンフィギュレーション モードを開始します。 |
ステップ 2 |
hostname hostname |
スイッチにホスト名を設定します。 |
ステップ 3 |
ip domain-name domain_name |
スイッチにホスト ドメインを設定します。 |
ステップ 4 |
crypto key generate rsa |
スイッチのローカルおよびリモート認証に関して、SSHサーバをイネーブルにして、RSA鍵ペアを生成します。 モジュール サイズを1024ビット以上にすることを推奨します。 RSA鍵ペアを生成すると、モジュールの長さを入力するよう求められます。モジュールの長さが長い方がセキュリティは高くなりますが、生成および使用に時間がかかります。 |
ステップ 5 |
end |
イネーブルEXECモードに戻ります。 |
ステップ 6 |
show ip ssh または show ssh |
SSHサーバのバージョンおよび設定情報を表示します。 スイッチ上のSSHサーバのステータスを表示します。 |
ステップ 7 |
copy running-config startup-config |
(任意)コンフィギュレーション ファイルに設定を保存します。 |
RSA鍵ペアを削除するには、 crypto key zeroize rsa グローバル コンフィギュレーション コマンドを使用します。RSA鍵ペアを削除すると、SSHサーバは自動的にディセーブルになります。
SSHサーバの設定
SSHサーバを設定するには、イネーブルEXECモードで次の手順を実行します。
|
|
|
ステップ 1 |
configure terminal |
グローバル コンフィギュレーション モードを開始します。 |
ステップ 2 |
ip ssh version [ 1 | 2 ] |
(任意)スイッチにSSHバージョン1または2を実行するよう設定します。 • 1 ― スイッチにSSHバージョン1を実行するよう設定します。 • 2 ― スイッチにSSHバージョン2を実行するよう設定します。 このコマンドを入力しない場合、またはキーワードを指定しない場合は、SSHサーバによりSSHクライアントがサポートする最新のSSHバージョンが選択されます。たとえば、SSHクライアントがSSHv1およびSSHv2をサポートしている場合、SSHサーバはSSHv2を選択します。 |
ステップ 3 |
ip ssh { timeout seconds | authentication-retries number } |
SSH制御パラメータを設定します。 • タイムアウト値を秒単位で指定します。デフォルトでは120秒です。指定できる範囲は0~120秒です。このパラメータは、SSHネゴシエーション フェーズに適用されます。接続が確立されると、スイッチはデフォルトのCLIベース セッションのタイムアウト値を使用します。 デフォルトでは、複数のCLIベース セッションに関する暗号化SSH接続を最大5つまで同時にネットワーク上で使用できます(セッション4に対してセッション0)。シェル実行が開始されると、CLIベース セッションのタイムアウト値がデフォルトの10分に戻ります。 • クライアントがサーバに対して再認証できる回数を指定します。デフォルトは3で、指定できる範囲は0~5です。 両方のパラメータを設定する場合は、このステップを繰り返します。 |
ステップ 4 |
end |
イネーブルEXECモードに戻ります。 |
ステップ 5 |
show ip ssh または show ssh |
SSHサーバのバージョンおよび設定情報を表示します。 スイッチ上のSSHサーバ接続のステータスを表示します。 |
ステップ 6 |
copy running-config startup-config |
(任意)コンフィギュレーション ファイルに設定を保存します。 |
デフォルトのSSH制御パラメータに戻るには、 no ip ssh { timeout | authentication-retries }グローバル コンフィギュレーション コマンドを使用します。