1. コマンド一覧

このシナリオで重要なコマンド一覧は以下の通りです。

Switch(config)# snmp-server agent
Switch(config)# snmp-server community <entry_num> <community> [ RO | RW ] <remote_addr>
Switch(config)# snmp-server contact <contact>
Switch(config)# snmp-server location <location>

2. 仕様説明

2.1. SNMP 有効化

"snmp-server agent"コマンドでsnmpとsnmptrapの両方を有効化する事ができます。

Switch(config)# snmp-server agent

パナソニックNMOシリーズは、private, publicというコミュニティ名がデフォルトで設定されています。 SNMPを有効にしただけで、private, publicというコミュニティ名でスイッチにアクセスできてしまいますので、 インターネットからSNMPによるアクセスが可能な環境では充分に注意を払いましょう。

コミュニティ名の初期設定は以下の通りです。

Switch# show snmp

 SNMP Agent: Disabled

 SNMP Manager List:
  No.   Status    Previlege     IP Address         Community
 ----  --------   -----------   ---------------    ----------------------------
   1   Enabled    Read-Write    0.0.0.0            private
   2   Enabled    Read-Only     0.0.0.0            public
   3   Disabled   Read-Only     0.0.0.0
   4   Disabled   Read-Only     0.0.0.0
   5   Disabled   Read-Only     0.0.0.0
   6   Disabled   Read-Only     0.0.0.0
   7   Disabled   Read-Only     0.0.0.0
   8   Disabled   Read-Only     0.0.0.0
   9   Disabled   Read-Only     0.0.0.0
  10   Disabled   Read-Only     0.0.0.0

2.2. コミュニティ名の設定

以下のコマンドでコミュニティ名を設定する事ができます。 コミュニティ名は読取専用(RO)と書込可能(RW)の2種類を選ぶ事ができます。 ルータによってはMIB値を書き換える事によって再起動を行う事もできますので、 死活監視と性能監視のみの用途ならば読取専用(RO)にする事をお勧めします。

なお、MNOシリーズは、1から10までの<entry_num>を設定する事ができます。 最大10個までのコミュニティ名とセキュリティ設定の組み合わせを定義する事ができます。

Switch(config)# snmp-server community <entry_num> <community> [ RO | RW ]

2.3. contact location

必須設定ではありませんがsnmpは障害発生時に備え、 連絡先 contactと設置場所 locationを設定しておく事もできます。

Switch(config)# snmp-server contact <contact>
Switch(config)# snmp-server location <location>

2.4. セキュリティ設定 : 初期設定無効化

MNOシリーズは、デフォルトでpublic, privateというコミュニティ名が定義されています。 この設定を削除する事はできませんが、無効化するか上書きする事はできます。 もし、public, privateというコミュニティ名を無効化したいならば、以下のコマンドを入力します。 デフォルト設定として定義されているentry number 1, 2のSNMP agentを無効化するという意味です。

Switch(config)# no snmp-server community 1
Switch(config)# no snmp-server community 2

2.5. セキュリティ設定 : アクセス制御

SNMPによって取得できる情報を誰にでも見せてしまうのはセキュリティの観点で好ましくありません。 また、スイッチ機器にsnmpwalkコマンドを連打すれば簡単にCPU使用率を上昇させる事ができます。

このような脅威に備えるため、snmp応答を返すホストを限定する事ができます。 "snmp-server community"コマンド入力時、<remote_addr>にNMS(Network Management Station : 監視サーバ)の IPアドレスを指定する事で、NMS以外からのsnmpgetに応答しないようになります。

Switch(config)# snmp-server community <entry_num> <community> [ RO | RW ] <remote_addr>

3. 動作確認環境

以下の構成で動作確認を行います。

 [SW1:MNO]
hostname SW1
console inactivity-timer 0
telnet-server inactivity-timer 60
ip http server
!
ip address 192.168.0.1 255.255.255.0
ip default-gateway 192.168.0.254

初期設定の全文は以下を参照下さい。

4. snmpの設定

4.1. snmp 有効化

以下のコマンドを入力し、snmpを有効にします。

 [SW1:MNO]
snmp-server agent

4.2. コミュニティ名の設定

RO_MNSというコミュニティ名でMIB値が読み取り可能なるように設定します。

 [SW1:MNO]
snmp-server community 3 RO_MNS RO

4.3. 設定確認

"show snmp"というコマンドにより設定を確認します。 RO_MNSというコミュニティ名が読取専用で定義されている事を確認します。

 [SW1:MNO]
SW1# show snmp

 SNMP Agent: Enabled

 SNMP Manager List:
  No.   Status    Previlege     IP Address         Community
 ----  --------   -----------   ---------------    ----------------------------
   1   Enabled    Read-Write    0.0.0.0            private
   2   Enabled    Read-Only     0.0.0.0            public
   3   Enabled    Read-Only     0.0.0.0            RO_MNS
   4   Disabled   Read-Only     0.0.0.0
   5   Disabled   Read-Only     0.0.0.0
   6   Disabled   Read-Only     0.0.0.0
   7   Disabled   Read-Only     0.0.0.0
   8   Disabled   Read-Only     0.0.0.0
   9   Disabled   Read-Only     0.0.0.0
  10   Disabled   Read-Only     0.0.0.0

 Trap Reciever List:
  No.   Status       Type       IP Address         Community
 ----  --------   -----------   ---------------    ----------------------------
   1   Disabled   v1            0.0.0.0
   2   Disabled   v1            0.0.0.0
   3   Disabled   v1            0.0.0.0
