SNMP v1,v2 に関してはセキュリティで難あり(まともな認証ないし、パスワードは暗号化されないし、通信も暗号化されない)ので取りたい情報は十分取れるし便利なのだけどいまいちはやってなかった。
設定も面倒くさいしねぇ。
今回改めてv3を触ってみて、相変わらず設定はいろいろ考えなくちゃいけなくて面倒だが
きちんと通信も暗号化されるようになったのでいいんじゃないかなぁ?と期待。
ただ、あまりにも情報が少ないので使い始めるまでにかなりイライラした。
というわけで、とりあえず最低限動く状態まで簡単にできるように備忘録を残しておくことにします。
今回の対象OSはCentOS5.2です。Fedora 9でも同じで大丈夫だったはず。
まずは、snmp関連一式をyumでインストール。
$ sudo yum install net-snmp net-snmp-utils net-snmp-libs
その後、ひとまず特に設定せずに起動し起動するか確認。
個人的にはSNMP v2 の設定をして動く状態を確認してからSNMP v3の設定に入ったのだけど、ここにそこまで書くのはめんどうなので省略。いきなりSNMP v3設定始めます。
sudo tail /var/log/messages でSNMPのエラーが出ずに起動していればOKと判断して次へ進む。
$ sudo /etc/rc.d/init.d/snmpd start
snmpd を起動中: [ OK ]
$ sudo /etc/rc.d/init.d/snmpd status
snmpd (pid XXXX) を実行中...
/etc/snmp/snmpd.conf を下記のように編集。デフォルトのファイルにはいろいろ書かれているけど、シンプルに必要なものだけ抽出。最低限の設定なのでviewは全部見せちゃう設定です。
viewを細かく区切ってユーザごとに権限つけて、等は必要に応じてやるってことで。
最後の行の「rwuser snmpuser」ってところの「snmpuser」というのが今回SNMP v3でアクセスするためのユーザです。access のusmというのがSNMP v3の設定。
# sec.name source community
com2sec secuser default public
# groupName securityModel securityName
group secgroup usm secuser
# name incl/excl subtree mask(optional)
view systemview included .1
#access notConfigGroup "" any noauth exact systemview none none
#access secgroup "" usm authPriv exact all none none
access secgroup "" usm authPriv exact all all none
# System contact information
syslocation Unknown
syscontact Root <info@serverxserver.com>
# Auth settings.
rwuser snmpuser
ここで一度snmpd をリスタートしてエラーが出ていないか確認。OKだったらsnmpdを一度停止。
停止した状態で「/var/net-snmp/snmpd.conf」を編集。ファイルの中ほどにある「usmUser…」を削除して、「—追加」から「—」までを追記。そして、snmpdをスタート。ここで注意すべきは、snmpdが起動している状態で書き換えて、リスタートしてもだめってこと。きちんと停止してから編集しないと反映されなかった。
$ sudo /etc/rc.d/init.d/snmpd stop
$ sudo vi /var/net-snmp/snmpd.conf
---消す
usmUser 1 3 0x800XXXXXXXXXXXXXXXXXXXXXXXXXXX200 XXXXXXXXXXXXNULL .1.3.6.1.6.3.10.1.1.2 XXXXXXXXXXXXXXX.1.3.6.1.6.3.10.1.2.2 XXXXXXXX0x00
---
--- 追加
createUser snmpuser MD5 PASS1 DES PASS2
---
$ sudo /etc/rc.d/init.d/snmpd start
snmpuser 用のviewを作成
snmpvacm -v 3 -u snmpuser -l authPriv -a MD5 -A PASS1 -x DES -X PASS2 localhost createView all .1 80
snmpuser でsnmpwalkしてみる。
snmpwalk -v 3 -u snmpuser -n "" -l authPriv -a MD5 -A PASS1 -x DES -X PASS2 localhost .1
ここまで書いて何なのだが、CodeZineのnet-snmpについてが秀逸。これを見ればすべて解決。ここまでたどり着くまでにすごい試行錯誤したのにCodeZineに綺麗にまとまっててちょっとなけた。
この記事に僕が追記するとすれば、2ページ目の最初の行に「まず、snmpdおよびsnmptrapdを止めます。」とさらっと書いてあるのが実は重要だよ。忘れるとはまるよ。ってことだけです。初めての設定では言われたとおりにやるのだけど、慣れてくると短縮しはじめて「前はできたんだけどなー」と悩むことになります。
Popular Posts:
- None Found