GNU/Linux >> Znalost Linux >  >> Linux

Jak nainstalovat a nakonfigurovat ModEvasive s Apache na Ubuntu 18.04

Ochrana vašeho webového serveru před různými druhy útoků je klíčovou odpovědností každého správce systému. ModEvasive je modul webového serveru Apache, který vám pomáhá chránit váš webový server v případě útoků DoS, DDoS a hrubou silou. Tyto typy útoků způsobí, že serveru dojde paměť a dojde ke zhroucení vašeho webu.

Modul mod_evasive funguje tak, že vytváří hashovací tabulku IP adres a URI a monitoruje podezřelé příchozí požadavky serveru, jako jsou:

  • Vytvořte více než 100 souběžných připojení za sekundu.
  • Požadavek na stejnou stránku několikrát za sekundu.

Pokud dojde k takovému podezřelému požadavku, modul mod_evasive odešle chybu 403 a zablokuje IP adresu.

V tomto tutoriálu vám ukážeme, jak nainstalovat a nakonfigurovat mod_evasive pomocí Apache na serveru Ubuntu 18.04.

Předpoklady

  • Nové Ubuntu 18.04 VPS na cloudové platformě Atlantic.Net.
  • Statická adresa IP nakonfigurovaná na vašem serveru.

Krok 1 – Vytvořte cloudový server Atlantic.Net

Nejprve se přihlaste ke svému cloudovému serveru Atlantic.Net. Vytvořte nový server a jako operační systém vyberte Ubuntu 18.04 s alespoň 1 GB RAM. Připojte se ke svému cloudovému serveru přes SSH a přihlaste se pomocí přihlašovacích údajů zvýrazněných v horní části stránky.

Jakmile se přihlásíte na svůj server Ubuntu 18.04, spusťte následující příkaz a aktualizujte svůj základní systém nejnovějšími dostupnými balíčky.

apt-get update -y

Krok 2 – Instalace mod_evasive

Před spuštěním musí být na vašem serveru nainstalován webový server Apache. Pokud není nainstalován, můžete jej nainstalovat pomocí následujícího příkazu:

apt-get install apache2 apache2-utils -y

Jakmile je webový server Apache nainstalován, můžete nainstalovat mod_evasive pomocí následujícího příkazu:

apt-get install libapache2-mod-evasive -y

Během instalace budete požádáni o konfiguraci poštovního serveru Postfix pro e-mailová upozornění. Pro dokončení instalace si můžete vybrat požadovanou možnost. Pokud si nejste jisti, vyberte pouze místní nebo žádná konfigurace .

Po instalaci mod_evasive můžete ověřit, zda je modul mod_evasive povolen spuštěním následujícího příkazu:

apachectl -M | grep vyhýbavý

Měli byste získat následující výstup:

[Mon Jan 27 13:55:35.707317 2020] [so:warn] [pid 29031] AH01574:modul dav_module je již načten, přeskakuje evasive20_module (shared)

V tomto okamžiku je modul mod_evasive nainstalován a povolen. Nyní můžete přejít k dalšímu kroku.

Krok 3 – Konfigurace mod_evasive

Výchozí konfigurační soubor mod_evasive se nachází na /etc/apache2/mods-enabled/evasive.conf. Tento soubor budete muset nakonfigurovat podle svých požadavků.

Tento soubor můžete otevřít pomocí editoru nano, jak je znázorněno níže:

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

Změňte soubor, jak je uvedeno níže. Doporučujeme upravit DOSEmailNotify na adresu, na kterou chcete e-mail zasílat (pokud je nakonfigurován) a DOSSystemCommand – například „su – richard -c ‘/sbin… %s …’“

  doshashtablesze 3097 DOSPAGECOUNT 2 DossiteCount 50 DspageInter 1 DossiteInterval 1 Dosblockingperiod 100 DoseMailNotify pří[email protected] DossystemCommand "Su - Someuser -C '/Sbin/... %S ..." "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "DOSLOGDIRE" " /var/log/mod_evasive"

Po dokončení uložte a zavřete soubor.

