#author("2018-09-25T22:31:42+09:00","default:nowsky","nowsky")
#author("2018-09-25T22:33:33+09:00","default:nowsky","nowsky")
*snmpd [#u65804af]
LinuxでSNMPを出力するSNMPエージェントプログラム。
SNMPはネットワーク機器でサポートされている場合も多く、色んな場面で利用する事がある。
エージェントのデータを取得するには、クライアント(SNMPマネージャ)からsnmpwalkを実行する。
~

* SNMPv3対応 [#b9b46a4a]
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  :ユーザ認証有り、ハッシュ化有り
~

* 設定方法 [#pcc49d08]
SNMPv3で認証設定をするには下記操作を行う。
認証ユーザの設定を行う際は、&color(#ff0000){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
~

* 起動スクリプト [#h924194d]
snmpd起動スクリプトがinit、systemdで分散されてしまい、コンフィグ・実行ユーザ指定が上手く出来ない場合がある。
その時は、一時的にsystemd用の起動スクリプトを削除した後に、initスクリプトをchkconfigで上書き処理をする。
その時は、一時的に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