Защищаем Apache от DDOS атак - Часть 1
В 1й части мы будем устанавливать модуль Apache mod-evasive на Debian сервер. Этот модуль отслеживает количество подключений с определенного клиента и блокирует IP адрес на определенное время при превышении лимита.
Или берем отсюда:
http://packages.debian.org/lenny/libapache2-mod-evasive
И устанавливаем так:
Документация на английском языке:
http://www.helicontech.com/ape/doc/mod_evasive.htm
Создаем файл /etc/apache2/mods-available/mod-evasive.conf с вот такими настройками:
Включаем модуль и перезапускаем Apache:
В /usr/share/doc/libapache2-mod-evasive/examples есть скрипт на Perl для проверки модуля — test.pl — копируем его на клиентскую машину и правим адрес сервера:
Запускаем:
Без включенного модуля все ответы сервера будут:
Со включенным – сервер начнет блокировать доступ на определенное время после превышения количества подключений:
P.S.: это спасает лишь от самых примитивных видов атак.
sudo apt-get install libapache2-mod-evasive
Или берем отсюда:
http://packages.debian.org/lenny/libapache2-mod-evasive
И устанавливаем так:
dpkg -i libapache2-mod-evasive_x.x.x.deb
Документация на английском языке:
http://www.helicontech.com/ape/doc/mod_evasive.htm
Создаем файл /etc/apache2/mods-available/mod-evasive.conf с вот такими настройками:
<IfModule mod_evasive20.c>
DOSHashTableSize 4096
DOSPageCount 5
DOSSiteCount 50
DOSPageInterval 1
DOSSiteInterval 1
DOSBlockingPeriod 10
</IfModule>
Включаем модуль и перезапускаем Apache:
a2enmod mod-evasive
/etc/init.d/apache2 restart
В /usr/share/doc/libapache2-mod-evasive/examples есть скрипт на Perl для проверки модуля — test.pl — копируем его на клиентскую машину и правим адрес сервера:
#!/usr/bin/perl
# test.pl: small script to test mod_dosevasive's effectiveness
use IO::Socket;
use strict;
for(0..100) {
my($response);
my($SOCKET) = new IO::Socket::INET( Proto => "tcp",
PeerAddr=> "domain.ru:80");
if (! defined $SOCKET) { die $!; }
print $SOCKET "GET /?$_ HTTP/1.0\n\n";
$response = <$SOCKET>;
print $response;
close($SOCKET);
}
Запускаем:
chmod 777 test.pl
./test.pl
Без включенного модуля все ответы сервера будут:
HTTP/1.1 200 OK
Со включенным – сервер начнет блокировать доступ на определенное время после превышения количества подключений:
HTTP/1.1 403 Forbidden
P.S.: это спасает лишь от самых примитивных видов атак.
Комментарии (2)
RSS свернуть / развернутьSergei_T
sysadm
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.