Mehr Sicherheit auch mit Plesk und Iptables (19.03.13)

Dieser Beitrag wurde 6167 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,

  1. Als erstes sollte man die Plesk Firewall Regeln eingestellt haben, dies ist dann unsere Standard Konfiguration.
  2. Wir müssen erfahren welche Kernelversion installiert ist:
    ~]# uname -r

     

  3. 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

     

  4. 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

     

  5. 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

     

  6. Nun installieren wir dieses Addon:
    ~]# tar xvf xtables-addons-1.47.1.tar.xz

     

  7. ~]# cd xtables-addons-1.47.1/

     

  8. ~]# ./configure

     

  9. ~]# make

     

  10. ~]# make install

     

  11. Wenn dies ohne Fehler durch gelaufen ist, können wir nun geoip nutzen. Damit erstellen wir die Länder Listen.
    ~]# cd geoip/

     

  12. Zum Downloaden der Liste
    ~]# ./xt_geoip_dl

     

  13. Zum erstellen der Liste:
    ~]# ./xt_geoip_build GeoIPCountryWhois.csv

     

  14. 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/

     
    CSV.pm_CSV_XS.rm_CSV_PP.pm

  15. 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({

     

  16. 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/

     

  17. 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

     

  18. 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

 

 

######################################################

 

One Comment

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.