Iptables und GeoIp (xtables-addons) Linux

Hi @ All,

mir ist aufgefallen das ich überhaupt noch gar keine Anleitung für GeoIp unter Linux mit Plesk geschrieben habe …

Also erstmal kann man das Addon verwenden egal ob man Plesk benutzt oder nicht, da es keinerlei einfluss auf Plesk hat (solange man nicht die Russland blockt bzw. man muss bestimmte IP bereiche wieder freigeben damit die Updates funktionieren.).

So was kann GeoIp oder Xtables-addons:

Wie der name Addons schon sagt kann man mehrere Module von diesem Addon nutzen wobei ich nur das GeoIp Modul benutze und ich finde es ist auch das interessanteste, zumindest für mich.

Mit GeoIp hat man die Möglichkeit ohne tausende von Einträgen in Iptables ganze Länder, Anonymous Proxies und Satelliten Provider mit nur einem Eintrag zu blocken.

Und auch gleich mal eine Quellangabe, ich habe die Anleitung von Howtoforge.com genutz unter http://www.howtoforge.com/xtables-addons-on-centos-6-and-iptables-geoip-filtering

Dies ist natürlich nicht für Debian daher sind einige Punkte etwas anders als dort beschrieben.


Installation:

Als root anmelden!

Bevor es losgeht muss man eventuell noch einige Module nachinstallieren mit:

aptitude install gcc gcc-c++ make automake unzip zip xz kernel-devel-`uname -r` iptables-devel libtext-csv-perl
aptitude install linux-headers-$(uname -r)

man kann auch erstmal suchen nach den Modulen wenn ein “i” davor ist hat man es schon und muss es nicht mehr installieren mit:

aptitude search gcc gcc-c++ make automake unzip zip xz kernel-devel-`uname -r` iptables-devel libtext-csv-perl

So ich würde sagen danach dann erstmal in das Verzeichnis wechseln:

cd /usr/src/

Und wir laden uns dann das Modul erst einmal herunter.

http://sourceforge.net/projects/xtables-addons/files/Xtables-addons/

Hier findet Ihr dann die letzte Version vom xtables-addons, ein direktLink macht keinen sinn da es immer mal wieder ein Update gibt.

Bis Debian 7 geh keine Version über 1.4 (also alle die mit 2. Anfangen) aber Debian 8 kann man die Versionen 2.x nutzen.

leider muss man ein wenig testen da dies von der Kernelversion abhängig ist welche Version geht und welche nicht.

So jetzt entpackt man die heruntergeladene Datei mit

tar xvf xtables-addons-1.47.1.tar.xz

(Beispiel, kann sein das deine Datei neuer ist und hat damit eine andere Versionsnummer!)

Nach dem Entpacken kann man in den neuen Ordner gehen mit

cd  xtables-addons-1.47.1

Hier öffnet man erstmal die Datei mconfig mit einem Editor deiner Wahl, ich nutze wie immer Nano.

nano mconfig

In dieser Datei entfernen wir hinter jeder Zeile das “m” bis auf die Zeile “build_geoip=m” diese Zeile bleibt unverändert.

jetzt wird die konfiguration erstellt mit

./configure

Sollten dabei Fehler auftauchen bitte genau lesen entweder fehlt ein Paket oder die Version ist nicht mit deinem Kernel kompatibel und du musst eine andere version testen.

Und installiert mit

make && make install

Wenn das alles ohne Fehler durchgelaufen ist, was es sollte, dann könnt Ihr in den Ordner geoip wechseln mit cd /geoip

Hier findet man 2 Scripte das eine läd die Länder/IP Datenbank herunter und mit dem 2. Script wird diese vorbereitet.

Wir führen also folgendes aus

./xt_geoip_dl

Dies sollte man ca. 1 mal im Monat tun  um eine Aktuelle Datenbank zu haben.

Und nach dem der Download abgeschlossen ist den nächsten Befehl:

./xt_geoip_build GeoIPCountryWhois.csv

Dies sollte man ca. 1 mal im Monat tun  um eine Aktuelle Datenbank zu haben.

Jetzt muss noch der Order für die Dateien erstellt werden mit

mkdir -p /usr/share/xt_geoip/

Und fast schon am ende müssen die Dateien noch rüber kopiert werden

cp -r {BE,LE} /usr/share/xt_geoip/

Das muss man jedesmal machen wenn man die Datenbank aktualisiert hat, man kann sich auch ein Script schreiben und diesen dann via Cron einmal im Monat laufen lassen.

So da jetzt alles erledigt ist kann man geoip mit iptables zusammen nutzen und zwar mit folgendem befehl:

iptables -I INPUT -m geoip --src-cc Ländercode -j DROP

Bsp.:

iptables -I INPUT -m geoip --src-cc CN -j DROP

Für China

Eine Countrycode liste findet man bei Shorewall:

http://www.shorewall.net/ISO-3661.html#idp1291504


Noch eine Anmerkung!

Die Chain im Beispiel INPUT muss nicht genutzt werden!
Man kann die Regel in jeder Chain eintragen und mit Port oder Source sowie mit Destination angaben wie man das möchte.
Es sollte natürlich an einer stelle stehen an der es auch Sinn macht.

Ich schreibe auch die Tage noch mal einen kleinen einblick in meine neue iptables konfiguration geben und so zu sagen einen Advanced Iptables Artikel schreiben zum besseren verständnis wie man recht gut mit iptables arbeiten kann.

Link


Bei Fragen oder wenn irgend etwas nicht klappt bitte melden, ich versuche dann zu helfen.

Danke
Gruß

DocSchneidi ak Cheech

Tagged , , , , , , , , , , , , , , .Speichere in deinen Favoriten diesen permalink.

Schreibe einen Kommentar

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.