この章では、 Catalyst 2960 スイッチ上でスイッチ ベース認証の設定を行う方法について説明します。
- ・ スイッチへの不正アクセスの防止
- ・ イネーブル EXEC コマンドへのアクセスの保護
- ・ TACACS+ によるスイッチ アクセスの制御
- ・ RADIUS によるスイッチ アクセスの制御
- ・ スイッチのローカル認証および許可の設定
- ・ SSH のためのスイッチの設定
- ・ SSL HTTP のためのスイッチの設定
- ・ SCP のためのスイッチの設定
スイッチへの不正アクセスの防止
不正ユーザによる、スイッチの再設定や設定情報の閲覧を防止できます。一般的には、ネットワーク管理者からスイッチへのアクセスを許可する一方、非同期ポートを用いてネットワーク外からダイヤルアップ接続するユーザや、シリアル ポートを通じてネットワーク外から接続するユーザ、またはローカル ネットワーク内の端末またはワークステーションから接続するユーザによるアクセスを制限します。
スイッチへの不正アクセスを防止するには、次のセキュリティ機能を 1 つまたは複数設定します。
- ・ 最低限のセキュリティとして、各スイッチ ポートでパスワードおよび権限を設定します。このパスワードは、スイッチにローカルに保存されます。ユーザがポートまたは回線を通じてスイッチにアクセスしようとするとき、ポートまたは回線に指定されたパスワードを入力してからでなければ、スイッチにアクセスできません。詳細については、 イネーブル EXEC コマンドへのアクセスの保護 を参照してください。
- ・ 追加のセキュリティ レイヤとして、ユーザ名とパスワードをペアで設定できます。このペアはスイッチでローカルに保存されます。このペアは回線またはポートに割り当てられ、各ユーザを認証します。ユーザは認証後、スイッチにアクセスできます。権限レベルを定義している場合は、ユーザ名とパスワードの各ペアに特定の権限レベルを、対応する権利および権限とともに割り当てることもできます。詳細については、 ユーザ名とパスワードのペアの設定 を参照してください。
- ・ ユーザ名とパスワードのペアを使用したいが、そのペアをローカルではなく中央のサーバに保存したい場合は、セキュリティ サーバ上のデータベースに保存できます。これにより、複数のネットワーク装置が同じデータベースを使用してユーザ認証情報を(必要に応じて許可情報も)得ることができます。詳細については、 TACACS+ によるスイッチ アクセスの制御 を参照してください。
イネーブル EXEC コマンドへのアクセスの保護
ネットワークで端末のアクセス制御を行う簡単な方法は、パスワードを使用して権限レベルを割り当てることです。パスワード保護によって、ネットワークまたはネットワーク装置へのアクセスが制限されます。権限レベルによって、ネットワーク装置にログイン後、ユーザがどのようなコマンドを使用できるかが定義されます。
- ・ デフォルトのパスワードおよび権限レベル設定
- ・ スタティック イネーブル パスワードの設定または変更
- ・ 暗号化によるイネーブルおよびイネーブル シークレット パスワードの保護
- ・ パスワード回復のディセーブル化
- ・ 端末回線に対する Telnet パスワードの設定
- ・ ユーザ名とパスワードのペアの設定
- ・ 複数の権限レベルの設定
デフォルトのパスワードおよび権限レベル設定
表8-1 に、デフォルトのパスワードおよび権限レベル設定を示します。
スタティック イネーブル パスワードの設定または変更
イネーブル パスワードは、イネーブル EXEC モードへのアクセスを制御します。スタティック イネーブル パスワードを設定または変更するには、イネーブル EXEC モードで次の手順を実行します。
パスワードを削除するには、 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 モードで次の手順を実行します。
イネーブル パスワードとイネーブル シークレット パスワードの両方が定義されている場合、ユーザはイネーブル シークレット パスワードを入力する必要があります。
特定の権限レベルのパスワードを定義する場合は、 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(仮想 LAN)データベース ファイル(vlan.dat)は削除されます。
パスワードの回復をディセーブルにするには、イネーブルEXECモードで次の手順を実行します。
|
この設定は、フラッシュ メモリの中で、ブート ローダおよび Cisco IOS イメージがアクセスできる領域に保存されますが、ファイル システムには含まれません。また、ユーザがアクセスすることはできません。 |
||
パスワードの回復を再びイネーブルにする場合は、 service password-recovery グローバル コンフィギュレーション コマンドを使用します。
端末回線に対する Telnet パスワードの設定
初めてスイッチに電源を投入すると、自動セットアップ プログラムが起動して IP 情報を割り当て、このあと続けて使用できるようにデフォルト設定を作成します。さらに、セットアップ プログラムは、パスワードによる Telnet アクセス用にスイッチを設定することを要求します。セットアップ プログラムの実行中にこのパスワードを設定しなかった場合は、この時点で CLI(コマンドライン インターフェイス)を使用して設定できます。
スイッチを Telnet アクセス用に設定するには、イネーブル EXEC モードで次の手順を実行します。
パスワードを削除するには、 no password グローバル コンフィギュレーション コマンドを使用します。
次に、Telnet パスワードを let45me67in89 に設定する例を示します。
Switch(config-line)# password let45me67in89
ユーザ名とパスワードのペアの設定
ユーザ名とパスワードのペアを設定できます。このペアはスイッチ上でローカルに保存されます。このペアは回線またはポートに割り当てられ、各ユーザを認証します。ユーザは認証後、スイッチにアクセスできます。権限レベルを定義している場合は、ユーザ名とパスワードの各ペアに特定の権限レベルを、対応する権利および権限とともに割り当てることもできます。
ユーザ名ベースの認証システムを設定するには、イネーブル EXEC モードで次の手順を実行します。この認証システムでは、ログイン ユーザ名とパスワードが要求されます。
特定ユーザのユーザ名認証をディセーブルにするには、 no username name グローバル コンフィギュレーション コマンドを使用します。パスワード チェックをディセーブルにし、パスワードなしでの接続を可能にするには、 no login ライン コンフィギュレーション コマンドを使用します。
複数の権限レベルの設定
Cisco IOS ソフトウェアはデフォルトで、2 つのパスワード セキュリティ モードを使用します。ユーザ EXEC とイネーブル EXEC です。モードごとに、コマンドの階層レベルを 16 まで設定できます。複数のパスワードを設定することにより、さまざまなユーザ グループに対して特定のコマンドへのアクセスを許可できます。
たとえば、多くのユーザに clear line コマンドへのアクセスを許可する場合、レベル 2 のセキュリティを割り当て、レベル 2 のパスワードを広範囲のユーザに配布できます。また、 configure コマンドへのアクセス制限を強化する場合は、レベル 3 のセキュリティを割り当て、そのパスワードを限られたユーザ グループに配布することもできます。
コマンドの権限レベルの設定
コマンド モードの権限レベルを設定するには、イネーブル EXEC モードで次の手順を実行します。
|
show running-config コマンドはパスワードとアクセス レベルの設定を表示します。 show privilege コマンドは、権限レベルの設定を表示します。 |
||
コマンドをある権限レベルに設定すると、構文がそのコマンドのサブセットであるコマンドはすべて、そのレベルに設定されます。たとえば、 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 モードで次の手順を実行します。
|
level に指定できる範囲は 0 〜 15 です。レベル 1 が通常のユーザ EXEC モード権限です。レベル 15 は、 enable パスワードによって許可されるアクセス レベルです。 |
||
|
show running-config コマンドはパスワードとアクセス レベルの設定を表示します。 show privilege コマンドは、権限レベルの設定を表示します。 |
||
ユーザは、回線にログインし、別の権限レベルをイネーブルに設定することにより、 privilege level ライン コンフィギュレーション コマンドを使用して設定された権限レベルを上書きできます。また、 disable コマンドを使用することにより、権限レベルを引き下げることができます。上位の権限レベルのパスワードがわかっていれば、ユーザはそのパスワードを使用して上位の権限レベルをイネーブルにできます。回線の使用を制限するには、コンソール回線に高いレベルまたは権限レベルを指定してください。
回線をデフォルトの権限レベルに戻すには、 no privilege level ライン コンフィギュレーション コマンドを使用します。
権限レベルへのログインおよび終了
指定した権限レベルにログインする、または指定した権限レベルに戻るには、イネーブル EXEC モードで次の手順を実行します。
TACACS+ によるスイッチ アクセスの制御
ここでは、Terminal Access Controller Access Control System Plus(TACACS+)をイネーブルにして設定する方法について説明します。TACACS+ は、詳細なアカウンティング情報を収集し、認証および許可プロセスに対して柔軟な管理を行います。TACACS+ は、Authentication, Authorization, Accounting(AAA; 認証、許可、アカウンティング)機能が拡張されており、TACACS+ をイネーブルにするには AAA コマンドを使用しなければなりません。
TACACS+ の概要
TACACS+ は、スイッチにアクセスしようとするユーザの評価を集中的に行うセキュリティ アプリケーションです。TACACS+ サービスは、通常 UNIX または Windows NT ワークステーション上で稼働する TACACS+ デーモンのデータベースで管理されます。スイッチに TACACS+ 機能を設定するには、TACACS+ サーバにアクセスして TACACS+ サーバを設定しておく必要があります。
TACACS+ は、個別のモジュール型 AAA 機能を備えています。TACACS+ では、単一のアクセス制御サーバ(TACACS+ デーモン)が各サービス(認証、許可、およびアカウンティング)を別個に提供します。各サービスを固有のデータベースに結合し、デーモンの機能に応じてそのサーバまたはネットワークで使用できる他のサービスを使用できます。
TACACS+ の目的は、1 つの管理サービスから複数のネットワーク アクセス ポイントを管理する方式を提供することです。スイッチは、他のシスコ製ルータやアクセス サーバとともにネットワーク アクセス サーバにすることができます。ネットワーク アクセス サーバは、個々のユーザ、ネットワークまたはサブネットワーク、および相互接続されたネットワークとの接続を実現します( 図8-1 を参照)。
図8-1 一般的な TACACS+ ネットワーク構成
TACACS+ は、AAA セキュリティ サービスによって管理され、次のようなサービスを提供します。
認証機能は、ユーザとの対話を実行できます(たとえば、ユーザ名とパスワードが入力されたあと、自宅の住所、母親の旧姓、サービス タイプ、社会保険番号などのいくつかの質問をすることによりユーザを試します)。TACACS+ 認証サービスは、ユーザ画面にメッセージを送信することもできます。たとえば、会社のパスワード有効期間ポリシーに従い、パスワードの変更の必要があることをユーザに通知することもできます。
- ・ 許可 ― autocommand、アクセス制御、セッション期間、プロトコル サポートの設定といった、ユーザ セッション時のユーザ機能についてきめ細かく制御します。また、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+ をサポートするようにスイッチを設定する方法について説明します。最低限、TACACS+ デーモンを維持するホスト(1 つまたは複数)を特定し、TACACS+ 認証の方式リストを定義する必要があります。また、任意で TACACS+ 許可およびアカウンティングの方式リストを定義することもできます。方式リストによって、ユーザの認証、許可、またはアカウント維持のための順序と方式を定義します。方式リストを使用して、使用するセキュリティ プロトコルを 1 つまたは複数指定できるので、最初の方式が失敗した場合のバックアップ システムが確保されます。ソフトウェアは、リスト内の最初の方式を使用してユーザの認証、許可、アカウントの維持を行います。その方式で応答が得られなかった場合、ソフトウェアはそのリストから次の方式を選択します。このプロセスは、リスト内の方式による通信が成功するか、方式リストの方式をすべて試し終わるまで続きます。
- ・ TACACS+ のデフォルト設定
- ・ TACACS+ サーバ ホストの特定および認証鍵の設定
- ・ TACACS+ ログイン認証の設定
- ・ イネーブル EXEC アクセスおよびネットワーク サービス用の TACACS+ 許可の設定
- ・ TACACS+ アカウンティングの起動
TACACS+ のデフォルト設定
TACACS+ と AAA は、デフォルトでディセーブルに設定されます。
セキュリティの失効を防止するため、ネットワーク管理アプリケーションを使用して TACACS+ を設定することはできません。TACACS+ をイネーブルに設定した場合、CLI を通じてスイッチにアクセスするユーザを認証できます。
TACACS+ サーバ ホストの特定および認証鍵の設定
認証用に 1 つのサーバを使用することも、また、既存のサーバ ホストをグループ化するために AAA サーバ グループを使用するように設定することもできます。サーバをグループ化して設定済みサーバ ホストのサブセットを選択し、特定のサービスにそのサーバを使用できます。サーバ グループは、グローバル サーバ ホスト リストとともに使用され、選択されたサーバ ホストの IP アドレスのリストが含まれています。
TACACS+ サーバを維持する IP ホストを特定し、任意で暗号鍵を設定するには、イネーブル EXEC モードで次の手順を実行します。
指定された TACACS+ サーバ名またはアドレスを削除するには、 no tacacs-server host hostname グローバル コンフィギュレーション コマンドを使用します。設定リストからサーバ グループを削除するには、 no aaa group server tacacs+ group-name グローバル コンフィギュレーション コマンドを使用します。TACACS+ サーバの IP アドレスを削除するには、 no server ip-address サーバ グループ サブコンフィギュレーション コマンドを使用します。
TACACS+ ログイン認証の設定
AAA 認証を設定するには、認証方式の名前付きリストを作成してから、各種ポートにそのリストを適用します。方式リストは実行される認証のタイプと実行順序を定義します。このリストを特定のポートに適用してから、定義済み認証方式を実行する必要があります。唯一の例外はデフォルトの方式リスト(偶然に default と名前が付けられている)です。デフォルトの方式リストは、名前付き方式リストを明示的に定義されたインターフェイスを除いて、自動的にすべてのポートに適用されます。定義済みの方式リストは、デフォルトの方式リストに優先します。
方式リストは、ユーザ認証のためにクエリー送信を行う手順と認証方式を記述したものです。認証に使用する 1 つまたは複数のセキュリティ プロトコルを指定できるので、最初の方式が失敗した場合のバックアップ システムが確保されます。ソフトウェアは、リスト内の最初の方式を使用してユーザを認証します。その方式で応答が得られなかった場合、ソフトウェアはそのリストから次の方式を選択します。このプロセスは、リスト内の認証方式による通信が成功するか、定義された方式をすべて試し終わるまで繰り返されます。この処理のある時点で認証が失敗した場合(つまり、セキュリティ サーバまたはローカルのユーザ名データベースがユーザ アクセスを拒否すると応答した場合)、認証プロセスは停止し、それ以上認証方式が試行されることはありません。
ログイン認証を設定するには、イネーブル EXEC モードで次の手順を実行します。
|
aaa authentication login { default | list-name } method1 [ method2... ] |
|
|
|
line [ console | tty | vty ] line-number [ ending-line-number ] |
||
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+ を使用しなかった場合は、ローカル データベースを使用します。
イネーブル EXEC アクセスおよびネットワーク サービスに関する TACACS+ 許可を指定するには、イネーブル EXEC モードで次の手順を実行します。
|
ユーザにイネーブル EXEC のアクセス権限がある場合、ユーザ TACACS+ 許可をスイッチに設定します。 exec キーワードを指定すると、ユーザ プロファイル情報( autocommand 情報など)が返される場合があります。 |
||
許可をディセーブルにするには、 no aaa authorization { network | exec } method1 グローバル コンフィギュレーション コマンドを使用します。
TACACS+ アカウンティングの起動
AAA アカウンティング機能は、ユーザがアクセスしたサービスと、消費したネットワーク リソース量を追跡します。AAA アカウンティングをイネーブルにすると、スイッチはユーザの活動状況をアカウンティング レコードの形式で TACACS+ セキュリティ サーバに報告します。各アカウンティング レコードは、アカウンティングの属性値(AV)ペアを含み、セキュリティ サーバに保存されます。このデータを解析して、ネットワーク管理、クライアントへの課金、または監査に役立てることができます。
Cisco IOS の権限レベルおよびネットワーク サービスに関する TACACS+ アカウンティングをイネーブルにするには、イネーブル EXEC モードで次の手順を実行します。
|
TACACS+ アカウンティングにより、イネーブル EXEC プロセスの最初に記録開始アカウンティング通知、最後に記録停止通知を送信するように設定します。 |
||
アカウンティングをディセーブルにするには、 no aaa accounting { network | exec } { start-stop } method1... グローバル コンフィギュレーション コマンドを使用します。
TACACS+ 設定の表示
TACACS+ サーバ統計情報を表示するには、 show tacacs イネーブル EXEC コマンドを使用します。
RADIUS によるスイッチ アクセスの制御
ここでは、Remote Authentication Dial-In User Service(RADIUS)をイネーブルにして設定する方法について説明します。RADIUS は、詳細なアカウンティング情報を収集し、認証および許可プロセスに対して柔軟な管理を行います。RADIUS は、AAA を介して実装され、AAA コマンドを使用してのみイネーブルにできます。
- ・ RADIUS の概要
- ・ RADIUS の動作
- ・ RADIUS の設定
- ・ RADIUS の設定の表示
RADIUS の概要
RADIUS は分散型クライアント/サーバ システムで、不正なアクセスからネットワークを保護します。RADIUS クライアントは、サポート対象のシスコ製ルータおよびスイッチ上で稼働します。クライアントは中央の RADIUS サーバに認証要求を送ります。中央の RADIUS サーバにはすべてのユーザ認証情報、ネットワーク サービス アクセス情報が登録されています。RADIUS ホストは、通常、シスコ(Cisco Secure Access Control Server バージョン 3.0)、Livingston、Merit、Microsoft、または他のソフトウェア プロバイダーの RADIUS サーバ ソフトウェアが稼働しているマルチユーザ システムです。詳細については、RADIUS サーバのマニュアルを参照してください。
RADIUS は、アクセスのセキュリティが必要な、次のネットワーク環境で使用します。
- ・ それぞれが RADIUS をサポートする、マルチベンダー アクセス サーバによるネットワーク。たとえば、いくつかのベンダーのアクセス サーバが、1 つの RADIUS サーバベース セキュリティ データベースを使用します。複数ベンダーのアクセス サーバからなる IP ベースのネットワークでは、ダイヤルイン ユーザは RADIUS サーバを通じて認証されます。RADIUS サーバは、Kerberos セキュリティ システムで動作するようにカスタマイズされています。
- ・ アプリケーションが RADIUS プロトコルをサポートするターンキー ネットワーク セキュリティ環境。たとえば、 スマート カード アクセス制御システムを使用するアクセス環境。あるケースでは、RADIUS は Enigma のセキュリティ カードとともに使用してユーザを確認し、ネットワーク リソースのアクセスを許可します。
- ・ すでに RADIUS を使用中のネットワーク。RADIUS クライアント装備のシスコ製スイッチをネットワークに追加できます。これが TACACS+ サーバへの移行の最初のステップとなることもあります。 図8-2RADIUS サービスから TACACS+ サービスへの移行 を参照してください。
- ・ ユーザが 1 つのサービスにしかアクセスできないネットワーク。RADIUS を使用すると、1 つのホスト、Telnet などの 1 つのユーティリティ、またはネットワークへのユーザ アクセスを、 IEEE 802.1x などのプロトコルを使用して制御できます。このプロトコルの詳細については、 第9章 「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 つのサービス モデルにバインドします。
図8-2 RADIUS サービスから TACACS+ サービスへの移行
RADIUS の動作
RADIUS サーバによってアクセス制御されるスイッチに、ユーザがログインおよび認証を試みると、次のイベントが発生します。
- 1. ユーザ名およびパスワードの入力を要求するプロンプトが表示されます。
- 2. ユーザ名および暗号化されたパスワードが、ネットワーク経由で RADIUS サーバに送信されます。
- 3. ユーザは RADIUS サーバから、次のいずれかの応答を受信します。
b. REJECT ― ユーザの認証が失敗し、ユーザ名およびパスワードの再入力が要求されるか、またはアクセスが拒否されます。
c. CHALLENGE ― ユーザに追加データを要求します。
d. CHALLENGE PASSWORD ― ユーザは新しいパスワードを選択するように要求されます。
ACCEPT または REJECT 応答には、イネーブル EXEC またはネットワーク認証に使用する追加データがバンドルされています。ユーザは RADIUS 許可に進む前に、まず RADIUS 認証を正常に完了する必要があります(イネーブルに設定されている場合)。ACCEPT または REJECT パケットには次の追加データが含まれます。
RADIUS の設定
ここでは、スイッチが RADIUS をサポートするように設定する方法について説明します。最低限、RADIUS サーバ ソフトウェアが稼働するホスト(1 つまたは複数)を特定し、RADIUS 認証の方式リストを定義する必要があります。また、任意で RADIUS 許可およびアカウンティングの方式リストを定義できます。
方式リストによって、ユーザの認証、許可、またはアカウント維持のための順序と方式を定義します。方式リストを使用して、使用するセキュリティ プロトコル(TACACS+、ローカル ユーザ名検索など)を 1 つまたは複数指定できるので、最初の方式が失敗した場合のバックアップ システムが確保されます。ソフトウェアは、リスト内の最初の方式を使用してユーザの認証、許可、アカウントの維持を行います。その方式で応答が得られなかった場合、ソフトウェアはそのリストから次の方式を選択します。このプロセスは、リスト内の方式による通信が成功するか、方式リストの方式をすべて試し終わるまで続きます。
スイッチ上で RADIUS 機能の設定を行う前に、RADIUS サーバにアクセスし、サーバを設定する必要があります。
- ・ RADIUS のデフォルト設定
- ・ RADIUS サーバ ホストの識別 (必須)
- ・ RADIUS ログイン認証の設定 (必須)
- ・ AAA サーバ グループの定義 (任意)
- ・ ユーザ イネーブル アクセスおよびネットワーク サービスに関する RADIUS 許可の設定 (任意)
- ・ RADIUS アカウンティングの起動 (任意)
- ・ すべての RADIUS サーバの設定 (任意)
- ・ ベンダー固有の RADIUS 属性を使用するスイッチ設定 (任意)
- ・ ベンダー独自の RADIUS サーバとの通信に関するスイッチ設定 (任意)
RADIUS のデフォルト設定
RADIUS および AAA は、デフォルトではディセーブルに設定されています。
セキュリティの失効を防止するため、ネットワーク管理アプリケーションを使用して RADIUS を設定することはできません。RADIUS をイネーブルに設定した場合、CLI を通じてスイッチにアクセスするユーザを認証できます。
RADIUS サーバ ホストの識別
スイッチと RADIUS サーバの通信には、いくつかの要素が関与します。
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 グローバル コンフィギュレーション コマンドを使用します。
既存のサーバ ホストを認証用にグループ化するため、AAA サーバ グループを使用するようにスイッチを設定できます。詳細については、 AAA サーバ グループの定義 を参照してください。
サーバ単位で RADIUS サーバとの通信を設定するには、イネーブル EXEC モードで次の手順を実行します。この手順は必須です。
特定の 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 ログイン認証の設定
AAA 認証を設定するには、認証方式の名前付きリストを作成してから、各種ポートにそのリストを適用します。方式リストは実行される認証のタイプと実行順序を定義します。このリストを特定のポートに適用してから、定義済み認証方式を実行する必要があります。唯一の例外はデフォルトの方式リスト(偶然に default と名前が付けられている)です。デフォルトの方式リストは、名前付き方式リストを明示的に定義されたインターフェイスを除いて、自動的にすべてのポートに適用されます。
方式リストは、ユーザ認証のためにクエリー送信を行う手順と認証方式を記述したものです。認証に使用する 1 つまたは複数のセキュリティ プロトコルを指定できるので、最初の方式が失敗した場合のバックアップ システムが確保されます。ソフトウェアは、リスト内の最初の方式を使用してユーザを認証します。その方式で応答が得られなかった場合、ソフトウェアはそのリストから次の方式を選択します。このプロセスは、リスト内の認証方式による通信が成功するか、定義された方式をすべて試し終わるまで繰り返されます。この処理のある時点で認証が失敗した場合(つまり、セキュリティ サーバまたはローカルのユーザ名データベースがユーザ アクセスを拒否すると応答した場合)、認証プロセスは停止し、それ以上認証方式が試行されることはありません。
ログイン認証を設定するには、イネーブル EXEC モードで次の手順を実行します。この手順は必須です。
|
aaa authentication login { default | list-name } method1 [ method2... ] |
|
|
|
line [ console | tty | vty ] line-number [ ending-line-number ] |
||
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 アドレスのリストを含むグローバルなサーバ ホスト リストとともに使用されます。
サーバ グループには、同じサーバの複数のホスト エントリを含めることもできますが、各エントリが一意の ID(IP アドレスと UDP ポート番号の組み合わせ)を持っていることが条件です。この場合、個々のポートをそれぞれ特定の AAA サービスを提供する RADIUS ホストとして定義できます。同じ RADIUS サーバ上の異なる 2 つのホスト エントリに同じサービス(たとえばアカウンティング)を設定した場合、2 番めに設定したホスト エントリは、最初に設定したホスト エントリのフェールオーバー バックアップとして動作します。
定義したグループ サーバに特定のサーバを対応付けるには、 server グループ サーバ コンフィギュレーション コマンドを使用します。サーバを IP アドレスで特定することもできますし、任意指定の auth-port および acct-port キーワードを使用して複数のホスト インスタンスまたはエントリを特定することもできます。
AAA サーバ グループを定義し、そのグループに特定の RADIUS サーバを対応付けるには、イネーブル EXEC モードで次の手順を実行します。
|
radius-server host { hostname | ip-address } [ auth-port port-number ] [ acct-port port-number ] [ timeout seconds ] [ retransmit retries ] [ key string ] |
リモート RADIUS サーバ ホストの IP アドレスまたはホスト名を指定します。
1 つの IP アドレスに対応する複数のホスト エントリをスイッチが認識するように設定するには、それぞれ異なる UDP ポート番号を使用して、このコマンドを必要な回数だけ入力します。スイッチ ソフトウェアは、指定された順序に従って、ホストを検索します。各 RADIUS ホストで使用するタイムアウト、再送信回数、および暗号鍵をそれぞれ設定してください。 |
|
|
特定の RADIUS サーバを定義済みのサーバ グループに対応付けます。AAA サーバ グループの RADIUS サーバごとに、このステップを繰り返します。 |
||
|
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 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 許可をイネーブルにすると、スイッチは(ローカル ユーザ データベースまたはセキュリティ サーバ上に存在する)ユーザのプロファイルから取得した情報を使用して、ユーザのセッションを設定します。ユーザは、ユーザ プロファイル内の情報で認められている場合に限り、要求したサービスのアクセスが認可されます。
イネーブル EXEC モードへのユーザのネットワーク アクセスを制限するパラメータを設定するには、 aaa authorization グローバル コンフィギュレーション コマンドとともに radius キーワードを使用します。
aaa authorization exec radius local コマンドは、次の許可パラメータを設定します。
- ・ RADIUS を使用して認証を行った場合は、RADIUS を使用してイネーブル EXEC アクセスを許可します。
- ・ 認証に RADIUS を使用しなかった場合は、ローカル データベースを使用します。
イネーブル EXEC アクセスおよびネットワーク サービスに関する RADIUS 許可を指定するには、イネーブル EXEC モードで次の手順を実行します。
|
ユーザにイネーブル EXEC のアクセス権限がある場合、ユーザ RADIUS 許可を、スイッチに設定します。 exec キーワードを指定すると、ユーザ プロファイル情報( autocommand 情報など)が返される場合があります。 |
||
許可をディセーブルにするには、 no aaa authorization { network | exec } method1 グローバル コンフィギュレーション コマンドを使用します。
RADIUS アカウンティングの起動
AAA アカウンティング機能は、ユーザがアクセスしたサービスと、消費したネットワーク リソース量を追跡します。AAA アカウンティングをイネーブルにすると、スイッチはユーザの活動状況をアカウンティング レコードの形式で RADIUS セキュリティ サーバに報告します。各アカウンティング レコードは、アカウンティングの属性値(AV)ペアを含み、セキュリティ サーバに保存されます。このデータを解析して、ネットワーク管理、クライアントへの課金、または監査に役立てることができます。
Cisco IOS の権限レベルおよびネットワーク サービスに関する RADIUS アカウンティングをイネーブルにするには、イネーブル EXEC モードで次の手順を実行します。
|
RADIUS アカウンティングにより、イネーブル EXEC プロセスの最初に記録開始アカウンティング通知、最後に記録停止アカウンティング通知を送信するように設定します。 |
||
アカウンティングをディセーブルにするには、 no aaa accounting { network | exec } { start-stop } method1... グローバル コンフィギュレーション コマンドを使用します。
すべての RADIUS サーバの設定
スイッチとすべての RADIUS サーバの間でグローバルに通信を設定するには、イネーブル EXEC モードで次の手順を実行します。
再送信回数、タイムアウト、および待機時間の設定をデフォルトに戻すには、これらのコマンドの 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 モードで次の手順を実行します。
RADIUS 属性の一覧と、ベンダー固有の属性 26 の詳細については、『 Cisco IOS Security Configuration Guide 』Release 12.2 の付録「RADIUS Attributes」を参照してください。
ベンダー独自の RADIUS サーバとの通信に関するスイッチ設定
RADIUS に関する IETF ドラフト規格では、スイッチと RADIUS サーバの間でベンダー独自仕様の情報を通信する方式について定められていますが、RADIUS 属性セットを独自に機能拡張しているベンダーもあります。Cisco IOS ソフトウェアは、ベンダー独自仕様の RADIUS 属性のサブセットをサポートしています。
前述したように、RADIUS(ベンダーの独自仕様によるものか、IETF ドラフトに準拠するものかを問わず)を設定するには、RADIUS サーバ デーモンが稼働しているホストと、そのホストがスイッチと共有するシークレット テキスト ストリングを指定しなければなりません。RADIUS ホストおよびシークレット テキスト ストリングを指定するには、 radius-server グローバル コンフィギュレーション コマンドを使用します。
ベンダー独自仕様の RADIUS サーバ ホスト、および共有されるシークレット テキスト ストリングを指定するには、イネーブル EXEC モードで次の手順を実行します。
ベンダー独自仕様の 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 コマンドを使用します。
スイッチのローカル認証および許可の設定
ローカル モードで AAA を実装するようにスイッチを設定すると、サーバがなくても動作するように AAA を設定できます。この場合、スイッチは認証および許可の処理を行います。この設定ではアカウンティング機能は使用できません。
スイッチをローカル AAA 用に設定するには、イネーブル EXEC モードで次の手順を実行します。
AAA をディセーブルにするには、 no aaa new-model グローバル コンフィギュレーション コマンドを使用します。許可をディセーブルにするには、 no aaa authorization { network | exec } method1 グローバル コンフィギュレーション コマンドを使用します。
SSH のためのスイッチの設定
ここでは、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
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 サーバ、統合クライアント、およびサポートされているバージョン
SSH 機能には SSH サーバおよび SSH 統合クライアントがあり、これらはスイッチ上で実行されるアプリケーションです。SSH クライアントを使用すると、SSH サーバが稼働するスイッチに接続できます。SSH サーバは、このリリースでサポートされている SSH クライアントや、他社製の SSH クライアントと使用します。また、SSH クライアントは、このリリースでサポートされている SSH サーバや、他社製の SSH サーバと使用することもできます。
スイッチは、SSHv1 または SSHv2 サーバをサポートしています。
SSH は、DES 暗号化アルゴリズム、Triple DES(3DES)暗号化アルゴリズム、およびパスワードベースの認証をサポートしています。
- ・ TACACS+(詳細については、 TACACS+ によるスイッチ アクセスの制御 を参照)
- ・ RADIUS(詳細については、 RADIUS によるスイッチ アクセスの制御 を参照)
- ・ ローカル認証および許可(詳細については、 スイッチのローカル認証および許可の設定 を参照)
制限事項
- ・ スイッチは、Rivest, Shamir, and Adelman(RSA)認証をサポートします。
- ・ SSH は、実行シェル アプリケーションだけをサポートします。
- ・ SSH サーバおよび SSH クライアントは、DES(56 ビット)および 3DES(168 ビット)データ暗号化ソフトウェアでのみサポートされます。
- ・ スイッチは、Advanced Encryption Standard(AES)対称暗号化アルゴリズムをサポートしません。
SSH の設定
- ・ 設定時の注意事項
- ・ スイッチで SSH を実行するためのセットアップ (必須)
- ・ SSH サーバの設定 (スイッチを SSH サーバとして設定する場合のみ必須)
設定時の注意事項
スイッチを SSH サーバまたは SSH クライアントとして設定する場合は、次の注意事項に従ってください。
- ・ SSHv2 サーバは、SSHv1 サーバで生成される 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 サーバとして設定する場合だけです。
|
スイッチ上でローカルおよびリモート認証用に SSH サーバをイネーブルにし、RSA 鍵のペアを生成します。 最小モジュラス サイズは、1024 ビットにすることを推奨します。 RSA 鍵のペアを生成する場合に、モジュラスの長さの入力を求められます。モジュラスが長くなるほど安全ですが、生成と使用に時間がかかります。 |
||
RSA 鍵のペアを削除するには、 crypto key zeroize rsa グローバル コンフィギュレーション コマンドを使用します。RSA 鍵のペアを削除すると、SSH サーバは自動的にディセーブルになります。
SSH サーバの設定
SSH サーバを設定するには、イネーブル EXEC モードで次の手順を実行します。
デフォルトの SSH 制御パラメータに戻すには、 no ip ssh { timeout | authentication-retries } グローバル コンフィギュレーション コマンドを使用します。
SSH の設定およびステータスの表示
SSH サーバの設定およびステータスを表示するには、 表8-2 のイネーブル EXEC コマンドを 1 つまたは複数使用します。
これらのコマンドの詳細については、『 Cisco IOS Security Command Reference 』Release 12.2 の「Other Security Features」の章にある「Secure Shell Commands」を参照してください。URL は次のとおりです。
http://www.cisco.com/univercd/cc/td/doc/product/software/ios122/122cgcr/fsecur_r/fothercr/srfssh.htm
SSL HTTP のためのスイッチの設定
ここでは、HTTP 1.1 のサーバおよびクライアントに対応した Secure Socket Layer(SSL)バージョン 3.0 を設定する方法について説明します。SSL は、セキュア HTTP 通信を実現するために、HTTP クライアント認証だけでなく、サーバ認証、暗号化、およびメッセージの完全性も提供します。SSL を使用するには、暗号化ソフトウェア イメージがスイッチにインストールされている必要があります。この機能を使用し、Cisco.com からソフトウェアの暗号化ファイルをダウンロードするには許可を得る必要があります。暗号化イメージの詳細については、このリリースのリリース ノートを参照してください。
ここで使用する設定例やコマンドの構文および使用方法の詳細については、次の URL にある Cisco IOS Release 12.2(15)T の「HTTPS - HTTP Server and Client with SSL 3.0」の機能説明を参照してください。
http://www.cisco.com/univercd/cc/td/doc/product/software/ios122/122newft/122t/122t15/ftsslsht.htm
セキュア 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 )の出力を例として一部示します。
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
3082029F 30820208 A0030201 02020101 300D0609 2A864886 F70D0101 04050030
59312F30 2D060355 04031326 494F532D 53656C66 2D536967 6E65642D 43657274
69666963 6174652D 33303830 37353530 37323126 30240609 2A864886 F70D0109
02161743 45322D33 3535302D 31332E73 756D6D30 342D3335 3530301E 170D3933
30333031 30303030 35395A17 0D323030 31303130 30303030 305A3059 312F302D
自己署名証明書は、セキュア HTTP サーバを無効にして、 no crypto pki trustpoint TP-self-signed- 30890755072 グローバル コンフィギュレーション コマンドを入力することで削除できます。その後、セキュア HTTP サーバを再度有効にすると、自己署名証明書が新たに生成されます。
オプションのコマンド( ip http secure-client-auth )を使用すると、HTTPS サーバがクライアントからの X.509v3 証明書を要求します。クライアントの認証は、サーバ自身の認証よりも高いセキュリティを提供します。
CA の詳細については、『 Cisco IOS Security Configuration Guide 』Release 12.2 の「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 の信頼点が設定されているかどうかにかかわりません。
セキュア HTTP サーバおよびクライアントの設定
SSL のデフォルト設定
SSL の設定時の注意事項
SSL をスイッチ クラスタで使用すると、SSL セッションがクラスタ コマンダで終了します。クラスタ メンバーのスイッチは標準の HTTP で動作させる必要があります。
CA の信頼点を設定する前に、システム クロックが設定されていることを確認してください。クロックが設定されていないと、不正な日付により証明書が拒否されます。
CA の信頼点の設定
セキュア HTTP 接続には、CA の信頼点を正式に設定することを推奨します。CA の信頼点は、自己署名証明書より高いセキュリティがあります。
CA の信頼点を設定するには、イネーブル EXEC モードで次の手順を実行します。
no crypto ca trustpoint name グローバル コンフィギュレーション コマンドを使用して、CA に関連するすべての ID 情報および証明書を削除できます。
セキュア HTTP サーバの設定
証明に証明書の認証を使用する場合、前の手順を使用してスイッチの CA 信頼点を設定してから、HTTP サーバを有効にする必要があります。CA の信頼点を設定していない場合、セキュア HTTP サーバを最初に有効にした時点で、自己署名証明書が生成されます。サーバを設定したあと、標準 HTTP サーバとセキュア HTTP サーバの両方に適用するオプション(パス、適用するアクセス リスト、最大接続数、またはタイムアウト ポリシー)を設定できます。
セキュア HTTP サーバを設定するには、イネーブル EXEC モードで次の手順を実行します。
標準の 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 の後ろにポート番号も指定する必要があります。次に例を示します。
セキュア HTTP クライアントの設定
標準の HTTP クライアントおよびセキュア HTTP クライアントは常にイネーブルです。証明書の認証にはセキュア HTTP クライアントの証明書が必要です。次の手順では、前の手順で CA の信頼点をスイッチに設定していることを前提にしています。CA の信頼点が設定されておらず、リモートの HTTPS サーバがクライアントの認証を要求した場合、セキュア HTTP クライアントへの接続は失敗します。
セキュア HTTP クライアントを設定するには、イネーブル EXEC モードで次の手順を実行します。
クライアントの信頼点の設定を削除するには、 no ip http client secure-trustpoint name コマンドを使用します。クライアントにすでに設定されている CipherSuite 仕様を削除するには、 no ip http client secure-ciphersuite コマンドを使用します。
セキュア HTTP サーバおよびクライアントのステータスの表示
SSL セキュア サーバおよびクライアントのステータスを表示するには、 表8-3 に記載されたイネーブル EXEC コマンドを使用します。
SCP のためのスイッチの設定
Secure Copy Protocol(SCP)機能は、スイッチの設定ファイルまたはスイッチのイメージ ファイルをコピーするためのセキュアで認証された方式を提供します。 SCP は、Berkeley r-tool のセキュアな代替アプリケーションおよびプロトコルである SSH に依存します。
SSH を使用するには、RSA 公開/秘密鍵のペアが必要です。これは、セキュアな送信を SSH に依存する SCP でも同様です。
SSH は AAA 認証にも依存し、SCP においても AAA 認証に依存するため、正しい設定が必要です。
- ・ SCP をイネーブル化する前に、スイッチで SSH、認証、および許可を正しく設定する必要があります。
- ・ SCP のセキュアな送信は SSH に依存するため、ルータには RSA 鍵のペアが必要となります。
セキュア コピーについて
セキュア コピー機能を設定するには、次のことを理解していなければなりません。
SCP の動作は、Berkeley r-tool スイートのリモート コピー(rcp)と基本的には同じですが、異なるのは、SCP ではセキュリティに関して SSH に依存する点です。SCP では、ユーザに適切な権限レベルがあるかどうかをルータが判断するため、AAA の許可を設定しておく必要もあります。
適切な許可があるユーザは、SCP を使用して、 copy コマンドで、Cisco IOS File System(IFS)のファイルを、スイッチ間で相互にコピーできます。許可された管理者は、この操作をワークステーションから行うこともできます。
SCP の設定および確認方法の詳細については、次の URL にアクセスして、『Cisco IOS New Features』Cisco IOS Release 12.2の「Secure Copy Protocol」の章を参照してください。
http://www.cisco.com/univercd/cc/td/doc/product/software/ios122/122newft/122t/122t2/ftscp.htm
