ГлавнаяРегистрацияВходВ закладки

Главная » Статьи » CentOS » Безопасность
Один из простейших способов защиты от ddos атак
Я уверен, ,что многие владельцы популярных веб-ресурсов, а также коммерческие проекты (которые в большинстве случаев, то же самое) приходилось иметь дело с такими неприятными явлениями, как DDoS-атаки. Чтобы организовать такую ​​атаку сегодня бы даже студенту (как правило, группа школьников). Более того, эти последствия могут быть весьма заметными. Это особенно верно в отношении сайтов, которые работают в онлайн-сервисов - интернет-магазинов, обменных пунктов и т.д.

Итак, рассмотрим «школьный», но очень распространенная и опасная версия атак DDoS - ". Грубой силы" небольшие атаки Для защиты от таких атак достаточно модуль mod_evasive. Чтобы защититься от более серьезных атак, данный аппарат, конечно, не будет достаточно. Тем не менее, следует отметить, ,что более агрессивные атаки DDoS-организаторов требуют значительных затрат, ,что само по себе является хорошей защитой ...

Установка вышеуказанного модуля будет производиться на OS CentOS 5.5. При этом имеется в виду, ,что в системе уже инсталлирован Апач второй версии.

Установка:
[-hide-]
1. Производим подключение репозитория Epel
2. Осуществляем установку модуля: mod_evasive

# yum install mod_evasive

3. Изменяем конфигурационный файлик Апача

# vi /etc/httpd/conf/httpd.conf

Для этого дописываем следующие строчки кода:


DOSHashTableSize 3097
DOSPageCount 8
DOSSiteCount 100
DOSPageInterval 2
DOSSiteInterval 2
DOSBlockingPeriod 600
DOSEmailNotify secure@adminmail.com


Краткое описание настроек:
DOSHashTableSize — объем хэш-таблицы, обрабатывающей запросы, поступающие на веб-сервер.
DOSPageCount — количество запросов к одной странице, приходящих от одинаковых IP в течение указанного промежутка времени.
DOSSiteCount — количество запросов, поступивших ко всем страницам домена, например, если пришло более 100 запросов с одного IP на страницы домена, то такой айпишник будет заблокирован.
DOSPageInterval – промежуток времени, установленный для директивы DOSPageCount (сек.)
DOSSiteInterval — промежуток времени, установленный для директивы DOSSiteCount (сек.)
DOSBlockingPeriod – период блокировки IP (сек.)
DOSEmailNotify – адрес электронной почты для отправки сообщений о блокировке айпишников.
DOSSystemCommand — команда, которая будет выполняться во время блокировки очередного айпишника. Например, можно автоматически добавить этот IP в список сомнительных адресов файервола.
Пример такой директивы:

“/sbin/iptables -A INPUT -p tcp –dport 80 -s %s -j REJECT”

В %s происходит передача значений от модуля IP
DOSWhiteList — перечень «белых» айпишников. Возможно использование масок, например 192.168.0.* для локальных адресов.
4. Теперь проверим работу установленного модуля. Для этого создадим скрипт на Perl:

# vi test

Добавим в него следующие строчки:

#!/usr/bin/perl

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 = ;
print $response;
close($SOCKET);
}

Выставим права на файлик

# chmod a+x test

Запустив скрипт,

# ./test

Увидим следующие сообщения:

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

Значит установленный модуль работает.
Если вышеуказанные сообщения не появились, то при установке модуля была допущена ошибка. Не отчаивайтесь. С первого раза редко ,что получается...
[-hide-]
Просмотров: 5563
Дата: 2011-07-13 22:14:32
Комментариев: 3
Источник:
nadjanada
мдааа...не для моих мозгов
nadjanada
так, люди заходите ко мне http://bigbox.hostdot.ru/ , хоть там нет еще почти ничего(т.к. он открылся только сегодня 13.07.2011), но уже есть несколько файлов, которые Вам будут интересны

С Ув. админ сайта
nadjanada
да и еще...мне лень было читать этот текст (A)