• 19.04.2010 20:00:54

    Sichern von SSH-Keys auf USB-Stick mit Bitlocker
    Bequeme und sichere SSH Logins mit Putty und BitLocker
    from: cpom | Comments: 0

  • Wenn man mehrere Server im täglichen Betrieb via SSH zu verwalten hat, kann das Hantieren mit Passwörtern , nicht nur für den Fall das eine Kollege ausfällt, schnell hinderlich werden. Außerdem ist dieser Ansatz unsicher. Mit Putty, einem Bitlocker USB-Stick und schlüsselbasierten Logins kann man sich die Arbeit etwas leichter und sicherer gestalten.

  • Ausschließlich auf Passwörtern basierendeLogins via SSH sind anfällig für Social Engineering und Brute Force Attacken. Daher sollte das Ziel sein, nur schlüsselbasierte Logins für SSH-Verbindungen zu verwenden und den dazugehörigen öffentlichen sowie den geheimen Schlüssel an einem sicheren Ort, z.B. einem verschlüsselten Datenträger abzulegen. Ist der Datenträger ein verschlüsselter USB-Stick, ist man zudem nicht an einen bestimmten Rechner gebunden, um seine Arbeiten auszuführen.

    Wenn man nur Windows-Rechner als Workstations benutzt und eine Windows 7 Maschine zur Verfügung steht kann man wie hier beschrieben vorgehen. Die mit Windows Vista ausgelieferte BitLocker-Variante enthält kein BitLockerToGo, mit dem man den USB-Stick auch an anderen Rechnern entsperren kann.


    Bitlocker-Laufwerk unter Win 7

    Möchte man auch auf Linux- oder MacOS Rechnern arbeiten, empfiehlt es sich, einen Blick auf TrueCrypt zu werfen um den USB-Stick zu verschlüsseln da TrueCrypt auch für diese Plattformen zur Verfügung steht.

    Folgende Schritte werden ausgeführt um das oben angeführte Ziel zu erreichen:

    • Verschlüsseln des USB-Sticks
    • Generieren und Ablegen des Schlüssels mit Putty
    • Übertragung des öffentlichen Schlüssels
    • Anpassen der Einstellungen des SSH-Daemons auf der Serverseite
    • Neustart des SSH-Daemons

    Verschlüsseln des USB - Sticks

    Die Stärke der Verschlüsselung ist mit AES-128 als ausreichend anzusehen. Über den Local Group Policy Editor (gpedit.msc) kann man diese noch auf 256 Bit erhöhen oder eine andere Variante der Verschlüsselung wählen.

    Der Group Policy Editor wird mit "gpedit.msc" aus seiner Shell oder über "Ausführen" gestartet

    Local Group Policy Editor - Bitlocker Einstellungen

    Bei Verschlüsselung mit 256 Bit benötigt man mindestens einen Rechner mit Windows Vista zum Entsperren des Laufwerks.

    Bitlocker Einstellungen - Verschlüsselung auswählen

    Die Verschlüsselungsmethode muss vor dem Verschlüsseln ausgewählt sein, ansonsten wird sie ignoriert und die Standardverschlüsselung benutzt (AES-128 mit Diffuser)

    Auswahl der AES-256 Verschlüsselung

    Für den USB-Stick auf dem die Schlüssel abgelegt werden sollen, nimmt man einen leeren und formatierten USB-Stick und schließt ihn an den Windows 7 Rechner an. Dann wechselt man in die Systemsteurung zu „System und Sicherheit“ und wählt „BitLocker-Laufwerksverschlüsselung“ aus oder man greift über den Explorer per Rechtsklick zu und wählt „BitLocker aktivieren“ aus.

    Im Verlaufe des Setups wird man gefragt ob man ein Kennwort oder eine Smartcard zum Entsperren verwenden möchte. Das Entsperren mit Kennwort ist einfacher, das Verwenden einer Smartcard ist sicherer.

    Im Falle einer Smartcard ist es empfehlenswert, eine erreichbare Microsoft Software CA zum Ausstellen des Zertifikates zu verwenden. Es ist aber auch möglich, selbstsignierte Zertifikate zu benutzen. Die Verwendung von selbstsignierten Zertifikaten erfordert zusätzlich das Editieren der Registry um diese Option freizuschalten.

    Generieren und Ablegen des Schlüssels mit Putty

    Ist der USB-Stick vorbereitet, dann kann man daran gehen, die Schlüssel zu generieren und auf dem Gerät abzuspeichern. Putty bringt dazu das Tool PuttyGen mit, mit welchem man ganz leicht Schlüssel generieren und sichern kann.


    PuttyGen - Überblick

    Aus sicherheitstechnischer Sicht wäre zu sagen, das sowohl das RSA-Verfahren als auch das DSA-Verfahren gebräuchlich und bei entsprechender Schlüssellänge (>= 1024 Bit) sicher sind. Bei DSA ist bei gleicher Schlüssellänge die Verbindung etwas flinker, was sich jedoch bei den heute üblichen Netzwerkbandbreiten ( > = 100MBit) kaum bemerkbar macht. Ein DSA-Key von 2048 Bit ist eine gute Wahl bezüglich der Geschwindigkeit ( auch wenn man lange Netzwerkverbindungen benutzt) und auf längere Sicht sicher.

    Das SSH1-Protokoll sollte für den Key nur benutzt werden wenn es zwingend erforderlich ist. SSH1 gilt heute als unsicher. Bei modernen SSH-Servern, wie z.B. das auf vielen Linux- und BSD Systemen vorhandene OpenSSH, ist SSH1 per default ausgeschaltet.


    PuttyGen -- generierter Schlüssel

    Mit dem Button „Generate “ erzeugt man dann den SSH-Schlüssel in der gewünschten Länge. Um ein wenig „Randomness“ zu bekommen, fordert PuttyGen dazu auf, die Maus intensiv zu bewegen. Der Generierungsprozess dauert auf einem heute üblichen Arbeitsplatzrechner ca. 2 Minuten.

    Ist der Vorgang abgeschlossen, kann man sowohl public key als auch private key auf dem präparierten USB-Stick ablegen. Bei der Vergabe der „key passphrase “ sollte man darauf achten, dass das Passwort mindestens 12 Zeichen lang ist.

    Übertragung des öffentlichen Schlüssels auf den Server

    Hat man beide Schlüssel für den entsprechenden Login generiert muss der öffentliche Schlüssel auf dem Server auf dem man einloggen will bekannt gemacht werden. Dafür sieht OpenSSH in den Standardeinstellungen die Datei authorized_keys vor, die im Unterverzeichnis .ssh im Homeverzeichnis des einzuloggenden Benutzers abgelegt ist bzw. abzulegen ist.

    Hier empfiehlt es sich, kleine Anpassungen vorzunehmen, damit diese Datei nicht so schnell bei einer gezielten Suche im Dateisystem von einem evtl. Angreifer gefunden wird. Steuern kann man den Dateinamen für Ablage der public keys über die Konfigurationsdatei (üblicherweise /etc/ssh/sshd_config) des OpenSSH-Daemons.

    Für dieses Beispiel wird eine Datei satisfied_dependency für den Benutzer Ruth im Verzeichnis erzeugt. Die Option AuthorizedKeysFile wird in der OpenSSH-Konfigurationdatei auf .ssh/satisfied_dependency gesetzt.

    Settings des SSH-Daemons

    Dann öffnet man die Datei satisfied_dependency und fügt den vollständigen Text aus der gespeicherten Datei des frisch erzeugten public key oder direkt durch Copy & Paste aus dem dafür vorgesehenen PuttyGen-Fenster ein.

    Einstellungen des SSH-Daemons auf dem Server

    Neben der Option AuthorizedKeysFile gib es noch einige andere Dinge die angepasst werden sollten. Dazu zählt die Anzahl der maximalen fehlerhaften Login-Versuche, das Verweigern des direkten Einloggens als root-User , die Benutzung eines anderen Ports als Port 22 zur Verbindung, das Verweigern des Logins mit Text-Passwort. Auf jeden Fall sollte das X11Forwarding ausgeschaltet und die Benutzung von Pam (pluggable authentication modules) eingeschaltet sein.

    Hier noch einmal kurz die veränderten Einstellungen aus diesem und dem vorigenAbschnitt zusammengefasst:

    MaxAuthTries 2
    PermitRootLogin no
    Port 873
    PasswordAuthentication no
    X11Forwarding no
    UsePAM yes
    AuthorizedeysFile .ssh/ satisfied_dependency

    Hat man die Änderungen vorgenommen dann muss der OpenSSH-Server neu gestartet werden. Sicherheitshalber sollte man sich vorher vergewissern, dass eine direkter Zugriff auf die Maschine via Terminal oder seriellen Port möglich, um bei einer evtl. fehlerhaften Einstellung die Änderungen rückgängig machen zu können.

    Der SSH-Daemon wird auf SuSE-Systemen mit /etc/init.d/rcsshd restart und auf einem Redhat-basierten Linux mit /sbin/service sshd restart neu gestartet. Ist der Neustart erfolgreich dann sollte man bereits mit dem Schlüssel einloggen können.

    Anlegen eines Putty-Profils

    Um bequem und schnell Zugriff auf die Remote-Systeme zu haben, legt man je ein Profil für jeden Server an welches Port und Rechnernamen enthält. Dort kann dann auch der Private-Key für den Login auf dem jeweiligen System angegeben werden. Putty allerdings kann nur auf den Key nur zugreifen, wenn der verschlüsselte USB-Stick von einem berechtigten Nutzer entsperrt ist.

    Profil-Einstellungen für den Private Key

    Damit der Key zum Login benutzt werden kann erfolgt dann noch einmal die Abfrage der „key-passphrase “ auf dem Server, nachdem der Login-Vorgang angestossen wurde.

    Im Prinzip erreicht man mit dem geschilderten Vorgehen, wenn man es denn genauso wie hier beschrieben umsetzen möchte, folgendes:

    • Es kann sich mit dem betreffenden „Private Key“ am Server per SSH eingeloggt werden
    • Der „Private Key“ ist auf einem sicher verschlüsselten Datenträger abgelegt.
    • Der Datenträger ist mobil und kann auch an einem anderen Rechner eingesetzt werden
    • Der Login am Server erfolgt mit Putty halbautomatisch, ohne Passwort für den Schlüssel ist die Verwendung des Schlüssels nicht möglich
    • Flexibilität und Sicherheit des Zuganges per SSH sind erhöht worden

    In diesem Sinne: Ziel erreicht und Happy Login ;)


    Kommentar hinzufügen | nach oben

  • HTML-Tags in den Kommentaren sind abgeschaltet, der Name und die Email-Adresse werden benötigt. Die Email-Adresse ist im gespeicherten Kommentar nicht sichbar
  • Leave a Comment

    Captcha



Kommentare augeschaltet

Profi-Admin
profi-admin.de
profi-admin.com
profi-admin.eu

Projekte
scprojekt.de
2bsg.de

Answerengine
smartjump.de

Portale
berufstaetigeeltern.de
berufstätigeeltern.de

Weitere
der-gewerbespezialist.de
dergewerbespezialist.de

2007 - 2010 ©   Claudius Pomorska

Profi-Admin is powered by MBlog Portal

Impressum