seiten update

» SSH « Sicherer Desktop- und Remote-Zugriff ohne Passwort über Passphrase

Zurück

kategorie: secure | hits: 2614 | erstellt: so. 30.nov 2008, 12:32 | source by: markus görner

Für die sichere Authentifizierung über das Netzwerk verwendest du am besten ein SSH-Schlüsselpaar, bestehend aus einer privaten- und öffentlichen Schlüsseldatei.

Es wird dann bei der Anmeldung kein Benutzername und Passwort mehr verlangt, sondern die Computer authentifizieren sich sicher anhand der generierten SSH-Keys.

Somit sind Brute-Force-Attaken auf dem Server ausgeschloßen, da sich nur noch der einloggen kann, der im Besitz des privaten Schlüssels ist und dessen Passphrase kennt.

Lizens: <Freie Software>

 

Index:

» Schlüssel generieren
» Schlüssel installieren
» Login über das Public-Key-Verfahren
» Public Key Authentication aktivieren
» KDE/GNOME/KONSOLE-Benutzeranmeldung über Passphrase

 

Da der DSA Algorithmus von der National Security Agency (NSA) entwickelt wurde (und wir denen nun gar nicht trauen ) nehmen wir den RSA-Schlüssel.

 

Schlüssel generieren

Den RSA-Key generierst du auf deinen Client (von dem du dich einloggen willst).
RSA-Standard ist mit 2048 Bit Länge (SSH-Protokollversion 2)

ssh-keygen -t rsa

Es wird nach dem Speicherort der Schlüsseldateien gefragt:

Enter file in which to save the key (/home/markus/.ssh/id_rsa):

Als Dateinamen werden id_rsa vorgeschlagen, was wir mit <Enter> bestätigen.

Du wirst aufgefordert für den Schlüssel eine Passphrase (Kennwort) einzugegeben.

Je nach Verwendungzweck gibt es verschiedene Möglichkeiten wie du mit deinen SSH-Schlüssel arbeiten kannst. Hier sind nur einige Möglichkeiten aufgeführt.

Enter passphrase (empty for no passphrase):

Nun wurde das Schlüsselpaar in dem Verzeichnis /home/markus/.ssh/ erstellt.

 

Schlüssel installieren

Jetzt muß der öffentliche Schlüssel id_rsa.pub auf den Sevrer kopiert werden.

ssh-copy-id -i /home/markus/.ssh/id_rsa.pub root@ip.adresse.des.servers

Nun wird das letzte mal nach dem Benutzer-Unix-Kennwort auf dem Server gefragt.

Password:

Nach der korrekten Passwort-Eingabe wird auf dem Server die Datei /user/.ssh/authorized_keys erstellt.

 

Login über das Public-Key-Verfahren

Nun kannst du dich mit

ssh root@ip.adresse.des.servers

auf dem Server einloggen.

Hast du bei der Schlüssel-Erstellung eine Passphrase angegeben, wirst du nun nach dem Kennwort des privaten Schlüssels, der auf dem Client liegt gefragt.

Enter passphrase for key '/home/markus/.ssh/id_rsa':

----------------------------------------------
Welcome to
devlux03.social-sourcecode.de
Debian Etch v4.0 - 64bit
----------------------------------------------

devlux03:~#

 

Public Key Authentication aktivieren

Aufgepasst vor dem aussperren!
Konfigurierst du den SSH-Server per Remote-Verbindung mußt du aufpassen das die bestehende SSH-Konfigurations-Verbindung nicht getrennt wird (also kein <exit> und das Konsolenfenster nicht schließen), solange bis die Anmeldung per Authentication Key einwandfrei funktioniert.

Damit sich niemand mehr mit Benutzername und Kennwort anmelden kann, muß auf den SSH-Server noch die /etc/ssh/sshd_config modifiziert bzw. wenn die Werte nicht vorhanden sind, diese hinzugefügt werden.

# /etc/ssh/sshd_config

PubkeyAuthentication yes
ChallengeResponseAuthentication no
PasswordAuthentication no
KerberosAuthentication no
UsePAM yes

Damit die Änderung wirksam wird, muß der SSH-Server neu gestartet werden.

/etc/init.d/ssh restart

Um sich an deinen Server anmelden zu können benötigst du ab jetzt immer deine Passphrase mit den privaten Schlüssel (also gut darauf aufpassen!).

 

KDE/GNOME/KONSOLE-Benutzeranmeldung über Passphrase

