Wyszukiwanie w witrynie

Chroń się przed DDoS za pomocą Mod_evasive na serwerze Apache


Mod_evasive to moduł Apache, który zapewnia działanie unikowe w przypadku ataku HTTP DoS lub DDoS lub ataku brute-force. mod_evasive zgłasza obecnie złośliwą aktywność za pośrednictwem poczty elektronicznej i dziennika syslog. Moduł mod_evasive działa poprzez utworzenie wewnętrznej dynamicznej tabeli mieszającej adresów IP i URI oraz odmowę dowolnego pojedynczego adresu IP w przypadku któregokolwiek z następujących warunków:

  • Żądanie tej samej strony więcej niż kilka razy na sekundę
  • Wysyłanie ponad 50 jednoczesnych żądań do tego samego dziecka na sekundę
  • Składanie jakichkolwiek żądań w przypadku tymczasowego wpisu na czarną listę (na liście blokowanych)

W tym samouczku omówię, jak zainstalować, skonfigurować i używać mod_evasive na serwerze Apache. W tym samouczku wykorzystano serwer Ubuntu 14.04.

Instalowanie mod_evasive

Najpierw upewnij się, że serwer Apache jest zainstalowany i uruchomiony.

Następnie możesz zainstalować moduł mod_evasive, uruchamiając:

sudo apt-get install libapache2-mod-evasive

Po zainstalowaniu mod_evasive możesz zweryfikować ten moduł, uruchamiając następujące polecenia:

sudo apachectl -M | grep evasive

Jeśli mod_evasive jest włączony, zobaczysz następujące dane wyjściowe:

evasive20_module (shared)

Skonfiguruj Mod_evasive

Moduł mod_evasive odczytuje swoją konfigurację z pliku „/etc/apache2/mods-enabled/evasive.conf”. Możesz łatwo dostosować moduł mod_evasive za pomocą pliku konfiguracyjnego „evasive.conf”. Domyślnie opcje konfiguracyjne mod_evasive są wyłączone, więc musisz je najpierw włączyć. Aby to zrobić, edytuj plik „evasive.conf”:

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

Usuń # z następujących linii:

    DOSHashTableSize    3097
    DOSPageCount        2
    DOSSiteCount        50
    DOSPageInterval     1
    DOSSiteInterval     1
    DOSBlockingPeriod   10
 
    DOSEmailNotify      mail@yourdomain.com
    DOSLogDir           "/var/log/apache2/"

Zapisz plik i uruchom ponownie Apache, aby zmiany odniosły skutek:

sudo /etc/init.d/apache2 restart

Możesz zmienić powyższe wartości w zależności od ilości i rodzaju ruchu, jaki musi obsłużyć Twój serwer WWW.

DOSHashTableSize: Ta dyrektywa określa, w jaki sposób mod_evasive śledzi, kto uzyskuje dostęp do czego. Zwiększenie tej liczby umożliwi szybsze przeszukanie stron, które klient odwiedził w przeszłości.

DOSPageCount: Ta dyrektywa określa, ile identycznych żądań do określonego URI może wykonać odwiedzający w przedziale DOSPageInterval.

DOSSiteCount: Jest to podobne do DOSPageCount, ale odpowiada ogólnej liczbie żądań, jakie użytkownik może wysłać do Twojej witryny w przedziale DOSSiteInterval.

DOSBlockingPeriod: Jeśli odwiedzający przekroczy limity ustawione przez DOSSPageCount lub DOSSiteCount, jego adres IP zostanie zablokowany na czas DOSBlockingPeriod. W tym czasie otrzyma błąd 403 (Zabroniony).

DOSEmailNotify: Wiadomość e-mail zostanie wysłana na podany adres e-mail za każdym razem, gdy adres IP znajdzie się na czarnej liście.

DOSLogDir: Ta dyrektywa określa lokalizację katalogu dziennika.

Testowanie Mod_evasive

Teraz czas sprawdzić, czy moduł mod_evasive działa, czy nie. Można to zrobić za pomocą skryptu perlowego „test.pl” znajdującego się w katalogu „/usr/share/doc/libapache2-mod-evasive/examples/”.

Skrypt można wykonać, uruchamiając następującą komendę:

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

Powinieneś zobaczyć następujące dane wyjściowe:

Skrypt wysyła 100 żądań do Twojego serwera WWW. Kod odpowiedzi 403 wskazuje, że serwer WWW odmówił dostępu.

Wniosek

mod_evasive to bardzo ważne narzędzie zabezpieczające serwer WWW Apache przed kilkoma zagrożeniami. Możesz eksperymentować z mod_evasive i różnymi opcjami w środowisku testowym. Jeśli masz jakieś pytania, możesz je napisać w polu komentarza poniżej.

Powiązane artykuły