Systeembeheer & Ondersteuning

Wat wij doen 



Storeitonline richt zich op het beheren en ondersteunen van IT servers, systemen en software in het  Midden en Klein Bedrijf.

 

Met een jarenlange IT achtergrond is storeitonline in staat om problemen te analyseren en op te lossen, of een oplossing aan te dragen.

 

Daarnaast kan storeitonline, met behulp van een aantal eigen diensten, uw servers en systemen beheren zodat u zich volledig kunt richten op uw eigen expertise en de IT zorg aan ons over laat. 


Wij denken graag met u mee bij uw IT vraagstukken. En samen zorgen we ervoor dat uw systemen in dienst van u werken en geen bron van ergernis worden.

 

 

Neem contact met ons op

DoS / DDoS bescherming in Apache via mod_evasive

Een DoS / DDoS aanval is een heel vervelende gebeurtenis. Het zijn aanvallen op websites en/of servers om deze onbruikbaar te maken voor de beoogde gebruiker. Met name websites zijn regelmatig doelwit van een DoS / DDoS aanval. Één van de manieren om een eenvoudige DoS / DDoS aanval af te kunnen slaan is door een goede monitoring van het inkomende verkeer. In Apache webservers bestaat de mogelijkheid om dat inkomende verkeer te controleren en te blokkeren in het geval het een potentiële DoS / DDoS aanval zou kunnen zijn.

Het gebruik van Apache module mod_evasive (voorheen bekend als mod_dosevasive) kan helpen om een Apache webserver te beschermen tegen DoS / DDoS aanvallen. De module mod_evasive houdt een tabel met IP adressen en URLs bij en blokkeert een IP adres indien een van de volgende situaties van toepassing is :

  • Binnen een seconde meerdere keren toegang vragen tot dezelfde pagina
  • Binnen een seconde meer dan 50 gelijktijdige verzoeken uitsturen
  • Een pagina bezoeken terwijl (tijdelijk) op de blokkeer lijst

Als één van bovenstaande condities van toepassing is, wordt er een 403 (Forbidden) antwoord terug gestuurd naar het IP adres, en het IP adres wordt geregistreerd. Eventueel kan een email bericht verstuurd worden naar de server eigenaar of het IP adres kan via server commando's volledig geblokkeerd worden.

Dit artikel gaat in op het installeren en configureren van de Apache module mod_evasive.

OPMERKING: alle voorbeelden zijn gebaseerd op een CentOS, maar kunnen, mogelijk met wat kleine aanpassingen, ook op andere distributies van toepassing zijn.

Installeer mod_evasive

Installeer de module via yum:

yum install mod_evasive

Mocht de module niet gevonden worden, dan heeft u waarschijnlijk nog geen EPEL (Extra Packages for Enterprise Linux) yum repository geïnstalleerd op uw server. Controleer dit als volgt:

# yum repolist | grep epel
* epel: mirror.bytemark.co.uk
epel Extra Packages for Enterprise Linux 6 - x86_64 11,780

(Output kan verschillen afhankelijk van uw versie)

Indien u inderdaad geen epel-release geïnstalleerd heeft staan, installeer deze dan eerst. (Zie ook de EPEL Wiki pagina)

Controleer als volgt of de module geïnstalleerd is:

# httpd -M | grep evasive
evasive20_module (shared)

Configureer mod_evasive

Met de installatie van mod_evasive alleen bent u er zeker nog niet. De configuratie ervan zal zeker goed plaats moeten vinden zodat u een DoS / DDoS aanval af weert, maar geen reguliere bezoekers abusievelijk toegang tot de website ontzegt !

Wees dus ook op de hoogte van het reguliere gebruik van uw website zodat u niet per ongeluk klanten mis loopt als gevolg van een te strakke instelling van mod_evasive.

De configuratie van mod_evasive vindt volledig plaats in het configuratie bestand /etc/httpd/conf.d/mod_evasive.conf. Alle hieronder vermelde wijzigingen kunnen dus in /etc/httpd/conf.d/mod_evasive.conf plaats vinden.

Een aantal standaard instellingen zijn zeker de moeite waard om te bekijken en naar behoefte aan te passen:

DOSEmailNotify

Verwijder het commentaar hekje voor DOSEmailNotify en vervang het email adres door uw eigen email adres.

DOSEmailNotify info@storeitonline.eu

DOSPageCount & DOSPageInterval

