Brutefore-Attacken stoppen mit "DenyHosts"

Aus wiki.shutdown-system.de
Wechseln zu: Navigation, Suche

Ich will hier mal eines meiner Lieblingstools vorstellen, "DenyHosts".

Kennt Ihr das Problem? 100te Botnetze versuchen deinen Server per Bruteforceattacke über ssh in Ihren Griff zu bekommen? Dem kann Abhilfe verschaffen werden.

Viele wissen gar nicht, wie oft Ihr Server mit Bruteforceattacken bombardiert wird. Ihr könnt es auch eigentlich selber überprüfen.

(z.B. Debian) Macht mal ein:

 srv1:~# zgrep -i "FAIL" /var/log/auth.log* | wc -l


Die Zahl die Ihr bekommt, zeigt einfach mal nur an, wie oft euer Server insgesammt attackiert wurde.

Das ganze könnt Ihr auch mitloggen:

 srv1:~# tail -f /var/log/auth.log | grep -i "FAIL" >> attacken.txt


Einfach mal eine Weile laufen lassen (eine Woche vieleicht?!?!?!) und Ihr werdet sehen, dass zeitweise ganz schöne Angriffe gestartet wurden ;)

Dem kann man natürlich Abhilfe verschaffen indem man einfach ein sehr gutes Passwort wählt. Aber es gibt auch noch andere Möglichkeiten:

1. Nur bestimmten User Zugriff per ssh erlauben (im Idealfall nicht root):

Das macht Ihr am besten in der /etc/ssh/sshd_config und tragt dann z.B. folg. einfach unten mit ein:

 AllowUsers user1 user2


Und schon können Sich nur noch User1 und User2 einloggen :)

2. Aber es geht auch noch viel einfacher: mit denyhosts.

Dieses Beispiel bezieht sich jetzt nur auf Debian. Installiert ist es einfach :) :

 srv1:~# apt-get install denyhosts

Nach der installation findet man ein Config-File hier:

 srv1:~# vi /etc/denyhosts.conf

Schaut es euch mal an :) Eigentlich sehr einfach erklärt ;)

Nur werden automatisch die IP's geblockt, von denen Bruteforceattacken gestartet wurden.

Die IP's werden in die /etc/hosts.deny eingetragen. Da könnt Ihr auch selber IP's eintragen wenn Ihr das wollt :)

Aber eigentlich sollte man liebe sowieso gleich lieber auf nummer sicher gehen und nur bestimmte User per SSH Zugang erlauben und auf keinen Fall dem User "root".

Wie realisiert man das?

So:

In der Datei /etc/ssh/sshd_config z.B. folg Eintrag verwenden:

 AllowUsers <User1> <User2>

Wobei <User1> und <User2> natürlich Usernamen vom System sein müssen :)

Damit könnt Ihr festlegen, dass sich nur noch die beiden User per SSH auf dem System einloggen können.

Ich hoffe auf Fragen und Anregungen :)

Aufgrund neuer Erkenntnisse, werde ich den Artike noch weiter ausbauen sobald ich die gelegenheit dazu habe :)


Meine Werkzeuge