CASINOJOY - Ставка На Успех! Проверь Свою Удачу!


Нажмите CTRL-D чтобы добавить нас в закладки
HackZone.RU - Защита web-сервера (apache) от DDoS
Войти / Регистрация / Участники
Определение даты выпуска iPhone по серийному номеру
-
Поиск по сайту
Форумы



Реклама

Поиск ТОП Добавить публикацию

Защита web-сервера (apache) от DDoS

03.08.2010

В очередной раз сервер hackzone.ru оказался под DDoS. По всей видимости Атака идет с весьма приличного ботнета (фиксируется около 1000 хостов в минуту). В логах апача следующая картина

182.52.195.63 - - [03/Aug/2010:09:07:22 +0400] "-" 408 - "-" "-"
113.168.167.89 - - [03/Aug/2010:09:07:22 +0400] "-" 408 - "-" "-"
114.143.91.196 - - [03/Aug/2010:09:07:22 +0400] "-" 408 - "-" "-"
122.170.66.157 - - [03/Aug/2010:09:07:22 +0400] "-" 408 - "-" "-"
125.26.214.181 - - [03/Aug/2010:09:07:22 +0400] "-" 408 - "-" "-"
202.138.106.1 - - [03/Aug/2010:09:07:22 +0400] "-" 408 - "-" "-"
125.26.214.181 - - [03/Aug/2010:09:07:22 +0400] "-" 408 - "-" "-"
122.170.66.157 - - [03/Aug/2010:09:07:22 +0400] "-" 408 - "-" "-"

Ошибка "408 Request Time-Out" - Клиент не завершил свой запрос за время ожидания запроса, заданное серверу

Т.е. хост ботнета открывает соединение на наш 80 порт и тупо висит не отдавая команд и не закрывая соединение.

В результате апач моментально набирает максимально разрешенное количество коннектов и перестает отвечать на запросы.

Итак начинаем бороться

Первым делом правим таймауты (файл httpd.conf)

TimeOut 10
KeepAliveTimeOut 10

Добавляем в iptables цепочку banned_ip, в которую будем динамически запихивать отметившиеся у нас хосты ботнета. Подразумевается, что по умолчанию все INPUT пакеты у нас блокируются ( /sbin/iptables -P INPUT DROP )


/sbin/iptables -N banned_ip
/sbin/iptables -I INPUT -j banned_ip

Создаем базу в которой будет храниться информация о хостах ботнета

# mysql
create database attack;
CREATE TABLE `IP` (
  `IP` varchar(16) NOT NULL default '',
  `dt` timestamp NOT NULL default CURRENT_TIMESTAMP,
  `upd_dt` timestamp NOT NULL default '0000-00-00 00:00:00',
  PRIMARY KEY  (`IP`),
  KEY `IP1` (`dt`)
);

Пишем скрипт ловушку и кладем его в /apache/bin под именем attack.php

#!/usr/local/bin/php -q
<?

$iptables="/usr/local/sbin/iptables ";
$host=$argv[1];

$db=mysql_connect(":/var/lib/mysql/mysql.sock","attack","");
mysql_select_db("attack");

SyncDB();

$fd = fopen("php://stdin", r);
$l=fopen("/apache/logs/$host-access_log",'a+');

while (true) {
 $str=chop(fread($fd,1024));

 $a=explode(' ',$str);
 $ip=$a[0];$code=$a[6];

 fputs($l,"$str|$ip|$code\n");

// list($ip,$code,$s)=explode("|",$str);

 $cmd=$iptables." -A banned_ip -p tcp -s $ip -j REJECT --reject-with tcp-reset";

 if (preg_match('/(\d+).(\d+).(\d+).(\d+)/',$ip) and $code=='408') {
    $stmt="select * from IP where IP='$ip'";
    $result=mysql_query($stmt);
    $row=mysql_fetch_object($result);
    if (!$row->IP) {
        $stmt="insert into IP (IP) values ('$ip')";
        $result=mysql_query($stmt);
        $a='new';
        exec($cmd);
    } else {
        $a="exists ($row->dt)";
        $stmt="update IP set UPD_DT=now() where IP='$ip'";
        $result=mysql_query($stmt);
    }

    $fp=fopen('/apache/logs/attack','a+');fputs($fp,"$ip|$a\n");fclose($fp);
 }
}
fclose($fp);

// **********************************
function SyncDB() {
global $iptables;

 $stmt="truncate table IP";
 $result=mysql_query($stmt);

 $f=explode("\n",shell_exec($iptables." -n -L banned_ip | grep REJECT"));
 foreach ($f as $str) {
//    echo "> $str <\n";
    $str=trim(preg_replace('/[ ]+/',' ',$str));
    if ($str) {
        $p=explode(' ',$str);
        $ip=$p[3];
        $stmt="insert into IP (IP) values ('$ip')";
    echo "$stmt\n";
        $result=mysql_query($stmt);
    }
 }
}

