LinuxでSNMPを出力するSNMPエージェントプログラム。
SNMPはネットワーク機器でサポートされている場合も多く、色んな場面で利用する事がある。
エージェントのデータを取得するには、クライアント(SNMPマネージャ)からsnmpwalkを実行する。
SNMPv1/v2では暗号化が出来ないが、v3では認証レベルに応じた暗号化が出来るようになる。
暗号化を行う場合は、snmpd.confに下記情報を書き込んだ後、
生成済みの一時ファイルを削除してからsnmpdを再起動する。
・認証ユーザの作成 createUser ${USER-NAME} (MD5|SHA) ${HASH-PASS} (DES|AES) %{KEY-PASS} --- "MD5|SHA":ハッシュ鍵のパスワード "DES|AES":ユーザの認証パスワード ・参照ACLの設定 view ${ACL-NAME} ${OID} --- "MIB":参照を許可するOIDを設定 ・ユーザ権限の設定 (rw|ro)user ${USER-NAME} (noauth|auth|priv) -V ${ACL-NAME} --- rwuser:書き込み可ユーザ rouser:書き込み不可ユーザ noauth:ユーザ認証無し、ハッシュ化無し auth :ユーザ認証有り、ハッシュ化無し priv :ユーザ認証有り、ハッシュ化有り
SNMPv3で認証設定をするには下記操作を行う。
認証ユーザの設定を行う際は、snmpdを停止させた状態で作業を行わないと、
一時生成ファイルの上書きが行われず、認証不備の原因となるので注意する。
可能なら一時生成ファイルを削除しておくと、上記不具合に当たらないのでやっといた方が良い。
・シナリオ --- SNMPユーザ名 :snmp ハッシュパス :hash 認証パスワード:pass アルゴリズム :SHA 暗号強度 :AES ユーザ権限 :認証、ハッシュ化、読込み限定 アクセスリスト:OIDは全て参照
# systemctl stop snmpd # rm /var/lib/snmp/snmpd.conf # vi /etc/snmp/snmpd.conf --- createUser snmp SHA hash AES pass view all .1 rouser snmp priv -V all
snmpd起動スクリプトがinit、systemdで分散されてしまい、コンフィグ・実行ユーザ指定が上手く出来ない場合がある。
その時は、一時的にsystemd用の起動スクリプトを削除した後に、
chkconfigでinitスクリプトをsystemd用に変換しつつ上書きする。
# rm /etc/systemd/system/multi-user.target/snmpd.service # rm /lib/systemd/system/snmpd.service # chkconfig --del snmpd snmpd 0:off 1:off 2:off 3:off 4:off 5:off 6:off # chkconfig --add snmpd snmpd 0:off 1:off 2:on 3:on 4:on 5:on 6:off # systemctl daemon-reload # /etc/init.d/snmpd restart # ps -ef | grep snmpd