Skonfiguruj mod_evasive, aby zapobiec atakom DoS i DDoS na CentOS

W tym artykule dowiemy się, jak zainstalować i skonfigurować mod_evasive, aby zapobiec atakom DoS i DDoS na CentOS.

Do tej demonstracji użyliśmy 64-bitowego serwera dedykowanego CentOS 7.

Zacznijmy.

Moduł mod_evasive Apache. Pomaga w utrzymaniu ataków typu Distributed Denial of Service (DoS i DDoS) oraz ataków brute force na serwer Apache. Mod_evasive działa poprzez monitorowanie przychodzących żądań i zgłaszanie nadużyć za pośrednictwem poczty elektronicznej i logów systemowych. Ma być narzędziem do wykrywania i zarządzania siecią i szybko konfigurowany do komunikacji z ipchains, zaporami ogniowymi, routerami i innymi.

Mod_evasive obserwuje podejrzane żądania i odrzuca pojedynczy adres IP z dowolnego z poniższych:

  • Żądanie tej samej strony częściej niż kilka razy na sekundę
  • Wysyłanie więcej niż 50 jednoczesnych żądań na to samo dziecko na sekundę
  • Wysyłanie jakichkolwiek próśb, gdy tymczasowo znajduje się na czarnej liście

Warunki wstępne

  • 64-bitowy serwer dedykowany lub serwer w chmurze CentOS 7 (działa również z CentOS 6)
  • Apache Webserver LAMP (Linux, Apache, MySQL, PHP) zainstalowany i skonfigurowany
  • Serwer poczty elektronicznej

1. Aktualizuj serwer:

# yum update -y

2. Zainstaluj EPEL (dodatkowe pakiety dla Enterprise Linux):

# yum install epel-release -y

3. Zainstaluj warunek wstępny mod_evasive:

# yum install httpd-devel

4. Zainstaluj mod_evasive:

# yum install mod_evasive -y

Teraz mod_evasive jest zainstalowany

5. Aby dodać konfigurację mod_evasive do pliku konfiguracyjnego Apache:

Domyślnie linia LoadModule zostanie dodana w pliku konfiguracyjnym mod_evasive.conf. Otwórz plik i dodaj następujący wiersz, jeśli jeszcze go nie ma.

# vi /etc/httpd/conf.d/mod_evasive.conf

LoadModule evasive20_module modules/mod_evasive24.so

Otwórz plik konfiguracyjny mod_evasive.conf i sprawdź następujące wpisy.

DOSHashTableSize 3097
DOSPageCount 2
DOSSiteCount 50
DOSPageInterval 1
DOSSiteInterval 1
DOSBlockingPeriod 60
DOSEmailNotify

Możesz skonfigurować powyższe wpisy zgodnie ze swoimi wymaganiami. Zmodyfikuj DOSEmailNotify na swój identyfikator e-mail.

Aby dodać adres IP do białej listy, dodaj następujący wiersz w pliku konfiguracyjnym:

DOSWhitelist 127.0.0.1

DOSWhitelist 127.0.0.*

Możesz też dodać wiele adresów IP.

Jeszcze jeden wpis wymaga zmiany DOSLogDir. Domyślnie odnosi się do /tmp dla mechanizmu blokującego.

Utwórz nowy katalog w /var/log/ :

# mkdir /var/log/mod_evasive

Ustaw własność na użytkownika Apache:

# chown -R apache:apache /var/log/mod_evasive

Teraz edytuj następujący wiersz w konfiguracji mod_evasive i zmodyfikuj ścieżkę katalogu:

DOSLogDir  /var/log/mod_evasive

Zapisz i zamknij plik konfiguracyjny mod_evasive.

Następnie uruchom ponownie Apache:

# systemctl restart httpd.service

To wszystko, mod_evasive zainstalowany i skonfigurowany.

Dowiedz się więcej o opcjach konfiguracyjnych mod_evasive
Te opisy opcji konfiguracyjnych zostały zaczerpnięte bezpośrednio z pliku README.

DOSHashRozmiar tabeli

Rozmiar tablicy mieszającej definiuje liczbę węzłów najwyższego poziomu dla każdej tablicy mieszającej podrzędnej. Zwiększenie tej liczby zapewni wyższą wydajność poprzez zmniejszenie liczby iteracji wymaganych do uzyskania rekordu, ale zużyje więcej pamięci na miejsce na tabele. Powinieneś to zwiększyć, jeśli masz zajęty serwer WWW. Wartość, którą określisz, zostanie automatycznie przydzielona do następnej liczby pierwszej na liście liczb pierwszych (lista użytych starterów znajduje się w mod_evasive.c).

DOSPageCount

Jest to próg liczby żądań tej samej strony (lub identyfikatora URI) na interwał strony. Po przekroczeniu progu dla tego interwału adres IP klienta zostanie dodany do listy blokowania.

DOSSiteCount

Jest to próg łącznej liczby żądań dowolnego obiektu przez tego samego klienta w tym samym odbiorniku na interwał lokacji. Po przekroczeniu progu dla tego interwału adres IP klienta zostanie dodany do listy blokowania.

DOSPageInterval

Interwał dla progu liczby stron; domyślnie interwały 1-sekundowe.

Interwał witryny DOSSite

Interwał dla progu liczby witryn; domyślnie interwały 1-sekundowe.

Okres blokowania DOS

Okres blokowania to czas (w sekundach), przez który klient zostanie zablokowany, jeśli zostanie dodany do listy blokowania. W tym czasie wszystkie kolejne żądania od klienta spowodują 403 (Zabronione) i licznik czasu zostanie zresetowany (np. kolejne 10 sekund). Ponieważ licznik czasu jest resetowany przy każdym kolejnym żądaniu, nie jest konieczny długi okres blokowania; w przypadku ataku DoS licznik ten będzie się resetował.

