[Howto] Secure your Webserver

Ist /bin/sh ein Link auf bash?
Ja.

Natürlich kann man die Überprüfung einfach rauswerfen, allerdings schließt man ja dann die Augen vor dem eigentlichen Problem ;)
Zumal die mails ja auch an den normalen Benutzer geschickt werden und nicht an den root? Liegt das mit dem Abbruch zusammen?
 
allerdings schließt man ja dann die Augen vor dem eigentlichen Problem ;)
Nein, nicht wenn man das Script ließt und versteht.
Denn spätestens im nächsten Schritt "iptables" wird wieder auf root geprüft.
Auf der anderen Seite sollte die UID eigentlich ausgefüllt sein.
Was passiert denn wenn Du "echo $UID" eingibst? Was passiert wenn Du dies als Cronjob ausführen lässt?

Zumal die mails ja auch an den normalen Benutzer geschickt werden
Was auch immer Dein "normaler Benutzer" ist.
Wahrscheinlich der, der bei der Installation angelegt wird, weil es für eine Desktop-Installation zu gefährlich erachtet wird immer als root zu arbeiten. Daher wurde evtl. die root-Email-Adresse auf diesen User umgebogen.

huschi.
 
echo $UID gibt unter root 0 aus.

Mit normaler Nutzer meine ich den, der eben keine root Rechte hat. Ich habe keine Desktopumgebung installiert.
 
Last edited by a moderator:
Es gibt verschiedene Wege. Z.B. sudo oder das SUID-Bit.
Das SUID-Bit hat auf Skripte keinerlei Wirkung.

echo $UID gibt unter root 0 aus.
Schreibe in die zweite Zeile des Skripts (direkt nach der She-Bang) das Kommando `set -x` und lass dir die Ausgabe zuschicken (passiert vermutlich sowieso durch den crond). Darin siehst du dann, woran es genau hapert.
 
Hallo,

in meiner block.log steht auch:

Code:
The following ips are blocked: 
block did not work on ***.***.***
block did not work on ***.***.***
block did not work on ***.***.***

