Den här artikeln är en del av Apache Server Guide-serien:

  • Säkra Apache på Ubuntu - Del 1
  • Säkra Apache på Ubuntu - Del 2
  • Optimera Apache Performance - Del 1
  • Optimera Apache Performance - Del 2
  • Konfigurera namnbaserad Virtualhost Apache
  • Konfigurera IP och portbaserad Virtualhost i Apache
  • Så här ställer du in lösenordskyddswebbkatalogen i Apache
  • Ställa in Apache Server med SSL-support på Ubuntu
  • Konfigurera Fail2ban för att skydda Apache från ett DDOS-attack
  • Så här ställer du upp Webdav med Apache på Ubuntu
  • Övervaka Apache webbserver med Mod_status
  • Hur man skyddar mot DDoS med Mod_evasive på Apache Server

Mod_evasive är en Apache-modul som ger evasiv åtgärd i händelse av en HTTP DoS eller DDoS attack eller brute force attack. mod_evasive rapporterar för närvarande skadlig aktivitet via e-post och syslog. Mod_evasive-modulen fungerar genom att skapa en intern dynamisk hash-tabell med IP-adresser och URI och neka en enskild IP-adress från något av följande villkor:

  • Begär samma sida mer än ett par gånger per sekund
  • Göra mer än 50 samtidiga förfrågningar på samma barn per sekund
  • Göra några förfrågningar medan du tillfälligt svartlistat (på en blockeringslista)

I denna handledning diskuterar jag hur du installerar, konfigurerar och använder mod_evasive på din Apache-server. Denna handledning använder en Ubuntu 14.04-server.

Installera mod_evasive

Kontrollera först att Apache-servern är installerad och körd.

Därefter kan du installera mod_evasive modulen genom att köra:

 sudo apt-get installera libapache2-mod-evasive 

Efter installationen mod_evasive kan du verifiera denna modul genom att köra följande kommandon:

 sudo apachectl -M | grep undvikande 

Om mod_evasive är aktiverat ser du följande utdata:

 evasive20_module (delad) 

Konfigurera Mod_evasive

Mod_evasive-modulen läser sin konfiguration från "/etc/apache2/mods-enabled/evasive.conf." Du kan enkelt anpassa mod_evasive-modulen genom konfigurationsfilen "evasive.conf". Som standard är mod_evasive konfigurationsalternativ avaktiverade, så du måste aktivera dem först. För att göra detta, redigera filen "evasive.conf":

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

Ta bort # från följande rader:

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

Spara filen och starta om Apache för att dina ändringar ska träda i kraft:

 sudo /etc/init.d/apache2 omstart 

Du kan ändra ovanstående värden beroende på mängden och typen av trafik som din webbserver behöver hantera.

DOSHashTableSize : Detta direktiv anger hur mod_evasive håller reda på vem som har tillgång till vad. Att öka detta nummer kommer att ge en snabbare uppslagning av de webbplatser som kunden har besökt tidigare.

DOSPageCount : detta direktiv anges hur många identiska förfrågningar till en specifik URI som en besökare kan göra över DOSPageInterval-intervallet.

DOSSiteCount : Det liknar DOSPageCount men motsvarar hur många begäranden totalt sett en besökare kan göra till din webbplats över DOSSiteInterval-intervallet.

DOSBlockingPeriod : Om en besökare överskrider gränserna som fastställts av DOSSPageCount eller DOSSiteCount, kommer hans IP att blockeras under DOSBlockingPeriod-tiden. Under detta intervall får han ett 403 (förbjudet) fel.

DOSEmailNotify : Ett e-postmeddelande kommer att skickas till den angivna e-postadressen när en IP-adress är svartlistad.

DOSLogDir : Detta direktiv anger platsen för loggboken.

Testa Mod_evasive

Nu är det dags att testa om mod_evasive modulen fungerar eller inte. Du kan göra detta genom att använda ett perl-script "test.pl" som finns i katalogen "/ usr / share / doc / libapache2-mod-evasive / examples /".

Du kan utföra skriptet genom att köra följande kommando:

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

Du bör se följande utdata:

Skriptet gör 100 förfrågningar till din webbserver. 403-svarskoden anger att åtkomst nekas av webbservern.

Slutsats

mod_evasive är ett mycket viktigt verktyg för att säkra en Apache webbserver mot flera hot. Du kan experimentera med mod_evasive och olika alternativ i en testmiljö. Om du har några frågor kan du skriva dem i kommentarfältet nedan.