Krátké vysvětlení každé možnosti je uvedeno níže:

  • DOSHashTableSize :mod_evasive používá tuto volbu k řízení velikosti hashovací tabulky. Pokud máte zaneprázdněný webový server, doporučujeme toto zvýšit.
  • DOSPageCount :Tato možnost určuje prahový limit pro počet povolených požadavků na stejný URI za sekundu. Po překročení prahového limitu bude IP adresa klienta na černé listině.
  • DOSSiteCount :Tato možnost určuje limit celkového počtu povolených požadavků na stejnou IP adresu.
  • DOSPageInterval :Tato možnost určuje interval počtu stránek.
  • DOSSiteInterval :Tato možnost určuje interval počtu webů.
  • DOSBlockingPeriod :Tato možnost definuje dobu v sekundách, po kterou bude klient zablokován.
  • DOSEmailNotify :Tato možnost odešle e-mail na zadanou adresu, když je IP adresa na černé listině.
  • DOSSystemCommand :Kdykoli se adresa IP dostane na černou listinu, bude proveden zadaný systémový příkaz.
  • DOSLogDir :Tato volba definuje adresář mod_evasive log.

Dále vytvořte adresář pro uložení protokolu mod_evasive a změňte jeho vlastnictví na www-data pomocí následujícího příkazu:

mkdir /var/log/mod_evasivechown -R www-data:www-data /var/log/mod_evasive

Nakonec restartujte službu Apache a implementujte změny:

systemctl restartujte apache2

Krok 4 – Test mod_evasive

V tomto okamžiku je modul mod_evasive nainstalován a nakonfigurován. Je čas otestovat, zda modul funguje správně.

Přejděte do vzdáleného systému a odešlete hromadnou žádost o stránku na server pomocí příkazu ab:

ab -n 1000 -c 20 http://ip-vasho-serveru/

Tento příkaz způsobí ekvivalent útoku DoS odesláním 1000 požadavků na stránku v 10 souběžných připojeních.

Na serveru zkontrolujte protokol pošty spuštěním následujícího příkazu:

tail -15 /var/mail/root

Měli byste vidět, že IP adresa klienta byla uvedena na černou listinu uživatelem mod_evasive:

Přijato:ubuntu1804 (Postfix, z uživatelského ID 33)            id B0C3EC1753; Mon, 27 Jan 2020 14:15:09 +0000 (UTC)To:[email protected]:1.0Content-Type:text/plain; charset="ANSI_X3.4-1968"Content-Transfer-Encoding:8bitMessage-Id:Datum:Po, 27. ledna 2020 14:15:09 +0000 (UTC)Od:www-data Komu:[email protected]:HTTP BLACKLIST 103.250.161.100mod_evasive HTTP Blacklisted 103.250.161.100

Mod_evasive můžete také otestovat pomocí vestavěného skriptu test.pl. Aby fungoval, budete muset tento skript upravit.

Skript můžete upravit, jak je uvedeno níže:

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

Najděte následující řádek:

tisk $SOCKET "GET /?$_ HTTP/1.0\n\n";

Nahraďte jej následujícím:

print $SOCKET "GET /?$_ HTTP/1.0\r\nHost:127.0.0.1\r\n\r\n";

Po dokončení uložte a zavřete soubor. Poté spusťte skript pomocí příkazu perl:

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

Pokud vše funguje správně, měli byste získat následující výstup:

http/1.1 403 FORIDDENTHTP/1.1 403 FORIDDENTHTP/1,1 403 FORIDDENTHTP/1,1 403 FORDIDDENTHTP/1,1 403 FORDIDNHTP/1,101TOBITTHT/1,1 4 403KTHTHT/1,1 403011THIBITHT/1,1 4 4030. 403 ForbiddenHTTP/1.1 403 ForbiddenHTTP/1.1 403 ForbiddenHTTP/1.1 403 ForbiddenHTTP/1.1 403 Forbidden

Závěr

Gratulujeme! Modul mod_evasive je nyní nakonfigurován tak, aby chránil váš server před DDoS a útoky hrubou silou.


Linux
  1. Jak nainstalovat a nakonfigurovat server DHCP na Ubuntu 20.04

  2. Jak nainstalovat a nakonfigurovat server Redis v Ubuntu

  3. Jak nainstalovat a nakonfigurovat webový server Apache na Ubuntu 13.10

  1. Jak nainstalovat a nakonfigurovat server NFS na Ubuntu 20.04

  2. Jak nainstalovat a nakonfigurovat VNC na Ubuntu 20.04

  3. Jak nainstalovat a nakonfigurovat VNC na Ubuntu 18.04

  1. Jak nainstalovat a nakonfigurovat Nextcloud s Apache na Ubuntu 18.04

  2. Jak nainstalovat a nakonfigurovat ownCloud s Apache na Ubuntu 18.04

  3. Jak nainstalovat a nakonfigurovat server NFS na Ubuntu 18.04