Тази статия е част от серията Ръководство за Apache Server:

  • Осигуряване на Apache на Ubuntu - Част 1
  • Осигуряване на Apache на Ubuntu - Част 2
  • Оптимизиране на ефективността на Apache - Част 1
  • Оптимизиране на ефективността на Apache - Част 2
  • Настройване на Apache на
  • Настройване на IP и Port-базирани Virtualhost в Apache
  • Как да настроите паролата за защита на уеб директорията в Apache
  • Настройване на Apache Server със SSL поддръжка на Ubuntu
  • Създаване на Fail2ban за защита на Apache от DDOS атака
  • Как да настроите Webdata с Apache на Ubuntu
  • Следете уеб сървъра на Apache, използвайки Mod_status
  • Как да защитите срещу DDoS с Mod_evasive на Apache Server

Mod_evasive е модул на Apache, който осигурява уклончиво действие в случай на атака на HTTP DoS или DDoS или атака на груба сила. mod_evasive понастоящем съобщава за злонамерена дейност чрез имейл и syslog. Модулът mod_evasive работи, като създава вътрешна динамична хеш таблица с IP адреси и URI и отказва всеки единствен IP адрес от някое от следните условия:

  • Искане на една и съща страница повече от няколко пъти в секунда
  • Осъществяване на повече от 50 едновременни заявки за същото дете в секунда
  • Извършване на всякакви искания, докато са временно включени в черния списък (в блокиращ списък)

В този урок ще обсъдя как да инсталирате, конфигурирате и използвате mod_evasive на вашия Apache сървър. Този урок използва сървър на Ubuntu 14.04.

Инсталиране на mod_evasive

Първо, уверете се, че сървърът на Apache е инсталиран и работи.

След това можете да инсталирате модула mod_evasive, като стартирате:

 sudo apt-get инсталирате libapache2-mod-evasive 

След като инсталирате mod_evasive, можете да проверите този модул, като изпълните следните команди:

 sudo apachectl -M | grep evasive 

Ако mod_evasive е активиран, ще видите следния изход:

 evasive20_module (споделен) 

Конфигуриране на Mod_evasive

Модулът mod_evasive прочита конфигурацията си от "/etc/apache2/mods-enabled/evasive.conf". Можете лесно да персонализирате mod_evasive модула чрез конфигурационния файл "evasive.conf". По подразбиране опциите за конфигурация mod_evasive са деактивирани, така че първо трябва да ги активирате. За да направите това, редактирайте файла "evasive.conf":

 sudo nano /etc/apache2/mods-enabled/evasive.conf 

Премахнете # от следните редове:

 DOSHashTableSize 3097 DOSPageCount 2 DOSSiteCount 50 DOSPageInterval 1 DOSSiteInterval 1 DOSBlockingPeriod 10 DOSEmailNotify [email protected] DOSLogDir "/ var / log / apache2 / 

Запишете файла и рестартирайте Apache, за да влязат в сила промените ви:

 sudo /etc/init.d/apache2 рестартирайте 

Можете да промените горните стойности в зависимост от количеството и вида трафик, които уеб сървърът ви трябва да работи.

DOSHashTableSize : Тази директива определя как mod_evasive следи кой има достъп до това. Увеличаването на този брой ще осигури по-бързо търсене на сайтовете, които клиентът е посетил в миналото.

DOSPageCount : Тази директива определя колко идентични заявки към конкретен URI посетител може да направи през интервала DOSPageInterval.

DOSSiteCount : Това е подобно на DOSPageCount, но съответства на броя на заявките, които посетителят може да направи на сайта Ви през интервала DOSSiteInterval.

DOSBlockingPeriod : Ако посетителят надхвърли ограниченията, зададени от DOSSPageCount или DOSSiteCount, неговият IP адрес ще бъде блокиран по време на DOSBlockingPeriod. През този интервал той ще получи грешка 403 (забранена).

DOSEmailNotify : Имейл адресът ще бъде изпратен на имейл адреса, посочен при всяко DOSEmailNotify : на IP адрес.

DOSLogDir : Тази директива определя местоположението на дневника.

Тестване

Сега е време да проверите дали mod_evasive модула работи или не. Можете да направите това, като използвате скрипт Perl "test.pl", намиращ се в директорията "/ usr / share / doc / libapache2-mod-evasive / examples /".

Можете да изпълните скрипта, като изпълните следната команда:

 sudo perl /usr/share/doc/libapache2-mod-evasive/examples/test.pl 

Трябва да видите следния изход:

Скриптът прави 100 заявки към вашия уеб сървър. Кодът за отговор 403 показва, че достъпът се отхвърля от уеб сървъра.

заключение

mod_evasive е много важен инструмент за защита на уеб сървър на Apache срещу няколко заплахи. Можете да експериментирате с mod_evasive yes различни опции в среда за тестване. Ако имате някакви въпроси, можете да ги напишете в полето за коментари по-долу.