Cisco機器のSNMP設定【SNMPv3】

Cisco機器のSNMP設定【SNMPv3】

Cisco機器のSNMP設定(SNMPv3)について説明します。SNMPv3で追加された機能(認証と暗号化)を利用するための設定を行います。

SNMPの基礎については、下記を参照してください。

SNMPv2cの設定については、下記を参照してください。

目次

SNMPv3の基本的な考え方

構成要素(SNMPエンティティ・SNMPエンジン)

SNMPv2cで「SNMPマネージャ」「SNMPエージェント」と呼ばれていた構成要素は廃止され、全てのノードが「SNMPエンティティ」という呼び方に統一されました。

SNMPエンティティの中の「SNMPエンジン」が、メッセージの送受信やセキュリティ機能を担っています。また、SNMPエンジンは、「エンジンID」を持つことにより、管理ドメイン内で一意に識別されます。

SNMPv3の構成要素イメージ
SNMPv3の構成要素イメージ

SNMPv3では、「SNMPマネージャ」「SNMPエージェント」という呼び方は廃止されていますが、このページでは分かりやすく説明するために、情報を管理・取得するノードを「SNMPマネージャ」、情報を提示・通知するノードを「SNMPエージェント」と呼んでいます。

認証と暗号化

SNMPv3では、主に認証と暗号化の機能が追加されており、下記の3パターンの考え方があります。

セキュリティ名称表示認証暗号化説明
noAuthNoPrivnoauth無し無しユーザー名のみの認証
authNoPrivauth有り無しMD5 or SHA での認証
authPrivpriv有り有りDES or 3DES or AES での暗号化

どのセキュリティレベルを採用するかで、設定に必要なパラーメータが変わってきますので、上記の考え方をしっかりと把握しておきましょう。

SNMPリクエストを受け付けるための設定

noAuthNoPriv(認証無し暗号化無し)

下記の設定を行うことで、「認証無し暗号化無し」のリクエストを受け付けることができます。※ここで設定するユーザー名と、SNMPマネージャが指定するユーザー名が一致している必要があります。

snmp-server group [グループ名] v3 noauth
snmp-server user [ユーザー名] [グループ名] v3

noAuthNoPrivの設定例

noAuthNoPrivの設定例
snmp-server group noauthgroup v3 noauth
snmp-server user noauthuser noauthgroup v3
SNMPマネージャからの情報要求の例(ホスト名の取得)
Server[~]: snmpget -v3 -u noauthuser -l noAuthNoPriv 192.168.1.100 1.3.6.1.2.1.1.5.0
SNMPv2-MIB::sysName.0 = STRING: Router1

noAuthNoPriv(認証無し・暗号化無し)の場合は、SNMPv2cでも要件は満たせるため、あまり利用されることはありません。

authNoPriv(認証有り暗号化無し)

下記の設定を行うことで、「認証有り暗号化無し」のリクエストを受け付けることができます。

snmp-server group [グループ名] v3 auth
snmp-server user [ユーザー名] [グループ名] v3 auth [md5|sha] [認証パスワード]

authNoPrivの設定例

authNoPrivの設定例
snmp-server group authgroup v3 auth
snmp-server user authuser authgroup v3 auth md5 authpass
SNMPマネージャからの情報要求の例(ホスト名の取得)
Server[~]: snmpget -v3 -u authuser -a md5 -A authpass -l authNoPriv 192.168.1.100 1.3.6.1.2.1.1.5.0
SNMPv2-MIB::sysName.0 = STRING: Router1

authPriv(認証有り暗号化有り)

下記の設定を行うことで、「認証有り暗号化有り」のリクエストを受け付けることができます。

snmp-server group [グループ名] v3 priv
snmp-server user [ユーザー名] [グループ名] v3 auth [md5|sha] [認証パスワード] priv [des|3des|aes [128|192|256]] [暗号化パスワード]

authPrivの設定例

authPrivの設定例
snmp-server group privgroup v3 priv
snmp-server user privuser privgroup v3 auth sha authpass priv aes 128 privpass
SNMPマネージャからの情報要求の例(ホスト名の取得)
Server[~]: snmpget -v3 -u privuser -a sha -A authpass -x aes -X privpass -l authPriv 192.168.1.100 1.3.6.1.2.1.1.5.0
SNMPv2-MIB::sysName.0 = STRING: Router1

暗号化方式にAESを選択した場合、128/192/256ビットの選択ができますが、SNMPマネージャ側も選択したビット数に対応している必要があります。

Viewの設定(MIBへのアクセス制限)

下記の設定を行うことで、SNMPマネージャから参照されるMIBを制限することができます。

