#!/usr/bin/perl
#
# スクリプトの設置パス
$dir = '/usr/local/bin/hack/';
# エラー回数
$limit = 2;
# iptablesのパス
$iptables="/usr/sbin/iptables";
$err = 0;
if ($ARGV[0] eq '') {
$err = 1;
}else{
$hack = $ARGV[0];
}
if ($err) {exit $err}
# 特定アドレスは除外
if ($hack eq "127\.0\.0\.1") {exit;}
# 家庭内のアドレスは除外
if ($hack =~ m/^(\d+)\.(\d+)\.(\d+)\.(\d+)/){
# if ($1 == 10) {exit} # クラスA
# if (($1 == 172) && ($2 > 15) && ($2 < 32)) {exit} # クラスB
if (($1 == 192) && ($2 == 168)) {exit;} # クラスC
}
$hack_cnt = $dir . "$hack.cnt";
$cnt = 1;
if(-f "$hack_cnt"){
open(TIN, "$hack_cnt");
flock(TIN, 1);
truncate(TIN, 0);
while($cc = <TIN>){
if($cc >= $limit){
`$iptables -A HACKER -p tcp --dport 21 -s $hack -j DROP`;
exit;
}
$cc++;
$cnt = $cc;
}
close(TIN);
}
open(TTCNT, "> $hack_cnt");
print(TTCNT "$cnt\n");
close(TTCNT);
exit;