More .....To stop press (n)

4.4. 疎通確認

Host100からSW1へ、public, RO_MNSというコミュニティ名でSNMP読取が可能である事を確認します。

 [Host100]
[root@localhost ~]# snmpwalk -v 2c -c public 192.168.0.1
SNMPv2-MIB::sysDescr.0 = STRING: Switch-M24PWR
SNMPv2-MIB::sysObjectID.0 = OID: SNMPv2-SMI::enterprises.396.5.4.1.19
DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (51069) 0:08:30.69
SNMPv2-MIB::sysContact.0 = STRING:
SNMPv2-MIB::sysName.0 = STRING: SW1
^C
[root@localhost ~]#
[root@localhost ~]#
[root@localhost ~]# snmpwalk -v 2c -c RO_MNS 192.168.0.1
SNMPv2-MIB::sysDescr.0 = STRING: Switch-M24PWR
SNMPv2-MIB::sysObjectID.0 = OID: SNMPv2-SMI::enterprises.396.5.4.1.19
DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (50468) 0:08:24.68
SNMPv2-MIB::sysContact.0 = STRING:
SNMPv2-MIB::sysName.0 = STRING: SW1
^C
[root@localhost ~]#

5. contact / location

5.1. contact / location 設定

locationとcontactを設定します。

 [SW1:MNO]
snmp-server contact foo@hogehoge.com
snmp-server location 1214A15_13U

5.2. 疎通確認

Host100からlocation, contactが参照できるようになった事を確認します。

 [Host100]
[root@localhost ~]# snmpwalk -v 2c -c RO_MNS 192.168.0.1 | egrep "sysContact|sysLocation"
SNMPv2-MIB::sysContact.0 = STRING: foo@hogehoge.com
SNMPv2-MIB::sysLocation.0 = STRING: 1214A15_13U
[root@localhost ~]#

6. セキュリティ設定 : 初期設定無効化

6.1. 初期コミュニティ名の無効化

パナソニックはMNOシリーズは、初期設定でid 1にpublic, id 2にprivateというコミュニティ名が定義されています。 このコミュニティ名を無効化し、第三者がSNMP情報を取得できないようにします。

 [SW1:MNO]
no snmp-server community 1
no snmp-server community 2

6.2. 設定確認

"show snmp"コマンドにより、コミュニティ private, publicが無効化された事を確認します。

 [SW1:MNO]
SW1# show snmp

 SNMP Agent: Enabled

 SNMP Manager List:
  No.   Status    Previlege     IP Address         Community
 ----  --------   -----------   ---------------    ----------------------------
   1   Disabled   Read-Write    0.0.0.0            private
   2   Disabled   Read-Only     0.0.0.0            public
   3   Enabled    Read-Only     0.0.0.0            RO_MNS
   4   Disabled   Read-Only     0.0.0.0
   5   Disabled   Read-Only     0.0.0.0
   6   Disabled   Read-Only     0.0.0.0
   7   Disabled   Read-Only     0.0.0.0
   8   Disabled   Read-Only     0.0.0.0
   9   Disabled   Read-Only     0.0.0.0
  10   Disabled   Read-Only     0.0.0.0

 Trap Reciever List:
  No.   Status       Type       IP Address         Community
 ----  --------   -----------   ---------------    ----------------------------
   1   Disabled   v1            0.0.0.0
   2   Disabled   v1            0.0.0.0
   3   Disabled   v1            0.0.0.0
More .....To stop press (n)

6.3. 疎通不能の確認

Host100からpublicというコミュニティ名でアクセスできなくなった事を確認します。

 [Host100]
[root@localhost ~]# snmpwalk -v 2c -c public 192.168.0.1
Timeout: No Response from 192.168.0.1
[root@localhost ~]#

7. セキュリティ設定 : アクセス制御

7.1. trapdサーバによるアクセス制御

Host100からのみsnmpgetを受け付けるように設定します。

 [SW1:MNO]
snmp-server community 3 RO_MNS RO 192.168.0.100

7.2. 接続許可の確認

Host100からsnmpによる読み取りが可能である事を確認します。

 [Host100]
[root@localhost ~]# snmpwalk -v 2c -c RO_MNS 192.168.0.1
SNMPv2-MIB::sysDescr.0 = STRING: Switch-M24PWR
SNMPv2-MIB::sysObjectID.0 = OID: SNMPv2-SMI::enterprises.396.5.4.1.19
DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (114306) 0:19:03.06
SNMPv2-MIB::sysContact.0 = STRING: foo@hogehoge.com
^C
[root@localhost ~]#

7.3. 接続拒否の確認

Host100からのアクセス権を削除します。

 [SW1:MNO]
snmp-server community 3 RO_MNS RO 10.10.10.10

Host100からSW1にsnmpgetができなくなった事を確認します。

 [Host100]
[root@localhost ~]# snmpwalk -v 2c -c RO_MNS 192.168.0.1
Timeout: No Response from 192.168.0.1
[root@localhost ~]#