Hur man skyddar mot DDoS med Mod_evasive på Apache Server
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.