Mod_spamhaus is een apache module welke DNSBL gebruikt om spam relay via web formulieren te blokkeren, URL injecties te voorkomen, http DDOS aanvallen te blokkeren en je webservices algemene bescherming te bieden door toegang te verbieden van bekende slechte IP adressen.
Onderstaande is uitgevoerd op een Centos systeem (6.7), met httpd versie 2.2.
Afhankelijkheden mod_spamhaus
mod_spamhaus is een module die niet standaard mee geleverd wordt, en welke gecompileerd dient te worden. Derhalve zijn er een aantal zaken welke op het systeem aanwezig dienen te zijn om de mod_spamhaus module te kunnen installeren.
Allereerst dient apxs(2) aanwezig te zijn. Dit wordt op Centos geleverd door de development software van httpd te installeren.
Controleer of deze geïnstalleerd is :
# rpm -qa | grep httpd-devel
Indien niet, dan kunt u deze installeren via yum :
# yum install httpd-devel
Daarnaast dienen make en gcc op het systeem aanwezig te zijn :
Controleer of deze geïnstalleerd zijn :
# rpm -qa | egrep "make|gcc"
Indien niet, dan kunt u deze installeren via yum :
# yum install make gcc
Installeren mod_spamhaus
Download de laatst beschikbare versie van mod_spamhaus via http://sourceforge.net/projects/mod-spamhaus/files/?source=navbar
Pak de software uit en start make :
# gunzip mod-spamhaus-0.7.tar.gz
# tar -xf mod-spamhaus-0.7.tar
# cd mod-spamhaus
# make
Indien hier een foutmelding verschijnt over apxs2 zoals :
apxs2 -Wc, -Wc,-DDST_CLASS=3 -c src/mod_spamhaus.c
make: apxs2: Command not found
make: *** [src/.libs/mod_spamhaus.so] Error 127
Pas dan de Makefile aan door APXS=apxs2 te vervangen door APXS=apxs en start make opnieuw
# make
Er kunnen nu enkele waarschuwingen op het scherm verschijnen, maar deze kunnen genegeerd worden. Het commando moet in ieder geval eindigen met :
...
write "make install" to install module
#
Voer nu make install uit :
# make install
De output zal vermelden waar de mod_spamhaus module geïnstalleerd is. Normaliter in /usr/lib64/httpd/modules
Controleer of de mod_spamhaus module is toegevoegd aan het configuratie bestand van de webserver (normaliter /etc/httpd/conf/httpd.conf).
Open het configuratie bestand van de webserver en zoek naar de regel met LoadModule spamhaus_module
Indien deze niet aanwezig is, ga dan naar de sectie waar alle LoadModule regels zich bevinden en voeg de volgende regel toe:
LoadModule spamhaus_module /usr/lib64/httpd/modules/mod_spamhaus.so
(NOTE: mocht uw mod_spamhaus module ergens anders geïnstalleerd zijn, zorg dan dat het juiste pad gebruikt wordt)
Maar met het toevoegen van het LoadModule statement zijn we er nog niet. De mod_spamhaus module dient ook nog geconfigureerd te worden. Dit dient ook plaats te vinden in het configuratie bestand van de webserver.
Zoek hiervoor naar de plek waar de IfModule statements staan, en voeg onderstaande toe :
...
<IfModule mod_spamhaus.c>
MS_METHODS POST,PUT,OPTIONS,CONNECT
MS_WhiteList /etc/spamhaus.wl
MS_CacheSize 256
</IfModule>
...
De volgende configuratie items zijn te gebruiken :
MS_Methods – In het geval de bezoeker een van deze methodes gebruikt, dan zal de mod_spamhaus module het ip adres van de bezoeker verifiëren.
MS_WhiteList – Een bestand waaraan ip adressen kunnen worden toegevoegd die niet gecontroleerd hoeven worden
MS_DNS – de te gebruiken “DNSBL”. Te gebruiken als je een lokale blakclist wilt gebruiken
MS_CacheSize – Aantal adressen die in cache opgenomen worden.
Om de mod_spamhaus module te activeren dient nu de webserver herstart te worden:
# service httpd restart
Controleer of de mod_spamhaus module ook daadwerkelijk geladen is :
# httpd -M | grep spamhaus
spamhaus_module (shared)
Syntax OK
#