SNMP セキュリティについて
SNMP は、ネットワーク デバイス間での管理情報の交換を容易にするアプリケーション層プロトコルです。In all Cisco MDS 9000 Family switches, three SNMP versions are available: SNMPv1, SNMPv2c, and SNMPv3 (see 図 1).
SNMP バージョン 1 およびバージョン 2c
SNMP バージョン 1(SNMPv1)および SNMP バージョン 2c(SNMPv2c)は、コミュニティ ストリングを使用してユーザ認証を行います。コミュニティ ストリングは、SNMP の初期のバージョンで使用されていた弱いアクセス コントロール方式です。SNMPv3 は、強力な認証を使用することによってアクセス コントロールを大幅に改善しています。したがって、SNMPv3 がサポートされている場合は、SNMPv1 および SNMPv2c に優先して使用してください。
SNMP バージョン 3
SNMP バージョン 3(SNMPv3)は、ネットワーク管理のための相互運用可能な標準ベースのプロトコルです。SNMPv3 は、ネットワーク経由のフレームの認証と暗号化を組み合わせることによって、デバイスへのセキュア アクセスを実現します。SNMPv3 で提供されるセキュリティ機能は、次のとおりです。
- メッセージの完全性:パケットが伝送中に改ざんされていないことを保証します。
- 認証:メッセージのソースが有効かどうかを判別します。
- 暗号化:許可されていないソースにより判読されないように、パケットの内容のスクランブルを行います。
SNMPv3 では、セキュリティ モデルとセキュリティ レベルの両方が提供されています。セキュリティ モデルは、ユーザおよびユーザが属するロールを設定する認証方式です。セキュリティ レベルとは、セキュリティ モデル内で許可されるセキュリティのレベルです。セキュリティ モデルとセキュリティ レベルの組み合わせにより、SNMP パケット処理中に採用されるセキュリティ メカニズムが決まります。
SNMPv3 CLI のユーザ管理および AAA の統合
Cisco NX-OS ソフトウェアは RFC 3414 と RFC 3415 を実装しています。これには、ユーザベース セキュリティ モデル(USM)とロール ベースのアクセス コントロールが含まれています。SNMP と CLI のロール管理は共通化されており、同じ証明書とアクセス権限を共有しますが、以前のリリースではローカル ユーザ データベースは同期化されませんでした。
SNMPv3 のユーザ管理を AAA サーバ レベルで一元化できます。ユーザ管理を一元化すると、Cisco MDS スイッチ上で稼働する SNMP エージェントが AAA サーバのユーザ認証サービスを利用できます。ユーザ認証が検証されると、SNMP PDU の処理が進行します。また、AAA サーバにはユーザ グループ名も格納されます。SNMP はグループ名を使用して、スイッチでローカルに使用できるアクセス ポリシーまたはロール ポリシーを適用します。
CLI および SNMP ユーザの同期
ユーザ グループ、ロール、またはパスワードの設定が変更されると、SNMP と AAA の両方のデータベースが同期化されます。
To create an SNMP or CLI user, use either the username or snmp-server user commands.
- The auth passphrase specified in the snmp-server user command is synchronized as the password for the CLI user.
- The password specified in the username command is synchronized as the auth and priv passphrases for the SNMP user.
ユーザの同期化は、次のように処理されます。
- いずれかのコマンドを使用してユーザを削除すると、SNMP と CLI の両方の該当ユーザが削除されます。
- ユーザとロールの対応関係の変更は、SNMP と CLI で同期化されます。
(注) |
パスフレーズ/パスワードをローカライズド キー/暗号化形式で指定すると、パスワードは同期化されません。 |
- 既存の SNMP ユーザは、特に変更しなくても、引き続き auth および priv のパスフレーズを維持できます。
- 管理ステーションが usmUserTable 内に SNMP ユーザを作成する場合、対応する CLI ユーザはパスワードなし(ログインは無効)で作成され、network-operator のロールが付与されます。
スイッチ アクセスの制限
IP アクセス コントロール リスト(IP-ACL)を使用して、Cisco MDS 9000 ファミリ スイッチへのアクセスを制限できます。
グループベースの SNMP アクセス
(注) |
グループ が業界全体で使用される標準的な SNMP 用語のため、この SNMP セクションではロールをグループと称します。 |
SNMP アクセス権は、グループ別に編成されます。SNMP 内の各グループは、CLI を使用する場合のロールに似ています。各グループは 3 つのアクセス権により定義されます。つまり、読み取りアクセス、書き込みアクセス、および通知アクセスです。それぞれのアクセスを、各グループでイネーブルまたはディセーブルに設定できます。
ユーザ名が作成され、ユーザのロールが管理者によって設定され、ユーザがそのロールに追加されていれば、そのユーザはエージェントとの通信を開始できます。
ユーザの作成および変更
SNMP、DCNM-SAN、または CLI を使用して、ユーザの作成、または既存のユーザの変更を実行できます。
- SNMP:スイッチ上の usmUserTable に存在するユーザのクローンとして、新規のユーザを作成します。ユーザを作成した後、クローンの秘密キーを変更してから、そのユーザをアクティブにします。RFC 2574 を参照してください。
- DCNM-SAN。
- CLI—Create a user or modify an existing user using the snmp-server user command.
Cisco MDS 9000 ファミリ スイッチ上で使用できるロールは、network-operator および network-admin です。GUI(DCNM-SAN および Device Manager)を使用する場合は、default-role もあります。また、Common Roles データベースに設定されている任意のロールも使用できます。
ヒント |
CLI セキュリティ データベースおよび SNMP ユーザ データベースに対する更新はすべて同期化されます。SNMP パスワードを使用して、DCNM-SAN または Device Manager のいずれかにログインできます。ただし、CLI パスワードを使用して DCNM-SAN または Device Manager にログインした場合、その後のログインには必ず CLI パスワードを使用する必要があります。Cisco MDS SAN-OS Release 2.0(1b) にアップグレードする前から SNMP データベースと CLI データベースの両方に存在しているユーザの場合、アップグレードすると、そのユーザに割り当てられるロールは両方のロールを結合したものになります。 |
AES 暗号ベースのプライバシー
Advanced Encryption Standard(AES)は対称暗号アルゴリズムです。Cisco NX-OS ソフトウェアは、SNMP メッセージ暗号化用のプライバシー プロトコルの 1 つとして AES を使用し、RFC 3826 に準拠しています。
priv オプションで、SNMP セキュリティ暗号化方式として、DES または 128 ビット AES 暗号化を選択できます。The priv option along with the aes-128 token indicates that this privacy password is for generating a 128-bit AES key. AES のプライバシー パスワードは最小で 8 文字です。パスフレーズをクリア テキストで指定する場合、最大 64 文字を指定できます。ローカライズド キーを使用する場合は、最大 130 文字を指定できます。
(注) |
外部の AAA サーバを使用して SNMPv3 を使う場合、外部 AAA サーバのユーザ設定でプライバシー プロトコルに AES を指定して、SNMP PDU を暗号化する必要があります。 |
トラップ、通知、伝達
トラップは、SNMPv1 で SNMP マネージャに SNMP エージェントから送信された未確認メッセージです。SNMPv2 および SNMPv3 の通知とも呼びます。伝達は、SNMP マネージャに SNMP エージェントから送信された確認済みメッセージです。エージェントが応答を受信しない場合、もう一度伝達要求を送信します。
伝達はエージェントおよびネットワークのリソースをより多く消費します。送信と同時にエージェントにより廃棄されるトラップまたは通知と異なり、伝達要求は応答を受信するまで、または要求がタイムアウトになるまで、メモリ内に保持する必要があります。トラップおよび通知は 1 回だけ送信でき、伝達は複数回送信できます。伝達を再送信することでトラフィックが増加し、ネットワーク上のオーバヘッドの向上に貢献します。同じトラップ、通知、および伝達は、複数のホスト レシーバに送信できます。
EngineID
SNMP エンジン ID は、送信元アドレスの独立したエンティティを識別するために使用されます。エンティティは、SNMP エンジンと SNMP アプリケーションで構成されています。プロトコル データ単位(PDU)がプロキシまたはネットワーク アドレス トランスレータ(NAT)をトラバースする必要があるか、送信元エンティティ自体が動的に割り当てられた転送アドレスまたは複数の送信元アドレスを所持している場合に、エンジン ID が重要です。
SNMPv3 エンジン ID は、セキュリティ保護された PDU をエンコーディングまたはデコーディングするためにも使用されます。これは、SNMPv3 ユーザベース セキュリティ モデル(USM)の要件です。
エンジン ID、ローカル、リモートには二種類あります。Cisco MDS 9000 シリーズ スイッチでは、リモート エンジン ID のみ設定できます。ローカル エンジン ID は、MAC アドレスに基づいてスイッチにより自動的に生成され、変更されません。
スイッチの LinkUp/LinkDown 通知
スイッチに対して、イネーブルにする LinkUp/LinkDown 通知を設定できます。次のタイプの LinkUp/LinkDown 通知をイネーブルにできます。
- Cisco:インターフェイスに対して ifLinkUpDownTrapEnable(IF-MIB で定義)がイネーブルになっている場合、そのインターフェイスについて CISCO-IF-EXTENSION-MIB.my で定義された通知(cieLinkUp、cieLinkDown)のみが送信されます。
- IETF:インターフェイスに対して ifLinkUpDownTrapEnable(IF-MIB で定義)がイネーブルになっている場合、そのインターフェイスについて IF-MIB で定義された通知(LinkUp、LinkDown)のみが送信されます。通知定義で定義された変数バインドのみが、それらの通知とともに送信されます。
- IEFT extended:インターフェイスに対して ifLinkUpDownTrapEnable(IF-MIB で定義)がイネーブルになっている場合、そのインターフェイスについて IF-MIB で定義された通知(LinkUp、LinkDown)のみが送信されます。通知定義で定義された変数バインドに加え、シスコの実装に固有の IF-MIB で定義された変数バインドも送信されます。これがデフォルト設定です。
- IEFT Cisco:インターフェイスに対して ifLinkUpDownTrapEnable(IF-MIB で定義)がイネーブルになっている場合、そのインターフェイスについて IF-MIB で定義された通知(LinkUp、LinkDown)および CISCO-IF-EXTENSION-MIB.my で定義された通知(cieLinkUp、cieLinkDown)のみが送信されます。通知定義で定義された変数バインドのみが、linkUp 通知や linkDown 通知とともに送信されます。
- IEFT extended Cisco:インターフェイスに対して ifLinkUpDownTrapEnable(IF-MIB で定義)がイネーブルになっている場合、そのインターフェイスについて IF-MIB で定義された通知(LinkUp、LinkDown)および CISCO-IF-EXTENSION-MIB.my で定義された通知(cieLinkUp、cieLinkDown)のみが送信されます。linkUp と linkDown の通知定義で定義された変数バインドに加え、シスコの実装に固有の IF-MIB で定義された変数バインドも LinkUp 通知や LinkDown 通知とともに送信されます。
(注) |
For more information on the varbinds defined in the IF-MIB specific to the Cisco Systems implementation, refer to the Cisco MDS 9000 Family MIB Quick Reference. |
LinkUp および LinkDown トラップ設定の範囲
インターフェイスに対する LinkUp および LinkDown トラップ設定は、次の範囲に基づいてトラップを生成します。
スイッチレベルのトラップ設定 |
インターフェイスレベルのトラップ設定 |
インターフェイス リンクについて生成されるトラップか? |
---|---|---|
有効(デフォルト) |
有効(デフォルト) |
Yes |
イネーブル |
無効 |
× |
無効 |
イネーブル |
× |
無効 |
ディセーブル |
いいえ |