Mit putty und ssh key auf einen sicheren Linux Server zugreifen: Unterschied zwischen den Versionen

Aus Linupedia.org
Wechseln zu: Navigation, Suche
(Copy/paste erfordert keine edits)
Zeile 18: Zeile 18:
 
a) Starten des Programms puttygen auf dem WindowsClient. Dann ssh-2 RSA wählen und number of bits in generated key auf 2048 setzen.<br/>
 
a) Starten des Programms puttygen auf dem WindowsClient. Dann ssh-2 RSA wählen und number of bits in generated key auf 2048 setzen.<br/>
 
b) Drücken von Generate<br/>
 
b) Drücken von Generate<br/>
c) Save the generated key drücken und sichern des public und private keys in C:\Program Files\putty als id_rsa und id_rsa_priv.ppk.
+
c) Save the generated key drücken und sichern des private keys in C:\Program Files\putty als id_rsa_priv.ppk.
 +
d) Selektieren des gesamten public keys ('Public key for pasting into OpenSSH authorizedKeys file') und kopieren (CTRL C) ins Clipboard.
 +
e) Öffnen eines Editors (z.B. notepad) und paste (CTRL V) des public keys in den Editor. Sichern der Datei in C:\Program Files\putty als rsa_public.
  
 
== Anpassen des putty public keys an OpenSSH und kopieren des public OpenSSH Keys auf den Server und Aufnahme des keys in der authorized_keys Datei ==
 
== Anpassen des putty public keys an OpenSSH und kopieren des public OpenSSH Keys auf den Server und Aufnahme des keys in der authorized_keys Datei ==

Version vom 9. November 2007, 18:42 Uhr

Autor: framp

Dieses HOWTO beschreibt, welche Schritte notwendig sind um sicher von einem Windows Rechner per ssh mit putty und nur mit einem ssh key auf einen Linux Server mit SuSE zuzugreifen.

Sämtliche Schritte auf dem Server werden mittels putty mit Konsolbefehlen und keiner graphischen Oberfläche beschrieben. Eine graphische Oberfläche birgt eine Menge Sicherheitsprobleme und aus langer Linuxerfahrung leidgeprüfter Serveradministratoren sollte keine graphische Oberfläche (X, KDE, GNOME) auf einem Server installiert sein. Die konkrete Anleitung geht davon aus, dass keine Passwörter mehr zur Authentifiziereung benutzt werden sondern asymmetrische keys. Diese kann man durch eine Passphrase sichern oder aber auch auf die Passphrase verzichten. Der Vorteil bei keiner Passphrase ist, dass ein Zugriff immer ohne Passworteingabe möglich ist. Der Nachteil ist, dass jeder, der den private key hat oder illegalerweise kopiert unbegrenzten Zugriff hat. Wer also ohne Passwort fahren will muss seine keys absolut sicher verwahren!

Sämtliche Konfigurationsaktionen auf dem Server werden per putty mit einem normalen user und seinem password gemacht. Ein paar Änderungen benötigen auch den user root mit seinem passwort. Erst am Ende nach erfolgreichem Test wird die Passwortauthentifizierung ausgeschaltet. Danach ist ein ssh Zugriff nur noch mit keys möglich und jegliche Anmeldeversuche am Linux Server sind ohne key zum Scheitern verurteilt.

Achtung: Am Ende der Konfiguration kann sich aus Sicherheitsgründen niemand mehr als root per ssh auf den Server anmelden! Dieses ist nur noch dem einen Benutzer der konfiguriert wurde mit seinem Key möglich! Wenn root Zugriff benötigt wird muss sich erst als normaler User anmelden und kann dann mit su - root Rechte bekommen. Sind Zugriffe von weiteren Usern notwendig sind die Steps 1-2 entsprechend zu wiederholen.

Konkret wurde die HOWTO Schritte mit putty 0.58 sowie OpenSSH 4.1p1 mit SuSE 10.0 erstellt. In der StepByStep Anleitung des Einrichtens eines eines ssh Zugriffs mit putty wird das im HOWTO für den user framp auf dem ssh Server obelix eingerichtet. Dieses ist den lokalen Gegebenheiten anzupassen.

Folgende Schritte sind notwendig um sich letzendlich per putty und ssh key auf einen ssh Server anmelden zu koennen:

Erzeugen eines privaten und public keys mit putty

a) Starten des Programms puttygen auf dem WindowsClient. Dann ssh-2 RSA wählen und number of bits in generated key auf 2048 setzen.
b) Drücken von Generate
c) Save the generated key drücken und sichern des private keys in C:\Program Files\putty als id_rsa_priv.ppk. d) Selektieren des gesamten public keys ('Public key for pasting into OpenSSH authorizedKeys file') und kopieren (CTRL C) ins Clipboard. e) Öffnen eines Editors (z.B. notepad) und paste (CTRL V) des public keys in den Editor. Sichern der Datei in C:\Program Files\putty als rsa_public.

Anpassen des putty public keys an OpenSSH und kopieren des public OpenSSH Keys auf den Server und Aufnahme des keys in der authorized_keys Datei

