ubuntuusers.de

Absicherung SSH

Status: Ungelöst | Ubuntu-Version: Ubuntu 10.10 (Maverick Meerkat)
Antworten |

Thor2605

Anmeldungsdatum:
28. September 2009

Beiträge: Zähle...

Hallo,

Ich weiß dieses Thema gab es schon oft, aber ich hab hier noch eine kleine Frage:

Man kann ja leider nicht direkt den Public-Key blocken, wenn eine bestimmte Anzahl an falschen Passwörtern für den Private-Key eingegeben wurde.

Daher stellt sich mir die Frage, ob es dann nicht besser ist per PAM den Benutzer für SSH einfach zu sperren und dem Private-Key gar kein Passwort mehr zu geben?

Oder welche Vorteile bietet die AES-Verschlüsselung des Private-Keys gegenüber dem normalen Benutzer-Passwort von Linux?

Vorteil vom "Linux"-Passwort wäre, dass ich das generell für alle Keys auf einen Schlag alle 4 Wochen ändern kann...

Danke!

PS: Bitte keine Port-Knocking-Diskussion...

Roger_Wilco

Anmeldungsdatum:
11. August 2010

Beiträge: 224

Thor2605 schrieb:

Man kann ja leider nicht direkt den Public-Key blocken, wenn eine bestimmte Anzahl an falschen Passwörtern für den Private-Key eingegeben wurde.

Richtig, denn der sshd bekommt von der Passworteingabe nichts mit, da diese den Private Key lokal entschlüsselt und dann erst an den SSH-Server schickt.

Thor2605 schrieb:

Daher stellt sich mir die Frage, ob es dann nicht besser ist per PAM den Benutzer für SSH einfach zu sperren und dem Private-Key gar kein Passwort mehr zu geben?

Wenn der Benutzer kein SSH mehr benutzen kann, was willst du überhaupt noch mit dem SSH-Private Key?

Wenn du Benutzer den Zugang via SSH verbieten willst, geht das übrigens einfacher mit AllowUsers/DenyUsers bzw. AllowGroups/DenyGroups in der sshd_config.

Thor2605 schrieb:

Oder welche Vorteile bietet die AES-Verschlüsselung des Private-Keys gegenüber dem normalen Benutzer-Passwort von Linux?

Der Private Key ist wesentlich länger, als jedes sinnvoll einzusetzende Passwort, und erschwert dadurch Bruteforce-Angriffe auf den entsprechenden Zugang.

Zusätzlich hast du eine Art Zwei-Faktor-Authentifizierung: Du musst die Passphrase des Private Keys kennen und du musst im Besitz der Datei sein, die den Private Key enthält. Das setzt natürlich voraus, dass der Private Key überhaupt mit einer Passphrase geschützt wurde.

Thor2605 schrieb:

Vorteil vom "Linux"-Passwort wäre, dass ich das generell für alle Keys auf einen Schlag alle 4 Wochen ändern kann...

SSH-Schlüsseldateien kannst du ebenfalls mit einem Gültigkeitszeitraum versehen, siehe ssh-keygen(1), und die authorized_keys Dateien kannst du mit einem simplen Skript oder einem Configuration Management wie Puppet verwalten.

Thor2605

(Themenstarter)

Anmeldungsdatum:
28. September 2009

Beiträge: 27

Erst mal vielen Dank für deine ausführliche Antwort!

Allerdings glaube ich, ich hab nicht klar geschrieben was ich eigentlich will 😉

Ich würde gern auch von außerhalb (für Supports) auf meinen Server zugreifen, daher habe ich den SSH-Port in meinem Router freigegeben. Einen Key habe ich bei mir im Geschäft und einen auf meinem USB-Stick (jedes mal andere). Wenn mir jetzt jemand den Key auf irgend eine Art und Weise entwendet hätte er, nachdem er den richtigen Benutzernamen rausgefunden hat (was nicht wirklich schwer ist) jede Zeit der Welt das Passwort für den Key zu knacken (hier ist doch Brutforce möglich?)...

Wenn ich jetzt den Key nicht mehr über ein Passwort sichere sondern statt dessen ein Passwort für den Benutzernamen verlange (also über PAM) kann ich über einen Block von 5 Minuten bei 3 falschen Eingaben das Brutforcen unterbinden und ich bekomme das dann auch mit, um Key zu ändern und Benutzername und Passwort zu wechseln.

Allerdings würde ich gern wissen, inwiefern die PAM-Anmeldung (Benutzername → Passwort → Key ohne Passwort) gleich sicher ist wie ohne PAM mit Passphrase (Benutzername → Key → Passphrase)? Dort hätte ich ja eindeutig den Vorteil, dass ich mitbekomme wenn jemand versucht bei mir ein Passwort zu knacken?!?

Für mich als Laie macht es keinen Unterschied ob ich einen Key mit 8-10 stelligem Passwort versehe oder dies bei der Standardanmeldung bereits verlange! Einen Key mit 4096-Bits herauszufinen ist so gut wie unmöglich und ob der dann mit Passwort geschützt ist oder nicht ändert ja eh nichts mehr, wenn es doch jemand schaffen sollte den zu knacken?

Roger_Wilco

Anmeldungsdatum:
11. August 2010

Beiträge: 224

Thor2605 schrieb:

