特権 EXEC コマンドへのアクセスの保護
ネットワークで端末のアクセス コントロールを行う簡単な方法は、パスワードを使用して権限レベルを割り当てることです。パスワード保護によって、ネットワークまたはネットワーク デバイスへのアクセスが制限されます。権限レベルによって、ネットワーク デバイスにログイン後、ユーザがどのようなコマンドを使用できるかが定義されます。
(注) ここで使用するコマンドの構文および使用方法の詳細については、Cisco.com で、『Cisco IOS Security Command Reference, Release 12.4』を参照してください。
ここでは、次の設定について説明します。
• 「デフォルトのパスワードおよび権限レベル設定」
• 「スタティック イネーブル パスワード設定または変更」
• 「暗号化によるイネーブルおよびイネーブル シークレット パスワードの保護」
• 「パスワード回復のディセーブル化」
• 「端末回線に対する 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
暗号化によるイネーブルおよびイネーブル シークレット パスワードの保護
追加のセキュリティ レイヤを、特にネットワークを越えるパスワードや 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.text)および VLAN データベース ファイル(vlan.dat)は削除されます。
(注) パスワード回復をディセーブルにする場合は、エンド ユーザがブート プロセスに割り込んでシステムをデフォルトの状態に戻すような場合に備え、セキュア サーバにコンフィギュレーション ファイルのバックアップ コピーを保存しておくことを推奨します。スイッチ上でコンフィギュレーション ファイルのバックアップ コピーを保存しないでください。VTP(VLAN トランキング プロトコル)トランスペアレント モードでスイッチが動作している場合は、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 ソフトウェアはデフォルトで、2 種類のパスワード セキュリティ モードを使用します。ユーザ EXEC および特権 EXEC です。各モードに、最大 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 privilege コマンドは、権限レベルの設定を表示します。 |
ステップ 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 privilege コマンドは、権限レベルの設定を表示します。 |
ステップ 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 Release 12.2(58)SE 以降、スイッチは IPv6 対応の TACACS+ をサポートしています。情報については、『 Cisco IOS XE IPv6 Configuration Guide, Release 2 』の「Implementing ADSL for IPv6」の章の「 TACACS+ Over an IPv6 Transport 」の項を参照してください。
この機能の設定に関する詳細については、『 Cisco IOS XE IPv6 Configuration Guide, Release 2 』の「Implementing ADSL for IPv6」の章の「 Configuring TACACS+ over IPv6 」の項を参照してください。
(注) ここで使用するコマンドの構文および使用方法の詳細については、『Cisco IOS Security Command Reference, Release 12.4』および『Cisco IOS IPv6 Command Reference』を参照してください。
(注) ここで使用するコマンドの構文および使用方法の詳細については、『Cisco IOS Security Command Reference, Release 12.4』を参照してください。
ここでは、次の設定について説明します。
• 「TACACS+ の概要」
• 「TACACS+ の動作」
• 「TACACS+ の設定」
• 「TACACS+ 設定の表示」
TACACS+ の概要
TACACS+ は、スイッチにアクセスしようとするユーザの検証を集中的に行うセキュリティ アプリケーションです。TACACS+ サービスは、通常 UNIX または Windows NT ワークステーション上で稼働する TACACS+ デーモンのデータベースで管理されます。スイッチに TACACS+ 機能を設定するには、TACACS+ サーバにアクセスして TACACS+ サーバを設定しておく必要があります。
(注) スイッチ スタックと TACACS+ サーバとの間に冗長接続を設定することを推奨します。これによって、接続済みのスタック メンバの 1 つがスイッチ スタックから削除された場合でも、TACACS+ サーバにアクセスできます。
TACACS+ では、個別の、およびモジュールでの認証、認可、およびアカウンティング機能が提供されます。TACACS+ では、単一のアクセス コントロール サーバ(TACACS+ デーモン)が各サービス(認証、許可、およびアカウンティング)を別個に提供します。各サービスを固有のデータベースに結合し、デーモンの機能に応じてそのサーバまたはネットワークで使用できる他のサービスを使用できます。
TACACS+ の目的は、1 つの管理サービスから複数のネットワーク アクセス ポイントを管理する方式を提供することです。スイッチは、他の Cisco ルータやアクセス サーバとともにネットワーク アクセス サーバにできます。ネットワーク アクセス サーバは、個々のユーザ、ネットワークまたはサブネットワーク、および相互接続されたネットワークとの接続を実現します(図 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 アドレスのリストが含まれています。
TACACS+ サーバを維持する IP ホストを特定し、任意で暗号キーを設定するには、特権 EXEC モードで次の手順を実行します。
|
|
|
ステップ 1 |
configure terminal |
グローバル コンフィギュレーション モードを開始します。 |
ステップ 2 |
tacacs-server host hostname [ port integer ] [ timeout integer ] [ key string ] |
TACACS+ サーバを維持する IP ホスト(1 つまたは複数)を特定します。このコマンドを複数回入力して、優先ホストのリストを作成します。ソフトウェアは、指定された順序でホストを検索します。 • 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 } ライン コンフィギュレーション コマンドを使用します。
(注) AAA 方式を使用して HTTP アクセスに対しスイッチのセキュリティを確保するには、ip http authentication aaa グローバル コンフィギュレーション コマンドでスイッチを設定する必要があります。AAA 認証を設定しても、AAA 方式を使用した HTTP アクセスに対しスイッチのセキュリティは確保しません。
ip http authentication コマンドの詳細については、Cisco.com で『Cisco IOS Security Command Reference, Release 12.4』を参照してください。
特権 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... グローバル コンフィギュレーション コマンドを使用します。
AAA サーバが到達不能な場合のルータとのセッションの確立
(注) このコマンドを設定するには、スイッチが LAN Base イメージを実行している必要があります。
aaa accounting system guarantee-first コマンドは、システム アカウンティングが最初のレコードになることを保証します。これはデフォルトの状態です。場合によっては、システムがリロードされるまでコンソールまたは端末接続でセッションを開始できない場合があります。システムのリロードにかかる時間は 3 分を超えることがあります。
ルータのリロード時に AAA サーバが到達不能な場合、ルータとのコンソールまたは Telnet セッションを確立するには、 no aaa accounting system guarantee-first コマンドを使用します。
TACACS+ 設定の表示
TACACS+ サーバ統計情報を表示するには、 show tacacs 特権 EXEC コマンドを使用します。
RADIUS によるスイッチ アクセスの制御
ここでは、RADIUS をイネーブルにして設定する方法について説明します。RADIUS は、詳細なアカウンティング情報を収集し、認証および許可プロセスに対して柔軟な管理を行います。RADIUS は、AAA を介して実装され、AAA コマンドを使用してのみイネーブルにできます。
Cisco IOS Release 12.2(58)SE 以降、スイッチは IPv6 対応の RADIUS をサポートしています。情報については、『 Cisco IOS XE IPv6 Configuration Guide, Release 2 』の「Implementing ADSL for IPv6」の章の「 RADIUS Over IPv6 」の項を参照してください。この機能の設定に関する詳細については、『 Cisco IOS XE IPv6 Configuration Guide, Release 2 』の「Implementing ADSL for IPv6」の章の「 Configuring the NAS 」の項を参照してください。
(注) ここで使用するコマンドの構文および使用方法の詳細については、『Cisco IOS Security Command Reference』および『Cisco IOS IPv6 Command Reference』を参照してください。
ここでは、次の設定について説明します。
• 「RADIUS の概要」
• 「RADIUS の動作」
• 「RADIUS 許可の変更」
• 「RADIUS の設定」
• 「RADIUS の設定の表示」
RADIUS の概要
RADIUS は、不正なアクセスからネットワークのセキュリティを保護する分散型クライアント/サーバ システムです。RADIUS クライアントは、サポート対象の Cisco ルータおよびスイッチ上で稼働します。クライアントは中央の RADIUS サーバに認証要求を送ります。中央の RADIUS サーバにはすべてのユーザ認証情報、ネットワーク サービス アクセス情報が登録されています。RADIUS ホストは、通常、シスコ(Cisco Secure Access Control Server バージョン 3.0)、Livingston、Merit、Microsoft、または他のソフトウェア プロバイダーの RADIUS サーバ ソフトウェアが稼働しているマルチユーザ システムです。詳細については、RADIUS サーバのマニュアルを参照してください。
(注) スイッチ スタックと RADIUS サーバとの間に冗長接続を設定することを推奨します。これによって、接続済みのスタック メンバの 1 つがスイッチ スタックから削除された場合でも、RADIUS サーバにアクセスできます。
RADIUS は、アクセスのセキュリティが必要な、次のネットワーク環境で使用します。
• それぞれが RADIUS をサポートする、マルチベンダー アクセス サーバによるネットワーク。たとえば、複数のベンダーのアクセス サーバが、1 つの RADIUS サーバベース セキュリティ データベースを使用します。マルチ ベンダーのアクセス サーバを使用する IP ベースのネットワークでは、ダイヤルイン ユーザは Kerberos セキュリティ システムを使用するようにカスタマイズされた RADIUS サーバを通じて認証されます。
• アプリケーションが RADIUS プロトコルをサポートするターンキー ネットワーク セキュリティ環境。たとえば、 スマート カード アクセス コントロール システムを使用するアクセス環境。ある事例では、RADIUS と Enigma のセキュリティ カードを併用してユーザを検証し、ネットワーク リソースに対するアクセス権を付与しています。
• すでに RADIUS を使用中のネットワーク。RADIUS クライアント装備の Cisco スイッチをネットワークに追加できます。これが TACACS+ サーバへの移行の最初のステップとなることもあります。図 9-2 を参照してください。
• ユーザが 1 つのサービスにしかアクセスできないネットワーク。RADIUS を使用すると、ユーザのアクセスを 1 つのホスト、Telnet などの 1 つのユーティリティ、または IEEE 802.1x などのプロトコルを使用するネットワークに制御できます。このプロトコルの詳細については、「IEEE 802.1x ポートベース認証の設定」を参照してください。
• リソース アカウンティングが必要なネットワーク。RADIUS 認証または許可とは別個に RADIUS アカウンティングを使用できます。RADIUS アカウンティング機能によって、サービスの開始および終了時点でデータを送信し、このセッション中に使用されるリソース(時間、パケット、バイトなど)の量を表示できます。インターネット サービス プロバイダーは、RADIUS アクセス コントロールおよびアカウンティング ソフトウェアのフリーウェア バージョンを使用して、特殊なセキュリティおよび課金に対するニーズを満たすこともできます。
RADIUS は、次のようなネットワーク セキュリティ状況には適していません。
• マルチプロトコル アクセス環境。RADIUS は、AppleTalk Remote Access(ARA)、NetBIOS Frame Control Protocol(NBFCP)、NetWare Asynchronous Services Interface(NASI)、または 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 認証を正常に完了する必要があります(イネーブルに設定されている場合)。ACCEPT または REJECT パケットには次の追加データが含まれます。
• Telnet、SSH、rlogin、または特権 EXEC サービス
• 接続パラメータ(ホストまたはクライアントの IP アドレス、アクセス リスト、およびユーザ タイムアウトを含む)
概要
標準 RADIUS インターフェイスは通常、ネットワークに接続しているデバイスから要求が送信され、クエリーが送信されたサーバが応答するプル モデルで使用されます。Catalyst スイッチは、通常プッシュ モデルで使用される RFC 5176 で規定された RADIUS Change of Authorization(CoA)拡張機能をサポートし、外部の認証、許可、およびアカウンティング(AAA)またはポリシーサーバからのセッションのダイナミック再設定ができるようにします。
Cisco IOS Release 12.2(52)SE 以降では、これらのセッションごとの CoA 要求がスイッチにサポートされています。
• セッション再認証
• セッション終了
• ポート シャットダウンでのセッション終了
• ポート バウンスでのセッション終了
この機能は、Cisco Secure Access Control Server(ACS)5.1 に統合されています。ACS の詳細については、次の URL を参照してください。
http://www.cisco.com/en/US/products/ps9911/tsd_products_support_series_home.html
Catalyst スイッチで、RADIUS インターフェイスはデフォルトでイネーブルに設定されています。ただし、一部の基本的な設定では次の属性が必要です。
• セキュリティおよびパスワード:『 Catalyst 3750 Switch Software Configuration Guide, Cisco Release 12.2(50)SE 』の「Configuring Switch-Based Authentication」の章の「 Preventing Unauthorized Access to Your Switch 」を参照してください。
• アカウンティング:『 Catalyst 3750 Switch Software Configuration Guide12.2(50)SE 』の「Configuring Switch-Based Authentication」の章の「 Starting RADIUS Accounting 」を参照してください。
Change-of-Authorization 要求
Change of Authorization(CoA)要求は、RFC 5176 に記載されているように、プッシュ モデルで使用することによって、セッション識別、ホスト再認証、およびセッション終了を行うことができます。このモデルは、1 つの要求(CoA-Request)と 2 つの可能な応答コードで構成されています。
• CoA acknowledgement(ACK)[CoA-ACK]
• CoA non-acknowledgement(NAK)[CoA-NAK]
要求は CoA クライアント(通常は RADIUS またはポリシー サーバ)から発信されて、リスナーとして動作するスイッチに送信されます。
ここでは、次の内容について説明します。
• CoA 要求応答コード
• CoA 要求コマンド
• セッション再認証
RFC 5176 規定
Disconnect Request メッセージは Packet of Disconnect(POD)とも呼ばれますが、セッション終了に対してスイッチでサポートされています。
表 9-2 には、この機能でサポートされている IETF 属性を示します。
表 9-2 サポートされている IETF 属性
|
|
24 |
State |
31 |
Calling-Station-ID |
44 |
Acct-Session-ID |
80 |
Message-Authenticator |
101 |
Error-Cause |
表 9-3 には、Error-Cause 属性で取ることができる値を示します。
表 9-3 Error-Cause の値
|
|
201 |
削除された残留セッション コンテキスト |
202 |
無効な EAP パケット(無視) |
401 |
サポートされていない属性 |
402 |
見つからない属性 |
403 |
NAS 識別情報のミスマッチ |
404 |
無効な要求 |
405 |
サポートされていないサービス |
406 |
サポートされていない拡張機能 |
407 |
無効な属性値 |
501 |
管理上の禁止 |
502 |
ルート不可能な要求(プロキシ) |
503 |
セッション コンテキストが検出されない |
504 |
セッション コンテキストが削除できない |
505 |
その他のプロキシ処理エラー |
506 |
リソースが使用不可能 |
507 |
要求が発信された |
508 |
マルチ セッションの選択がサポートされてない |
前提条件
CoA インターフェイスを使用するには、スイッチにセッションがすでに存在している必要があります。CoA を使用すると、セッションの識別と接続解除要求を実行できます。アップデートは、指定されたセッションにだけ作用します。
CoA 要求応答コード
CoA 要求応答コードを使用すると、スイッチにコマンドを伝達できます。サポートされているコマンドを表 9-4に示します。
セッションの識別
特定のセッションに向けられた切断と CoA 要求については、スイッチは 1 つ以上の次の属性に基づいて、セッションを検索します。
• Calling-Station-Id(ホストの MAC アドレスを含む IETF 属性 31)
• Audit-Session-Id VSA(シスコの Vendor-Specific Attribute(VSA; ベンダー固有属性))
• Acct-Session-Id(IETF 属性 44)
CoA メッセージに含まれるすべてのセッション ID 属性がそのセッションと一致しないかぎり、スイッチは「Invalid Attribute Value」エラー コード属性を含む Disconnect-NAK または CoA-NAK を返します。
特定のセッションに対する接続解除および CoA 要求の場合、次のいずれかのセッション ID を使用できます。
• Calling-Station-ID(MAC アドレスを含む IETF 属性 31)
• Audit-Session-ID(シスコのベンダー固有属性)
• Accounting-Session-ID(IETF 属性 44)。
メッセージに複数のセッション ID 属性が含まれる場合、すべての属性がセッションと一致する必要があります。一致しない場合は、スイッチが「 Invalid Attribute Value 」エラー コードを含む Disconnect-Negative Acknowledgement(NAK; 否定確認応答)または CoA-NAK を返します。
RFC 5176 で定義されている CoA 要求コードのパケットの形式は、コード、ID、長さ、オーセンティケータ、および Type Length Value(TLV; タイプ、長さ、値)形式の属性から構成されます。
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Code | Identifier | Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+-+-+-+-+-+-+-+-+-+-+-+-+-
属性フィールドは、Cisco Vendor-Specific Attribute(VSA; ベンダー固有属性)を送信するために使用します。
CoA ACK 応答コード
許可ステートの変更に成功した場合は、肯定確認応答(ACK)が送信されます。CoA ACK 内で返される属性は CoA 要求によって異なり、個々の CoA コマンドで検討されます。
CoA NAK 応答コード
否定確認応答(NAK)は許可ステートの変更に失敗したことを示し、エラーの理由を示す属性を含めることができます。CoA が成功したかを確認するには、 show コマンドを使用します。
CoA 要求コマンド
ここでは、次の内容について説明します。
• セッション再認証
• スイッチ スタックでのセッションの再認証
• セッションの終了
• CoA 接続解除要求
• CoA 要求:ホスト ポートのディセーブル化
• CoA 要求:バウンス ポート
Cisco IOS Release 12.2(52)SE 以降では、 表 9-4 に示されるコマンドがスイッチにサポートされています。
表 9-4 スイッチでサポートされる CoA コマンド
|
|
Reauthenticate host |
Cisco:Avpair="subscriber:command=reauthenticate" |
Terminate session |
これは、VSA を要求しない、標準の接続解除要求です。 |
Bounce host port |
Cisco:Avpair="subscriber:command=bounce-host-port" |
Disable host port |
Cisco:Avpair="subscriber:command=disable-host-port" |
セッション再認証
不明な ID またはポスチャを持つホストがネットワークに加入して、制限されたアクセス許可プロファイル(たとえば、ゲスト VLAN)に関連付けられると、AAA サーバは通常、セッション再認証要求を生成します。再認証要求は、クレデンシャルが不明である場合にホストが適切な認証グループに配置されることを許可します。
セッション認証を開始するために、AAA サーバは Cisco:Avpair="subscriber:command=reauthenticate" の形式でシスコのベンダー固有属性(VSA)と 1 つ以上のセッション ID 属性を含む標準 CoA 要求メッセージを送信します。
現在のセッション ステートは、メッセージに対するスイッチの応答を決定します。セッションが現在、IEEE 802.1x によって認証されている場合、スイッチは Extensible Authentication Protocol over LAN(EAPOL; LAN 経由の拡張認証プロトコル)RequestId メッセージをサーバに送信することで応答します。
現在、セッションが MAC Authentication Bypass(MAB; MAC 認証バイパス)で認証されている場合は、スイッチはサーバにアクセス要求を送信し、初期正常認証で使用されるものと同じ ID 属性を渡します。
スイッチがコマンドを受信したときにセッション認証が実行中である場合は、スイッチはプロセスを終了し、認証シーケンスを再開し、最初に試行されるように設定された方式で開始します。
セッションがまだ認証されてない、あるいはゲスト VLAN、クリティカル VLAN、または同様のポリシーで認証されている場合は、再認証メッセージがアクセス コントロール方式を再開し、最初に試行されるように設定された方式で開始します。セッションの現在の許可は、再認証によって異なる認証結果になるまで維持されます。
スイッチ スタックでのセッションの再認証
スイッチ スタックでセッション再認証メッセージを受信すると、次の動作が発生します。
• Acknowledgement(ACK; 認証)を戻す前に、再認証の必要性がチェックされます。
• 適切なセッションで再認証が開始されます。
• 認証が成功または失敗のいずれかで完了すると、再認証をトリガーする信号がスタック メンバから削除されます。
• 認証の完了前にスタック マスターに障害が発生すると、(後で削除される)元のコマンドに基づいたスタック マスターの切り替え後、再認証が開始されます。
• ACK の送信前にスタック マスターに障害が発生した場合、新たなスタック マスターでは、再転送コマンドが新しいコマンドとして扱われます。
セッションの終了
セッションを終了させる 3 種類の CoA 要求があります。CoA 接続解除要求は、ホスト ポートをディセーブルにせずにセッションを終了します。このコマンドを使用すると、指定されたホストのオーセンティケータ ステート マシンが再初期化されますが、そのホストからネットワークへのアクセスは制限されません。
ネットワークへのホストのアクセスを制限するには、Cisco:Avpair="subscriber:command=disable-host-port" VSA を含む CoA 要求を使用します。このコマンドは、ネットワーク上で障害を引き起こしたと認識されているホストがある場合に便利であり、そのホストに対してネットワーク アクセスをただちにブロックする必要があります。ポートへのネットワーク アクセスを復旧する場合は、非 RADIUS メカニズムを使用して再びイネーブルにします。
プリンタなどのサプリカントを持たないデバイスが新しい IP アドレスを取得する必要がある場合(たとえば、VLAN 変更後)は、ポート バウンスでホスト ポート上のセッションを終了します(ポートを一時的にディセーブルした後、再びイネーブルにする)。
CoA 接続解除要求
このコマンドは標準の接続解除要求です。このコマンドはセッション指向であるため、「セッションの識別」で示される 1 つ以上のセッション ID 属性とともに使用する必要があります。セッションが見つからない場合、スイッチは Disconnect-NAK メッセージと「Session Context Not Found」エラー コード属性を返します。セッションが ある 場合は、スイッチはセッションを終了します。セッションが完全に削除された後、スイッチは接続解除 ACK を返します。
スイッチがクライアントに接続解除 ACK を返す前にスタンバイ スイッチにフェールオーバーする場合は、クライアントから要求が再送信されるときに、新しいアクティブ スイッチ上でそのプロセスが繰り返されます。再送信後もセッションが見つからない場合は、Disconnect-ACK と「Session Context Not Found」エラー コード属性が送信されます。
CoA 要求:ホスト ポートのディセーブル化
このコマンドは、次の新しい VSA が含まれている標準 CoA 要求メッセージで伝達されます。
Cisco:Avpair="subscriber:command=disable-host-port"
このコマンドはセッション指向であるため、「セッションの識別」で示される 1 つ以上のセッション ID 属性とともに使用する必要があります。セッションが見つからない場合は、CoA-NAK メッセージと「Session Context Not Found」エラー コード属性が返されます。このセッションがある場合は、スイッチはホスト ポートをディセーブルにし、CoA-ACK メッセージを返します。
スイッチが CoA-ACK をクライアントに返す前にスイッチに障害が発生した場合は、クライアントから要求が再送信されるときに、新しいアクティブ スイッチ上でそのプロセスが繰り返されます。スイッチが CoA-ACK メッセージをクライアントに返した後で、かつその動作が完了していないときにスイッチに障害が発生した場合は、新しいアクティブ スイッチ上でその動作が再開されます。
(注) 再送信コマンドの後に接続解除要求が失敗すると、(接続解除 ACK が送信されてない場合に)チェンジオーバー前にセッションが正常終了し、または元のコマンドが実行されてスタンバイ スイッチがアクティブになるまでの間に発生した他の方法(たとえば、リンク障害)によりセッションが終了することがあります。
CoA 要求:バウンス ポート
このコマンドは、次の VSA を含む標準の CoA-Request メッセージで伝達されます。
Cisco:Avpair="subscriber:command=bounce-host-port"
このコマンドはセッション指向であるため、「セッションの識別」で示される 1 つ以上のセッション ID 属性とともに使用する必要があります。セッションが見つからない場合は、CoA-NAK メッセージと「Session Context Not Found」エラー コード属性が返されます。このセッションがある場合は、スイッチはホスト ポートを 10 秒間ディセーブルし、再びイネーブルにし(ポート バウンス)、CoA-ACK を返します。
スイッチが CoA-ACK をクライアントに返す前にスイッチに障害が発生した場合は、クライアントから要求が再送信されるときに、新しいアクティブ スイッチ上でそのプロセスが繰り返されます。スイッチが CoA-ACK メッセージをクライアントに返した後で、かつその動作が完了していないときにスイッチに障害が発生した場合は、新しいアクティブ スイッチ上でその動作が再開されます。
セッション強制終了のスタック構成ガイドライン
スイッチ スタックでは、CoA 接続解除要求メッセージに必要な特別な処理はありません。
CoA 要求バウンス ポートのスタック構成ガイドライン
bounce-port コマンドのターゲットはポートではなくセッションのため、セッションが見つからなかった場合、コマンドは実行できません。
スタック マスターで Auth Manager コマンド ハンドラが有効な bounce-port コマンドを受信すると、CoA-ACK メッセージを返す前に次の情報が確認されます。
• ポート バウンスの必要性
• ポート ID(ローカル セッション コンテキストで検出された場合)
スイッチで、ポート バウンスが開始されます(ポートが 10 秒間ディセーブルになり、再びイネーブルにされます)。
ポート バウンスが正常に実行された場合、ポート バウンスをトリガーした信号がスタンバイ スタック マスターから削除されます。
ポート バウンスの完了前にスタック マスターに障害が発生すると、(後で削除される)元のコマンドに基づいたスタック マスターの切り替え後、ポート バウンスが開始されます。
CoA-ACK メッセージの送信前にスタック マスターに障害が発生した場合、新たなスタック マスターでは、再送信コマンドが新しいコマンドとして扱われます。
CoA 要求ディセーブル ポートのスタック構成ガイドライン
disable-port コマンドのターゲットはポートではなくセッションのため、セッションが見つからなかった場合、コマンドは実行できません。
スタック マスターにある Auth Manager コマンド ハンドラで、有効な disable-port コマンドを受信した場合、CoA-ACK メッセージを返す前に次の情報が検証されます。
• ポート ディセーブルの必要性
• ポート ID(ローカル セッション コンテキストで検出された場合)
スイッチで、ポートをディセーブルする操作が試行されます。
ポートをディセーブルする操作が正常に実行された場合、ポートをディセーブルする操作をトリガーした信号がスタンバイ スタック マスターから削除されます。
ポートをディセーブルする操作の完了前にスタック マスターに障害が発生すると、(後で削除される)元のコマンドに基づいたスタック マスターの切り替え後、ポートがディセーブルにされます。
CoA-ACK メッセージの送信前にスタック マスターに障害が発生した場合、新たなスタック マスターでは、再送信コマンドが新しいコマンドとして扱われます。
RADIUS のデフォルト設定
RADIUS および AAA は、デフォルトではディセーブルに設定されています。
セキュリティの失効を防止するため、ネットワーク管理アプリケーションを使用して RADIUS を設定することはできません。RADIUS をイネーブルに設定した場合、CLI を通じてスイッチにアクセスするユーザを認証できます。
RADIUS サーバ ホストの識別
スイッチと RADIUS サーバの通信には、次の要素が関係します。
• ホスト名または IP アドレス
• 認証の宛先ポート
• アカウンティングの宛先ポート
• キー ストリング
• タイムアウト時間
• 再送信回数
RADIUS セキュリティ サーバは、ホスト名または IP アドレス、ホスト名と特定の UDP ポート番号、または IP アドレスと特定の UDP ポート番号によって特定します。IP アドレスと UDP ポート番号の組み合わせによって、一意の ID が作成され、特定の AAA サービスを提供する RADIUS ホストとして個々のポートを定義できます。この一意の ID を使用することによって、同じ IP アドレスにあるサーバ上の複数の UDP ポートに、RADIUS 要求を送信できます。
同じ RADIUS サーバ上の異なる 2 つのホスト エントリに同じサービス(たとえばアカウンティング)を設定した場合、2 番めに設定したホスト エントリは、最初に設定したホスト エントリのフェールオーバー バックアップとして動作します。この例では、最初のホスト エントリがアカウンティング サービスを提供できなかった場合、スイッチは「 %RADIUS-4-RADIUS_DEAD
」メッセージを表示し、その後、同じデバイス上で 2 番めに設定されたホスト エントリでアカウンティング サービスを試みます。(RADIUS ホスト エントリは、設定した順序に従って試行されます)。
RADIUS サーバとスイッチは、共有するシークレット テキスト ストリングを使用して、パスワードの暗号化および応答の交換を行います。RADIUS で AAA セキュリティ コマンドを使用するように設定するには、RADIUS サーバ デーモンが稼働するホストと、そのホストがスイッチと共有するシークレット テキスト(キー)ストリングを指定する必要があります。
タイムアウト、再送信回数、および暗号キーの値は、すべての RADIUS サーバに対してグローバルに設定することもできますし、サーバ単位で設定することもできます。また、グローバルな設定とサーバ単位での設定を組み合わせることもできます。スイッチと通信するすべての RADIUS サーバに対して、これらの設定をグローバルに適用するには、 radius-server timeout 、 radius-server retransmit 、および radius-server key の 3 つの固有のグローバル コンフィギュレーション コマンドを使用します。これらの設定を特定の 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 デーモンとスイッチの間で使用する認証および暗号キーを指定します。 コマンドの最後のアイテムとして設定してください。先頭のスペースは無視されますが、key の中間および末尾のスペースは使用されます。キーにスペースを使用する場合は、引用符がキーの一部分である場合を除き、引用符でキーを囲まないでください。 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 } グローバル コンフィギュレーション コマンドを使用します。
次に、1 つの RADIUS サーバを認証用に、もう 1 つの 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
次に、 host1 を RADIUS サーバとして設定し、認証およびアカウンティングの両方にデフォルトのポートを使用するように設定する例を示します。
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 方式を使用して HTTP アクセスに対しスイッチのセキュリティを確保するには、ip http authentication aaa グローバル コンフィギュレーション コマンドでスイッチを設定する必要があります。AAA 認証を設定しても、AAA 方式を使用した HTTP アクセスに対しスイッチのセキュリティは確保しません。
ip http authentication コマンドの詳細については、Cisco.com で『Cisco IOS Security Command Reference, Release 12.4』を参照してください。
AAA サーバ グループの定義
既存のサーバ ホストを認証用にグループ化するため、AAA サーバ グループを使用するようにスイッチを設定できます。設定済みのサーバ ホストのサブセットを選択して、それを特定のサービスに使用します。サーバ グループは、選択されたサーバ ホストの IP アドレスのリストを含むグローバルなサーバ ホスト リストとともに使用されます。
サーバ グループには、同じサーバの複数のホスト エントリを含めることもできますが、各エントリが一意の ID(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 デーモンとスイッチの間で使用する認証および暗号キーを指定します。 コマンドの最後のアイテムとして設定してください。先頭のスペースは無視されますが、key の中間および末尾のスペースは使用されます。キーにスペースを使用する場合は、引用符がキーの一部分である場合を除き、引用符でキーを囲まないでください。 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 を使用して認証を行った場合は、RADIUS を使用して特権 EXEC アクセスを許可します。
• 認証に 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 プロセスの最初に記録開始アカウンティング通知、最後に記録停止アカウンティング通知を送信するように設定します。 |
ステップ 4 |
end |
特権 EXEC モードに戻ります。 |
ステップ 5 |
show running-config |
設定を確認します。 |
ステップ 6 |
copy running-config startup-config |
(任意)コンフィギュレーション ファイルに設定を保存します。 |
アカウンティングをディセーブルにするには、 no aaa accounting { network | exec } { start-stop } method1... グローバル コンフィギュレーション コマンドを使用します。
AAA サーバが到達不能な場合のルータとのセッションの確立
(注) このコマンドを設定するには、スイッチが LAN Base イメージを実行している必要があります。
aaa accounting system guarantee-first コマンドは、システム アカウンティングが最初のレコードになることを保証します。これはデフォルトの状態です。場合によっては、システムがリロードされるまでコンソールまたは端末接続でセッションを開始できない場合があります。システムのリロードにかかる時間は 3 分を超えることがあります。
ルータのリロード時に AAA サーバが到達不能な場合、ルータとのコンソールまたは Telnet セッションを確立するには、 no aaa accounting system guarantee-first コマンドを使用します。
すべての RADIUS サーバの設定
スイッチとすべての RADIUS サーバ間でグローバルに通信を設定するには、特権 EXEC モードで次の手順を実行します。
|
|
|
ステップ 1 |
configure terminal |
グローバル コンフィギュレーション モードを開始します。 |
ステップ 2 |
radius-server key string |
スイッチとすべての RADIUS サーバ間で共有されるシークレット テキスト ストリングを指定します。 (注) key は文字列であり、RADIUS サーバで使用されている暗号化キーと一致する必要があります。先頭のスペースは無視されますが、key の中間および末尾のスペースは使用されます。キーにスペースを使用する場合は、引用符がキーの一部分である場合を除き、引用符でキーを囲まないでください。 |
ステップ 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 です。指定できる範囲は 0 ~ 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+ 仕様で定義されている適切な Attribute Value(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 ] |
スイッチが VSA(RADIUS IETF 属性 26 で定義)を認識して使用できるようにします。 • (任意)認識されるベンダー固有属性の集合をアカウンティング属性だけに限定するには、 accounting キーワードを使用します。 • (任意)認識されるベンダー固有属性の集合を認証属性だけに限定するには、 authentication キーワードを使用します。 キーワードを指定せずにこのコマンドを入力すると、アカウンティングおよび認証のベンダー固有属性の両方が使用されます。 |
ステップ 3 |
end |
特権 EXEC モードに戻ります。 |
ステップ 4 |
show running-config |
設定値を確認します。 |
ステップ 5 |
copy running-config startup-config |
(任意)コンフィギュレーション ファイルに設定を保存します。 |
(注) RADIUS 属性の一覧と、ベンダー固有の属性 26 の詳細については、Cisco.com の『Cisco IOS Security Configuration Guide, Release 12.4』の付録「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 サーバは、このテキスト ストリングを使用して、パスワードの暗号化および応答の交換を行います。 (注) key は文字列であり、RADIUS サーバで使用されている暗号化キーと一致する必要があります。先頭のスペースは無視されますが、key の中間および末尾のスペースは使用されます。キーにスペースを使用する場合は、引用符がキーの一部分である場合を除き、引用符でキーを囲まないでください。 |
ステップ 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
スイッチ上での CoA の設定
スイッチ上で CoA を設定するには、特権 EXEC モードで次の手順を実行します。この手順は必須です。
|
|
|
ステップ 1 |
configure terminal |
グローバル コンフィギュレーション モードを開始します。 |
ステップ 2 |
aaa new-model |
AAA をイネーブルにします。 |
ステップ 3 |
aaa server radius dynamic-author |
スイッチを認証、許可、およびアカウンティング(AAA)サーバに設定し、外部ポリシーサーバとの相互作用を実行します。 |
ステップ 4 |
client { ip-address | name } [ vrf vrfname ] [ server-key string ] |
ダイナミック認証ローカル サーバ コンフィギュレーション モードを開始し、デバイスが CoA を受け取り、要求を取り外す RADIUS クライアントを指定します。 |
ステップ 5 |
server-ke y [ 0 | 7 ] string |
RADIUS キーをデバイスと RADIUS クライアントとの間で共有されるように設定します。 |
ステップ 6 |
port port-number |
設定された RADIUS クライアントから RADIUS 要求をデバイスが受信するポートを指定します。 |
ステップ 7 |
auth-type { any | all | session-key } |
スイッチが RADIUS クライアントに使用する許可のタイプを指定します。 クライアントは、許可用に設定されたすべての属性と一致していなければなりません。 |
ステップ 8 |
ignore session-key |
(任意)セッション キーを無視するようにスイッチを設定します。 ignore コマンドの詳細については、Cisco.com 上の『 Cisco IOS Intelligent Services Gateway Command Reference 』を参照してください。 |
ステップ 9 |
ignore server-key |
(任意)サーバ キーを無視するようにスイッチを設定します。 ignore コマンドの詳細については、Cisco.com 上の『 Cisco IOS Intelligent Services Gateway Command Reference 』を参照してください。 |
ステップ 10 |
authentication command bounce-port ignore |
(任意)CoA 要求を無視して、セッションをホスティングするポートを一時的にディセーブルにするようにスイッチを設定します。ポートを一時的にディセーブルにする目的は、VLAN の変更が発生しても、その変更を検出するサプリカントがエンドポイント上にない場合に、ホストから DHCP 再ネゴシエーションを行わせることです。 |
ステップ 11 |
authentication command disable-port ignore |
(任意)セッションをホスティングしているポートを管理上のシャットダウン状態にすることを要求する非標準コマンドを無視するようにスイッチを設定します。ポートをシャットダウンすると、セッションが終了します。 ポートを再びイネーブルにするには、標準の CLI または SNMP コマンドを使用します。 |
ステップ 12 |
end |
特権 EXEC モードに戻ります。 |
ステップ 13 |
show running-config |
設定を確認します。 |
ステップ 14 |
copy running-config startup-config |
(任意)コンフィギュレーション ファイルに設定を保存します。 |
AAA をディセーブルにするには、 no aaa new-model グローバル コンフィギュレーション コマンドを使用します。スイッチ上の AAA サーバ機能をディセーブルにするには、 no aaa server radius dynamic authorization グローバル コンフィギュレーション コマンドを使用します。
CoA 機能のモニタリングおよびトラブルシューティング
次の Cisco IOS コマンドを使用して、スイッチ上の CoA 機能をモニタおよびトラブルシューティングします。
• debug radius
• debug aaa coa
• debug aaa pod
• debug aaa subsys
• debug cmdhd [ detail | error | events ]
• show aaa attributes protocol radius
RADIUS サーバ ロード バランシングの設定
この機能を使用すると、アクセス要求および認証要求を、サーバ グループ内のすべての RADIUS サーバに対して均等に送信できます。詳細については、『 Cisco IOS Security Configuration Guide 』を参照してください。
http://www.ciscosystems.com/en/US/docs/ios/12_2sb/feature/guide/sbrdldbl.html
RADIUS の設定の表示
RADIUS の設定を表示するには、 show running-config 特権 EXEC コマンドを使用します。
SSH のためのスイッチの設定
ここでは、SSH 機能を設定する方法について説明します。この機能を使用するには、暗号(暗号化)ソフトウェア イメージをスイッチにインストールする必要があります。この機能を使用し、Cisco.com から暗号化ソフトウェア ファイルをダウンロードするには許可を得る必要があります。詳細については、このリリースのリリース ノートを参照してください。
• 「SSH の概要」
• 「SSH の設定」
• 「SSH の設定およびステータスの表示」
SSH の設定例については、『 Cisco IOS Security Configuration Guide 』の「Configuring Secure Shell」の章の「SSH Configuration Examples」を参照してください。
http://www.cisco.com/en/US/docs/ios/12_2/security/configuration/guide/scfssh.html
IPv6 の SSH 機能は IPv4 における機能と同じです。IPv6 の場合、SSH は IPv6 アドレスをサポートし、IPv6 トランスポート上において、リモート IPv6 ノードとのセキュリティ保護および暗号化された接続を有効化します。
(注) ここで使用するコマンドの構文および使用方法の詳細については、次の URL にあるこのリリースに対応するコマンド リファレンスおよび Cisco IOS Release 12.2 のコマンド リファレンスを参照してください。
http://www.cisco.com/en/US/docs/ios/12_2/security/command/reference/fsecur_r.html
また、『Cisco IOS IPv6 Command Reference』も参照してください。
SSH の概要
SSH は、デバイスに対する安全なリモート接続を可能にするプロトコルです。SSH は、デバイスの認証時に強力な暗号化を行うことで、リモート接続について Telnet 以上のセキュリティを実現します。このソフトウェア リリースは、SSH バージョン 1(SSHv1)および SSH バージョン 2(SSHv2)をサポートしています。
• 「SSH サーバ、統合クライアント、およびサポートされているバージョン」
• 「制限事項」
SSH サーバ、統合クライアント、およびサポートされているバージョン
SSH 機能には SSH サーバおよび SSH 統合クライアントがあり、これらはスイッチ上で実行されるアプリケーションです。SSH クライアントを使用すると、SSH サーバが稼働するスイッチに接続できます。SSH サーバは、このリリースでサポートされている SSH クライアントおよび、他社製の SSH クライアントと使用します。また、SSH クライアントは、このリリースでサポートされている SSH サーバおよび他社製の SSH サーバと使用します。
スイッチは、SSHv1 または SSHv2 サーバをサポートします。
スイッチは、SSHv1 クライアントをサポートします。
SSH は、DES 暗号化アルゴリズム、Triple DES(3DES)暗号化アルゴリズム、およびパスワードベースの認証をサポートしています。
SSH は次のユーザ認証方式をサポートしています。
• TACACS+(詳細については、「TACACS+ によるスイッチ アクセスの制御」を参照してください)
• RADIUS(詳細については、「RADIUS によるスイッチ アクセスの制御」を参照してください)
• ローカル認証および許可(詳細については、「スイッチのローカル認証および許可の設定」を参照)
(注) スイッチは IP セキュリティ(IPSec)をサポートしません。
制限事項
SSH には、次の制限事項が適用されます。
• スイッチは、Rivest, Shamir, and Adelman(RSA)認証をサポートします。
• SSH は、実行シェル アプリケーションだけをサポートします。
• SSH サーバおよび SSH クライアントは、DES(56 ビット)および 3DES(168 ビット)データ暗号化ソフトウェアでのみサポートされます。
• スイッチは、128 ビット キー、192 ビット キー、または 256 ビット キーの Advanced Encryption Standard(AES; 高度暗号化規格)暗号化アルゴリズムをサポートします。ただし、キーを暗号化する対称暗号化 AES はサポートされません。
設定時の注意事項
スイッチを SSH サーバまたは SSH クライアントとして設定する場合は、次の注意事項に従ってください。
• SSHv2 サーバは、SSHv1 サーバで生成される RSA キーのペアを使用できます(逆の場合も同様です)。
• スタック マスターで SSH サーバが実行されている場合で、スタック マスターに障害が発生した場合、新しいスタック マスターでは、前のスタック マスターによって生成された RSA キー ペアが使用されます。
• crypto key generate rsa グローバル コンフィギュレーション コマンドを入力した後、CLI エラー メッセージが表示される場合、RSA キーペアは生成されていません。ホスト名およびドメインを再設定してから、 crypto key generate rsa コマンドを入力してください。詳細については、「スイッチで SSH を実行するためのセットアップ」を参照してください。
• RSA キーのペアを生成する場合に、メッセージ「 No host name specified
」が表示されることがあります。このメッセージが表示された場合は、 hostname グローバル コンフィギュレーション コマンドを使用してホスト名を設定する必要があります。
• RSA キーのペアを生成する場合に、メッセージ「 No domain specified
」が表示されることがあります。このメッセージが表示された場合は、 ip domain-name グローバル コンフィギュレーション コマンドを使用して IP ドメイン名を設定する必要があります。
• ローカル認証および許可の方法を設定する場合に、コンソール上で AAA がディセーブルにされていることを確認してください。
スイッチで SSH を実行するためのセットアップ
SSH を実行するようにスイッチをセットアップするには、次の手順を実行してください。
1. 暗号化ソフトウェア イメージを Cisco.com からダウンロードします。この手順は必須です。詳細については、このリリースのリリース ノートを参照してください。
2. スイッチのホスト名および IP ドメイン名を設定します。この手順を実行するのは、スイッチを SSH サーバとして設定する場合だけです。
3. スイッチが SSH を自動的にイネーブルにするための RSA キーのペアを生成します。この手順を実行するのは、スイッチを 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 ] |
(任意)SSHv1 または SSHv2 を実行するようにスイッチを設定します。 • 1 :SSHv1 を実行するようにスイッチを設定します。 • 2 :SSHv2 を実行するようにスイッチを設定します。 このコマンドを入力しない場合、またはキーワードを指定しない場合、SSH サーバは、SSH クライアントでサポートされている最新バージョンの SSH を選択します。たとえば、SSH クライアントが SSHv1 および SSHv2 をサポートする場合、SSH サーバは SSHv2 を選択します。 |
ステップ 3 |
ip ssh { timeout seconds | authentication-retries number } |
SSH 制御パラメータを設定します。 • タイムアウト値は秒単位で指定します(デフォルト値は 120 秒)。指定できる範囲は 0 ~ 120 秒です。このパラメータは、SSH ネゴシエーション フェーズに適用されます。接続が確立されると、スイッチは CLI ベース セッションのデフォルトのタイムアウト値を使用します。 デフォルトでは、ネットワーク上の複数の CLI ベース セッション(セッション 0 ~ 4)に対して、最大 5 つの暗号化同時 SSH 接続を使用できます。実行シェルが起動すると、CLI ベース セッションのタイムアウト値はデフォルトの 10 分に戻ります。 • クライアントをサーバへ再認証できる回数を指定します。デフォルトは 3 です。指定できる範囲は 0 ~ 5 です。 両方のパラメータを設定する場合はこの手順を繰り返します。 |
ステップ 4 |
line vty line_number [ ending_ line_number ] transport input ssh |
(任意)仮想端末回線設定を設定します。 • ライン コンフィギュレーション モードを開始して、仮想端末回線設定を設定します。 line_number および ending_line_number に対して、1 回線ペアを指定します。指定できる範囲は 0 ~ 15 です。 • スイッチで非 SSH Telnet 接続を回避するように設定します。これにより、ルータは SSH 接続に限定されます。 |
ステップ 5 |
end |
特権 EXEC モードに戻ります。 |
ステップ 6 |
show ip ssh または show ssh |
SSH サーバのバージョンおよび設定情報を表示します。 スイッチ上の SSH サーバの接続ステータスを表示します。 |
ステップ 7 |
copy running-config startup-config |
(任意)コンフィギュレーション ファイルに設定を保存します。 |
デフォルトの SSH 制御パラメータに戻すには、 no ip ssh { timeout | authentication-retries } グローバル コンフィギュレーション コマンドを使用します。
SSL HTTP のためのスイッチの設定
ここでは、HTTP 1.1 のサーバおよびクライアントに対応した Secure Socket Layer(SSL)バージョン 3.0 を設定する方法について説明します。SSL は、セキュア HTTP 通信を実現するために、HTTP クライアント認証だけでなく、サーバ認証、暗号化、およびメッセージの完全性も提供します。SSL を使用するには、暗号化ソフトウェア イメージがスイッチにインストールされている必要があります。この機能を使用し、Cisco.com から暗号化ソフトウェア ファイルをダウンロードするには許可を得る必要があります。暗号化イメージの詳細については、このリリースのリリース ノートを参照してください。
ここでは、次の情報について説明します。
• 「セキュア HTTP サーバおよびクライアントの概要」
• 「セキュア HTTP サーバおよびクライアントの設定」
• 「セキュア HTTP サーバおよびクライアントのステータスの表示」
ここで使用する設定例やコマンドの構文および使用方法の詳細については、Cisco IOS Release 12.2(15)T の「HTTPS - HTTP Server and Client with SSL 3.0」の機能説明を参照してください。
http://www.cisco.com/en/US/docs/ios/netmgmt/configuration/guide/nm_https_sc_ssl3.html
セキュア HTTP サーバおよびクライアントの概要
セキュア HTTP 接続の場合、HTTP サーバが送受信するデータは暗号化されてインターネットに送信されます。SSL 暗号化を伴う HTTP は、Web ブラウザからスイッチを設定するような機能に、セキュアな接続を提供します。シスコが実装するセキュア HTTP サーバおよび HTTP クライアントでは、アプリケーション層の暗号化に SSL バージョン 3.0 を使用します。HTTP over SSL は、HTTPS と省略されます(セキュアな接続の場合、URL が http://の代わりに https://で始まります)。
セキュア HTTP サーバ(スイッチ)の主な役割は、指定のポート(デフォルトの HTTPS ポートは 443)で HTTPS 要求を待ち受けて、HTTP 1.1 Web サーバへその要求を渡すことです。HTTP 1.1 サーバはその要求を処理して、セキュア HTTP サーバへ応答(呼び出す)します。セキュア HTTP サーバは HTTP 1.1 サーバの代わりに、元の要求に応えます。
セキュア HTTP クライアント(Web ブラウザ)の主な役割は、Cisco IOS アプリケーション要求に応答して、そのアプリケーションが要求した HTTPS User Agent サービスを実行し、応答を(そのアプリケーションに)返すことです。
CA のトラストポイント
Certificate Authority(CA; 認証局)は、要求を認可して参加するネットワーク デバイスに証明書を発行します。これらのサービスは、参加するデバイスに対する中央集中的なセキュリティ キーおよび証明書の管理を提供します。特定の CA サーバは トラストポイント と呼ばれます。
接続が実行されると、HTTPS サーバは、トラストポイントとなる特定の CA から得た X.509v3 の証明書を発行することで、セキュアな接続をクライアントに提供します。クライアント(通常、Web ブラウザ)は、その証明書の認証に必要な公開キーを保有しています。
セキュア HTTP 接続には、CA のトラストポイントを設定することを強く推奨します。HTTPS サーバを実行しているデバイスに CA のトラストポイントが設定されていないと、サーバは自身を認証して必要な RSA のキーのペアを生成します。自身で認証した(自己署名)証明書は適切なセキュリティではないので、接続するクライアントはその証明書が自己証明書であることを通知し、ユーザに接続の選択(確立または拒否)をさせる必要があります。この選択肢は内部ネットワーク トポロジ(テスト用など)に役立ちます。
CA のトラストポイントを設定していないと、セキュア HTTP 接続を有効にした場合、そのセキュア HTTP サーバ(またはクライアント)に対する一時的または永続的な自己署名証明書が自動的に生成されます。
• スイッチにホスト名とドメイン名が設定されてない場合、生成される自己署名証明書は一時的なものです。スイッチを再起動すると、この一時的な自己署名証明書は失われ、新たに自己署名証明書(一時的に)が割り当てられます。
• スイッチにホスト名とドメイン名が設定されている場合、生成される自己署名証明書は永続的なものです。この証明書は、スイッチを再起動しても、セキュア HTTP サーバを無効にしても有効のままです。そのため、再度セキュア HTTP 接続を有効にしたときに使用できます。
(注) 認証局およびトラストポイントは、個々のデバイスで設定する必要があります。他のデバイスからコピーすると、それらはスイッチ上で無効になります。
自己署名証明書が生成された場合、その情報は show running-config 特権 EXEC コマンドで出力できます。自己署名証明書を表示するコマンドの出力(show running-config コマンド)を例として一部示します。
Switch# show running-config
Building configuration...
crypto pki trustpoint TP-self-signed-3080755072
subject-name cn=IOS-Self-Signed-Certificate-3080755072
rsakeypair TP-self-signed-3080755072
crypto ca certificate chain TP-self-signed-3080755072
certificate self-signed 01
3082029F 30820208 A0030201 02020101 300D0609 2A864886 F70D0101 04050030
59312F30 2D060355 04031326 494F532D 53656C66 2D536967 6E65642D 43657274
69666963 6174652D 33303830 37353530 37323126 30240609 2A864886 F70D0109
自己署名証明書は、セキュア HTTP サーバを無効にして、 no crypto pki trustpoint TP-self-signed-30890755072 グローバル コンフィギュレーション コマンドを入力することで削除できます。その後、セキュア HTTP サーバを再度有効にすると、自己署名証明書が新たに生成されます。
(注) TP self-signed の後ろに表示されている値は、デバイスのシリアル番号によって異なります。
オプションのコマンド( ip http secure-client-auth )を使用すると、HTTPS サーバがクライアントからの X.509v3 証明書を要求します。クライアントの認証は、サーバ自身の認証よりも高いセキュリティを提供します。
CA の詳細については、Cisco.com の『 Cisco IOS Security Configuration Guide, Release 12.4 』の「Configuring Certification Authority Interoperability」の章を参照してください。
CipherSuite
CipherSuite は暗号化アルゴリズムおよびダイジェスト アルゴリズムを指定して、SSL 接続に使用します。HTTPS サーバに接続すると、クライアントの Web ブラウザは、サポート対象の CipherSuite のリストを提供します。その後クライアントとサーバは、両方でサポートされている暗号化アルゴリズムで最適なものをリストから選択してネゴシエートします。たとえば、Netscape Communicator 4.76 は、米国の セキュリティ(RSA 公開キー暗号 MD2、MD5、RC2-CBC、RC4、DES-CBC、および DES-EDE3-CBC)をサポートしています。
最適な暗号化には、128 ビット暗号化をサポートするクライアント ブラウザ(Microsoft Internet Explorer バージョン 5.5 以降または Netscape Communicator バージョン 4.76 以降など)が必要です。SSL_RSA_WITH_DES_CBC_SHA CipherSuite は、128 ビット暗号化を提供しないため、他の CipherSuite よりもセキュリティが低くなります。
CipherSuite は、よりセキュリティが高く、複雑になればなるほど、わずかですが処理時間が必要になります。次に、スイッチでサポートされる CipherSuite およびルータの処理負荷(速さ)による CipherSuite のランク(速い順)を定義します。
1. SSL_RSA_WITH_DES_CBC_SHA:メッセージの暗号化に DES-CBC、およびメッセージ ダイジェストに SHA を使用した RSA のキー交換(RSA 公開キー暗号化)
2. SSL_RSA_WITH_RC4_128_MD5:RC4 128 ビット暗号化、およびメッセージ ダイジェストに MD5 を使用した RSA のキー交換
3. SSL_RSA_WITH_RC4_128_SHA:RC4 128 ビット暗号化、およびメッセージ ダイジェストに SHA を使用した RSA のキー交換
4. SSL_RSA_WITH_3DES_EDE_CBC_SHA:メッセージの暗号化に 3DES と DES-EDE3-CBC、およびメッセージ ダイジェストに SHA を使用した RSA のキー交換(RSA 公開キー暗号化)
(暗号化およびダイジェスト アルゴリズムをそれぞれ指定して組み合わせた)RSA は、SSL 接続においてキーの生成および認証の両方に使用されます。これは、CA のトラストポイントが設定されているかどうかにかかわりません。
SSL のデフォルト設定
標準の HTTP サーバはイネーブルに設定されています。
SSL はイネーブルに設定されています。
CA のトラストポイントは設定されていません。
自己署名証明書は生成されていません。
SSL の設定時の注意事項
SSL をスイッチ クラスタで使用すると、SSL セッションがクラスタ コマンダで終了します。クラスタ メンバのスイッチは標準の HTTP で動作させる必要があります。
CA のトラストポイントを設定する前に、システム クロックが設定されていることを確認してください。クロックが設定されていないと、不正な日付により証明書が拒否されます。
スイッチ スタック内のスタック マスターで、SSL セッションが強制終了されます。
CA のトラストポイントの設定
セキュア HTTP 接続には、CA のトラストポイントを正式に設定することを推奨します。CA のトラストポイントは、自己署名証明書より高いセキュリティがあります。
CA のトラストポイントを設定するには、特権 EXEC モードで次の手順を実行します。
|
|
|
ステップ 1 |
configure terminal |
グローバル コンフィギュレーション モードを開始します。 |
ステップ 2 |
hostname hostname |
スイッチのホスト名を指定します(以前ホスト名を設定していない場合のみ必須)。ホスト名はセキュリティ キーと証明書に必要です。 |
ステップ 3 |
ip domain-name domain-name |
スイッチの IP ドメイン名を指定します(以前 IP ドメイン名を設定していない場合のみ必須)。IP ドメイン名はセキュリティ キーと証明書に必要です。 |
ステップ 4 |
crypto key generate rsa |
(任意)RSA キーのペアを生成します。RSA キーのペアは、スイッチの証明書を入手する前に必要です。RSA キーのペアは自動的に生成されます。必要であれば、このコマンドを使用してキーを再生成できます。 |
ステップ 5 |
crypto ca trustpoint name |
CA のトラストポイントにローカルの設定名を指定して、CA トラストポイント コンフィギュレーション モードを開始します。 |
ステップ 6 |
enrollment url url |
証明書の要求の送信先スイッチの URL を指定します。 |
ステップ 7 |
enrollment http-proxy host-name port-number |
(任意)HTTP プロキシ サーバを経由して CA から証明書を入手するようにスイッチを設定します。 |
ステップ 8 |
crl query url |
ピアの証明書が取り消されていないかを確認するために、Certificate Revocation List(CRL; 証明書失効リスト)を要求するようにスイッチを設定します。 |
ステップ 9 |
primary |
(任意)トラストポイントが CA 要求に対してプライマリ(デフォルト)トラストポイントとして使用されるように指定します。 |
ステップ 10 |
exit |
CA トラストポイント コンフィギュレーション モードを終了し、グローバル コンフィギュレーション モードに戻ります。 |
ステップ 11 |
crypto ca authentication name |
CA の公開キーを取得して CA を認証します。ステップ 5 で使用した名前と同じものを使用します。 |
ステップ 12 |
crypto ca enroll name |
指定の CA のトラストポイントから証明書を取得します。このコマンドは、各 RSA キーのペアに対して 1 つの署名入りの証明書を要求します。 |
ステップ 13 |
end |
特権 EXEC モードに戻ります。 |
ステップ 14 |
show crypto ca trustpoints |
設定を確認します。 |
ステップ 15 |
copy running-config startup-config |
(任意)コンフィギュレーション ファイルに設定を保存します。 |
no crypto ca trustpoint name グローバル コンフィギュレーション コマンドを使用して、CA に関連するすべての ID 情報および証明書を削除できます。
セキュア HTTP サーバの設定
証明に証明書の認証を使用する場合、前の手順を使用してスイッチの CA トラストポイントを設定してから、HTTP サーバを有効にする必要があります。CA のトラストポイントを設定していない場合、セキュア HTTP サーバを最初に有効にした時点で、自己署名証明書が生成されます。サーバを設定した後、標準およびセキュア HTTP サーバ両方に適用するオプション(パス、適用するアクセス リスト、最大接続数、またはタイムアウト ポリシー)を設定できます。
セキュア HTTP サーバを設定するには、特権 EXEC モードで次の手順を実行します。
|
|
|
ステップ 1 |
show ip http server status |
(任意)HTTP サーバのステータスを表示して、セキュア HTTP サーバの機能がソフトウェアでサポートされているかどうかを判断します。出力で、次のラインのどちらかを確認してください。
HTTP secure server capability: Present
HTTP secure server capability: Not present
|
ステップ 2 |
configure terminal |
グローバル コンフィギュレーション モードを開始します。 |
ステップ 3 |
ip http secure-server |
HTTPS サーバがディセーブルの場合、イネーブルにします。HTTPS サーバは、デフォルトでイネーブルに設定されています。 |
ステップ 4 |
ip http secure-port port-number |
(任意)HTTPS サーバに使用するポート番号を指定します。デフォルトのポート番号は 443 です。443 または 1025 ~ 65535 の範囲で指定できます。 |
ステップ 5 |
ip http secure-ciphersuite {[ 3des-ede-cbc-sha ] [ rc4-128-md5 ] [ rc4-128-sha ] [ des-cbc-sha ]} |
(任意)HTTPS 接続の暗号化に使用する CipherSuite(暗号化アルゴリズム)を指定します。特定の CipherSuite を指定する理由がなければ、サーバとクライアントが、両方がサポートする CipherSuite でネゴシエートするように設定します。これはデフォルトです。 |
ステップ 6 |
ip http secure-client-auth |
(任意)HTTP サーバを設定して、接続処理の間、認証のために、クライアントからの X.509v3 証明書を要求します。デフォルトでは、クライアントがサーバからの証明書を要求する設定になっていますが、サーバはクライアントを認証しないようになっています。 |
ステップ 7 |
ip http secure-trustpoint name |
X.509v3 セキュリティ証明書の取得およびクライアントの証明書接続の認証に使用する CA のトラストポイントを指定します。 (注) このコマンドの使用は、前の手順に従って CA のトラストポイントをすでに設定しているという前提を踏まえて説明しています。 |
ステップ 8 |
ip http path path-name |
(任意)HTML ファイルのベースとなる HTTP パスを設定します。パスは、ローカル システムにある HTTP サーバ ファイルの場所を指定します(通常、システムのフラッシュ メモリを指定します)。 |
ステップ 9 |
ip http access-class access-list-number |
(任意)HTTP サーバへのアクセスの許可に使用するアクセス リストを指定します。 |
ステップ 10 |
ip http max-connections value |
(任意)HTTP サーバへの同時最大接続数を指定します。指定できる範囲は 1 ~ 16 です。デフォルトは 5 です。 |
ステップ 11 |
ip http timeout-policy idle seconds life seconds requests value |
(任意)指定の状況下における、HTTP サーバへの接続最大時間を指定します。 • idle :データの受信がないか、応答データが送信できない場合の最大時間。指定できる範囲は 1 ~ 600 秒です。デフォルト値は 180 秒(3 分)です。 • life :接続を確立している最大時間。指定できる範囲は 1 ~ 86400 秒(24 時間)です。デフォルト値は 180 秒です。 • requests :永続的な接続で処理される要求の最大数。最大値は 86400 です。デフォルトは 1 です。 |
ステップ 12 |
end |
特権 EXEC モードに戻ります。 |
ステップ 13 |
show ip http server secure status |
セキュア HTTP サーバのステータスを表示して、設定を確認します。 |
ステップ 14 |
copy running-config startup-config |
(任意)コンフィギュレーション ファイルに設定を保存します。 |
標準の HTTP サーバをディセーブルにするには、 no ip http server グローバル コンフィギュレーション コマンドを使用します。セキュア HTTP サーバをディセーブルにするには、 no ip http secure-server グローバル コンフィギュレーション コマンドを使用します。デフォルトの設定に戻すには、 no ip http secure-port および no ip http secure-ciphersuite グローバル コンフィギュレーション コマンドを使用します。クライアント認証の要件を削除するには、 no ip http secure-client-auth グローバル コンフィギュレーション コマンドを使用します。
Web ブラウザを使用してセキュア HTTP 接続を確認するには、https:// URL を入力します(URL は IP アドレス、またはサーバ スイッチのホスト名)。デフォルト ポート以外のポートを設定している場合、URL の後ろにポート番号も指定する必要があります。次に例を示します。
または
https://host.domain.com:1026
セキュア HTTP クライアントの設定
標準の HTTP クライアントおよびセキュア HTTP クライアントは常にイネーブルです。証明書の認証にはセキュア HTTP クライアントの証明書が必要です。次の手順では、前の手順で CA のトラストポイントをスイッチに設定していることを前提にしています。CA のトラストポイントが設定されておらず、リモートの HTTPS サーバがクライアントの認証を要求した場合、セキュア HTTP クライアントへの接続は失敗します。
セキュア HTTP クライアントを設定するには、特権 EXEC モードで次の手順を実行します。
|
|
|
ステップ 1 |
configure terminal |
グローバル コンフィギュレーション モードを開始します。 |
ステップ 2 |
ip http client secure-trustpoint name |
(任意)リモートの HTTP サーバがクライアント認証を要求した場合に使用する、CA のトラストポイントを指定します。このコマンドの使用は、前の手順を使用して CA のトラストポイントをすでに設定しているという前提を踏まえて説明しています。クライアント認証が必要ない場合、またはプライマリのトラストポイントがすでに設定されている場合は、このコマンドは任意です。 |
ステップ 3 |
ip http client secure-ciphersuite {[ 3des-ede-cbc-sha ] [ rc4-128-md5 ] [ rc4-128-sha ] [ des-cbc-sha ]} |
(任意)HTTPS 接続の暗号化に使用する CipherSuite(暗号化アルゴリズム)を指定します。特定の CipherSuite を指定する理由がなければ、サーバとクライアントが、両方がサポートする CipherSuite でネゴシエートするように設定します。これはデフォルトです。 |
ステップ 4 |
end |
特権 EXEC モードに戻ります。 |
ステップ 5 |
show ip http client secure status |
セキュア HTTP サーバのステータスを表示して、設定を確認します。 |
ステップ 6 |
copy running-config startup-config |
(任意)コンフィギュレーション ファイルに設定を保存します。 |
クライアントのトラストポイントの設定を削除するには、 no ip http client secure-trustpoint name コマンドを使用します。クライアントにすでに設定されている CipherSuite 仕様を削除するには、 no ip http client secure-ciphersuite コマンドを使用します。
セキュア HTTP サーバおよびクライアントのステータスの表示
SSL セキュア サーバおよびクライアントのステータスを表示するには、 表 9-6 に記載された特権 EXEC コマンドを使用します。
表 9-6 SSL セキュア サーバおよびクライアントのステータスを表示するコマンド
|
|
show ip http client secure status |
セキュア HTTP クライアントの設定を表示します。 |
show ip http server secure status |
セキュア HTTP サーバの設定を表示します。 |
show running-config |
セキュア HTTP 接続に対して生成された自己署名証明書を表示します。 |