読者です 読者をやめる 読者になる 読者になる

中年engineerの独り言 - crumbjp

LinuxとApacheの憂鬱

簡単SNMP(ACL設定 v3編)

SNMPで誤解してた部分を勉強し直したついでに纏めてみた。

前回の続き

v3

ユーザを作る作業が面倒でメゲそうになるが、、他に選択支が無いのでやるしかない。
ユーザ作成時に暗号化用のトークンも指定してしまう所がポイント

コミュニティー名

使わない。
com2sec行は消して良い。

ユーザ作成
手順
  1. 一旦、snmpdを落とす
  2. ユーザ作成スクリプト(/usr/bin/net-snmp-create-v3-user)
  3. 指示通り、/var/lib/net-snmp/snmpd.confを編集・・・(のハズが自動的に追記される模様!)
  4. 指示通り、/etc/snmp/snmpd.confを編集・・・(のハズが自動的に追記される模様!)
  5. snmpdを起動

snmpd は/var/lib/net-snmp/snmpd.confをリアルタイムで監視しており、手順3. の内容(create user)を自動的に実行する。

一旦、snmpdを落とす
# /etc/init.d/snmpd stop
ユーザ作成スクリプト(/usr/bin/net-snmp-create-v3-user)
# /usr/bin/net-snmp-create-v3-user
Enter a SNMPv3 user name to create:
myuser ※ 入力
Enter authentication pass-phrase:
mypasswd ※ 入力
Enter encryption pass-phrase:
  [press return to reuse the authentication pass-phrase]
mypassphrase ※ 入力
adding the following line to /var/lib/net-snmp/snmpd.conf:
   createUser myuser MD5 "mypasswd" DES mypassphrase
adding the following line to /etc/snmp/snmpd.conf:
   rwuser myuser
myuser
SNMPユーザ名
mypasswd
SNMPユーザのパスワード
mypassphrase
通信内容を暗号化する為の共通鍵
指示通り、/var/lib/net-snmp/snmpd.confを編集・・・
#FF0000;font-weight:bold;">(のハズが自動的に追記される模様!):
  :
  :
##############################################################
#
# snmpNotifyFilterTable persistent data
#
##############################################################
engineBoots 52
oldEngineID 0x80001f8880eee6ac431884245100000000

createUser myuser MD5 "mypasswd" DES mypassphrase ※追記される。
指示通り、/etc/snmp/snmpd.confを編集・・・
#FF0000;font-weight:bold;">(のハズが自動的に追記される模様!):
  :
  :
###############################################################################
# Further Information
#
#  See the snmpd.conf manual page, and the output of "snmpd -H".
rwuser myuser ※追記される。
snmpdを起動
# /etc/init.d/snmpd start

この後、再度/var/lib/net-snmp/snmpd.confを見ると

createUser myuser MD5 "mypasswd" DES mypassphrase

の行が消えており、次の様な行が追加されている。

usmUser 1 3 0x80001f8880eee6ac431884245100000000 0x6372756d6200 0x6372756d6200 NULL .1.3.6.1.6.3.10.1.1.2 0xda8e6502d89aab1e9043f12433507b07 .1.3.6.1.6.3.10.1.2.2 0x5267b1fb367b0fd1921122242e5d02d2 0x
ACL設定

/etc/snmp/snmpd.conf

# usm = v3
group   localGroup   usm           myuser
# v1 , v2 と変わらず
view    roview    included   .1.3.6.1
view    rwview    included   .1.3.6.1.2.1.1
# auth を指定
access  localGroup   ""      any       auth    exact  roview rwview none

設定後、snmpdを再起動

# /etc/init.d/snmpd restart
アクセス方法

snmpget , snmpwalk などにある-l オプションを使う

noAuthNoPriv
認証も暗号化も行わない
authNoPriv
認証を行うが暗号化は行わない
authPriv
認証も暗号化も行う。(特に理由が無い限りコレを使う)
$ snmpget -v 3 -lauthPriv  -u myuser -a MD5 -A mypasswd -x DES -X mypassphrase    127.0.0.1 .1.3.6.1.2.1.1.5.0
ついでに暗号化も確認してみる。
非暗号化の場合
戻り値fooがそのまま送られてくる
$ snmpget -v 3  -lauthNoPriv -u myuser -a MD5 -A mypasswd 127.0.0.1 .1.3.6.1.2.1.1.5.0 -d
No log handling enabled - turning on stderr logging
   :
   :
0112: 02 01 00 30  11 30 0F 06  08 2B 06 01  02 01 01 05    ...0.0...+......
0128: 00 04 03 66  6F 6F                                    ...foo

SNMPv2-MIB::sysName.0 = STRING: foo
暗号化の場合
戻り値fooが確認できない
snmpget -v 3  -lauthPriv -u myuser -a MD5 -A mypasswd -x DES -X mypassphrase     127.0.0.1 .1.3.6.1.2.1.1.5.0 -d
No log handling enabled - turning on stderr logging

Sending 64 bytes to UDP: [127.0.0.1]:161->[0.0.0.0]
   :
   :
0128: EF 4A 68 6C  81 DC 7F 02  B0 20 C4 BE  2D 13 83 5C    .Jhl..... ..-..\

SNMPv2-MIB::sysName.0 = STRING: foo

次回

監視カスタマイズの予定