|
| ||||||||
|
巻き戻し中。
|
|
2012-09-12(水) 効果 [長年日記]
_ 中韓
ipfwのカウント見てると、結構な数をdropしてる。
アドレス帯域で見ると、中国は薄く広く。
韓国は特定のレンジからしつこく来てる。
一方、遮断はポートじゃなくてIP丸ごとなので、sshのブルートフォースを監視してるツールは日に1件以下しか検知しなくなった。
そりゃそうだ、大半の攻撃元はこの2国なんだし。
うざい百度のクローラーも当然バッサリw
_ 改良
先日のツール、exitの戻り値はAPNICの更新無しか、指定国の差分無しかが分かるのだけど、
cronのメールはもう少しメッセージがないと状況が分かりにくいので、標準出力にもうちょっと情報出すように改良。
【IP-country-BL.sh】
#!/bin/sh WGET_CMD="/usr/local/bin/wget" WGET_URL="http://ftp.apnic.net/pub/stats/apnic/delegated-apnic-latest" TIME=`date +%Y%m%d%H%M%S` LOG_DIR="/var/log/ipfwcount" IFNAME="msk0" IPFW_CMD="/sbin/ipfw" C_DIR="/usr/local/etc/IP-country-list" PERL_CMD="/usr/bin/perl" # Parameter check if [ "$1" = "" ];then echo 'Usage: IP-country-BL.sh [IPFW-number] [Country code(2byte)]' exit 1 fi if [ "$2" = "" ];then echo 'Usage: IP-country-BL.sh [IPFW-number] [Country code(2byte)]' exit 1 fi # Log dir check if [ ! -d $LOG_DIR ];then mkdir $LOG_DIR fi # Set variable IPFWNUM=`echo $1` COUNTRY=`echo $2` # File move if [ -f $C_DIR/IP-country-BL_$COUNTRY.sh ];then mv $C_DIR/IP-country-BL_$COUNTRY.sh $C_DIR/IP-country-BL_$COUNTRY.sh.prev else touch $C_DIR/IP-country-BL_$COUNTRY.sh fi # Get IP list from APNIC with checking diff if [ -f $C_DIR/delegated-apnic-latest ];then $WGET_CMD -S $WGET_URL --spider -o $C_DIR/wgetlog.tmp TIME_STAMP=`grep "Last-Modified" $C_DIR/wgetlog.tmp|awk '{print $4$5$6$7}'` TIME_STAMP_LATEST=`grep "Last-Modified" $C_DIR/wgetlog.latest|awk '{print $4$5$6$7}'` echo "Current "$TIME_STAMP echo "Local "$TIME_STAMP_LATEST if [ $TIME_STAMP != $TIME_STAMP_LATEST ];then rm -f $C_DIR/delegated-apnic-latest $WGET_CMD -S $WGET_URL --spider -o $C_DIR/wgetlog.latest $WGET_CMD $WGET_URL -O $C_DIR/delegated-apnic-latest fi else rm -f $C_DIR/delegated-apnic-latest $WGET_CMD -S $WGET_URL --spider -o $C_DIR/wgetlog.latest $WGET_CMD $WGET_URL -O $C_DIR/delegated-apnic-latest fi # Exec convert $PERL_CMD $C_DIR/convert_cidr.pl < $C_DIR/delegated-apnic-latest > $C_DIR/CIDR.txt /usr/bin/grep $COUNTRY $C_DIR/CIDR.txt|\ awk -v IPFWCMD=`echo $IPFW_CMD` -v IPFWNUM=`echo $IPFWNUM` -v IFNAME=`echo $IFNAME` '{ print IPFWCMD" add "IPFWNUM" deny ip from "$2" to any via "IFNAME }' > $C_DIR/IP-country-BL_$COUNTRY.sh # Check diff for each countries /usr/bin/diff $C_DIR/IP-country-BL_$COUNTRY.sh $C_DIR/IP-country-BL_$COUNTRY.sh.prev DIFF=`echo $?` if [ $DIFF != "0" ];then echo "Updating IPFW with "IP-country-BL_$COUNTRY.sh $IPFW_CMD -a list |grep 00$IPFWNUM > $LOG_DIR/ipfwcount_$COUNTRY.log.$TIME $IPFW_CMD delete $IPFWNUM /bin/sh $C_DIR/IP-country-BL_$COUNTRY.sh exit 2 else echo "There is no difference for "$COUNTRY fi exit 0
Tweets by RC31E | |||||||||
| |||||||||
|