a) Öffnen eines Befehlsfensters und kopieren des putty public files id_rsa in id_rsa_linux mit dem Befehl copy id_rsa id_rsa_linux[/i]
b) Mit einem Windows Editor muss die Datei id_rsa_linux sorgfältig geändert werden: Die ersten zwei Zeilen sowie die letzte Zeile muss gelöscht werden. Danach muessen alle Zeilen in einer Zeile zusammengefasst werden. Achtung! Es dürfen keine Leerzeichen auftauchen. Zum Schluss muss noch ssh-rsa am Anfang der Keyzeile eingefügt werden. Achtung! Ein Leerzeichen steht am Ende von rsa! Die Zeile muss dann mit ssh-rsa AAAAB3 beginnen.
Wird hier ein fehler gemacht funktioniert die Anmeldung per key nicht! c) Öffnen eines Befehlsfensters und C:\Program Files\putty>pscp id_rsa_linux framp@obelix:id_rsa aufrufen. Damit wird der linux public key in das home Verzeichnis des users framp kopiert.
d) C:\Program Files\putty>putty framp@obelix:id_rsa aufrufen. Damit wird ein Befehlsfenster auf dem Server geöffnet.
e) mkdir .ssh legt das .ssh Verzeichnis an wenn es nicht schon existiert
f) cat id_rsa >> .ssh/authorized_keys WICHTIG ! >> benutzen !!! Ansonsten werden schon existierende Authorisierungen gelöscht.

Änderung der sshd Konfiguration so dass keys akzeptiert benutzt werden

a) Im putty Fenster mit C:\Program Files\putty>pscp root@obelix:/etc/ssh/sshd_config sshd_config die sshd Konfigurationsdatei downloaden.
b) Editieren der Datei mit einem Windows Editor so dass die folgenden Parameter wie folgt gesetzt sind:

 PubkeyAuthentication yes
RSAAuthentication no

c) Im putty Fenster mit C:\Program Files\putty>pscp sshd_config root@obelix:/etc/ssh/sshd_config die sshd Konfigurationsdatei uploaden.
d) Im Server Befehlsfenster welches in 2.a geöffnet wurde rcsshd restart eingeben.

Einrichten des putty um mit dem key auf den Server zugreifen zu können und Test des Zugriffs mit key

a) Starten des Programms putty auf dem WindowsClient.
b) Beim hostname framp@obelix eintragen (userid und Server name oder IP)
c) Zu Connection->SSH->Auth gehen und das Private key file for authentication füllen mit C:\Program Files\putty\id_rsa_priv.ppk.
d) open und erscheint ein Befehlsfenster des Servers. U.U. muss noch die Passphrase eingegeben werden
e) Sichern des putty Profiles
f) Damit ist die ssh Verbindung mit key getestet und es kann die Passwortauthentifizierung ausgeschaltet werden.

Änderung der sshd Konfiguration so dass keine Passwoerter mehr erlaubt sind sondern nur moch it keys möglich ist

Nach den folgenden Änderungen kann ein Client nur noch mit dem richtigen Key auf den Server zugreifen! Also sicherstellen, dass der vorherige Step problemlos funktioniert. Ansonsten kommt man nicht mehr an den Server!

a) Im putty Fenster mit C:\Program Files\putty>pscp root@obelix:/etc/sshd/sshd_config sshd_config die sshd Konfigurationsdatei downloaden.
b) Editieren der Datei mit einem Windows Editor so dass die folgenden Parameter wie folgt gesetzt sind:

 PubkeyAuthentication yes
PasswordAuthentication no
ChallengeResponseAuthentication no
UsePam no

c) Im putty Fenster mit C:\Program Files\putty>pscp sshd_config root@obelix:/etc/sshd/sshd_config die sshd Konfigurationsdatei uploaden.
d) Im Server Befehlsfenster welches in 2.a geöffnet wurde rcsshd restart eingeben.

Hardening des sshd Servers, d.h. Prüfen von wichtigen Parametern auf die richtige sichere Einstellung

Diese Schritte sind eigentlich nicht mehr notwendig da kein Zugriff ohne key mehr möglich ist. Es kann aber immer sein dass aus verschiedenen Gründen doch wieder auf Passwörter umgestellt wird (PasswordAuthentication yes). root Zugriff per ssh sollte aus Sicherheitsgründen immer ausgeschaltet sein. Benötigt man root recht kann man als normaler User per su - root Rechte erhalten oder man setzt sudo ein. Deshalb sollte ein jeder ssh Server auf alle Fälle noch wie folgt gesichert werden:

a) Im putty Fenster mit C:\Program Files\putty>pscp root@obelix:/etc/sshd/sshd_config sshd_config die sshd Konfigurationsdatei downloaden.
b) Editieren der Datei mit einem Windows Editor so dass die folgenden Parameter wie folgt gesetzt sind:

 PermitRootLogin no
AllowGroups users
AllowUsers xxx yyy zzz (xxx, yyy und zzz sind user die per ssh zugreifen duerfen)
ClientAliveInterval 15
LoginGraceTime 10
PubkeyAuthentication yes
MaxAuthTries 3
MaxStartups 1
PrintLastLog yes
KeepAlive no
UsePam no

c) Im putty Fenster mit C:\Program Files\putty>pscp sshd_config root@obelix:/etc/sshd/sshd_config die sshd Konfigurationsdatei uploaden.
d) Im Server Befehlsfenster welches in 2.a geoffnet wurde rcsshd restart eingeben.

Grundlagen für dieses HOWTO und weiterführende Literatur

Beiträge im WiKi:

Weitere Informtionen zu putty und OpenSSH:

Des weiteren liefert eine Suche nach ssh im LC Forum diverse weitere Fragen und Antworten zu ssh die hier nicht behandelt wurden. Last but not least lieferte Mit putty und ssh key auf einen sicheren Linux Server zugreifen wesentliche Teile zu diesem HOWTO.


zurück zum Sicherheitsdienst