Entfernte Anmeldung nur noch mit SSH-Keys

Entfernte Anmeldung nur noch mit SSH-Keys

Wer seinen Mac OS X Server aus dem Internet erreichbar macht, möchte diesen oft auch per Kommandozeile, d.h. mittels SSH erreichen. Apple nennt das „entfernte Verwaltung“ und schaltet es auf dem Client erstmal ab, auf Servern ist es dagegen an, solange man es nicht abschaltet.

SSH ist eigentlich eine sichere Sache – sowohl der Login-Vorgang, als auch die Daten sind alle stark verschlüsselt. Es bleibt trotzdem ein Angriffspunkt: Schlechte Kennwörter der User.

Wenn ein möglicher Angreifer Kennwörter errät, kann er sich anmelden. Es muss aber nicht mal eine echte Person sein, die versucht, gezielt das Kennwort zu erraten, sondern tausende virenverseuchte Computer im Internet sind übernommen, Teil von Botnetzen und suchen das ganze Internet ab, wo man sich mittels SSH verbinden kann. Sie testen dann viele verschiedene Kombinationen von Name und Kennwort einfach durch. Jeder, der einen Server im Internet betreibt, wird dieses „Angriffsrauschen“ bemerken, wenn er in die entsprechenden Logfiles reinschaut. Auf Mac OS X Server ist das /var/log/secure.log

Dort sieht man erschreckend viele falsche Loginversuche. Apple hat zwar in Mac OS X Server den Event Monitoring Daemon emond, der nach 10 falschen Anmeldeversuchen die entsprechende IP Adresse blockt, aber trotzdem kommt da noch viel an. Eine Möglichkeit, hier mehr Sicherheit zu schaffen, ist, keine kennwortbasierte Anmeldung via SSH zu erlauben. Dann muss der User dem Server einen gültigen SSH-Key präsentieren, damit er sich anmelden kann. Wer noch keinen SSH-Key hat, kann sich einen generieren:

ssh-keygen

der Default-Ort (~/.ssh) ist OK. Dort werden zwei Schlüssel generiert: Der private id_rsa und der öffentliche id_rsa.pub. Der private Schlüssel muss unter dem Name id_rsa in ~/.ssh/ auf dem Client liegen, den man für den login verwenden will. Generiert man also die SSH-Keys auf dem Client, passt der private Key schon. Der öffentliche Schlüssel muss auf dem Server, den man erreichen will in ~/.ssh/authorized_keys. Man müsste ihn also erstmal auf den Server kopieren (z.b. mit scp) und dort umbenennen oder an ein bestehendes authorized_keys file anhängen. Ab da sollte ein SSH login mit dem gewünschten User kein Kennwort mehr verlangen, sondern der SSH Key ausreichen.

Der zweite Schritt ist dann, auf dem Server in der Datei

/etc/sshd_config

Die Zeile
ChallengeResponseAuthentication yes
zu suchen und zu ändern in
ChallengeResponseAuthentication no

Ab da sollten neue SSH Anmeldeversuche nur noch mit einem Schlüsselpaar funktionieren. Wer kein Schlüsselpaar hat, sollte eine Meldung bekommen, die in etwa so aussieht:

Permission denied (publickey,gssapi-keyex,gssapi-with-mic).

Danach ist erstmal Ruhe mit vergeblichen Kennwort-Angriffen. Das logfile sieht auch viel entspannter und kleiner aus.

Wer sich eine solche Änderung oder das Erstellen der Keys nicht selbst zutraut:

Wir machen das für Sie !

No Comments

Sorry, the comment form is closed at this time.