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