パナソニックMNOシリーズはSNMPによる監視機能を備えたルータです。snmp communityを設定する事によって、監視サーバからのsnmpgetに応答できるようになり、帯域やCPU使用率をグラフ化する事ができます。
コマンド一覧
このシナリオで重要なコマンド一覧は以下の通りです。
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>
仕様説明
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
コミュニティ名の設定
以下のコマンドでコミュニティ名を設定する事ができます。コミュニティ名は読取専用(RO)と書込可能(RW)の2種類を選ぶ事ができます。ルータによってはMIB値を書き換える事によって再起動を行う事もできますので、死活監視と性能監視のみの用途ならば読取専用(RO)にする事をお勧めします。
なお、MNOシリーズは、1から10までの<entry_num>を設定する事ができます。最大10個までのコミュニティ名とセキュリティ設定の組み合わせを定義する事ができます。
Switch(config)# snmp-server community <entry_num> <community> [ RO | RW ]
contact location
必須設定ではありませんがsnmpは障害発生時に備え、連絡先 contactと設置場所 locationを設定しておく事もできます。
Switch(config)# snmp-server contact <contact> Switch(config)# snmp-server location <location>
セキュリティ設定 : 初期設定無効化
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
セキュリティ設定 : アクセス制御
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>
動作確認環境
以下の構成で動作確認を行います。
[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
初期設定の全文は以下を参照下さい。
snmpの設定
snmp 有効化
以下のコマンドを入力し、snmpを有効にします。
[SW1:MNO] snmp-server agent
コミュニティ名の設定
RO_MNSというコミュニティ名でMIB値が読み取り可能なるように設定します。
[SW1:MNO] snmp-server community 3 RO_MNS RO
設定確認
“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)
疎通確認
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 ~]#
contact / location
contact / location 設定
locationとcontactを設定します。
[SW1:MNO] snmp-server contact foo@hogehoge.com snmp-server location 1214A15_13U
疎通確認
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 ~]#
セキュリティ設定 : 初期設定無効化
初期コミュニティ名の無効化
パナソニックはMNOシリーズは、初期設定でid 1にpublic, id 2にprivateというコミュニティ名が定義されています。このコミュニティ名を無効化し、第三者がSNMP情報を取得できないようにします。
[SW1:MNO] no snmp-server community 1 no snmp-server community 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)
疎通不能の確認
Host100からpublicというコミュニティ名でアクセスできなくなった事を確認します。
[Host100] [root@localhost ~]# snmpwalk -v 2c -c public 192.168.0.1 Timeout: No Response from 192.168.0.1 [root@localhost ~]#
セキュリティ設定 : アクセス制御
trapdサーバによるアクセス制御
Host100からのみsnmpgetを受け付けるように設定します。
[SW1:MNO] snmp-server community 3 RO_MNS RO 192.168.0.100
接続許可の確認
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 ~]#
接続拒否の確認
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 ~]#