Archive for mei, 2011

Voorbereidings checklist voor IPv6 testdag

zondag, mei 29th, 2011

Op 8 juni 2011 zullen verschillende websites een test van het IP versie6 protocol houden door er ondersteuning die dag voor te bieden.
Echter IP versie6 aanzetten heeft nogal wat voorbereiding nodig anders loopt een website risico gehackt of onbereikbaar te worden.
Dus hier presenteer ik voor server beheerder een controle lijst waar je rekening mee moet houden voordat je IPv6 op je webserver en/of internetdienst aanzet.
– Zorg voor een fatsoenlijke offline backup van de oude configuratie, dienst/website en database voordat je IPversie6 aanzet.
– Controleer dat de firewall voor IPv6 aanstaat en de juiste regels geconfigureerd zijn. In linux moet je dus naast iptables dus ook ip6tables configureren. Ubuntu gebruikers kunnen met UFW zowel ipv6 als ipv4 regels toevoegen.
– Zorg voor een AAAA record in je dns zone zodat je dienst bereikbaar is met ipv6.
– Blokkeer IPv6 adressen die niet in gebruik zijn om spoofing van IPv6 adressen enigszins te voorkomen.
Een lijst met IPv6 adressen die niet in gebruik zijn kun je hier vinden.
Plaats dit bijvoorbeeld in een .htaccess file met bij elke regel vooral deny from ervoor.
– Als je een tunnel gebruikt controller of de tunnel goede beschikbaarheid heeft en weinig latency toevoegd.
– Vertrouw niet meer op NAT en de NAT de firewall. Met ipv6 werkt NAT en met ipv6 tunnel werkt de NAT firewall niet meer.
– Test je configuratie eerst grondig voordat je het inzet. Als er tijd en middelen voor zijn, test eerst je webserver in een afgeschermde virtuele machine voordat je het uitrolt naar een live omgeving.
Ik zelf maak notefly.org en d9ping.nl op de IPv6 test dag beschikbaar maar ze zijn nu ook al via het speciale subdomein ipv6. ipv www. beschikbaar als test. IPv6 zal iets sneller moeten werken met video en audio doordat er minder overhead is maar een tunnel daarin tegen werkt weer langzamer en is geen goede langer termijn oplossing.

6 technische maatregelen tegen (D)DoS aanvallen

maandag, mei 16th, 2011

Denial of Serice aanvallen zijn frustrerend ze kunnen druk bezochte website onbereikbaar maken.
Zo moest ook zelfs Rabobank er het afgelopen jaar aan geloven. (bron)
En het afgelopen jaar is een DDoS aanval een soort vorm van digitaal protest geworden. In het verleden deden we vooral denial of service ontmoedigd door er flinke straffen erop te zetten.
Echter met een flinke toename van DDoS aanvallen is dit lastig te handhaven. Het vraagt om meer technische maatregelen.
Helaas is dat niet altijd mogelijk maar er zijn wel degelijk een aantal simpele technische maatregelen die een denial of service aanval op een webserver kunnen verminderen of tegengaan.
Dit zijn geen professionele oplossingen met hardware, maar voor een niet druk bezochte website op een thuisservertje werken deze maatregelen voldoende.

  1. Zet TCP SYN cookies aan.
    TCP syn cookies verkomen SYN flood aanvallen (OSI model, laag 4 DoS aanvallen)
  2. Limiteer het aantal connectie per IP adres naar je webserver.
    Onder linux system kan dit eenvoudig worden bereikt door de volgende regel aan iptables toe te voegen. 

    sudo iptables -A INPUT -p tcp --syn --dport 80 -d ! 192.168.0.0/24 -m connlimit --connlimit-above 41 -j DROP
    sudo iptables -A INPUT -p tcp --syn --dport 80 -d ! 192.168.0.0/24 -m connlimit --connlimit-above 40 -j REJECT --reject-with tcp-reset
    

    Hierbij zijn de ip adressen: 192.168.0.1 tot 192.168.0.255 een uitgezonderd van dit limiet. Dit is nodig om beveiligings scanners zoals de scanner hier besproken nog snel te kunnen laten werken.
    Echter heeft deze regel ook nadelen wanneer veel mensen hetzelfde ip adres delen door bijvoorbeeld via dezelfde proxy naar de webserver te surfen kunnen ze je website mogelijk niet goed bereiken door te weinig toegestane connecties. Verhoog de maximaal 40 simultane connecties per ip adres eventueel als dit probleem zich voordoet.

  3. Installeer mod_evasive op apache.
    De evasive module voor apache beschermt tegen snel refreshen van dezelfde pagina in weinig tijd en ook tegen het maken van zeer snel veel nieuwe connecties naar de webserver vanuit hetzelfde ip adres. Maar dat filteren we ook al met onze firewall regel bij tip1.
    Wanneer iemand je webpagina vaak in weinig tijd meerderen keer herlaadt zorgt mod_evasive ervoor dat een lege pagina verstuurt wordt zodat deze vorm van denial of service wordt tegen gegaan.

  4. Zet hostname lookups uit. Wanneer de webserver veel requests van verschillende ip adressen krijgt kan het voor elke ip adres een reverse hostname lookup gaan doen. Het gevolg is dat je webserver een DoS aanval naar de ingesteld DNS Server uitvoert. Dit staat bekent als ‘backchatter’ aanval.
    Je kunt dit voorkomen in apache door: HostNameLookups op off te zetten.
    Let er verder op dat je niet deny from en allow from met dns namen gebruikt anders doet apache nog steeds een hostname lookup ookal staat de instelling op off. 

  5. Installeer een web applicatie firewall (WAF) zoals mod_security.
    Mod_security kan ook beschermen tegen denial of sevice aanvallen door bepaalde request te blokkeren en eventueel ingestelde HTTP error tonen of opgebouwde connectie meteen te sluiten. (FIN pakket te versturen) 

  6. Sta requests van een ongeldige/niet op het internet uitgegeven ip adressen niet toe.
    Niet alle ip adressen op het internet worden gebruikt en sommige mogen niet op het internet gebruikt worden.
    Blokkeer deze adressen met je firewall voordat iemand met deze adressen gespoofd1 je webserver aanvalt. zie deze wiki.