最終更新日: 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