スイッチ ベース認証の設定に関する情報
スイッチへの無許可アクセスの防止
不正ユーザによる、スイッチの再設定や設定情報の閲覧を防止できます。一般的には、ネットワーク管理者からスイッチへのアクセスを許可する一方、非同期ポートを用いてネットワーク外からダイヤルアップ接続するユーザや、シリアル ポートを通じてネットワーク外から接続するユーザ、またはローカル ネットワーク内の端末またはワークステーションから接続するユーザによるアクセスを制限します。
スイッチへの不正アクセスを防止するには、次のセキュリティ機能を 1 つまたは複数設定します。
• 最低限のセキュリティとして、各スイッチ ポートでパスワードおよび権限を設定します。このパスワードは、スイッチにローカルに保存されます。ユーザがポートまたは回線を通じてスイッチにアクセスしようとするとき、ポートまたは回線に指定されたパスワードを入力してからでなければ、スイッチにアクセスできません。
• 追加のセキュリティ レイヤとして、ユーザ名とパスワードをペアで設定できます。このペアはスイッチでローカルに保存されます。このペアは回線またはポートに割り当てられ、各ユーザを認証します。ユーザは認証後、スイッチにアクセスできます。権限レベルを定義している場合は、ユーザ名とパスワードの各ペアに特定の権限レベルを、対応する権利および権限とともに割り当てることもできます。
• ユーザ名とパスワードのペアを使用したいが、そのペアをローカルではなく中央のサーバに保存したい場合は、セキュリティ サーバ上のデータベースに保存できます。これにより、複数のネットワーキング デバイスが同じデータベースを使用してユーザ認証情報を(必要に応じて許可情報も)得ることができます。
• また、失敗したログイン試行をログに記録するログイン拡張機能もイネーブルにすることもできます。ログイン拡張は、設定した回数のログインが失敗したあとに、それ以降のログイン試行をブロックするために設定することもできます。
パスワード保護
ネットワークで端末のアクセス コントロールを行う簡単な方法は、パスワードを使用して権限レベルを割り当てることです。パスワード保護によって、ネットワークまたはネットワーク デバイスへのアクセスが制限されます。権限レベルによって、ネットワーク デバイスにログイン後、ユーザがどのようなコマンドを使用できるかが定義されます。
デフォルトのパスワードおよび権限レベル設定
表 12-1 デフォルトのパスワードおよび権限レベル設定
|
|
イネーブル パスワードおよび権限レベル |
パスワードは定義されていません。デフォルトはレベル 15 です(特権 EXEC レベル)。パスワードは、コンフィギュレーション ファイル内では暗号化されていない状態です。 |
イネーブル シークレット パスワードおよび権限レベル |
パスワードは定義されていません。デフォルトはレベル 15 です(特権 EXEC レベル)。パスワードは、暗号化されてからコンフィギュレーション ファイルに書き込まれます。 |
回線パスワード |
パスワードは定義されていません。 |
シークレット パスワード暗号化のイネーブル
追加のセキュリティ レイヤを、特にネットワークを越えるパスワードや TFTP サーバに保存されているパスワードに対して設定する場合には、 enable password または enable secret グローバル コンフィギュレーション コマンドを使用できます。コマンドの作用はどちらも同じです。このコマンドにより、暗号化されたパスワードを設定できます。特権 EXEC モード(デフォルト設定)または特定の権限レベルにアクセスするユーザは、このパスワードを入力する必要があります。
より高度な暗号化アルゴリズムが使用されるので、 enable secret コマンドを使用することを推奨します。
enable secret コマンドを設定した場合、このコマンドは enable password コマンドよりも優先されます。同時に 2 つのコマンドを有効にはできません。
特定の権限レベルのパスワードを定義する場合は、 level キーワードを使用します。レベルを指定してパスワードを設定したあと、特権レベルにアクセスする必要のあるユーザだけに、パスワードを通知してください。さまざまなレベルでアクセス可能なコマンドを指定する場合は、 privilege level グローバル コンフィギュレーション コマンドを使用します。
パスワードの暗号化をイネーブルにすると、ユーザ名パスワード、認証キー パスワード、イネーブル コマンド パスワード、コンソールおよび仮想端末回線パスワードなど、すべてのパスワードに適用されます。
パスワードとレベルを削除するには、 no enable password [ level level ] または no enable secret [ level level ] グローバル コンフィギュレーション コマンドを使用します。パスワードの暗号化をディセーブルにするには、 no service password-encryption グローバル コンフィギュレーション コマンドを使用します。
パスワード回復
スイッチに物理的にアクセスできるエンド ユーザは、デフォルトで、スイッチの電源投入時にブート プロセスに割り込み、新しいパスワードを入力することによって、失われたパスワードを回復できます。
パスワード回復ディセーブル化機能では、この機能の一部をディセーブルにすることによりスイッチのパスワードへのアクセスを保護できます。この機能がイネーブルの場合、エンド ユーザは、システムをデフォルト設定に戻すことに同意した場合に限り、ブート プロセスに割り込むことができます。パスワード回復をディセーブルにしても、ブート プロセスに割り込んでパスワードを変更できますが、コンフィギュレーション ファイル(config.text)および VLAN データベース ファイル(vlan.dat)は削除されます。
(注) パスワード回復をディセーブルにする場合は、エンド ユーザがブート プロセスに割り込んでシステムをデフォルトの状態に戻すような場合に備え、セキュア サーバにコンフィギュレーション ファイルのバックアップ コピーを保存しておくことを推奨します。スイッチ上でコンフィギュレーション ファイルのバックアップ コピーを保存しないでください。VTP(VLAN トランキング プロトコル)トランスペアレント モードでスイッチが動作している場合は、VLAN データベース ファイルのバックアップ コピーも同様にセキュア サーバに保存してください。スイッチがシステムのデフォルト設定に戻ったときに、XMODEM プロトコルを使用して、保存したファイルをスイッチにダウンロードできます。詳細については、「パスワードを忘れた場合の回復」を参照してください。
(注) パスワード回復のディセーブル化は、boot manual グローバル コンフィギュレーション コマンドを使用して手動でブートするようにスイッチを設定している場合は無効です。このコマンドは、スイッチの電源の再投入後、ブートローダ プロンプト(switch:)を表示させます。
端末回線に対する Telnet パスワード
初めてスイッチに電源を投入すると、自動セットアップ プログラムが起動して IP 情報を割り当て、この後続けて使用できるようにデフォルト設定を作成します。さらに、セットアップ プログラムは、パスワードによる Telnet アクセス用にスイッチを設定することを要求します。セットアップ プログラムの実行中にこのパスワードを設定しなかった場合は、この時点でコマンドライン インターフェイス(CLI)を使用して設定できます。
ユーザ名とパスワードのペア
ユーザ名とパスワードのペアを設定できます。このペアはスイッチ上でローカルに保存されます。このペアは回線またはポートに割り当てられ、各ユーザを認証します。ユーザは認証後、スイッチにアクセスできます。権限レベルを定義している場合は、ユーザ名とパスワードの各ペアに特定の権限レベルを、対応する権利および権限とともに割り当てることもできます。
複数の特権レベル
Cisco IOS ソフトウェアはデフォルトで、2 種類のパスワード セキュリティ モードを使用します。ユーザ EXEC および特権 EXEC です。各モードに、最大 16 個の階層レベルからなるコマンドを設定できます。複数のパスワードを設定することにより、ユーザ グループ別に特定のコマンドへのアクセスを許可することができます。
たとえば、多くのユーザに clear line コマンドへのアクセスを許可する場合、レベル 2 のセキュリティを割り当て、レベル 2 のパスワードを広範囲のユーザに配布できます。また、 configure コマンドへのアクセス制限を強化する場合は、レベル 3 のセキュリティを割り当て、そのパスワードを限られたユーザ グループに配布することもできます。
コマンドをある権限レベルに設定すると、構文がそのコマンドのサブセットであるコマンドはすべて、そのレベルに設定されます。たとえば、 show ip traffic コマンドをレベル 15 に設定すると、 show コマンドおよび show ip コマンドは、それぞれ別のレベルに設定しない限り、自動的にレベル 15 に設定されます。
特定のコマンドについて、デフォルトの権限に戻すには、 no privilege mode level level command グローバル コンフィギュレーション コマンドを使用します。
ユーザは、回線にログインし、別の権限レベルをイネーブルに設定することにより、 privilege level ライン コンフィギュレーション コマンドを使用して設定された権限レベルを上書きできます。また、 disable コマンドを使用することにより、権限レベルを引き下げることができます。上位の権限レベルのパスワードがわかっていれば、ユーザはそのパスワードを使用して上位の権限レベルをイネーブルにできます。回線の使用を制限するには、コンソール回線に高いレベルまたは権限レベルを指定してください。
回線をデフォルトの権限レベルに戻すには、 no privilege level ライン コンフィギュレーション コマンドを使用します。
TACACS+ のスイッチ アクセス
ここでは、Terminal Access Controller Access Control System Plus(TACACS+)をイネーブルにして設定する方法について説明します。TACACS+ は、詳細なアカウンティング情報を収集し、認証および許可プロセスに対して柔軟な管理を行います。TACACS+ は、認証、許可、アカウンティング(AAA)機能により拡張されており、TACACS+ をイネーブルにするには AAA コマンドを使用する必要があります。
TACACS+
TACACS+ は、スイッチにアクセスしようとするユーザの検証を集中的に行うセキュリティ アプリケーションです。TACACS+ サービスは、通常 UNIX または Windows NT ワークステーション上で稼働する TACACS+ デーモンのデータベースで管理されます。スイッチに TACACS+ 機能を設定するには、TACACS+ サーバにアクセスして TACACS+ サーバを設定しておく必要があります。
TACACS+ では、独立したモジュラ型の認証、許可、アカウンティング機能が提供されます。TACACS+ では、単一のアクセス コントロール サーバ(TACACS+ デーモン)が各サービス(認証、許可、およびアカウンティング)を別個に提供します。各サービスを固有のデータベースに結合し、デーモンの機能に応じてそのサーバまたはネットワークで使用できる他のサービスを使用できます。
TACACS+ の目的は、1 つの管理サービスから複数のネットワーク アクセス ポイントを管理する方式を提供することです。スイッチは、他の Cisco ルータやアクセス サーバとともにネットワーク アクセス サーバにできます。ネットワーク アクセス サーバは、個々のユーザ、ネットワークまたはサブネットワーク、および相互接続されたネットワークとの接続を実現します(図 12-1を参照)。
図 12-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、セキュア シェル(SSH)、rlogin、または特権 EXEC サービス
• 接続パラメータ(ホストまたはクライアントの IP アドレス、アクセス リスト、およびユーザ タイムアウトを含む)
TACACS+ のデフォルト設定
TACACS+ および AAA は、デフォルトではディセーブルに設定されています。
セキュリティの失効を防止するため、ネットワーク管理アプリケーションを使用して TACACS+ を設定することはできません。TACACS+ をイネーブルに設定した場合、CLI を通じてスイッチにアクセスするユーザを認証できます。
(注) TACACS+ の設定は CLI を使用して行いますが、TACACS+ サーバは権限レベル 15 に設定された HTTP 接続を許可します。
TACACS+ サーバ ホストと認証キー
認証用に 1 つのサーバを使用することも、また、既存のサーバ ホストをグループ化するために AAA サーバ グループを使用するように設定することもできます。サーバをグループ化して設定済みサーバ ホストのサブセットを選択し、特定のサービスにそのサーバを使用できます。サーバ グループは、グローバル サーバ ホスト リストとともに使用され、選択されたサーバ ホストの IP アドレスのリストが含まれています。
TACACS+ ログイン認証
AAA 認証を設定するには、認証方式の名前付きリストを作成してから、各種ポートにそのリストを適用します。方式リストは実行される認証のタイプと実行順序を定義します。このリストを特定のポートに適用してから、定義済み認証方式を実行する必要があります。唯一の例外はデフォルトの方式リスト(偶然に default と名前が付けられている)です。デフォルトの方式リストは、名前付き方式リストを明示的に定義されたインターフェイスを除いて、自動的にすべてのポートに適用されます。定義済みの方式リストは、デフォルトの方式リストに優先します。
方式リストは、ユーザ認証のためクエリ送信を行う手順と認証方式を記述したものです。認証に使用する 1 つまたは複数のセキュリティ プロトコルを指定できるので、最初の方式が失敗した場合のバックアップ システムが確保されます。ソフトウェアは、リスト内の最初の方式を使用してユーザを認証します。その方式で応答が得られなかった場合、ソフトウェアはそのリストから次の認証方式を選択します。このプロセスは、リスト内の認証方式による通信が成功するか、定義された方式をすべて試し終わるまで繰り返されます。この処理のある時点で認証が失敗した場合(つまり、セキュリティ サーバまたはローカルのユーザ名データベースがユーザ アクセスを拒否すると応答した場合)、認証プロセスは停止し、それ以上認証方式が試行されることはありません。
特権 EXEC アクセスおよびネットワーク サービス用の TACACS+ 許可
AAA 認証によってユーザが使用できるサービスが制限されます。AAA 許可がイネーブルの場合、スイッチはローカル ユーザ データベースまたはセキュリティ サーバ上にあるユーザのプロファイルから取得した情報を使用して、ユーザのセッションを設定します。ユーザは、ユーザ プロファイル内の情報で認められている場合に限り、要求したサービスのアクセスが認可されます。
aaa authorization グローバル コンフィギュレーション コマンドに tacacs+ キーワードを付けて使用すると、特権 EXEC モードへのユーザのネットワーク アクセスを制限するパラメータを設定できます。
aaa authorization exec tacacs+ local コマンドは、次の許可パラメータを設定します。
• TACACS+ を使用して認証を行った場合は、TACACS+ を使用して特権 EXEC アクセスを許可します。
• 認証に TACACS+ を使用しなかった場合は、ローカル データベースを使用します。
(注) 許可が設定されていても、CLI を使用してログインし、認証されたユーザに対しては、許可は省略されます。
TACACS+ Accounting
AAA アカウンティング機能は、ユーザがアクセスしたサービスと、消費したネットワーク リソース量をトラッキングします。AAA アカウンティングをイネーブルにすると、スイッチはユーザの活動状況をアカウンティング レコードの形式で TACACS+ セキュリティ サーバに報告します。各アカウンティング レコードにはアカウンティングの Attribute-Value(AV)ペアが含まれ、レコードはセキュリティ サーバに格納されます。このデータを、ネットワーク管理、クライアント請求、または監査のために分析できます。
RADIUS によるスイッチ アクセス
ここでは、RADIUS をイネーブルにして設定する方法について説明します。RADIUS は、詳細なアカウンティング情報を収集し、認証および許可プロセスに対して柔軟な管理を行います。RADIUS は、AAA を介して実装され、AAA コマンドを使用してのみイネーブルにできます。
RADIUS
RADIUS は、不正なアクセスからネットワークのセキュリティを保護する分散クライアント/サーバ システムです。RADIUS クライアントは、サポート対象の Cisco ルータおよびスイッチ上で稼働します。クライアントは中央の 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 クライアント装備の Cisco スイッチをネットワークに追加できます。これが TACACS+ サーバへの移行の最初のステップとなることもあります。
• ユーザが 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 つのサービス モデルにバインドします。
図 12-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 のデフォルト設定
RADIUS および AAA は、デフォルトではディセーブルに設定されています。
セキュリティの失効を防止するため、ネットワーク管理アプリケーションを使用して RADIUS を設定することはできません。RADIUS をイネーブルに設定した場合、CLI を通じてスイッチにアクセスするユーザを認証できます。
RADIUS 許可の変更
ここでは、使用可能なプリミティブおよびそれらの Change of Authorization(CoA)での使用方法を含む、RADIUS インターフェイスの概要について説明します。
RADIUS CoA の概要
標準 RADIUS インターフェイスは通常、ネットワークに接続しているデバイスから要求が送信され、クエリーが送信されたサーバが応答するプル モデルで使用されます。Catalyst スイッチは、通常プッシュ モデルで使用される RFC 5176 で規定された RADIUS Change of Authorization(CoA)拡張機能をサポートし、外部の認証、許可、アカウンティング(AAA)またはポリシーサーバからのセッションのダイナミック再設定ができるようにします。
スイッチは、次のセッション単位の CoA 要求をサポートしています。
• セッション再認証
• セッション終了
• ポート シャットダウンでのセッション終了
• ポート バウンスでのセッション終了
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 またはポリシー サーバ)から発信されて、リスナーとして動作するスイッチに送信されます。
RFC 5176 規定
Disconnect Request メッセージは Packet of Disconnect(POD)とも呼ばれますが、セッション終了に対してスイッチでサポートされています。
表 12-2 サポートされている IETF 属性
|
|
24 |
State |
31 |
Calling-Station-ID |
44 |
Acct-Session-ID |
80 |
Message-Authenticator |
101 |
Error-Cause |
表 12-3 Error-Cause の値
|
|
201 |
削除された残留セッション コンテキスト |
202 |
無効な EAP パケット(無視) |
401 |
サポートされていない属性 |
402 |
見つからない属性 |
403 |
NAS 識別情報のミスマッチ |
404 |
無効な要求 |
405 |
サポートされていないサービス |
406 |
サポートされていない拡張機能 |
407 |
無効な属性値 |
501 |
管理上の禁止 |
502 |
ルート不可能な要求(プロキシ) |
503 |
セッション コンテキストが検出されない |
504 |
セッション コンテキストが削除できない |
505 |
その他のプロキシ処理エラー |
506 |
リソースが使用不可能 |
507 |
要求が発信された |
508 |
マルチ セッションの選択がサポートされてない |
CoA 要求応答コード
CoA 要求応答コードを使用すると、スイッチにコマンドを伝達できます。サポートされているコマンドを表 12-4に示します。
CoA セッション ID
特定のセッションに向けられた切断と CoA 要求については、スイッチは 1 つ以上の次の属性に基づいて、セッションを検索します。
• Calling-Station-Id(ホストの MAC アドレスを含む IETF 属性 31)
• Audit-Session-Id VSA(シスコの 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-否定確認応答(NAK)または CoA-NAK を返します。
RFC 5176 で定義されている CoA 要求コードのパケットの形式は、コード、ID、長さ、オーセンティケータ、およびタイプ、長さ、値(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 VSA を送信するために使用します。
CoA ACK 応答コード
許可ステートの変更に成功した場合は、肯定確認応答(ACK)が送信されます。CoA ACK 内で返される属性は CoA 要求によって異なり、個々の CoA コマンドで検討されます。
CoA NAK 応答コード
否定確認応答(NAK)は許可ステートの変更に失敗したことを示し、エラーの理由を示す属性を含めることができます。CoA が成功したかを確認するには、 show コマンドを使用します。
CoA 要求コマンド
表 12-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" |
CoA セッションの再認証
不明な ID またはポスチャを持つホストがネットワークに加入して、制限されたアクセス許可プロファイル(たとえば、ゲスト VLAN)に関連付けられると、AAA サーバは通常、セッション再認証要求を生成します。再認証要求は、クレデンシャルが不明である場合にホストが適切な認証グループに配置されることを許可します。
セッション認証を開始するために、AAA サーバは Cisco:Avpair="subscriber:command=reauthenticate" の形式でシスコのベンダー固有属性(VSA)と 1 つ以上のセッション ID 属性を含む標準 CoA 要求メッセージを送信します。
現在のセッション ステートは、メッセージに対するスイッチの応答を決定します。セッションが現在、IEEE 802.1x によって認証されている場合、スイッチは LAN 経由の拡張認証プロトコル(EAPOL)RequestId メッセージをサーバに送信することで応答します。
現在、セッションが MAC 認証バイパス(MAB)で認証されている場合は、スイッチはサーバにアクセス要求を送信し、初期正常認証で使用されるものと同じ ID 属性を渡します。
スイッチがコマンドを受信したときにセッション認証が実行中である場合は、スイッチはプロセスを終了し、認証シーケンスを再開し、最初に試行されるように設定された方式で開始します。
セッションがまだ認証されてない、あるいはゲスト VLAN、クリティカル VLAN、または同様のポリシーで認証されている場合は、再認証メッセージがアクセス コントロール方式を再開し、最初に試行されるように設定された方式で開始します。セッションの現在の許可は、再認証によって異なる認証結果になるまで維持されます。
CoA セッションの終了
セッションを終了させる 3 種類の CoA 要求があります。CoA 接続解除要求は、ホスト ポートをディセーブルにせずにセッションを終了します。このコマンドを使用すると、指定されたホストのオーセンティケータ ステート マシンが再初期化されますが、そのホストのネットワークへのアクセスは制限されません。
ホストのネットワークへのアクセスを制限するには、Cisco:Avpair="subscriber:command=disable-host-port" VSA の設定で CoA 要求を使用します。このコマンドは、ネットワーク上で障害を引き起こしたと認識されているホストがある場合に便利であり、そのホストに対してネットワーク アクセスをただちにブロックする必要があります。ポートへのネットワーク アクセスを復旧する場合は、非 RADIUS メカニズムを使用して再びイネーブルにします。
プリンタなどのサプリカントを持たないデバイスが新しい IP アドレスを取得する必要がある場合(たとえば、VLAN 変更後)は、ポート バウンスでホスト ポート上のセッションを終了します(ポートを一時的にディセーブルした後、再びイネーブルにする)。
CoA 接続解除要求
このコマンドは標準の接続解除要求です。このコマンドはセッション指向であるため、「CoA セッション ID」で示される 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"
このコマンドはセッション指向であるため、「CoA セッション ID」で示される 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"
このコマンドはセッション指向であるため、「CoA セッション ID」で示される 1 つ以上のセッション ID 属性とともに使用する必要があります。セッションが見つからない場合は、CoA-NAK メッセージと「Session Context Not Found」エラー コード属性が返されます。このセッションがある場合は、スイッチはホスト ポートを 10 秒間ディセーブルし、再びイネーブルにし(ポート バウンス)、CoA-ACK を返します。
スイッチが CoA-ACK をクライアントに返す前にスイッチに障害が発生した場合は、クライアントから要求が再送信されるときに、新しいアクティブ スイッチ上でそのプロセスが繰り返されます。スイッチが CoA-ACK メッセージをクライアントに返した後で、かつその動作が完了していないときにスイッチに障害が発生した場合は、新しいアクティブ スイッチ上でその動作が再開されます。
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 ログイン認証
AAA 認証を設定するには、認証方式の名前付きリストを作成してから、各種ポートにそのリストを適用します。方式リストは実行される認証のタイプと実行順序を定義します。このリストを特定のポートに適用してから、定義済み認証方式を実行する必要があります。唯一の例外はデフォルトの方式リスト(偶然に default と名前が付けられている)です。デフォルトの方式リストは、名前付き方式リストを明示的に定義されたインターフェイスを除いて、自動的にすべてのポートに適用されます。
RADIUS 方式リスト
方式リストによって、ユーザの認証、許可、またはアカウント維持のための順序と方式を定義します。方式リストを使用して、使用するセキュリティ プロトコル(TACACS+、ローカル ユーザ名検索など)を 1 つまたは複数指定できるので、最初の方式が失敗した場合のバックアップ システムが確保されます。ソフトウェアは、リスト内の最初の方式を使用してユーザの認証、許可、アカウントの維持を行います。その方式で応答が得られなかった場合は、ソフトウェアはそのリストから次の方式を選択します。このプロセスは、リスト内の方式による通信が成功するか、方式リストの方式をすべて試し終わるまで続きます。
AAA Server Groups
既存のサーバ ホストを認証用にグループ化するため、AAA サーバ グループを使用するようにスイッチを設定できます。設定済みのサーバ ホストのサブセットを選択して、それを特定のサービスに使用します。サーバ グループは、選択されたサーバ ホストの IP アドレスのリストを含むグローバルなサーバ ホスト リストとともに使用されます。
サーバ グループには、同じサーバの複数のホスト エントリを含めることもできますが、各エントリが一意の ID(IP アドレスと UDP ポート番号の組み合わせ)を持っていることが条件です。この場合、個々のポートをそれぞれ特定の AAA サービスを提供する RADIUS ホストとして定義できます。同じ RADIUS サーバ上の異なる 2 つのホスト エントリに同じサービス(たとえばアカウンティング)を設定した場合、2 番めに設定したホスト エントリは、最初に設定したホスト エントリのフェールオーバー バックアップとして動作します。
定義したグループ サーバに特定のサーバを対応付けるには、 server グループ サーバ コンフィギュレーション コマンドを使用します。サーバを IP アドレスで特定することもできますし、任意指定の auth-port および acct-port キーワードを使用して複数のホスト インスタンスまたはエントリを特定することもできます。
ユーザ イネーブル アクセスおよびネットワーク サービスに関する RADIUS 許可
AAA 認証によってユーザが使用できるサービスが制限されます。AAA 認証がイネーブルの場合、ローカル ユーザ データベースまたはセキュリティ サーバ内のユーザのプロファイルから取得した情報を使用して、ユーザのセッションを設定します。ユーザは、ユーザ プロファイル内の情報で認められている場合に限り、要求したサービスのアクセスが認可されます。
グローバル コンフィギュレーション コマンド aaa authorization と radius キーワードを使用すると、ユーザのネットワーク アクセスを特権 EXEC モードに制限するパラメータを設定できます。
aaa authorization exec radius local コマンドは、次の許可パラメータを設定します。
• RADIUS を使用して認証を行った場合は、RADIUS を使用して特権 EXEC アクセスを許可します。
• 認証に RADIUS を使用しなかった場合は、ローカル データベースを使用します。
(注) 許可が設定されていても、CLI を使用してログインし、認証されたユーザに対しては、許可は省略されます。
RADIUS アカウンティング
AAA アカウンティング機能は、ユーザがアクセスしたサービスと、消費したネットワーク リソース量をトラッキングします。AAA アカウンティングをイネーブルにすると、スイッチはユーザの活動状況をアカウンティング レコードの形式で RADIUS セキュリティ サーバに報告します。各アカウンティング レコードにはアカウンティングの Attribute-Value(AV)ペアが含まれ、レコードはセキュリティ サーバに格納されます。このデータを、ネットワーク管理、クライアント請求、または監査のために分析できます。
AAA サーバが到達不能な場合のルータとのセッションの確立
aaa accounting system guarantee-first コマンドは、システム アカウンティングが最初のレコードになることを保証します。これはデフォルトの状態です。場合によっては、システムがリロードされるまでコンソールまたは端末接続でセッションを開始できない場合があります。システムのリロードにかかる時間は 3 分を超えることがあります。
ルータのリロード時に AAA サーバが到達不能な場合、ルータとのコンソールまたは Telnet セッションを確立するには、 no aaa accounting system guarantee-first コマンドを使用します。
ベンダー固有の 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“
ベンダー独自仕様の RADIUS サーバ通信
RADIUS に関する IETF ドラフト規格では、スイッチと RADIUS サーバ間でベンダー独自仕様の情報を通信する方式について定められていますが、RADIUS 属性セットを独自に機能拡張しているベンダーもあります。Cisco IOS ソフトウェアは、ベンダー独自仕様の RADIUS 属性のサブセットをサポートしています。
前述したように、RADIUS(ベンダーの独自仕様によるものか、IETF ドラフトに準拠するものかを問わず)を設定するには、RADIUS サーバ デーモンが稼働しているホストと、そのホストがスイッチと共有するシークレット テキスト ストリングを指定する必要があります。RADIUS ホストおよびシークレット テキスト ストリングを指定するには、 radius-server グローバル コンフィギュレーション コマンドを使用します。
Kerberos によるスイッチ アクセス
ここでは、Kerberos セキュリティ システムをイネーブルにして設定する方法について説明します。Kerberos セキュリティ システムは、信頼できるサードパーティを使用してネットワーク リソースに対する要求を認証します。この機能を使用するには、スイッチにスイッチ ソフトウェアの暗号化バージョンをインストールする必要があります。
この機能を使用し、Cisco.com から暗号化ソフトウェア ファイルをダウンロードするには許可を得る必要があります。詳細については、このリリースのリリース ノートを参照してください。
Kerberos の概要
Kerberos はマサチューセッツ工科大学(MIT)が開発した秘密キーによるネットワーク認証プロトコルです。データ暗号規格(DES)という暗号化アルゴリズムを暗号化と認証に使用し、ネットワーク リソースに対する要求を認証します。Kerberos は、信頼できるサードパーティという概念を使ってユーザとサービスに対してセキュリティの検証を実行します。この信頼できるサードパーティをキー発行局(KDC)と呼びます。
Kerberos は、ユーザが誰であるか、そのユーザが使用しているネットワーク サービスは何であるかを検証します。これを実行するために、KDC(つまり信頼できる Kerberos サーバ)がユーザにチケットを発行します。これらのチケットには有効期限があり、ユーザ クレデンシャルのキャッシュに保存されます。Kerberos サーバは、ユーザ名やパスワードの代わりにチケットを使ってユーザとネットワーク サービスを認証します。
(注) Kerberos サーバには、ネットワーク セキュリティ サーバとして設定されていて、Kerberos プロトコルを用いてユーザを認証できるスイッチを使用できます。
Kerberos のクレデンシャル発行スキームでは、 single logon という手順を使用します。この手順では、ユーザを 1 回認証すると、ユーザ クレデンシャルが有効な間は(他のパスワードの暗号化を行わずに)セキュア認証が可能になります。
このソフトウェア リリースは Kerberos 5 に対応しています。Kerberos 5 では、すでに Kerberos 5 を使用している組織が、(UNIX サーバや PC などの)他のネットワーク ホストが使用している KDC 上の Kerberos 認証データベースを使用できます。
このソフトウェア リリースでは、Kerberos は次のネットワーク サービスをサポートしています。
• Telnet
• rlogin
• rsh(リモート シェル プロトコル)
表 12-5 に、一般的な Kerberos 関連用語とその定義を示します。
表 12-5 Kerberos の用語
|
|
認証 |
ユーザやサービスが他のサービスに対して自分自身の身元を証明する手順。たとえば、クライアントはスイッチに対して認証を得て、スイッチは他のスイッチに対して認証を得ます。 |
許可 |
ユーザがネットワークやスイッチにおいてどのような権限を有しており、またどのような動作を実行できるかを、スイッチが識別する手段 |
クレデンシャル |
認証チケット(TGT やサービス クレデンシャルなど)を表す総称。Kerberos クレデンシャルで、ユーザまたはサービスの ID を検証します。ネットワーク サービスがチケットを発行した Kerberos サーバを信頼することにした場合、ユーザ名やパスワードを再入力する代わりにこれを使用できます。クレデンシャルの有効期限は、8 時間がデフォルトの設定です。 |
インスタンス |
Kerberos プリンシパルの承認レベル ラベル。ほとんどの Kerberos プリンシパルは、 user@REALM という形式です(たとえば、smith@EXAMPLE.COM)。Kerberos インスタンスのある Kerberos プリンシパルは、 user/instance@REALM という形式です(たとえば、smith/admin@EXAMPLE.COM)。Kerberos インスタンスは、認証が成功した場合のユーザの承認レベルを指定するために使用できます。各ネットワーク サービスのサーバは、Kerberos インスタンスの許可マッピングを適用し実行できますが、必須ではありません。 。 。 |
KDC |
ネットワーク ホストで稼働する Kerberos サーバおよびデータベース プログラムで構成されるキー発行局 |
Kerberos 対応 |
Kerberos クレデンシャルのインフラストラクチャをサポートするために変更されたアプリケーションやサービスのことを指す用語 |
Kerberos レルム |
Kerberos サーバに登録されたユーザ、ホスト、およびネットワーク サービスで構成されるドメイン。Kerberos サーバを信頼して、ユーザまたはネットワーク サービスに対する別のユーザまたはネットワーク サービスの ID を検証します。 。 |
Kerberos サーバ |
ネットワーク ホストで稼働しているデーモン。ユーザおよびネットワーク サービスはそれぞれ Kerberos サーバに ID を登録します。ネットワーク サービスは Kerberos サーバにクエリーを送信して、他のネットワーク サービスの認証を得ます。 |
KEYTAB |
ネットワーク サービスが KDC と共有するパスワード。Kerberos 5 以降のバージョンでは、ネットワーク サービスは KEYTAB を使って暗号化されたサービス クレデンシャルを暗号解除して認証します。KEYTAB は Kerberos 5 よりも前のバージョンでは、SRVTAB と呼ばれています。 |
プリンシパル |
Kerberos ID とも呼ばれ、Kerberos サーバに基づき、ユーザが誰であるか、サービスが何であるかを表します。 。 |
サービス クレデンシャル |
ネットワーク サービスのクレデンシャル。KDC からクレデンシャルが発行されると、ネットワーク サービスと KDC が共有するパスワードで暗号化されます。ユーザ TGT ともパスワードを共有します。 |
SRVTAB |
ネットワーク サービスが KDC と共有するパスワード。SRVTAB は、Kerberos 5 以降のバージョンでは KEYTAB と呼ばれています。 |
TGT |
身分証明書のことで、KDC が認証済みユーザに発行するクレデンシャル。TGT を受け取ったユーザは、KDC が示した Kerberos レルム内のネットワーク サービスに対して認証を得ることができます。 |
Kerberos の動作
Kerberos サーバには、ネットワーク セキュリティ サーバとして設定されていて、Kerberos プロトコルを用いてリモート ユーザを認証できるスイッチを使用できます。Kerberos をカスタマイズする方法はいくつかありますが、ネットワーク サービスにアクセスしようとするリモート ユーザは、3 つのセキュリティ レイヤを通過しないとネットワーク サービスにアクセスできません。
Kerberos サーバとしてスイッチを使用し、リモート ユーザがネットワーク サービスに対して認証を得る手順は、次のとおりです。
1. 「境界スイッチに対する認証の取得」
2. 「KDC からの TGT の取得」
3. 「ネットワーク サービスに対する認証の取得」
境界スイッチに対する認証の取得
ここでは、リモート ユーザが通過しなければならない最初のセキュリティ レイヤについて説明します。ユーザは、まず境界スイッチに対して認証を得なければなりません。リモート ユーザが境界スイッチに対して認証を得る場合、次のプロセスが発生します。
1. ユーザが境界スイッチに対して、Kerberos 未対応の Telnet 接続を開始します。
2. ユーザ名とパスワードの入力を求めるプロンプトをスイッチが表示します。
3. スイッチが、このユーザの TGT を KDC に要求します。
4. KDC がユーザ ID を含む暗号化された TGT をスイッチに送信します。
5. スイッチは、ユーザが入力したパスワードを使って TGT の暗号解除を試行します。
• 暗号解除に成功した場合は、ユーザはスイッチに対して認証を得ます。
• 暗号解除に成功しない場合は、ユーザ名とパスワードを再入力(Caps Lock または Num Lock のオン/オフに注意)するか、別のユーザ名とパスワードを入力してステップ 2 の手順を繰り返します。
Kerberos 未対応の Telnet セッションを開始し、境界スイッチの認証を得ているリモート ユーザはファイアウォールの内側にいますが、ネットワーク サービスにアクセスするには、KDC から直接認証を得る必要があります。ユーザが KDC から認証を得なければならないのは、KDC が発行する TGT はスイッチに保存されており、ユーザがこのスイッチにログオンしないかぎり、追加の認証に使用できないからです。
KDC からの TGT の取得
ここでは、リモート ユーザが通過しなければならない 2 番めのセキュリティ レイヤについて説明します。ユーザは、ネットワーク サービスにアクセスするために、このレイヤで KDC の認証を得て、KDC から TGT を取得しなければなりません。
ネットワーク サービスに対する認証の取得
ここでは、リモート ユーザが通過しなければならない 3 番めのセキュリティ レイヤについて説明します。TGT を取得したユーザは、このレイヤで Kerberos レルム内のネットワーク サービスに対して認証を得なければなりません。
Kerberos の設定
リモート ユーザがネットワーク サービスに対して認証を得るには、Kerberos レルム内のホストと KDC を設定し、ユーザとネットワーク サービスの両方に通信を行い、相互に認証させる必要があります。これを実現するには、互いの識別が必要です。KDC 上の Kerberos データベースにホストのエントリを追加し、Kerberos レルム内のすべてのホストに KDC が生成した KEYTAB ファイルを追加します。また、KDC データベースにユーザ用のエントリも作成します。
ホストおよびユーザのエントリを追加または作成する場合の注意事項は次のとおりです。
• Kerberos プリンシパル名はすべて小文字で なければなりません 。
• Kerberos インスタンス名はすべて小文字で なければなりません 。
• Kerberos レルム名はすべて大文字で なければなりません 。
(注) Kerberos サーバには、ネットワーク セキュリティ サーバとして設定されていて、Kerberos プロトコルを用いてユーザを認証できるスイッチを使用できます。
Kerberos 認証済みサーバ/クライアント システムを設定する手順は、次のとおりです。
• Kerberos コマンドを使用して KDC を設定します。
• Kerberos プロトコルを使用するようにスイッチを設定します。
ローカル認証および許可
ローカル モードで AAA を実装するようにスイッチを設定すると、サーバがなくても動作するように AAA を設定できます。この場合、スイッチは認証および許可の処理を行います。この設定ではアカウンティング機能は使用できません。
セキュア シェル
この機能を使用するには、暗号(暗号化)ソフトウェア イメージをスイッチにインストールする必要があります。この機能を使用し、Cisco.com から暗号化ソフトウェア ファイルをダウンロードするには許可を得る必要があります。詳細については、このリリースのリリース ノートを参照してください。
SSH の設定例については、『 Cisco IOS Security Configuration Guide, Cisco IOS Release 12.2 』の「Configuring Secure Shell」の章にある「SSH Configuration Examples」の項を参照してください。
IPv6 における SSH は、IPv4 における SSH と同じように機能し、同じ利点があります。SSH への IPv6 の機能拡張により、IPv6 アドレスがサポートされるため、Cisco ルータは IPv6 トランスポートを介してリモート IPv6 ノードとのセキュアな暗号化された接続を受け入れたり、確立したりできます。
(注) ここで使用するコマンドの構文および使用方法の詳細については、このリリースに対応するコマンド リファレンスおよび Cisco IOS Release 12.2 のコマンド リファレンスを参照してください。
SSH
SSH は、デバイスに対する安全なリモート接続を可能にするプロトコルです。SSH は、デバイスの認証時に強力な暗号化を行うことで、リモート接続について Telnet 以上のセキュリティを実現します。このソフトウェア リリースは、SSH バージョン 1(SSHv1)および SSH バージョン 2(SSHv2)をサポートしています。
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 Security(IPSec)をサポートしていません。
制限事項
SSH には、次の制限事項が適用されます。
• スイッチは、Rivest, Shamir, and Adelman(RSA)認証をサポートします。
• SSH は、実行シェル アプリケーションだけをサポートします。
• SSH サーバおよび SSH クライアントは、DES(56 ビット)および 3DES(168 ビット)データ暗号化ソフトウェアでのみサポートされます。
• スイッチは、128 ビット キー、192 ビット キー、または 256 ビット キーの Advanced Encryption Standard(AES)暗号化アルゴリズムをサポートします。ただし、キーを暗号化する対称暗号化 AES はサポートされません。
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 がディセーブルにされていることを確認してください。
SSL HTTP のためのスイッチ
Secure Socket Layer(SSL)バージョン 3.0 では、HTTP 1.1 のサーバおよびクライアントをサポートします。SSL は、セキュア HTTP 通信を実現するために、HTTP クライアント認証だけでなく、サーバ認証、暗号化、およびメッセージの完全性も提供します。この機能を使用するには、スイッチに暗号化ソフトウェア イメージをインストールする必要があります。この機能を使用し、Cisco.com から暗号化ソフトウェア ファイルをダウンロードするには許可を得る必要があります。暗号化イメージの詳細については、このリリースのリリース ノートを参照してください。
セキュア 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 サービスを実行し、応答を(そのアプリケーションに)返すことです。
SSL をスイッチ クラスタで使用すると、SSL セッションがクラスタ コマンダで終了します。クラスタ メンバのスイッチは標準の HTTP で動作させる必要があります。
セキュア HTTP 接続には、CA のトラストポイントを正式に設定することを推奨します。CA のトラストポイントは、自己署名証明書より高いセキュリティがあります。
CA のトラストポイントを設定する前に、システム クロックが設定されていることを確認してください。クロックが設定されていないと、不正な日付により証明書が拒否されます。
SSL のデフォルト設定
表 12-6 SSL のデフォルト設定
|
標準の HTTP サーバはイネーブルに設定されています。 |
SSL はイネーブルに設定されています。 |
CA のトラストポイントは設定されていません。 |
自己署名証明書は生成されていません。 |
CA のトラストポイント
認証局(CA)は、要求を認可して参加するネットワーク デバイスに証明書を発行します。これらのサービスは、参加するデバイスに対する中央集中的なセキュリティ キーおよび証明書の管理を提供します。特定の CA サーバは トラストポイント と呼ばれます。
接続が実行されると、HTTPS サーバは、トラストポイントとなる特定の CA から得た X.509v3 の証明書を発行することで、セキュアな接続をクライアントに提供します。クライアント(通常、Web ブラウザ)は、その証明書の認証に必要な公開キーを保有しています。
セキュア HTTP 接続には、CA のトラストポイントを設定することを強く推奨します。HTTPS サーバを実行しているデバイスに CA のトラストポイントが設定されていないと、サーバは自身を認証して必要な RSA のキーのペアを生成します。自身で認証した(自己署名)証明書は適切なセキュリティではないので、接続するクライアントはその証明書が自己証明書であることを通知し、ユーザに接続の選択(確立または拒否)をさせる必要があります。この選択肢は内部ネットワーク トポロジ(テスト用など)に役立ちます。
CA のトラストポイントを設定していないと、セキュア HTTP 接続を有効にした場合、そのセキュア HTTP サーバ(またはクライアント)に対する一時的または永続的な自己署名証明書が自動的に生成されます。
• スイッチにホスト名とドメイン名が設定されてない場合、生成される自己署名証明書は一時的なものです。スイッチを再起動すると、この一時的な自己署名証明書は失われ、新たに自己署名証明書(一時的に)が割り当てられます。
• スイッチにホスト名とドメイン名が設定されている場合、生成される自己署名証明書は永続的なものです。この証明書は、スイッチを再起動しても、セキュア HTTP サーバを無効にしても有効のままです。そのため、再度セキュア HTTP 接続を有効にしたときに使用できます。
(注) 認証局およびトラストポイントは、個々のデバイスで設定する必要があります。他のデバイスからコピーすると、それらはスイッチ上で無効になります。
(注) TP self-signed の後ろに表示されている値は、デバイスのシリアル番号によって異なります。
オプションのコマンド( ip http secure-client-auth )を使用すると、HTTPS サーバがクライアントからの X.509v3 証明書を要求します。クライアントの認証は、サーバ自身の認証よりも高いセキュリティを提供します。
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 のトラストポイントが設定されているかどうかにかかわりません。
Secure Copy Protocol(SCP)
Secure Copy Protocol(SCP)機能は、スイッチの設定やイメージ ファイルのコピーにセキュアな認証方式を提供します。SCP には、Berkeley r-tool に代わるセキュリティの高いアプリケーションおよびプロトコルであるセキュア シェル(SSH)が必要です。
SSH を動作させるには、スイッチに RSA の公開キーと秘密キーのペアが必要です。これは SSH が必要な SCP も同様で、セキュアな転送を実現させるには、これらのキーのペアが必要です。
また、SSH には AAA 認証が必要のため、適切に設定するには、SCP にも AAA 認証が必要になります。
• SCP をイネーブルにする前に、スイッチの SSH、認証、許可、およびアカウンティングを適切に設定してください。
• SCP は SSH を使用してセキュアな転送を実行するため、スイッチには RSA キーのペアが必要です。
(注) SCP を使用する場合、copy コマンドにパスワードを入力することはできません。プロンプトが表示されたときに、入力する必要があります。
SCP は一連の Berkeley の r-tools に基づいて設計されているため、その動作内容は、SCP が SSH のセキュリティに対応している点を除けば、Remote Copy Protocol(RCP)と類似しています。また、SCP の設定には認証、許可、アカウンティング(AAA)の許可も必要なため、ルータはユーザが正しい権限レベルを保有しているか確認する必要があります。
適切な許可を得ているユーザは、SCP を使用して Cisco IOS File System(IFS)のファイルをスイッチに(またはスイッチから)自由にコピーできます。コピーには copy コマンドを使用します。また、許可されている管理者もこの作業をワークステーションから実行できます。
(注) SCP の設定および検証方法の詳細については、次の URL にある『Cisco IOS Security Configuration Guide: Securing User Services, Release 12.4』の「Secure Copy Protocol」を参照してください。http://www.cisco.com/en/US/docs/ios/sec_user_services/configuration/guide/sec_secure_copy_ps6350_TSD_Products_Configuration_Guide_Chapter.html