■今日はIPリッスンの制限と、コマンドによるトラップ送信するところまで。
■snmpdのリッスンIPを制限する
localhost、自IP、vmnet8のIP
$ sudo grep ^agentAddress /etc/snmp/snmpd.conf
agentAddress udp:127.0.0.1:161,udp:192.168.177.177:161,udp:192.168.164.1:161
$ sudo /etc/init.d/snmpd restart
$ netstat -an | grep 161
udp 0 0 192.168.164.1:161 0.0.0.0:*
udp 0 0 192.168.177.177:161 0.0.0.0:*
udp 0 0 127.0.0.1:161 0.0.0.0:*
■rocommunityを有効にする
$ sudo grep rocommunity /etc/snmp/snmpd.conf
rocommunity public localhost
rocommunity public 192.168.177.177
rocommunity public 192.168.164.1
rocommunity public default -V systemonly
■SNMPv3について
MD5/SHAでハッシュ化出来る。
私の環境では特に必要ないので、すべてコメントアウト。
$ sudo grep "authOnlyUser" /etc/snmp/snmpd.conf
■syslogには以下の行で警告が出るのでコメントアウト
$ sudo grep snmpd /var/log/syslog | awk -F\] '{print $2}'
trigger OID: snmperrErrorFlag
/etc/snmp/snmpd.conf: line 143: Error: unknown monitor OID
$ sudo grep defaultMonitor /etc/snmp/snmpd.conf
■これはSNMPv2のエラー。同様にコメントアウト
/etc/snmp/snmpd.local.conf: line 87: Error: bad SUBTREE object id
net-snmp: 1 error(s) in config file(s)
$ grep "^#view" /etc/snmp/snmpd.local.conf
■正常リスタートログ
Received TERM or STOP signal... shutting down...
Turning on AgentX master support.
NET-SNMP version 5.4.3
■A:MIB検索がうまく機能しない
※mibs行をコメントアウト
$ cat /etc/snmp/snmp.conf
■B:MIBの検索端の関連の警告
※「/root/.snmp」は無くても問題なし。
$ sudo tail -f /var/log/syslog | awk -F\] '{print $2}' | sed s/"\:"/"&\n"/g
Warning:
no access control information configured.#012 (Config search path:
/etc/snmp:
/usr/share/snmp:
/usr/lib/snmp:
/root/.snmp)#012This receiver will *NOT* accept any incoming notifications.
■snmptranslateが見れない場合の対処
※non-freeなので、「sources.list」を確認すること。
※A/B共にこれで解決するはず。
$ apt-cache show snmp-mibs-downloader | grep Filename
Filename: pool/non-free/s/snmp-mibs-downloader/snmp-mibs-downloader_1.1_all.deb
$ sudo apt-get install -y snmp-mibs-downloader
$ snmptranslate -Tp | head -5
+--iso(1)
|
+--org(3)
|
+--dod(6)
■この時点ではsnmptrapdは起動していない。
$ sudo /etc/init.d/snmpd status
snmpd is running.
snmptrapd is not running ... failed!
■snmptrapdの設定
$ sudo grep ^TRAPDRUN /etc/default/snmpd
TRAPDRUN=yes
$ sudo /etc/init.d/snmpd restart
Restarting network management services: snmpd snmptrapd.
■別サーバからのアクセスチェック
$ snmpwalk -v 1 -c public 192.168.177.177 | awk -F\: '{print $1}' | sort | uniq
"
DISMAN-EVENT-MIB
HOST-RESOURCES-MIB
IF-MIB
IP-FORWARD-MIB
IP-MIB
IPV6-MIB
NOTIFICATION-LOG-MIB
RFC1213-MIB
SNMPv2-MIB
TCP-MIB
UDP-MIB
■トラップ送信テスト
参考:第8回 SNMPによる異常値検出テクニック (4/7)
http://www.itmedia.co.jp/enterprise/articles/0705/31/news042_4.html
$ snmptrap -v 1 -c trapprivate localhost .1.3.6.1.4.1.8072.99999 localhost \
6 1 '' .1.3.6.1.4.1.8072.99999.1 s "Test Message"
read_config_store open failure on /var/lib/snmp/snmpapp.conf
read_config_store open failure on /var/lib/snmp/snmpapp.conf
read_config_store open failure on /var/lib/snmp/snmpapp.conf
$ sudo tail -f /var/log/syslog | awk -F\] '{print $2}'
: No access configuration - dropping trap.
■「snmptrapd.conf」でsyslogに転送する為、一行追加
$ sudo grep -v "^#\|^\$" /etc/snmp/snmptrapd.conf
authCommunity log,execute,net trapprivate
$ sudo /etc/init.d/snmpd restart
■再確認「syslog」には載ったが、「open failure」は消えない。
$ snmptrap -v 1 -c trapprivate localhost .1.3.6.1.4.1.8072.99999 localhost \
6 1 '' .1.3.6.1.4.1.8072.99999.1 s "Test Message"
read_config_store open failure on /var/lib/snmp/snmpapp.conf
read_config_store open failure on /var/lib/snmp/snmpapp.conf
read_config_store open failure on /var/lib/snmp/snmpapp.conf
$ sudo tail -f /var/log/syslog | sed s/" "/"\n"/g
:
2012-05-26
23:02:10
localhost
[127.0.0.1]
(via
UDP:
[127.0.0.1]:32826->[127.0.0.1])
TRAP,
SNMP
v1,
community
trapprivate#012#011iso.3.6.1.4.8072.99999
Enterprise
Specific
Trap
(1)
Uptime:
5:34:30.55#012#011iso.3.6.1.4.1.8072.99999.1
=
STRING:
"Test
Message"
■snmpユーザで空のファイルを作成してもダメ。
$ sudo -u snmp touch /var/lib/snmp/snmpapp.conf
$ snmptrap -v 1 -c trapprivate 192.168.1.88 .1.3.6.1.4.8072.99999 192.168.1.88 6 1 \
'' .1.3.6.1.4.1.8072.99999.1 s "Test Message"
Cannot rename /var/lib/snmp/snmpapp.conf to /var/lib/snmp/snmpapp.0.conf
Cannot unlink /var/lib/snmp/snmpapp.conf
■sudoで実行したらエラーが出なくなった。
$ sudo snmptrap -v 1 -c trapprivate 192.168.1.88 .1.3.6.1.4.8072.99999 192.168.1.88 6 1 \
'' .1.3.6.1.4.1.8072.99999.1 s "Test Message"
■iptablesの設定変更
※私のsfwを入れた方はnatのフラッシュもお忘れなく。。。
https://github.com/labunix/smallfirewall
$ grep 161 /etc/iptables-save
[0:0] -A INPUT -i eth0 -p udp -m udp --dport 161:162 -j ACCEPT
[0:0] -A INPUT -i eth0 -p udp -m udp --sport 161:162 -j ACCEPT
[0:0] -A OUTPUT -o eth0 -p udp -m udp --dport 161:162 -j ACCEPT
[0:0] -A OUTPUT -o eth0 -p udp -m udp --sport 161:162 -j ACCEPT
$ sudo /etc/init.d/iptables stop
$ sudo iptables -t nat -F
$ sudo /sbin/iptables-restore -c /etc/iptables-save