snmp-server view [ビュー名] [MIB名] [included|excluded]
snmp-server group [グループ名] v3 [noauth|auth|priv] read [ビュー名] write [ビュー名]
snmp-server user [ユーザー名] [グループ名] v3 auth [md5|sha] [認証パスワード] priv [des|3des|aes [128|192|256]] [暗号化パスワード]

Viewの設定例(noAuthNoPrivの例)

Viewの設定例(noAuthNoPrivの例)

システム情報MIB(1.3.6.1.2.1.1)の取得のみに制限する場合は、下記の設定を行います。

snmp-server view sysview system included
snmp-server group viewgroup v3 noauth read sysview
snmp-server user viewuser viewgroup v3
SNMPマネージャからの情報要求の例

システム情報の取得 → OK

Server[~]: snmpget -v3 -u viewuser -l noAuthNoPriv 192.168.1.100 1.3.6.1.2.1.1.5.0
SNMPv2-MIB::sysName.0 = STRING: Router1

インターフェース情報の取得 → NG

Server[~]: snmpwalk -v3 -u viewuser -l noAuthNoPriv 192.168.1.100 1.3.6.1.2.1.2.2.1.2
IF-MIB::ifDescr = No more variables left in this MIB View (It is past the end of the MIB tree)

SNMPv2cでは、RO(Read-only)かRW(Read-write)のどちらかの選択でしたが、SNMPv3では、MIB毎に柔軟にアクセス権を設定できます。

SNMPトラップを送信する設定

下記4パターンでのトラップ送信の設定方法を説明します。

パターン認証暗号化再送
パターン1有り無し無し
パターン2有り有り無し
パターン3有り無し有り
パターン4有り有り有り

SNMPトラップの設定(認証有り・暗号化無し・再送無し)

下記の設定を行うことで、「認証有り暗号化無し再送無し」のSNMPトラップを送信することができます。

snmp-server group [グループ名] v3 auth
snmp-server user [ユーザー名] [グループ名] v3 auth [md5|sha] [認証パスワード]
snmp-server host [SNMPマネージャのIPアドレス] version 3 auth [ユーザー名]
snmp-server enable traps [有効にするトラップ名]

認証有り暗号化無し再送無し」のSNMPトラップを送信する設定例

「認証有り・暗号化無し・再送無し」のSNMPトラップを送信する設定例
snmp-server group authgroup v3 auth
snmp-server user authuser authgroup v3 auth sha authpass
snmp-server host 192.168.1.6 version 3 auth authuser
snmp-server enable traps snmp authentication linkdown linkup coldstart warmstart
トラップ送信の確認

下記のデバッグを実行することで、SNMPパケットの送受信状況とヘッダー情報が確認できます。

debug snmp packets
debug snmp headers

Gi0/3をシャットダウンします。

Router1(config)#int Gi0/3
Router1(config-if)#shutdown

デバッグログの確認

10:21:28.350: v3 packet 	security model: v3	 security level: auth
10:21:28.351: username: authuser
10:21:28.352: snmpEngineID: 8000000903005254001DD983
10:21:28.353: SNMP: V2 Trap, reqid 107, errstat 0, erridx 0
10:21:28.601: SNMP: Packet sent via UDP to 192.168.1.6

「security level: auth」でSNMPトラップが送信されていることがわかります。

SNMPトラップの設定(認証有り・暗号化有り・再送無し)

下記の設定を行うことで、「認証有り暗号化有り再送無し」のSNMPトラップを送信することができます。

snmp-server group [グループ名] v3 auth
snmp-server user [ユーザー名] [グループ名] v3 auth [md5|sha] [認証パスワード] priv [des|3des|aes [128|192|256]] [暗号化パスワード]
snmp-server host [SNMPマネージャのIPアドレス] version 3 auth [ユーザー名]
snmp-server enable traps [有効にするトラップ名]

認証有り暗号化有り再送無し」のSNMPトラップを送信する設定例

「認証有り・暗号化有り・再送無し」のSNMPトラップを送信する設定例
snmp-server group authgroup v3 priv
snmp-server user authuser authgroup v3 auth sha authpass priv aes 128 privpass
snmp-server host 192.168.1.6 version 3 priv authuser
snmp-server enable traps snmp authentication linkdown linkup coldstart warmstart

トラップ送信の確認

下記のデバッグを実行することで、SNMPパケットの送受信状況とヘッダー情報が確認できます。

debug snmp packets
debug snmp headers

Gi0/3をシャットダウンします。

Router1(config)#int Gi0/3
Router1(config-if)#shutdown

デバッグログの確認

10:25:01.843: v3 packet 	security model: v3	 security level: priv
10:25:01.844: username: authuser
10:25:01.845: snmpEngineID: 8000000903005254001DD983
10:25:01.846: SNMP: V2 Trap, reqid 109, errstat 0, erridx 0
10:25:02.094: SNMP: Packet sent via UDP to 192.168.1.2

