Вход на хостинг
IT-новости
20.04.2016 iPhone 2017 года поместят в водонепроницаемый корпус из стекла
Линейка iPhone в новом году серьезно поменяется. В этом уверен аналитический исследователь Мин Чи Ку......
30.07.2015 Ищем уникальный контент для сайта
Ищем уникальный контент для сайта Без уникального контента Ваш сайт обречен на то, что его страницы......
# открываем лог на чтение
open(LFILE, "<$watchfile");
# количество попыток для IP
%tries=();
# уже заблокированных IP
%blocked=();
# восстанавливаем конфигурацию, это нужно для того, чтобы «устаревшие» IP-адреса не оставались запрещенными
`$ipfw_restore < $cfgfile`;
`$ipfw list > out`;
# получаем уже заблокированные IP-адреса из iptables
open(IPTPIPE, "out");
$blockChain=0;
while (<IPTPIPE>){
$blockChain=1 if (/^Chain block (d+ references)$/);
next unless $blockChain;
last if (/^$/ );
$blocked{$1}=1 if (/(d+.d+.d+.d+)/);
}
close IPTPIPE;
# просматриваем /var/log/messages
while (1) {
for ($curpos = tell(LFILE); $_ = <LFILE>; $curpos = tell(LFILE)) {
# искомая строка
if (/qpopper[d+]: Failed attempted login to .+ from D+(d+.d+.d+.d+)/) {
$ip=$1;
next if defined($blocked{$ip});
$tries{$ip}+=1; #увеличиваем счетчик
if ($tries{$ip} eq $max){
# если превышено максимальное значение,
# пакеты с данного адреса должны быть заблокированы