最終更新日: 2005-05-19
RTシリーズで、NOTICEレベルのログをsyslogで吐くようにしておき、 そのログが /var/log/routers.notice に記録されるようにしておきます。 そして、 以下のようなスクリプトを /usr/local/libexec/router-attack.sh というファイル名で用意しておきます。
	#! /bin/sh
	#
	#   router-attack.sh -- ルータログから拒絶したパケットを数える
	#
	#	0.1: Apr.  8, 2005 (MRTGが整数演算なので1000倍に)
	#
	export LANG=C
	rtlog=/var/log/routers.notice
	fwlog=/var/log/security
	# 切り捨てでデータが無視されるのを防ぐために1000倍しておく
	# 縦軸の単位は [ミリパケット/秒] に
	router=`grep Reject $rtlog | wc -l | awk '{print 1000*$1}'`
	ipfw=`grep Deny $fwlog | wc -l | awk '{print 1000*$1}'`
	echo $router
	echo $ipfw
	echo 0
	echo Number of Rejected Packets
	exit 0
	# EOF
mrtg.cfgに次のように設定すると、
MRTGでRTシリーズがパケットフィルタリングで拒絶したパケットの数を
グラフ化することができます。
# # router.cfg # # absolute - 得られた値をそのままグラフ化 # gauge - 得られた値を間隔(300秒)で割ってグラフ化 # 指定なし - 得られた値と直前の値の差を間隔(300秒)で割ってグラフ化 Options[_]: growright,nopercent,withzeroes,nolegend,perminute Target[router-attack]: `/bin/sh /usr/local/libexec/router-attack.sh` MaxBytes[router-attack]: 1000000 Title[router-attack]: number of rejected packets YLegend[router-attack]: m packets/min ShortLegend[router-attack]: milli-packets/min LegendI[router-attack]: router LegendO[router-attack]: ipfw