DOSEmailPowiadom

Jeśli ta wartość jest ustawiona, wiadomość e-mail zostanie wysłana na podany adres za każdym razem, gdy adres IP zostanie umieszczony na czarnej liście. Mechanizm blokujący za pomocą /tmp zapobiega ciągłemu wysyłaniu wiadomości e-mail.

Notatka:

Upewnij się, że MAILER jest poprawnie ustawiony w mod_evasive.c (lub mod_evasive20.c). Wartość domyślna to „/bin/mail -t %s”, gdzie %s jest używany do oznaczenia docelowego adresu e-mail ustawionego w konfiguracji. Jeśli używasz Linuksa lub innego systemu operacyjnego z innym typem programu pocztowego, musisz to zmienić.

Polecenie systemu DOS

Jeśli ta wartość jest ustawiona, określone polecenie systemowe będzie wykonywane za każdym razem, gdy adres IP zostanie umieszczony na czarnej liście. Ma to na celu umożliwienie wywołań systemowych do filtra IP lub innych narzędzi. Mechanizm blokujący używający /tmp zapobiega ciągłym wywołaniom systemowym. Użyj %s, aby wskazać adres IP z czarnej listy.

DOSLogDir

Wybierz alternatywny katalog tymczasowy
Domyślnie "/tmp" będzie używany do mechanizmu blokowania, który otwiera pewne problemy z bezpieczeństwem, jeśli twój system jest otwarty dla użytkowników powłoki. W przypadku, gdy masz nieuprzywilejowanych użytkowników powłoki, będziesz chciał utworzyć katalog z możliwością zapisu tylko dla użytkownika, na którym Apache działa jako (zazwyczaj root), a następnie ustaw to w swoim httpd.conf.

W tym artykule omówiliśmy, w jaki sposób nasz inżynier pomocy technicznej instaluje i konfiguruje mod_evasive, aby zapobiec atakom DoS i DDoS na CentOS.


Jak rozwiązać problemy z WordPress 5.0

Jak rozwiązać problemy z WordPress 5.0

WordPress 5.0 jest wreszcie wdrażany i zapewnia zupełnie nowe wrażenia podczas edycji z Gutenberg

Jak odświeżyć elementy folderu w systemie Windows 11?

Jak odświeżyć elementy folderu w systemie Windows 11?

W przypadku braku opcji Odśwież w menu kontekstowym, oto jak możesz odświeżyć elementy w Eksploratorze plików w systemie Windows 11.

Jak ustawić klasyczny edytor jako domyślny edytor w WordPressie zamiast Gutenberga?

Jak ustawić klasyczny edytor jako domyślny edytor w WordPressie zamiast Gutenberga?

Edytor Gutenberg wkrótce stanie się domyślnym edytorem w WordPress. Będziesz mieć możliwość wybrania Edytora klasycznego

🔧 NAPRAW: Wygląda na to, że w Twojej instalacji PHP brakuje rozszerzenia MySQL, które jest wymagane przez WordPress

🔧 NAPRAW: Wygląda na to, że w Twojej instalacji PHP brakuje rozszerzenia MySQL, które jest wymagane przez WordPress

Chcesz uruchomić samodzielnie zarządzaną witrynę WordPress? Świetny. Dowiesz się z miliona rzeczy. Jedna z krytycznych części ustawienia

NAPRAW: „Edytor napotkał nieoczekiwany błąd” w WordPressie po aktualizacji

NAPRAW: „Edytor napotkał nieoczekiwany błąd” w WordPressie po aktualizacji

Nie możesz napisać nowego posta za pomocą nowego edytora bloków w WordPressie? Są szanse, że dostaniesz „Edytor

Jak wyłączyć edytor bloków i zainstalować klasyczny edytor w WordPress 5.0

Jak wyłączyć edytor bloków i zainstalować klasyczny edytor w WordPress 5.0

Począwszy od WordPress 5.0, domyślnym edytorem w WordPressie jest nowy edytor Block. Nowy edytor jest radykalnie inny

Jak naprawić błąd sortowania „utf8mb4_0900_ai_ci” podczas importowania bazy danych WordPress?

Jak naprawić błąd sortowania „utf8mb4_0900_ai_ci” podczas importowania bazy danych WordPress?

Jeśli zmieniasz instalację WordPressa z serwera MySQL 8 na MySQL 5.7 (lub poniżej), najprawdopodobniej napotkasz

Jak włączyć krótkie tagi PHP

Jak włączyć krótkie tagi PHP

W tym artykule omówiliśmy, jak włączyć krótkie tagi PHP. PHP parsuje plik używając znaczników otwierających i zamykających, które wyglądają jak . Aby włączyć krótkie tagi PHP

Skonfiguruj mod_evasive, aby zapobiec atakom DoS i DDoS na CentOS

Skonfiguruj mod_evasive, aby zapobiec atakom DoS i DDoS na CentOS

W tym artykule dowiemy się, jak zainstalować i skonfigurować mod_evasive, aby zapobiec atakom DoS i DDoS na CentOS. Moduł mod_evasive Apache.

Jak zainstalować PHP z PHP-FPM dla NGINX na CentOS

Jak zainstalować PHP z PHP-FPM dla NGINX na CentOS

jak zainstalować PHP z PHP-FPM dla NGINX na CentOS. Podstawowa konfiguracja serwera WWW NGINX do obsługi aplikacji PHP i ich serwera na porcie 80.