|
|
(view this code in a separate window)
#!/usr/bin/perl
#
# block_windows_worms.pl
#
# Example of program that can read Apache
# logs and take actions. Unfortunately, it
# can be tricked into running commands as
# root through the system() call.
#
# Copyright 2002, Bri Hatch
#
# Released under the GPL. See COPYING file
# for more information.
use strict;
use FileHandle;
open LOG, ">>/path/to/windows_worms.log";
LOG->autoflush(1);
while (<STDIN>) {
my($IP) = / ( \d+ \. \d+ \. \d+ \. \d+ ) /x;
my($URI) = /^ \w+ \s (\S+) /x;
system("iptables -A input -s $IP -j DROP");
print LOG scalar(localtime), " : $IP : Attempted to access $URI\n";
}
|