?>

Дадим скрипту права на выполнение 

 # chmod +x /apache/bin/attack.php

Завернем логи веб сервера через наш скрипт. Для этого в конфигурационном файле апача, описывающем наш виртуальный хост прописываем строку
 
 CustomLog "|/apache/bin/attack.php hackzone.ru" combined

Готово. 

Перезапускаем сначала iptables и только потом apache

Итак чего мы добились.

1. Все логи теперь будут сливаться через наш скрипт
2. Скрипт при первом запуске синхронизирует свою базу с цепочкой iptables.
3. При получении информации от апача проверяет код ответа и если он равен 408, то проверяет наличие адреса клиента в базе. Если адрес не существует, то он добавляется в базу и в цепочку iptables.


При копировании материалов ссылка на HackZone.RU обязательна

Добавить страницу в закладки

 Детали
Категория: Системное администрирование
Опубликовал: DiMan
Просмотров: 19902
Проголосовало через SMS: 0
Ключевые слова: 408, ddos, apache, (найти похожие документы)
  Разместить у себя на сайте
Прямая ссылка
HTML
BBCode ссылка
BBCode ссылка с текстом

 Комментарии (оставить свой комментарий можно здесь)
интересно кому это надо, хз вроде не коммерческий проект и война конкурентов не из этой оперы, может забаненые дятлы?
тоже сомневаюсь, ума не хватит у них
03.08.2010 / Serafim
2Serafim, ага, месть Хактула :D
P.S - Хотя... Тоже задумываюсь, всё таки портал не такой крупный, чтобы все DDoS'или нас довольно часто.
04.08.2010 / HACK_ER
Ну есть люди которые делать нечего вот и лезу,ладно бы спец заказ нет,тут играет психологическая черта прог-ра,мол покажу ка я вам,
не лучше сделать два сервера и спец бот сервер,ну клон его но с нулевым хостом,то есть вписать в значения -если путь к серверу в одно и то же времени с многих потоков ip то тогда срабатывает тот клон сервер,то есть или скпрпт или итд.и пусьт блокирует в то же время не нанося вред основнуму серверу.
нУ я не прогер но идея нормальная из статьи читал ,калифарнийский какой та институт свои серваки так защишает!Idea
19.09.2010 / blokatop
Только зарегистрированные пользователи могут оставлять комментарии

Зарегистрироваться *** Авторизоваться


 Последние новости и статьи  Последние сообщения с форумов
  • Опубликован бесплатный дешифратор для вымогателя BlackByte
  • Zerodium покупает уязвимости в ExpressVPN, NordVPN и Surfshark
  • За взломом сайтов REvil стояли правоохранительные органы
  • Уязвимость ProxyToken позволяет воровать почту через Microsoft Ex...
  • T-Mobile взломали через уязвимый роутер
  • Ботнет Phorpiex прекратил работу, его исходный код выставлен на п...
  • Критическая уязвимость в Cosmos DB
  • Исследователи научились обходить PIN-коды для карт Mastercard и M...
  • WhatsApp уверяет пользователей, что Facebook не имеет доступа к и...
  • Однострочная команда в Windows 10 может повредить жесткий диск с ...

    Все новости... Все статьи... Прислать новость RSS
  • Взлом и безопасность / Программы » Re: Hasp ключ для ABC-4
  • Портал / Отзывы и предложения » Предлагаем партнерство вашему форуму.
  • Разное / Предложения работы » взлом почты
  • Разное / Предложения работы » Сервис Postman - 500 руб за получение писем и 10€ за пересыл...
  • Разное / Куплю, приму в дар » Покупка аккаунтов Uphold
  • Разное / Предложения работы » Re: Нужен Взлом сайта на DLE
  • Разное / Предложения работы » Re: Нужен Взлом сайта на DLE
  • Разное / Предложения работы » Re: Нужен Взлом сайта на DLE
  • Разное / Предложения работы » Re: Нужен Взлом сайта на DLE
  • Взлом и безопасность / Новичкам » Re: Помогите взломать gmail.com

    Все форумы... RSS


  • Разместить рекламу
    © HackZone Ltd. 1996-2020. Все права зарегистрированы.
    Перепечатка материалов без согласования и указания источника будет преследоваться по Закону

    О проекте | История проекта | Размещение рекламы | Обратная связь | Правила поведения на портале
    contador de visitas счетчик посещений

    #{title}

    #{text}

    x

    #{title}

    #{text}