Mrz 09

SSH Absichern für SUSE

[ Geschrieben von Daniel Alburg am 09.03.2008 um 17:11 Uhr ]

Als erstes mal die aktuelle Version suchen. Wir nehmen NICHT das rpm Packet sonder das tar.gz packet.

Wir benötigen zum installieren python

Befehl für Shell/Batch:
yast -i python python-devel

 

danach das ausgewählte Paket downloaden

Befehl für Shell/Batch:
wget http://ovh.dl.sourceforge.net/sourceforge/denyhosts/DenyHosts-2.6.tar.gz

 

entpacken das ganze und ins Verzeichnis wechseln

Befehl für Shell/Batch:
tar xzvf DenyHosts-2.6.tar.gz
cd DenyHosts-2.6/

 

und installieren

Befehl für Shell/Batch:
python setup.py install

 

da es nicht viel Installationstext ist, können wir das ruhig mal schnell überfliegen. Nicht das irgendwo ein ERROR auftaucht.

Es werden diverse default Scripts mit beigelegt. Diese müßen jetzt noch entsprechend umbenannt werden. Da wir das Installationsverzeichniss später wieder löschen wollen, kopieren wir diese Dateien gleich an die richtige stelle.

Befehl für Shell/Batch:
cp denyhosts.cfg-dist /usr/share/denyhosts/denyhosts.cfg
cp daemon-control-dist /usr/local/bin/daemon-control

 

Nun müßten diese Scripte noch entsprechend angepasst werden.

Befehl für Shell/Batch:
vi /usr/share/denyhosts/denyhosts.cfg

 

Das Script ist für Redhat oder Fedora geschrieben. Also gleich mal die erste nicht auskommentierte Zeile auskommentieren.
Bei Version 2.6 ist es Zeile 12 ( # SECURE_LOG = /var/log/secure)
Und dafür die Raute bei Zeile 18 rausnehmen ( SECURE_LOG = /var/log/messages )

In Zeile 108 finden wir
DENY_THRESHOLD_INVALID = 5 => das sind die Fehlversuche für Benutzern die es gar nicht gibt
Setzen wir den auf 1. Denn der Benutzername gibt es ja nicht.. warum 4 weitere Versuche zulassen

In Zeile 119 finden wir
DENY_THRESHOLD_VALID = 10 => das sind die Fehlversuche bei vorhanden Benutzern (kann bleiben)

In Zeile 129
DENY_THRESHOLD_ROOT = 1 => das ist der root. Da ich viel mit dem Root arbeite setze ich den für meinen Fall auf 3. Das müsst ihr aber selbst entscheiden.

In Zeile 500 finden wir dann den letzten wichtigen Eintrag. Wie lange soll diese IP Adresse geblockt werden.
Wir tragen hier ERSTMAL 1 Minute ein. Wenn wir das Blocken später getestet haben, könnt Ihr es selbst entscheiden, ob 5 min oder 5 Tag.
Hilfe findest du in den Zeilen 49 – 64
DAEMON_PURGE = 1m

Optimal
In Zeile 219 finden wir eine Einstellung, wo man seine Email Addy angeben kann. Man erhält bei Sperrung entsprechenden Staus.

Das wars schon. Mit [ESC] :wq beenden wir das ganze und gehen zum:

Befehl für Shell/Batch:
vi /usr/local/bin/daemon-control

Zeile 14 müßen wir bearbeiten:
ALT: DENYHOSTS_BIN = „/usr/bin/denyhosts.py“
NEU: DENYHOSTS_BIN = „/usr/local/bin/denyhosts.py“

Das wars schon. Mit [ESC] :wq beenden

Nun wollen wir ja sicherlich, dass diese Sicherheitseinstellung auch beim nächsten neustart automatisch mitstartet.

Befehl für Shell/Batch:
cd /etc/init.d
ln /usr/local/bin/daemon-control denyhosts
chkconfig -a denyhosts

 

Den Dienst selbst starten wir mit:

Befehl für Shell/Batch:
/etc/init.d/denyhosts start

 

Das ganze sollte bei Erfolg sich so melden
starting DenyHosts: /usr/bin/env python /usr/local/bin/denyhosts.py –daemon –config=/usr/share/denyhosts/denyhosts.cfg

Nun wollen wir das ganz noch schnell testen. Damit wir uns aber nicht selbstaussperren, öffnen wir eine 2te SSH Sitzung und geben dort entweder ein Namen ein, den es nicht gibt (sofortige Sperrung) oder 3 mal ein falsches root pass ein.
Klappt das, dann könnt Ihr euch nicht unmittelbar danach einwählen. Wartet eine Minute. Wenn Ihr eine Email Addy eingetragen habt, könnt Ihr die Zeit dazu nutzen um diese abzurufen. Denn dort müßte jetzt ein Mail sein, das ein User (ihr) gesperrt worden seit.
Wenn nach einer Minute die Passwortabfrage wieder sichtbar ist, habt ihr anscheint alles richtig gemacht. Denkt daran, die 1m in der config wieder hoch zu setzen. 1d (1Tag) wäre bei einem Server, wo nur Ihr zugriff habt, das mindeste. Hab Ihr Kunden, die auch per SSH zugreifen, sollte man den wert wohl runter stellen. Der Default von 1h sollte hier ausreichend sein. (Strafe muss ja schließlich sein :-> )
Nicht vergessen denyhost zu restarten

Hinweiss zum Shell/Batch Code:
/etc/init.d/denyhosts restart

 

Zitat:
vi /etc/hosts.deny

da liegen die geblockten IPs drin. Einfach rauslöschen. Die Änderung ist sofort wirksam (also ohne denyhost restart)

Allgemeiner Hinweiss:
Die runtergeladene Datei (DenyHosts-2.6.tar.gz) sowie der Ordner Denyhost könnte jetzt gelöscht werden = falls Ihr eurer System sauber halten wollt. Denn die Configurationsdatei haben wir ja bereits in andere Odrner geschoben.

 

Einen Kommentar schreiben