Документация по ОС FreeBSD Суббота, 27.04.2024, 19:04
Приветствую Вас Гость | RSS
Меню сайта

Категории каталога
Apache [58]
DNS [25]
FTP [27]
Mail [74]
Samba [24]
Squid [46]
SSH [23]
VPN [35]
РРР [20]
Net [173]

Главная » Статьи » Сеть » Apache

mod_evasive - защита от DOS и DDOS атак [2008]
Собственно ДОС и ДДОС атаки проблема практически всех кто предоставляет такую услугу как хостинг и как всегда кому-то не очень понравится какой нить из проетов что размещены у вас на сервере и как всегда мозгов нет чтобы сломать а задосить ето и 5-ти класник может. Вот собственно нашел модуль какой сможет спасти вас от нашествия ДОС и ДДОС атак вместо того чтобы закидать всех негодяев в фаервол (что же ето за хостинг когда тебя пол мира не видит :)).

И так установка mod_evasive для Apache 1.3 и Apache 2.2 в портаx его нету так что нуно качать вот тут.

srv2# wget http://www.zdziarski.com/projects/mod_evasive/mod_evasive_1.10.1.tar.gz
srv2# tar xfz mod_evasive_1.10.1.tar.gz
srv2# cd mod_evasive
srv2# whereis apxs
apxs: /usr/local/sbin/apxs /usr/local/man/man8/apxs.8.gz // По умолчанию он тут
srv2# /usr/local/sbin/apxs apxs -i -a -c mod_evasive.c // для Apache 1.3
srv2# /usr/local/sbin/apxs apxs -i -a -c mod_evasive2.c // для Apache 2.2
srv2# rehash

После успешной установки в конфиг апача нужно добавить несколько строк:

Для Apache 1.3

<IfModule mod_evasive.c> 
DOSHashTableSize 3097 
DOSPageCount 2 
DOSSiteCount 50 
DOSPageInterval 1 
DOSSiteInterval 1 
DOSBlockingPeriod 300 
</IfModule>

Для Apache 2.2

<IfModule mod_evasive20.c> 
DOSHashTableSize 3097 
DOSPageCount 2 
DOSSiteCount 50 
DOSPageInterval 1 
DOSSiteInterval 1 
DOSBlockingPeriod 300 
</IfModule>

После чего перезапустим Апач

srv2# /usr/local/etc/rc.d/apache restart

В падарок к етому модулю в архиве сразу предоставлен тест для проверки работоспособности модуля. С вот таким содержанием.

#!/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=> "127.0.0.1:80");
 if (! defined $SOCKET) { die $!; }
 print $SOCKET "GET /?$_ HTTP/1.0\n\n";
 $response = <$SOCKET>;
 print $response;
 close($SOCKET);
}

Только не забудте поставить на него права для запуска chmod +r имя файла.
Если после запуска скрипта видим примерно вот такую штуку

HTTP/1.1 200 OK
HTTP/1.1 200 OK
HTTP/1.1 200 OK
HTTP/1.1 200 OK
HTTP/1.1 200 OK
HTTP/1.1 200 OK
HTTP/1.1 200 OK
HTTP/1.1 200 OK
HTTP/1.1 200 OK
HTTP/1.1 200 OK
HTTP/1.1 200 OK
HTTP/1.1 200 OK
HTTP/1.1 200 OK
HTTP/1.1 200 OK
HTTP/1.1 200 OK
HTTP/1.1 200 OK
HTTP/1.1 200 OK
HTTP/1.1 403 Forbidden
HTTP/1.1 403 Forbidden
HTTP/1.1 403 Forbidden
HTTP/1.1 403 Forbidden
HTTP/1.1 403 Forbidden
HTTP/1.1 403 Forbidden
HTTP/1.1 403 Forbidden
HTTP/1.1 403 Forbidden
HTTP/1.1 403 Forbidden
HTTP/1.1 403 Forbidden
HTTP/1.1 403 Forbidden
HTTP/1.1 403 Forbidden
HTTP/1.1 403 Forbidden
HTTP/1.1 403 Forbidden
HTTP/1.1 403 Forbidden
HTTP/1.1 403 Forbidden
HTTP/1.1 403 Forbidden
HTTP/1.1 403 Forbidden
HTTP/1.1 403 Forbidden
HTTP/1.1 403 Forbidden
HTTP/1.1 403 Forbidden
HTTP/1.1 403 Forbidden
HTTP/1.1 403 Forbidden

Значит все работает отлично.


P.S. Проверял на Апаче 1,3  первых 5 - 10 минут ДОС атаки держыт дальше Апач всетаки падает. Всетаки Апач дайот ответ на запрос хоть и Forbidden но отвечает. А окончательно проблему возможно решить с ДОС и ДДОС атаками с стандартным фаерволом OpenBSD тоисть PF. Вскоре статья будет дополнена конфигурацией по настройке PF.



Источник: http://www.lissyara.su/?id=1602
Категория: Apache | Добавил: oleg (10.03.2008) | Автор: HOSTER
Просмотров: 1671 | Рейтинг: 0.0/0 |
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Форма входа

Beastie

Друзья сайта

Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
links

Copyright MyCorp © 2024