:(

Habe Ubuntu Ubuntu 8.04 auf dem System laufen. Kann mir jemand helfen?
 
Vserver oder Rootserver?

Bei Vservern kann es sei dass das Limit der geblockten IPs bereits erreicht wurde.

Ansonsten schau dir mal die:
/usr/local/bin/deny.sh
an.

Ersetze "iptables" durch den kompletten Pfad zu der iptables-binary. Du bekommst das raus durch:
Code:
which iptables
 
HiHo,

Ich habe gerade in einem anderen HowTo gelesen(url leider nicht gespeichert) das an mod-evasive folgendermassen konfigurieren soll.

Maximal 8 Aufrufe pro Sec(kein Mensch schafft das denke ich mal) dann die IP automatischen speeren und in der Whitelist alle IP`s der Suchmaschinen eintragen.

Hat das überhaupt einen Sinn oder ist das zu scharf eingestellt?
 
Hallo,

hab immernoch ein Problem:
Code:
block did not work on 69.225.246.190
block did not work on 211.48.12.196
block did not work on 64.14.3.226
block did not work on 202.63.118.18
block did not work on 63.228.215.2

Den Tipp von "djrick" habe ich befolgt, das hat auch kurze Zeit funktioniert.
 
Hallo!
Ein paar Fragen zu diesem Tut:


Nun muss man noch die Konfiguration vornehmen, dazu fügt man folgenden Code in die /etc/apache2/apache2.conf ein:

Code:
<IfModule mod_evasive.c>
#DOSHashTableSize gibt die Größe der Hashtabelle in Bytes an
DOSHashTableSize 3097

#DOSPageCount gibt die Anzahl der Seitenaufrufe eines Clients pro DOSPageInterval-Zeitintervall
DOSPageCount 100

#DOSSiteCount gibt die Anzahl der Seitenaufrufe auf einen Child-Prozess pro DOSSiteInterval-Zeitintervall
DOSSiteCount 100

#DOSPageIntervall und DOSSiteInterval werden in Sekunden angegeben
DOSPageInterval 15
DOSSiteInterval 15

#DOSBlockingPeriod gibt die Sperrzeit in Sekunden an
DOSBlockingPeriod 6000

#DOSEmailNotify gibts die eMail Adresse an, an welche eine Warnmail geschickt wird
DOSEmailNotify root@localhost

#DOSSystemCommand führt bei einem Angriff weitere Programme/Scripte aus wenn gewünscht
#DOSSystemCommand "su - someuser -c '/sbin/... %s ...'"

#DOSLogDir gibt das Verzeichnis an in dem das Modul seine Lock-Datei schreibt
#Achtung: der Ordner sollte nur f�r root erreichbar sein
DOSLogDir "/var/lock/mod_evasive"

#DOSWhitelist beinhaltet eine Aufzählung aller IP-Adressen für die mod_evasive NICHT gilt
#DOSWhitelist 127.0.0.1
</IfModule>

Durch die Kommentierung kann man leicht entnehmen welche Einstellungen bei dem jeweiligen Punkt vorgenommen werden müssen. Die richtigen Einstellungen müsst ihr für euer System selbst finden.

1. Wo genau muß man den Code einfügen, an welcher Stelle?
2. Kann man die Einstellungen so übernehmen, quasi als Standarteinstellungen?

3. Wenn man die ganzen kompletten Tut´s vom 1. Thread so integriert, ist dann die zusätzliche Absicherung über Auth-Key noch notwendig?
4. Wie kann man überprüfen ob alles funktioniert?

So das wars erstmal:D
 
1. Wo genau muß man den Code einfügen, an welcher Stelle?
In der apache2.conf. Am besten, der übersichthalber am Ende ;) steht allerdings alles im Satz über der Konfig :)
2. Kann man die Einstellungen so übernehmen, quasi als Standarteinstellungen?
Ist deine Entscheidung. Dafür hab ich extra die DEUTSCHE Kommentierung dringelassen.
3. Wenn man die ganzen kompletten Tut´s vom 1. Thread so integriert, ist dann die zusätzliche Absicherung über Auth-Key noch notwendig?
Sicherlich kannst du dein System immer noch erweitern oder nur Teile des Tutorials einsetzen. Eine Autorisierung über SSH Keys würde natürlich weitere Sicherheit bringen.
4. Wie kann man überprüfen ob alles funktioniert?
Geb 3 mal das falsche SSH PW ein und schau ob du noch auf deinen Server kommst. ;)
Schau in die Logs ob dort Fehlermeldungen auftreten. Schau dir die geblockten IPs an.
 
Geb 3 mal das falsche SSH PW ein und schau ob du noch auf deinen Server kommst. ;)
Schau in die Logs ob dort Fehlermeldungen auftreten. Schau dir die geblockten IPs an.

Habe nun mal getestet, z.B. mit PUTTY kann ich mehr als 3 Versuche unternehmen um mich anzumelden. Habe 6mal das Falsche PW angegeben und beim 7. Mal dann das Richtige und bin reingekommen...

Als ich jedoch dann PUTTY neu gestartet habe, hat es mich (IP) blockiert was dann auch in der "block.log" zu sehen war.

Ist das soweit i.O.?

Nochmal zum Privat-Key eine Frage, wäre es ausreichend nur diesen als Sicherung zu verwenden, oder ist es besser diesen zur Kombination mit diesen Tut´s zu verwenden?

THX, für die Antwort!
 
Nochmal zum Privat-Key eine Frage, wäre es ausreichend nur diesen als Sicherung zu verwenden, oder ist es besser diesen zur Kombination mit diesen Tut´s zu verwenden?

THX, für die Antwort!

Der Key sichert im Grunde nur den SSH Zugang ab wenn man die sshd_config anpasst!

Apache, Mailserver usw. sind da denke ich unwahrscheinlich komplexer
 
Ich habe mir auch gerade einmal das Tutorial angesehen - erstmal danke für die Mühe.

Allerdings muss ich folgendes hinterfragen: Wie gross wird denn die /etc/hosts.deny? Und wie lange bleiben die vorhandenen geblacklisteten IPs in der Liste?

Ich finde nämlich auf den ersten Blick nicht so optimal, dass via Cron alle n Minuten iptables geflusht, die /etc/hosts.deny komplett geparsed und alles wieder neu zusammengebaut wird.

Je nach Grösse der Datei ist der Rechner dann ja nur damit beschäftigt, die FW-Regeln aufzubauen. Kann hierzu jemand was sagen (IO-Load & Load)?
 
Hallo,

in meiner block.log steht auch:

Code:
The following ips are blocked: 
block did not work on ***.***.***
block did not work on ***.***.***
block did not work on ***.***.***


obwohl ich "iptables" in der deny.sh gegen den ganzen Pfad /bin/iptabels ersetzt habe...
Weiß hier jemand Rat?


Edit: Habe den Fehler bemerkt... der Pfad war falsch! Richtig: /sbin/iptables jetzt funzt es
 
Last edited by a moderator:
Hallo nochmal!;)

Hab da doch noch mal eine Frage...ich verstehe die folgenden Zeilen in der auth.log nicht ganz.:confused:

Code:
Sep 17 20:32:51 v3448 sshd[24532]: error writing /proc/self/oom_adj: Operation not permitted
Sep 17 20:33:11 v3448 sshd[24532]: Accepted password for root from ***.**.232.*** port 61087 ssh2
Sep 17 20:33:11 v3448 sshd[24532]: pam_env(sshd:setcred): Unable to open env file: /etc/default/locale: No such file or directory
Sep 17 20:33:11 v3448 sshd[24532]: pam_unix(sshd:session): session opened for user root by (uid=0)
Sep 17 20:33:11 v3448 sshd[27891]: pam_env(sshd:setcred): Unable to open env file: /etc/default/locale: No such file or directory

vorallem die Zeile mit error writing und Unable to open file sind mir unklar, was kann das bedeuten? Diese wiederholen sich alle 4 Minuten.

MfG

Edit: Doch noch ein Problem mit iptables, es erscheint wieder:
Code:
block did not work on ***.***.***
weiß jemand, wie man das dauerhaft einstellen kann? Hat nur kurzzeitig funktioniert
 
Last edited by a moderator:
Code:
Sep 17 20:33:11 v3448 sshd[24532]: Accepted password for root from ***.**.232.*** port 61087 ssh2
Hast du irgendwelche Dienste (überwachung, etc..) die mittels dieser IP auf deinen Server zugreifen? Wenn nicht würde ich sagen das da eine dritte hand im spiel ist ;)

Code:
Sep 17 20:32:51 v3448 sshd[24532]: error writing /proc/self/oom_adj: Operation not permitted
Schonmal nach dem file geschaut?
 
Muluske, ich glaube das Limit ist bei Dir erreicht. Frag mal beim Provider an. Meiner hat das Limit gleich ganz aufgehoben.
 
Back
Top