Mit putty und ssh key auf einen sicheren Linux Server zugreifen

Aus Linupedia.org
Version vom 10. Juni 2007, 11:11 Uhr von Framp (Diskussion | Beiträge) (Hardening des sshd Servers, d.h. Prüfen von wichtigen Parametern auf die richtige sichere Einstellung)
Wechseln zu: Navigation, Suche

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 benoetigen 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 moeglich 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. Konkret wird in der StepByStep Anleitung das Einrichten eines eines ssh Zugriffs mit putty fuer den user framp auf dem ssh Server obelix eingerichtet.

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 public und private keys in C:\Program Files\putty als id_rsa und id_rsa_priv.ppk.

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 eine 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.
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 koennen 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 moeglich ist

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.

Als Grundlage fuer dieses HOWTO dienten u.A. folgende Beiträge im WiKi:

'Weitere Informtionen zu putty und OpenSSH:'

  1. putty homepage
  2. Was Wikipedia zu putty sagt
  3. OpenSSH homepage
  4. OpenSSh manuals

Weitere Threads zu ssh spezifischen Fragen und Problemen:

  1. Kontrolliertes Ausfuehren von Befehlen als root
  2. SSH Angriffe
  3. Host bei ssh Connection ablehnen

Des weiteren liefert eine Suche nach ssh im Forum diverse weitere Fragen und Antworten zu ssh die hier im HOWTO 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