「security level: priv」でSNMPトラップが送信されていることがわかります。

SNMPトラップの設定(認証有り・暗号化無し・再送有り)

下記の設定を行うことで、「認証有り暗号化無し再送有り」のSNMPトラップを送信することができます。

snmp-server engineID remote [SNMPマネージャのIPアドレス] [エンジンID]
snmp-server group [グループ名] v3 auth
snmp-server user [ユーザー名] [グループ名] v3 auth [md5|sha] [認証パスワード]
snmp-server host [SNMPマネージャのIPアドレス] version 3 auth [ユーザー名]
snmp-server enable traps [有効にするトラップ名]

再送有りのトラップ(Inform Request)を送信するためには、送信先に通知するエンジンIDを明示的に設定します。上記設定の場合、「show snmp engineID」で確認できるローカルIDと合わせる必要があります。

認証有り暗号化無し再送有り」のSNMPトラップを送信する設定例

マネージャから応答が有る場合
「認証有り・暗号化無し・再送有り」のSNMPトラップを送信する設定例 ※マネージャから応答有り
マネージャーから応答が無い場合
「認証有り・暗号化無し・再送有り」のSNMPトラップを送信する設定例 ※マネージャから応答無し
snmp-server engineID remote 192.168.1.6 8000000903005254001DD983
snmp-server group authgroup v3 auth
snmp-server user authuser authgroup v3 auth sha authpass
snmp-server host 192.168.1.6 informs version 3 auth authuser
snmp-server enable traps snmp authentication linkdown linkup coldstart warmstart
トラップ送信の確認

下記のデバッグを実行することで、SNMPパケットの送受信状況とヘッダー情報が確認できます。

debug snmp packets
debug snmp headers

Gi0/3をシャットダウンします。

Router1(config)#int Gi0/3
Router1(config-if)#shutdown

デバッグログの確認

11:01:27.168: v3 packet 	security model: v3	 security level: auth
11:01:27.169: username: authuser
11:01:27.170: snmpEngineID: 8000000903005254001DD983
11:01:27.170: SNMP: Inform request, reqid 42, errstat 0, erridx 0
11:01:27.176: SNMP: Packet sent via UDP to 192.168.1.6.162

「security level: auth」でSNMPトラップ(Inform request)が送信されていることがわかります。

SNMPトラップの設定(認証有り・暗号化有り・再送有り)

下記の設定を行うことで、「認証有り暗号化有り再送有り」のSNMPトラップを送信することができます。

snmp-server engineID remote [SNMPマネージャのIPアドレス] [エンジンID]
snmp-server group [グループ名] v3 auth
snmp-server user [ユーザー名] [グループ名] v3 auth [md5|sha] [認証パスワード] priv [des|3des|aes [128|192|256]] [暗号化パスワード]
snmp-server host [SNMPマネージャのIPアドレス] version 3 auth [ユーザー名]
snmp-server enable traps [有効にするトラップ名]

再送有りのトラップ(Inform Request)を送信するためには、送信先に通知するエンジンIDを明示的に設定します。上記設定の場合、「show snmp engineID」で確認できるローカルIDと合わせる必要があります。

認証有り暗号化有り再送有り」のSNMPトラップを送信する設定例

マネージャから応答が有る場合
「認証有り・暗号化有り・再送有り」のSNMPトラップを送信する設定例 ※マネージャから応答有り
マネージャーから応答が無い場合
「認証有り・暗号化有り・再送有り」のSNMPトラップを送信する設定例 ※マネージャから応答無し
snmp-server engineID remote 192.168.1.6 8000000903005254001DD983
snmp-server group authgroup v3 priv
snmp-server user authuser authgroup v3 auth sha authpass priv aes 128 privpass
snmp-server host 192.168.1.6 informs version 3 priv authuser
snmp-server enable traps snmp authentication linkdown linkup coldstart warmstart
トラップ送信の確認

下記のデバッグを実行することで、SNMPパケットの送受信状況とヘッダー情報が確認できます。

debug snmp packets
debug snmp headers

Gi0/3をシャットダウンします。

Router1(config)#int Gi0/3
Router1(config-if)#shutdown

デバッグログの確認

11:08:30.778: v3 packet 	security model: v3	 security level: priv
11:08:30.780: username: authuser
11:08:30.780: snmpEngineID: 8000000903005254001DD983
11:08:30.781: SNMP: Inform request, reqid 44, errstat 0, erridx 0
11:08:30.787: SNMP: Packet sent via UDP to 192.168.1.6.162

「security level: priv」でSNMPトラップ(Inform request)が送信されていることがわかります。

以上で、Cisco機器のSNMP設定【SNMPv3】の説明は完了です!

  • URLをコピーしました!
  • URLをコピーしました!
目次