Skydda din Apache2-server med mod_evasive
Med Apache-modulen mod_evasive kan du skydda din sajt mot DoS-attacker (Denial of Service) genom att begränsa antalet förfrågningar till servern från en IP-adress. Genom att t.ex. ladda om en sida flera gånger på rad kan en angripare i värsta fall göra din sajt oåtkomlig.
Mod_evasive räknas som en grundläggande säkerhetsåtgärd för en Apache2-baserad webbserver.
Denna guide går igenom installation och konfiguration av mod_evasive på en server som kör Debian 8.6.
Installation
Installera mod_evasive:
sudo apt-get install libapache2-mod-evasive
Skapa mappen för mod_evasives logfiler:
sudo mkdir /var/log/mod_evasive
Ändra rättigheterna till mappen så att Apache kan skriva till den:
sudo chown www-data:www-data /var/log/mod_evasive/
Gå sedan in i configfilen och plocka bort # framför samtliga rader.
sudo nano /etc/apache2/mods-available/evasive.conf
<IfModule mod_evasive20.c> DOSHashTableSize 3097 DOSPageCount 2 DOSSiteCount 50 DOSPageInterval 1 DOSSiteInterval 1 DOSBlockingPeriod 10 DOSEmailNotify tobias.carlsson@bitlabbet.se DOSSystemCommand "su - someuser -c '/sbin/... %s ...'" DOSLogDir "/var/log/mod_evasive" </IfModule>
Starta sedan om Apache2:
sudo service apache2 reload
Nu ska modulen vara laddad och fungera.
Vid missbruk, t.ex. vid försök att överbelasta sajten, kommer Error-sidan 403 att visas.
Vitlista
För att vitlista en IP-adress lägger du till följande rad (eller rader för fler) i configfilen (/etc/apache2/mods-available/evasive.conf):
DOSWhitelist 111.111.111.111 DOSWhitelist 222.222.222.222
Man kan använda wildcard för tre okteter av IP-adressen.
Finslipa inställningarna
Defaultinställningarna i evasive.conf kan ställa till det om du t.ex. använder roundcube, då det kan göras flera sidvisningar per sekund.
Det råder man bot på genom att ändra DOSPageCount till ett högre värde, t.ex. 20. DOSPageCount är alltså parametern för hur många sidvisningar (per IP) per sekund som tillåts.
DOSPageCount 20
DOSSiteCount är parametern för antalet sidvisningar per IP för hela webbplatsen i sekunder. Den kan man t.ex. ändra till 100.
DOSSiteCount 100