Spamschutz: per .htaccess IP-Ranges (Länder) aussperren

Recht effektiv kann der Spamschutz per htaccess durchgeführt werden. Denn die htaccess wird als erstes aufgerufen und bestimmt, wie auf den Server zugegriffen wird. In der htaccess Datei können einzelne IP-Adressen und ganze IP-Ranges (Kollektion/Reihe) ausgesperrt werden.
Dieser Artikel gehört zur Artikelserie AntiSpam - Maßnahmen zum Spamschutz

Welche IP Ranges machen denn Sinn? Bzw. welche Länder warum aussperren?

Sicherlich ist deine Seite für deutschsprachige Nutzer interessant, vielleicht bietest du deine Inhalte auch noch in anderen Sprachen an. Aber, all die anderen, die sicher eh nicht zum lesen kommen, können ausgesperrt werden. Denn aus vielen Ländern kommen Spambots und andere Spamscripte - verweigere diesen einfach per htaccess de Zugriff auf deine Webseite.

Beachte aber auch den einen großen Nachteil..

Beispielsweise Urlauber, welche aus einem per htaccess gesperrten Land auf deine Webseite zugreifen wollen, können dies nicht mehr.
Ich selbst nutze dies jedoch trotzdem, da die 100en Spamkommentare täglich mich einfach dazu bewegt haben, solche Schritte zu nutzen. In Kombination meines Spamfilters (Blacklist), funktioniert das ganz gut. Nur noch eine Hand voll Spam kommt durch (vll. unter 10%).

Und so schaut die .htaccess Datei aus, die im Root Verzeichnisses deiner Webseite liegt (wo auch die index-Datei lagert):

<IfDefine ReverseProxy>GeoIPEnable OnSetEnvIf GEOIP_COUNTRY_CODE CN BlockThisSetEnvIf GEOIP_COUNTRY_CODE LT BlockThisSetEnvIf GEOIP_COUNTRY_CODE LV BlockThisSetEnvIf GEOIP_COUNTRY_CODE UA BlockThisSetEnvIf GEOIP_COUNTRY_CODE MD BlockThisSetEnvIf GEOIP_COUNTRY_CODE SG BlockThisSetEnvIf GEOIP_COUNTRY_CODE TR BlockThisSetEnvIf GEOIP_COUNTRY_CODE MA BlockThisSetEnvIf GEOIP_COUNTRY_CODE DZ BlockThisSetEnvIf GEOIP_COUNTRY_CODE IL BlockThisSetEnvIf GEOIP_COUNTRY_CODE IN BlockThisSetEnvIf GEOIP_COUNTRY_CODE AP BlockThisSetEnvIf GEOIP_COUNTRY_CODE IN BlockThisSetEnvIf GEOIP_COUNTRY_CODE TW BlockThisSetEnvIf GEOIP_COUNTRY_CODE PH BlockThisSetEnvIf GEOIP_COUNTRY_CODE HK BlockThisSetEnvIf GEOIP_COUNTRY_CODE PK BlockThisSetEnvIf GEOIP_COUNTRY_CODE NG BlockThisSetEnvIf GEOIP_COUNTRY_CODE SK BlockThisSetEnvIf GEOIP_COUNTRY_CODE SI BlockThisSetEnvIf GEOIP_COUNTRY_CODE KR BlockThisSetEnvIf GEOIP_COUNTRY_CODE UA BlockThisSetEnvIf GEOIP_COUNTRY_CODE A1 BlockThisSetEnvIf GEOIP_COUNTRY_CODE TW BlockThisSetEnvIf GEOIP_COUNTRY_CODE AM BlockThisSetEnvIf GEOIP_COUNTRY_CODE AZ BlockThisSetEnvIf GEOIP_COUNTRY_CODE MA BlockThisSetEnvIf GEOIP_COUNTRY_CODE TH BlockThisSetEnvIf GEOIP_COUNTRY_CODE PL BlockThisSetEnvIf GEOIP_COUNTRY_CODE RO BlockThisSetEnvIf GEOIP_COUNTRY_CODE RU BlockThisDeny from env=BlockThis</IfDefine>


Wichtig ist GeoIPEnable On, damit die GEO Location angeschaltet wird. Nachdem "BlockThis", welches eine optionale Variable ist und beliebig benannt werden kann, die letzte Zeile:
Deny from env=BlockThis
Deny heißt sperren, das Gegenteil wäre allow für erlaubt (in unserem Fall wären dann nur die Länder in der htaccess stehen erlaubt, kann man auch machen).
Nach GEOIP_COUNTRY_CODE kommt der Ländercode. Siehe dazu mein Abkürzungsverzeichnis hier: ACHTUNG: FOLGT BEIM WEBMASTER-GLOSSAR UPDATE AM WOCHENENDE!!!

Optional kannst du noch folgendes hinzufügen:
SetEnvIfNoCase Referer darodar.com BlockThis
Bekannt ist darodar von den "unbekannten" Zugriffen. Lies dazu meinen Artikel über den darodar Referer.

Und was sind deine Antispam Möglichkeiten? Welche Maßnahmen findest du am effektivsten?