NetSNMP の snmpd で v3 を設定する

snmpdのアクセス設定

/etc/snmp/snmpd.conf に下記を追記
# model には usm を指定、secname はユーザ名
#     group  model secname
group snmpv3 usm   hogehoge

#    view incl/excl subtree
view all  included  .1

# level は noauth / auth / priv のいずれか
#   noauth  認証無し、暗号化無し
#   auth    認証あり、暗号化無し
#   priv    認証あり、暗号化あり
#       group context model level prefx read write notif
access snmpv3 ""      any   priv  exact all  none  none

ユーザの作成

サービスを停止する
/etc/init.d/snmpd stop
/var/net-snmp/snmpd.conf の setserialno の上ぐらいにユーザ作成の行を追記
createUser hogehoge SHA "password" AES
サービスを開始
/etc/init.d/snmpd start

※/var/net-snmp/snmpd.confはサービスの停止時に毎回上書きされるのでサービスを停止してから編集しなければならない

動作確認

/var/net-snmp/snmpd.confの内容確認
cat /var/net-snmp/snmpd.conf

※createUser が削除されて usmUser が追加されている
※usmUserの内容は暗号化?されているのでよくわからない文字列になる

v3で認証&暗号化して取得
snmpwalk -v3 -u hogehoge -l authPriv -a SHA -A "password" -x AES -X "password" \
  localhost system
登録されているユーザの一覧を表示
snmpwalk -v3 -u hogehoge -l authPriv -a SHA -A "password" -x AES -X "password" \
  localhost SNMP-USER-BASED-SM-MIB::usmUserStatus