Согласен)
Во первых это незаконно. Люди! Соблюдайте законы!
Во вторых дорого конечно.
В третьихможно найти более изящные решения, например зеркала на ресурсах которые сложно уронить (гугл, контакт.. перепост на них - дело одного срипта)
Вышлите адреса атакующих и тип атаки(syn-flood,http-request-flood) - дам рецепт от этой напасти. или проще:
Две проги - одна - создатель демона, а вторая цикловая защита.
Прога демонизатор, назовите как угодно.
#!/usr/bin/perl
$pid=fork(); exit if $pid; print "PID:".$pid."\n"; #POSIX::setsxd() or die "POSIX DIE... $pid"; $time_to_die=0; $SIG{INT}=\&signal_handler; $SIG{TERM}=\&signal_handler; $SIG{HUP}=\&signal_handler; $ok=1; until($time_to_die){ while($ok && not($time_to_die)){ $ok=0; `./antiddos.pl`; $ok=1; } } sub signal_handler{$time_to_die=1;}
А вот и вторая antiddos.pl
#!/usr/bin/perl
$maxrep=30; #Количество подключений после которых секир башка $normal=""; #Какие IP не банить #########################Получение статуса фаервола################## @lines=`iptables -L -n -v |grep DROP| grep all| sort`; foreach $l(@lines){chomp($l); while(substr($l,0,1) eq " "){$l=substr($l,1,length($l));} ($counter,$bytes,$doing,$all,$minus,$ast1,$ast2,$ip,$zero)=split(/\s{1,15}/,$l); $state{$ip}="yes"; } #############Читаем статус соединений############################# @stats=`netstat -n | grep Ваш_ip_адрес:80`;# ВПИШИТЕ СВОЙ IP СЮДА foreach $rec(@stats){chomp($rec); ($ct,$n1,$n2,$uzel,$from,$status)=split(/\s{1,20}/,$rec); ($adr,$port)=split(/:/,$from); $mudaki{$adr}=$mudaki{$adr}+1; } #################### Разбор полетов ###################### @ke= keys %mudaki; @ke=sort(@ke); $lines=""; foreach $k(@ke){chomp($k);#1 $ars=$mudaki{$k}; if($ars>$maxrep && (not($normal=~/$k/))){#2 if($state{$k} ne "yes"){`iptables -A INPUT -s $k -j DROP`; print "$k:$ars blocked\n";} }else{print "$k:$ars is OK\n";} }#1
Помогает в 90 случаях из 100. Главное - дать ей поработать... чем дольше, тем эффективнее, т.к. база забаненных будет расти и атаки просто будут дропаться.
Вывести список забаненных просто iptables -L -n -v |grep DROP| grep all| sort - увидите...
Такое делать лучше с временным механизмом блокировки, т.е. блокировать на какое-то время, а потом снимать блок. Корректнее будет, и от false positive не так больно.
А я и не говорю, что это скрипт навсегда. Достаточно суток, чтобы набрать 10-20 тысяч адресов атакующих и ботнет просто остался ни у дел... или грамотней настроить апач, добавив модуль mod_limitipconn и прописать максимальное число подключений в конфиге... сам модуль тут http://dominia.org/djao/limit/mod_limitipconn-0.24.tar.bz2, его надо только откомпилить... Мануал вроде прилагается...
первый пришелец геммофродит месяц был женщиной, месяц мужчиной. и сотворил(родил) адама по образу и подобию. Адам жил сто тридцать лет и родил сына по подобию своему по образу своему, и нарек ему имя: Сиф.
Сиф жил сто пять лет и родил Еноса. По рождении Еноса Сиф жил восемьсот семь лет и родил сынов и дочерей.
Комментарии
Не то прочитал)) а дос за бан это глупо)))
Вышлите адреса атакующих и тип атаки(syn-flood,http-request-flood) - дам рецепт от этой напасти. или проще:
Две проги - одна - создатель демона, а вторая цикловая защита.
Прога демонизатор, назовите как угодно.
#!/usr/bin/perl
$pid=fork();
exit if $pid;
print "PID:".$pid."\n";
#POSIX::setsxd() or die "POSIX DIE... $pid";
$time_to_die=0;
$SIG{INT}=\&signal_handler;
$SIG{TERM}=\&signal_handler;
$SIG{HUP}=\&signal_handler;
$ok=1;
until($time_to_die){
while($ok && not($time_to_die)){
$ok=0;
`./antiddos.pl`;
$ok=1;
}
}
sub signal_handler{$time_to_die=1;}
А вот и вторая antiddos.pl
#!/usr/bin/perl
$maxrep=30; #Количество подключений после которых секир башка
$normal=""; #Какие IP не банить
#########################Получение статуса фаервола##################
@lines=`iptables -L -n -v |grep DROP| grep all| sort`;
foreach $l(@lines){chomp($l);
while(substr($l,0,1) eq " "){$l=substr($l,1,length($l));}
($counter,$bytes,$doing,$all,$minus,$ast1,$ast2,$ip,$zero)=split(/\s{1,15}/,$l);
$state{$ip}="yes";
}
#############Читаем статус соединений#############################
@stats=`netstat -n | grep Ваш_ip_адрес:80`;# ВПИШИТЕ СВОЙ IP СЮДА
foreach $rec(@stats){chomp($rec);
($ct,$n1,$n2,$uzel,$from,$status)=split(/\s{1,20}/,$rec);
($adr,$port)=split(/:/,$from);
$mudaki{$adr}=$mudaki{$adr}+1;
}
#################### Разбор полетов ######################
@ke= keys %mudaki;
@ke=sort(@ke);
$lines="";
foreach $k(@ke){chomp($k);#1
$ars=$mudaki{$k};
if($ars>$maxrep && (not($normal=~/$k/))){#2
if($state{$k} ne "yes"){`iptables -A INPUT -s $k -j DROP`; print "$k:$ars blocked\n";}
}else{print "$k:$ars is OK\n";}
}#1
Помогает в 90 случаях из 100. Главное - дать ей поработать... чем дольше, тем эффективнее, т.к. база забаненных будет расти и атаки просто будут дропаться.
Вывести список забаненных просто iptables -L -n -v |grep DROP| grep all| sort - увидите...
Такое делать лучше с временным механизмом блокировки, т.е. блокировать на какое-то время, а потом снимать блок. Корректнее будет, и от false positive не так больно.
А я и не говорю, что это скрипт навсегда. Достаточно суток, чтобы набрать 10-20 тысяч адресов атакующих и ботнет просто остался ни у дел... или грамотней настроить апач, добавив модуль mod_limitipconn и прописать максимальное число подключений в конфиге... сам модуль тут http://dominia.org/djao/limit/mod_limitipconn-0.24.tar.bz2, его надо только откомпилить... Мануал вроде прилагается...
ура! Вот теперь действительно - работает. А я уж хотел новую площадку подбирать.
Да лан, если ресурс популярен -- его будут ДДОСить, это закон природы. Вон флибуста через день лежит.
А у меня личная почта до сих пор не открывается:
Сообщения (1 новое)
Главные вкладки
Входящие
(активная вкладка)
Отправленные
Все
Блокированный пользователь
Написать новое
Информационный центр Aftershock
Ошибка
На сайте произошла непредвиденная ошибка. Пожалуйста, повторите попытку позже.
kokunov - а вам приходят письма в почту, про личные сообщения на афтершоке ?
я именно там, по ссылке, их и читаю !
Нас атакуют,
это месть Евхгеев за упоминание о Левашове.
)))))))))))
он считает, что они из рода геммофрадитов
первый пришелец геммофродит месяц был женщиной, месяц мужчиной. и сотворил(родил) адама по образу и подобию. Адам жил сто тридцать лет и родил сына по подобию своему по образу своему, и нарек ему имя: Сиф.
Сиф жил сто пять лет и родил Еноса. По рождении Еноса Сиф жил восемьсот семь лет и родил сынов и дочерей.
эка сурово, круче чем в Челябинске ...
Страницы