[Howto] Secure your Webserver

Ja, vServer
Code:
Version: 2.5
       uid  resource           held    maxheld    barrier      limit    failcnt
     2758:  kmemsize        5768425    5872319    8270282    9097310          0
            lockedpages           0          0         79         79          0
            privvmpages       33350      33485      76800      84480          0
            shmpages            910        926      25600      25600          0
            dummy                 0          0 2147483647 2147483647          0
            numproc              53         54        164        164          0
            physpages         19270      19356          0 2147483647          0
            vmguarpages           0          0      76800 2147483647          0
            oomguarpages      19270      19356      76800 2147483647          0
            numtcpsock           14         14        164        164          0
            numflock              7          8        262        288          0
            numpty                1          1         16         16          0
            numsiginfo            0          1        512        512          0
            tcpsndbuf        116272     107328    1137635    1809379          0
            tcprcvbuf        135356     135356    1137635    1809379          0
            othersockbuf     153584     163792     568817    1240561          0
            dgramrcvbuf           0       4284     568817     568817          0
            numothersock        103        111        164        164          0
            dcachesize       552520     562609    1209139    1245413          0
            numfile            1670       1729       3008       3008          0
            dummy                 0          0          0          0          0
            dummy                 0          0          0          0          0
            dummy                 0          0          0          0          0
            numiptent            35         35         35         35      12990
Code:
VPS Speichernutzung:
Momentan genutzt:       129.844 MB
Zugesichert:            300 MB
Maximal nutzbar:        330 MB
 
Schau dir mal:
numiptent
an. Du kannst maximal 35 iptables Regeln aufstellen, die bereits voll sind. Womit wir wieder bei den Limitierungen von Vservern wären :)
 
Was hast du denn für iptables-regeln?

Von deinem Kenntnisstand ausgehend kann ich mir nicht vorstellen, dass du 80 Regeln brauchst.

Warum tust du dir überhaupt nen vServer an?
 
Von deinem Kenntnisstand ausgehend kann ich mir nicht vorstellen, dass du 80 Regeln brauchst.
Doch weil alle die eine mod_security Regel matchen per iptables gebannt werden, das kann schonmal sehr schnell in die Höhe gehen, wenn man das nicht richtig konfiguriert.
 
Für jeden Ban ne eigene Regel?

"Auf Wiedersehen, Performance. Mach es gut, bis zum nächsten Start!"
 
Stimmt, mein Kenntnisstand im Bereich der Absicherung ist noch sehr gering, aber wir haben alle bei 0 angefangen.

Einen vServer habe ich, weil ich für den geringen Preis keinen Rechner bei mir zu Hause stehen haben will, und wenn alles schief geht, kann ich einen Reset machen und nochmals üben.

Auflistung der Iptables:

http://allytools.al.ohost.de/iptables.txt
 
Ich bin kein iptables-Profi, aber du hast keine einzige Regel die sich um deinen Server an sich kümmert, nur Regeln um Hosts auszusperren, und das auf unökonomisch Art?

Oder interpretiere ich deine Regeln falsch?
 
Wird das nicht effektiver über die hosts.deny geregelt?

Edit: Schwachsinn... nicht jede Applikation läuft über einen tcp wrapper... Iptables ist intelligenter!
 
Ich habe nicht eine dieser Regeln erstellt, die sind entweder auf den vServer vorinstalliert oder kommen durch diese Howto.

Aber das ist erst der Gipfel des Eisberges, ich möchte erst noch mod_security und mod_evasive installieren.
 
Befasse dich vielleicht erstmal mit iptables/netfilter bevor du einfach HowTos abtippst. Ich glaube nämlich, dass du dir viel verbaust wenn du das einfach so machst.

Du hast nen vServer und der unterliegt einfach vielen Einschränkungen mit denen man umgehen lernen muss.

mod_evasive etc kannst du vergessen wenn du deine Regeln nicht aufräumst.
 
Nette Sache das Ganze aber irgendwas stimmt nicht (schätze ich).

Ich habe nun in /var/log eine block.log aber in dieser steht nur

The following ips are blocked:
block did not work on xxx
block did not work on yyy
block did not work on zzz

So... "Why does block not work"?

Bin etwas ratlos :D
 
Root (Debin Etch). Und wie man IPTables benutzt, weiß ich auch ;) Bin nur nicht der Batch Profi um die Fehlerquelle lokalisieren zu können.
 
Hallo, ich bin gerade dabei, meinen ersten vServer in meiner VirtualBox aufzusetzen um in paar Wochen das ganze im Internet zu wagen.

Ich habe mir denyhosts auf Debian Lenny installiert und einen cronjob entpsrechend wie hier beim Root eingetragen.
Code:
vServer1:/home/chr# crontab -l
# m h  dom mon dow   command
*/5 * * * *     /usr/local/bin/denyiptables.sh
Allerdings bekomme ich nun immer die Mail (siehe unten) an meinen normalen User, dass das Script nicht ausgeführt wurde weil er ja eben keine root Rechte hat.
Meine Frage also: Wieso wird das Script nicht als root ausgeführt? Danke schonmal für eure Hilfe.



Message 1:
From root@vServer1.fuh.com Mon May 18 22:35:01 2009
X-Original-To: root
From: root@vServer1.fuh.com (Cron Daemon)
To: root@vServer1.fuh.com
Subject: Cron <root@vServer1> /usr/local/bin/denyiptables.sh
Content-Type: text/plain; charset=UTF-8
X-Cron-Env: <SHELL=/bin/sh>
X-Cron-Env: <HOME=/root>
X-Cron-Env: <PATH=/usr/bin:/bin>
X-Cron-Env: <LOGNAME=root>
Date: Mon, 18 May 2009 22:35:01 +0200 (CEST)

Must be root to run this script.
 
Hallo Fuh, willkommen an Board!

Wenn ein Script unbedingt root-Rechte braucht, solltest Du sie ihm auch geben.
Es gibt verschiedene Wege. Z.B. sudo oder das SUID-Bit.
Beide Möglichkeiten haben den Nachteil dass dann evtl. ein anderer ebenfalls das Script ausführen kann.
Daher wäre hier die geeignetere Version, den Cronjob direkt als root auszuführen.

huschi.
 
Hallo, danke für das herzliche Willkommen :)

Ich habe den cronjob als root mit crontab -e erstellt und er wird mir bei crontab -l auch angzeigt wie oben gepostet. Allerdings meckert das Script immer über fehlende Rootrechte.
Soll der Cronjob lieber in /etc/crontab eingetragen werden?
 
Achso, jetzt sehe ich erst wo er hängt.
Dann scheint im Cronjob die Variable $UID nicht gesetzt zu sein.
Dazu könntest Du das Script überarbeiten und diese Sicherheitsabfrage raus schmeißen.
Oder Du klärst warum es keine $UID gibt. Liegt es evtl. an der Shell? Ist /bin/sh ein Link auf bash?

huschi.
 
Back
Top