Wenn mir jetzt jemand den Key auf irgend eine Art und Weise entwendet hätte er, nachdem er den richtigen Benutzernamen rausgefunden hat (was nicht wirklich schwer ist) jede Zeit der Welt das Passwort für den Key zu knacken (hier ist doch Brutforce möglich?)...

Das gleiche gilt für reine Passwortauthentifizierung, wobei bei dieser nicht mal eine Datei entwendet werden muss. Der Datei siehst du nicht an, zu welchem Zugang oder Server sie gehört, wenn es nicht gerade im Kommentar steht oder der Dateiname entsprechend lautet.

Das Zauberwort heißt Login-Audit. Du musst natürlich ab und zu einen Blick in deine Logs werfen, wer sich von wo aus auf deinem System eingeloggt hat. Der sshd schreibt das immer brav ins Syslog.

Es ist übrigens mit hinreichend langer Passphrase nicht gerade trivial, eine Schlüsseldatei zu knacken und Bruteforce ergibt wegen der Rechenzeit nur bei relativ kurzen Passwörtern Sinn.

Thor2605 schrieb:

Für mich als Laie macht es keinen Unterschied ob ich einen Key mit 8-10 stelligem Passwort versehe oder dies bei der Standardanmeldung bereits verlange!

Für dich nicht, für den Rechner schon.

Thor2605 schrieb:

Einen Key mit 4096-Bits herauszufinen ist so gut wie unmöglich und ob der dann mit Passwort geschützt ist oder nicht ändert ja eh nichts mehr, wenn es doch jemand schaffen sollte den zu knacken?

Ah ja, und aus dem gleichen Grund lässt du grundsätzlich deine Türen und Fenster daheim sowie dein Auto (falls vorhanden) offen, weil es ja keinen Unterschied macht, wenn mal jemand die Tür geknackt hat…

jug Team-Icon

Ehemalige
Avatar von jug

Anmeldungsdatum:
19. März 2007

Beiträge: 12335

Wohnort: Berlin

Thor2605 schrieb:

Einen Key habe ich bei mir im Geschäft und einen auf meinem USB-Stick (jedes mal andere). Wenn mir jetzt jemand den Key auf irgend eine Art und Weise entwendet hätte er, nachdem er den richtigen Benutzernamen rausgefunden hat (was nicht wirklich schwer ist) jede Zeit der Welt das Passwort für den Key zu knacken (hier ist doch Brutforce möglich?)...

Da du auf jedem Gerät einen anderen Key verwendest, sollte es dir nicht schwer fallen im Falle eines Verlustes diesen einen Key vom Server zu entfernen (~/.ssh/authorised_keys). Das geht in der Regel deutlich schneller als das BruteForce des Passwortes für den SSH-Key.

Wenn ich jetzt den Key nicht mehr über ein Passwort sichere sondern statt dessen ein Passwort für den Benutzernamen verlange (also über PAM) kann ich über einen Block von 5 Minuten bei 3 falschen Eingaben das Brutforcen unterbinden und ich bekomme das dann auch mit, um Key zu ändern und Benutzername und Passwort zu wechseln.

Wenn du eine Benutzerauthentifizierung mit Passwort möchtest, dann benötigst du keine Keys mehr. Alles Andere wäre „doppelt gemoppelt“ und wahrscheinlich ziemlich sinnfrei.

~jug

Thor2605

(Themenstarter)

Anmeldungsdatum:
28. September 2009

Beiträge: 27

Ich weiß nicht ob ich mich gerade in meiner "Idee" varannt habe.... Lass mich da aber gern aufklären 😉

Wo ist denn der Unterschied genau zwischen Passwort vom Benutzername, zur Passphrase in Sachen Sicherheit?

Doppelt gemoppelt ist das nicht, wenn ich das Passwort vom Key auf den Benutzernamen schieb. So müsste er wenn er doch mal mein Benutzerpasswort knackt immernoch im Besitz des Keys sein. Und das Passwort zu knacken mit iptables-ban ist doch so gut wie unmöglich oder? Zumal ja dann dahinter noch ne Tür kommt mit dem Key...

Vermutlich ist es so oder so auf einem Privatserver eh kein Problem, ich denk wenn Hacker versuchen sowas wie hier zu knacken sind Firmen/Banken doch eher interessant als mein kleiner Home-Server, oder?

xabbuh Team-Icon

Anmeldungsdatum:
25. Mai 2006

Beiträge: 6411

Thor2605 schrieb:

Doppelt gemoppelt ist das nicht, wenn ich das Passwort vom Key auf den Benutzernamen schieb. So müsste er wenn er doch mal mein Benutzerpasswort knackt immernoch im Besitz des Keys sein.

Wenn du Passwort-Authentisierung zulässt, braucht der Benutzer ja eben keinen SSH-Key mehr.

Thor2605

(Themenstarter)

Anmeldungsdatum:
28. September 2009

Beiträge: 27

Bist du dir da sicher?

Ich kann doch Passwort-Authentifizierung und SSH-Keys verwenden?

http://wiki.ubuntuusers.de/ssh#Single-Sign-On

TheDarkRose

Avatar von TheDarkRose

Anmeldungsdatum:
28. Juli 2010

Beiträge: 3459

Hier wird aber auch keine Passwortauth am SSH Server verwendet, sondern immer noch der Key

Antworten |