File: //ibin/iptable-load
#!/usr/bin/perl
$x="1000";
$line_break="\n";
$old_code = "first-time";
# Debug Mode 0= Debug Off 1= Debug On
$debug_mode = "1";
($servername, $domain, $extension) = (split /\./, $hostname);
#if ($servername eq "saturn) {
$config_file="/ibin/conf/iptables.block-ip.conf";
$map_file="/ibin/conf/iptables.block-ip.map";
if ( $debug_mode != "1" ) {
# system("iptables -F \n");
system("iptables -F CIDR-TURKEY\n");
system("iptables -F CIDR-DROP\n");
system("iptables -F CIDR-INDIA-KOREA\n");
system("iptables -F CIDR-TURKEY\n");
system("iptables -F CIDR-RUSSIA\n");
system("iptables -F CIDR-CZECH\n");
system("iptables -F CIDR-ASIAN\n");
}
open(MAP_FILE,">$map_file") or die($!);
open(CONFIG_FILE,$config_file) or die($!);
while($line = <CONFIG_FILE>) {
chomp($line);
next if $line =~ /#/;
(
$type,
$ip
) = split(/:/, $line);
$x++;
#print $type . "\n";
if ($type eq "H") {
$prefixH = "iptables -t filter -A OUTPUT -d ";
$suffix_1H = " -j LOG --log-prefix HACK-BLOCK-" . $x . " ";
$suffix_2H = " -j DROP";
if ( $debug_mode == "1" ) {
print $prefixH . $ip . $suffix_1H . "\n";
print $prefixH . $ip . $suffix_2H . "\n";
} else {
system($prefixH . $ip . $suffix_1H . "\n");
system($prefixH . $ip . $suffix_2H . "\n");
}
} else {
#----------< Block Mail Type: Spammers >----------
if ( $type eq "M" ) {
$code = "IISG";
} elsif ($type eq "J") {
$code = "JAPAN";
} elsif ($type eq "A") {
$code = "ASIAN";
} elsif ($type eq "P") {
$code = "POLAND";
} elsif ($type eq "C") {
$code = "CZECH";
} elsif ($type eq "T") {
$code = "TURKEY";
} elsif ($type eq "I") {
$code = "INDIA-KOREA";
} elsif ($type eq "R") {
$code = "RUSSIA";
} elsif ($type eq "U") {
$code = "UK";
} elsif ($type eq "D") {
$code = "DROP";
}
if ( $debug_mode == "1" ) {
if ($code ne $old_code) {
if ($old_code ne "first-time") {
print "iptables -A INPUT -j CIDR-" . $old_code . "\n";
}
print "iptables -N CIDR-" . $code . "\n";
}
print "iptables -A CIDR-". $code . " -p tcp -s " . $ip . " -j LOG --log-prefix SPAM-BLOCK-CIDR-" . $code . "\n";
print "iptables -A CIDR-". $code . " -p tcp -s " . $ip . " --dport 25 -j DROP\n";
} else {
if ($code ne $old_code) {
if ($old_code ne "first-time") {
system("iptables -A INPUT -j CIDR-" . $old_code . "\n");
}
system("iptables -N CIDR-" . $code . "\n");
}
###system("iptables -A CIDR-". $code . " -p tcp -s " . $ip . " -j LOG --log-prefix SPAM-BLOCK-CIDR-" . $code . "\n");
#print "iptables -A CIDR-". $code . " -p tcp -s " . $ip . " -j LOG --log-prefix SPAM-BLOCK-CIDR-" . $code . "\n";
###system("iptables -A CIDR-". $code . " -p tcp -s " . $ip . " --dport 25 -j DROP\n");
#print "iptables -A CIDR-". $code . " -p tcp -s " . $ip . " --dport 25 -j DROP\n";
}
}
$old_code = $code;
if ( $debug_mode == "0" ) {
print MAP_FILE $ip . "\t\t\tBLOCK-MAP# " . $x . $line_break;
}
}
close(CONFIG_FILE);
close(MAP_FILE);
exit;