Mehr Sicherheit auch mit Plesk und Iptables (19.03.13)
Dieser Beitrag wurde 6536 mal angezeigt.
In letzter Zeit fällt einem immer mehr auf, das die Server, bzw. Webseiten die man erstellt, immer öfters Angriffen ausgesetzt sind.
In diesem Zuge habe ich mal ein kleines Tutorium zusammen geschrieben, wie ihr eure Server „etwas Sicherer“ machen könnt.
Ich beschreibe das man anhand von Linux, centOS 6 mit Plesk.
Hier gibt es ja in Plesk bereits eine Firewall, diese hat aber etwas nicht, was so ein Server benötigt.
Eine Konfiguration um auch Länder zu sperren.
Der „kleine“ Nachteile an dieser Methode, man braucht etwas Kenntnis über die Shell von Linux, einen SSH Zugang.
Wenn man die Firewall Einstellung in Plesk ändert muss man die Regeln erneut hinzufügen.
Wenn es eine neue Kernel Version gibt, muss man den ganzen Vorgang wiederholen, damit Iptables die Regeln wieder erkennt.
Aber lange genug geschrieben, fangen wir an:
######################################################
## Firewall Regeln einspielen,
- Als erstes sollte man die Plesk Firewall Regeln eingestellt haben, dies ist dann unsere Standard Konfiguration.
- Wir müssen erfahren welche Kernelversion installiert ist:
~]# uname -r
- Alle wichtigen Module installieren:
~]# yum install gcc gcc-c++ make automake unzip zip xz kernel-devel-`uname -r` iptables-devel perl-Text-CSV_XS geoip
- Falls keine kernel-devel gefunden wurde, müsst ihr das Internet etwas durchforsten. Sucht dann einfach nach „kernel-devel-‚uname -r'“ also eurer Kernelversion
Wenn ihr diese gefunden habt, installiert diese:~]# rpm -Uvh kernel-devel-2.6.32-220.2.1.el6.x86_64.rpm
- Nun benötigt ihr „xtables-addon“ im Beispiel benutze ich die Version 1.47.1, da Plesk 11 ebenfalls zur Zeit für Iptables die Version 1.47 verwendet. Falls ihr eine Aktuelle Version nutzt, schaut bitte auf http://sourceforge.net/projects/xtables-addons/files/Xtables-addons/
~]# wget http://sourceforge.net/projects/xtables-addons/files/Xtables-addons/1.47/xtables-addons-1.47.1.tar.xz/download
- Nun installieren wir dieses Addon:
~]# tar xvf xtables-addons-1.47.1.tar.xz
-
~]# cd xtables-addons-1.47.1/
-
~]# ./configure
-
~]# make
-
~]# make install
- Wenn dies ohne Fehler durch gelaufen ist, können wir nun geoip nutzen. Damit erstellen wir die Länder Listen.
~]# cd geoip/
- Zum Downloaden der Liste
~]# ./xt_geoip_dl
- Zum erstellen der Liste:
~]# ./xt_geoip_build GeoIPCountryWhois.csv
- Wenn dieser Schritt fehlschlägt, haben wir ein Problem, dieses können wir allerdings lösen:
upload CSV.pm CSV_XS.rm CSV_PP.pm nach /usr/lib64/perl5/Text/
- Und wir versuchen Schritt 13 erneut. Wenn es nun zu einem Fehler kommt, das er etwas mit _XS nicht gefunden hat müssen wir die Datei „xt_geoip_build“ editieren und dort aus CSV_XS, CSV machen.
Zeile 11: my $csv = Text::CSV_XS->new({Zeile 11: my $csv = Text::CSV->new({
- Und erneut :
~]# ./xt_geoip_build GeoIPCountryWhois.csv
Nun wird unsere Liste erstellt und wir können diese verschieben damit sie benutzt werden kann:~]# mkdir -p /usr/share/xt_geoip/ ~]# 'cp' -fr {BE,LE} /usr/share/xt_geoip/
- Fertig, nun können wir unsere Regeln hinzufügen. Dazu hier einmal eine Liste von Ländern von denen die meisten Angriffe ausgehen:
~]# 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
- Und zum Überprüfen der Liste:
~]# iptables -L
Wenn ihr noch mehr oder andere Länder hinzufügen wollt benötigt ihr die ISOs der Länder. zb. CN für China. Diese könnt ihr auf einer Wiki Seite finden.
Viel Spass dabei euer System etwas sicherer zu machen.
Wenn ihr eure Plesk Firewall Regeln erneuert müsst ihr die Regeln aus 17 erneut ausführen. Überprüft aber mit iptables -L ob eure Regeln wirklich weg sind. Nicht das ihr euch doppelte Regeln ladet.
Und hier das ganze in der Kurzfassung zum kopieren in eine TXT zum lokalen speichern:
######################################################
## Firewall Regeln einspielen,
erst Plesk Firewall Regeln eingestellt hat
uname -r yum install gcc gcc-c++ make automake unzip zip xz kernel-devel-`uname -r` iptables-devel perl-Text-CSV_XS geoip rpm -Uvh kernel-devel-2.6.32-220.2.1.el6.x86_64.rpm 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 cd xtables-addons-1.47.1/ ./configure make make install cd geoip/ ./xt_geoip_dl upload CSV.pm CSV_XS.rm CSV_PP.pm to /usr/lib64/perl5/Text/ edit xt_geoip_build remove _XS ./xt_geoip_build GeoIPCountryWhois.csv mkdir -p /usr/share/xt_geoip/ 'cp' -fr {BE,LE} /usr/share/xt_geoip/ 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 -L
######################################################
Nette Idee! Auch wenn ich die iptables-Konfiguration jedesmal aufs Neue hasse… Werd’s mal probieren…