Wir können jetzt anstatt des Benutzer-Unix-Kennwort die SSH-Passphrase für unsere Desktop/Konsolen-Benutzeranmeldung verwenden.
Das hat den vorteil das du dann auf alle Rechner und Dienste, für die du Berechtigungen hast (in deren Home-Verzeichnis unter ~/.ssh/authorized_keys der Public-Key id_rsa.pub kopiert wurde), zugreifen kannst, ohne dich jedes Mal neu anmelden zu müssen

Für die Konfiguration benötigst du root Rechte.

su root

Um die Passphrase gleich beim KDE/GNOME-Login abzugleichen mußt du das Paket libpam-ssh installieren

aptitude install libpam-ssh

Für KDE/GNOME in einen Editor die Datei /etc/pam.d/kdm bzw. für Gnome die /etc/pam.d/gdm öffnen.

nano /etc/pam.d/kdm

Füge vor @include common-auth @include pam-ssh-auth
und nach @include common-session @include pam-ssh-session ein.

#
# /etc/pam.d/kdm - specify the PAM behaviour of kdm
#
auth required pam_nologin.so
auth required pam_env.so readenv=1
auth required pam_env.so readenv=1 envfile=/etc/default/locale
@include pam-ssh-auth
@include common-auth
session required pam_limits.so
@include common-account
@include common-password
@include common-session
@include pam-ssh-session

Mit den beiden Tasten 'Strg O' speichern und mit 'Strg X' den nano Editor beenden.

Für die Konsole die Datei /etc/pam.d/login.

nano /etc/pam.d/login

Füge vor @include common-auth @include pam-ssh-auth
und nach @include common-session @include pam-ssh-session ein.

#
# The PAM configuration file for the Shadow `login' service
#
...
@include pam-ssh-auth

# Standard Un*x authentication.
@include common-auth
...
# Standard Un*x account and session
@include common-account
@include common-session
@include pam-ssh-session
@include common-password

Mit den beiden Tasten 'Strg O' speichern und mit 'Strg X' den nano Editor beenden.

Da das Modul pam-ssh-auth vor dem Modul common-auth geladen wird, muß ab der nächsten Desktop-Anmeldung grundsätzlich das Kennwort vom SSH-Schlüssel und nicht das Benutzer-Unix-Kennwort angeben werden.

Bei erfolgreicher Abgleichung steht dir ohne erneuter Passphrase-Eingabe das System inkl. dauerhaft geladener SSH-Schlüssel bis zur nächsten Abmeldung zur Verfügung.

Schlägt die erste Anmeldung durch einer falsch eingegebener Passphrase am SSH-Agent fehl, wird als zweites der normale Linux-Anmeldeprozess gestartet und die SSH-Schlüssel werden nicht geladen (ausgenommen wenn Benutzer-Unix-Kennwort und SSH-Passphrase identisch sind).
Dann den XServer mit der Tastenkombination 'Strg Alt Back' neu starten.

Ist dein Benutzer-Unix-Kennwort und SSH-Passphrase identisch, kannst du dich auf deinen Computer nur noch über die Passphrase des SSH-Key einloggen.

Willst du das System nur mit dem normalen Benutzer-Unix-Kennwort starten, dann läßt du bei der ersten Abfrage das Kennwortfeld leer.

Bei der zweiten Kennwortabfrage gibst du dann dein Benutzer-Unix-Kennwort ein und schon wird der normale Linux-Anmeldeprozess gestartet und die SSH-Schlüssel werden nicht geladen.

Zur Überprüfung ob der private Schlüssel zur Verfügung steht einfach in der Konsole

ssh-add -L

eingeben.

 

Haftungsausschluß!

Die Nutzung der Inhalte dieser Website erfolgt auf eigene Gefahr.
Die Autoren übernehmen keine Gewährleistung oder Garantien dafür, dass die Inhalte fehlerfrei oder zulässig sind.

Der Nutzer übernimmt die alleinige Haftung für Schäden an seinem Computersystem oder den Verlust von Daten.

Es obliegt der alleinigen Verantwortung des Nutzers, für ausreichenden Schutz und Sicherungskopien der Daten, des Computersystems und sonstiger Ausrüstung zu sorgen.

 

Nobodys perfect, falls du einen Fehler oder Verbesserungsvorschläge findest, dann würde ich mich freuen wenn du mir schreibst.

Creative Commons License
Dieser Werk bzw. Inhalt ist unter einer Creative Commons-Lizenz lizenziert.