DOSPageCount is het aantal maal dat een bezoekend IP adres dezelfde pagina mag aanroepen binnen de DOSPageInterval. Zodra dit aantal overschreden wordt, zal het IP adres van de bezoeker aan de lijst met geblokkeerde adressen worden toegevoegd. De standaard waarde staat relatief laag op 2. Deze kan dus bijvoorbeeld naar 20 worden opgehoogd.

DOSPageCount 20
DOSPageInterval 1

DOSSiteCount & DOSSiteInterval

DOSSiteCount is het aantal maal dat een bezoekend IP adres dezelfde website mag aanroepen binnen de DOSSiteInterval. Zodra dit aantal overschreden wordt, zal het IP adres van de bezoeker aan de lijst met geblokkeerde adressen worden toegevoegd. Standaard staat deze op 50, maar deze zou makkelijk naar 100 opgehoogd mogen worden.

DOSSiteCount 100
DOSSiteInterval 1

DOSBlockingPeriod

Dit is de tijd (in seconden) dat een IP adres geblokkeerd zal worden indien deze aan de lijst van geblokkeerde adressen is toegevoegd. Gedurende deze periode zullen alle volgende verzoeken vanaf dat IP adres resulteren in een 403 (Forbidden) foutmelding. Daarnaast wordt de timer op dat moment ook gereset en begint de periode opnieuw !

Standaard staat deze waarde op 10 seconden, maar deze zou makkelijk verhoogd kunnen worden naar bijvoorbeeld 300 seconden (5 minuten)

DOSBlockingPeriod 10

DOSLogDir

De DOSLogDir verwijst naar de directory die gebruikt wordt door mod_evasive. Het is het aan te raden om hiervoor een directory te gebruiken die niet toegankelijk is voor andere gebruikers. Kies bijvoorbeeld /var/log/mod_evasive. Maak deze directory vooraf aan, en geef de gebruiker waaronder Apache gedraaid wordt toegang tot deze directory.

DOSLogDir "/var/log/mod_evasive"

DOSSystemCommand

Met de DOSSystemCommand parameter kunt u instellen wat u eventueel nog extra uitgevoerd zou willen hebben als een IP adres geblokkeerd wordt. Zo zou u bijvoorbeeld kunnen kiezen om een IP adres via de firewall van de server te blokkeren zodat de blokkade zo vroeg mogelijk op treedt. Houdt er dan wel rekening mee, dat als de DOSBlockingPeriod voorbij is, het betreffende IP adres nog steeds door de firewall geblokkeerd zal blijven.

DOSWhitelist

Indien u alle instellingen zo goed mogelijk gezet hebt, zou het nog altijd kunnen voorkomen dat bepaalde IP adressen die terecht veel gebruik maken van uw website geblokkeerd worden. Voor dergelijke gevallen kunt u deze IP adressen toevoegen aan de DOSWhitelist zodat deze adressen nooit (meer) geblokkeerd zullen worden. Eventuele wildcards zijn toegestaan in de laatste 3 octetten van het IP adres, en meerdere regels zijn ook toegestaan als volgt :

DOSWhitelist 127.0.0.1
DOSWhitelist 192.168.0.*
DOSWhitelist x.x.x.x
DOSWhitelist y.y.y.*

Herstart Apache

Om mod_evasive en/of wijzigingen in de configuratie ervan te activeren dient Apache herstart te worden :

# systemctl restart httpd.service

OPMERKINGEN:

  • Er zijn meldingen dat mod_evasive een conflict zou geven met de FrontPage Server extentie.
  • Om mod_evasive goed te kunnen laten functioneren is het aan te raden om een hoge waarde (maar niet oneindig) te kiezen voor MaxRequestsPerChild en KeepAlive aan te hebben staan met een redelijk lange KeepAliveTimeout in Apache.
  • mod_evasive zal zeker bijdragen tot het minder last hebben van de gevolgen van een DoS / DDoS aanval, maar het is mede afhankelijk van de server's bandbreedte en processor capaciteit om op een dergelijke aanval te kunnen reageren. Het is daarom een goed idee om deze module met een firewall te integreren voor maximale bescherming. Een echte, zware en gerichte DoS / DDoS aanval zal de site nog steeds offline weten te krijgen. Indien bescherming via mod_evasive niet afdoende blijkt zal gekeken moeten worden naar andere oplossingen, zoals een hardware gebaseerde aanpak.