GEOIP Blocker / Allower für Dolphin CMS

Dieser Beitrag wurde 20555 mal angezeigt.

GeoIP_Blocking_LogoHy Leute,

heute möchte ich euch mal mein neues Modul für das CMS Dolphin vorstellen.

Der Name sagt es schon, mit dem Modul ist es möglich ganze Länder zu blockieren oder zu erlauben.

Dazu mache ich mir GEOIP zu nutze.  Das ist eine Datenbank mit IPs und der entsprechenden Zuweisung zu den Ländern.
Diese kann man in einer abgespeckten Version frei nutzen : https://www.maxmind.com/de/geolocation_landing

Um das Modul auf meinen Server zu nutzen habe ich es als Server Modul installiert. Das heißt, das ich es auch Server weit nutzen kann.
Insbesondere z.b. für IPTables. Damit kommt der Gast eines blockierten Landes erst garnicht mit dem Apache Server (Webserver) in Verbindung und wird schon vorher abgeblockt. Trotzdem ist es mit dieser Datenbank auch möglich seine htaccess zu füttern, so das der Apache schliesslich den Gast aus siebt und keine Infos raus gibt.Screenshot_01

Ich habe das Modul aktuell auf Smileandgo.de laufen. Und blockiere dort Länder wie, China, Russland, Japan. Warum? Da liegt nicht meine Zielgruppe. Davon interessiert sich eh keiner für die Seite. Da diese über regionale Events in Deutschland ist. Von daher kann aus diesen Ländern nichts gutes kommen. Und so unterdrückt man auch gleich Hack versuche. Das Modul ist so gestaltet, das dieses aus dem Backend der Seite, die htaccess File so ändern kann, das diese von jetzt auf gleich weitere Länder blockieren oder erlauben kann. Sprich es ist nicht mehr nötig manuell die File zu öffnen und die Information per Hand einzutragen. Zudem hat nicht jeder das Wissen wie man Länder blockiert. Daher diese vereinfachte Lösung dazu.

Wer das Modul erwerben möchte, kann dies gerne auf Boonex.com machen. Feedback ist ebenfalls erwünscht. Da es noch andere Möglichkeiten gibt GEOIP einzubinden z.b. mit mod_geoip. Und dies möchte ich ebenfalls gerne in mein Modul so einbauen, das dieses auf mehreren System funktioniert. Eine andere Version ist von mir bereits geplant. Allerdings ist dafür eine Schnittstelle zu meinem Server nötig. Da ich dann auf meinem Server die GEO Daten ermittele und dann zurück an den Modul Nutzer schicke. Damit dieser dann entsprechend seiner Restriktionen handeln kann.

 

Wer GEOIP auch gerne auf seinem CentOS Server installieren möchte findet hier nun eine Anleitung wie man diese installiert:

Step 1:

Es muss eine Möglichkeit bestehen sich als Root User auf dem Server zu bewegen, sonst könnt ihr hier gleich abbrechen.

Als erstes müssen wir wissen welches Betriebssystem installiert ist.

uname -r

Da wir nun das Betriebsystem wissen, können wir alle benötigen Module nachladen:

yum install gcc gcc-c++ make automake unzip zip xz kernel-devel-`uname -r` iptables-devel perl-Text-CSV_XS geoi

Wenn wir hier das devel Kernel Modul nicht bekommen, müssen wir ihr euch dies bei Google suchen. Im Regelfall nicht, wenn doch könnt ihr es auf euren Server laden und mit

rpm -Uvh kernel-devel-2.6.32-220.2.1.el6.x86_64.rpm

installieren. Achtet auf die richtige Kernel Version.

Wenn ihr dies erfolgreich installiert habt, geht es weiter.Screenshot_02

Step 2:

Nun laden wir uns ein entsprechendes Modul für iptables her runter, was uns hilft unsere GEOIP Datenbank zu erstellen und zu nutzen:

cd /opt/
wget http://sourceforge.net/projects/xtables-addons/files/Xtables-addons/1.47/xtables-addons-1.47.1.tar.xz/download
tar xvf xtables-addons-1.47.1.tar.xz

Nachdem wir es entpackt haben, können wir es installieren:

cd xtables-addons-1.47.1/
./configure
make
make install
cd geoip/
./xt_geoip_dl

Falls ihr nun Probleme bekommt, kopiert die folgenden 2 Dateien in das Verzeichnis /usr/lib64/perl5/Text/

CSV.pm_CSV_XS.rm_CSV_PP.pm

Nun können wir unsere Tabelle erstellen:Screenshot_03

./xt_geoip_build GeoIPCountryWhois.csv

Sollte dieser Befehl nicht funktionieren, müssen wir unsere Datei etwas anpassen. Dazu öffnet mit Nano oder einem Editor die Datei  xt_geoip_build .

Sucht nach „_XS“ und entfernt dieses.

Anschließend den Vorgang wiederholen.  Nun sollte die Tabellen erstellt werden.

Wenn der Vorgang abgeschlossen ist, kopiert ihr diese Datei einfach ins working Verzeichnis.

mkdir -p /usr/share/xt_geoip/
'cp' -fr {BE,LE} /usr/share/xt_geoip/

 Step 3:

Fertig. Nun könnt ihr GEOIP auf dem Server nutzen.

Für iptables sieht das dann z.b. so aus:

iptables -I INPUT -m geoip --src-cc CN -j DROP
iptables -I INPUT -m geoip --src-cc TW -j DROP
iptables -I INPUT -m geoip --src-cc JP -j DROP
iptables -I INPUT -m geoip --src-cc RU -j DROP
iptables -I INPUT -m geoip --src-cc CZ -j DROP
iptables -I INPUT -m geoip --src-cc PK -j DROP
iptables -I INPUT -m geoip --src-cc IR -j DROP
iptables -I INPUT -m geoip --src-cc IQ -j DROP
iptables -I INPUT -m geoip --src-cc HK -j DROP
iptables -I INPUT -m geoip --src-cc RO -j DROP
iptables -I INPUT -m geoip --src-cc HU -j DROP
iptables -I INPUT -m geoip --src-cc UA -j DROP
iptables -I INPUT -m geoip --src-cc UZ -j DROP
iptables -I INPUT -m geoip --src-cc NE -j DROP
iptables -I INPUT -m geoip --src-cc NG -j DROP
iptables -I INPUT -m geoip --src-cc EG -j DROP
iptables -I INPUT -m geoip --src-cc IN -j DROP
iptables -I INPUT -m geoip --src-cc LY -j DROP
iptables -I INPUT -m geoip --src-cc LB -j DROP
iptables -I INPUT -m geoip --src-cc LR -j DROP
iptables -I INPUT -m geoip --src-cc TR -j DROP

iptables -L

service iptables save
service iptables restart

Viel Spaß beim blockieren oder erlauben 😉

 

Falls euch dieser Beitrag gefallen hat, würde ich mich über ein kleines Trinkgeld per Bitcoin-Mining oder direkt an die Senden-Wallet freuen ;)
Falls du noch einen PiMiner für deine Mining Hardware benötigst, schreibe mich einfach an, ich kann dir gerne was zusammen basteln ;)

BTC: 1LvETe6uTP64hK3UR3oSAdzT5ZjLnttqBm
DEM: NWtFftChrx28mvYgqfopmDejxoHiZmAK7u
– BTC/Mining –
Pool: stratum.mining.eligius.st:3334
User: 122aH1XgqetWJyfrdNcxd3kJY7DNaSrvMK_Spende
Pass: egalo

Add a Comment

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.