Digital Eliteboard - Das Digitale Technik Forum

Registriere dich noch heute kostenloses um Mitglied zu werden! Sobald du angemeldet bist, kannst du auf unserer Seite aktiv teilnehmen, indem du deine eigenen Themen und Beiträge erstellst und dich über deinen eigenen Posteingang mit anderen Mitgliedern unterhalten kannst! Zudem bekommst du Zutritt zu Bereiche, welche für Gäste verwehrt bleiben

2-Faktor Authentifizierung für SSH

Registriert
16. Januar 2012
Beiträge
5.314
Reaktionspunkte
6.084
Punkte
373
Ort
127.0.0.1
Halli Hallo,

hier mal ein kleines How-To für eine 2-Faktor Authentifizierung für euren SSH-Login z.B. mit Putty.
Dies erhöht die Sicherheit als eine blose Passwortabfrage beim Login, verhindert Man-in-the-Middle-Angriffe und hat den Vorteil gegenüber der SSH-Keys das man sich von jedem Computer aus einloggen kann und man nur sein Handy brauch.
Die Anleitung ist für alle Debian-basierten OS geeignet.

Wie funktionierts?

Mit Hilfe eures Smartphones bekommt ihr mittels einer App einen sich ständig ändernden Code den ihr zusätzlich zu eurem gewöhnlichen Passwort eingeben muss.
Die Abfrage bei Putty sieht dann folgendermaßen aus:

Code:
Du musst dich Anmelden oder Registrieren um den Inhalt der Codes zu sehen!

Wie wirds eingerichtet?

Bei folgender Anleitung wird davon ausgegangen, dass ihr an eurem Server als root eingelogt seid.

1. Wir installieren zunächst den "Google Authenticator" auf dem Smartphone. Die App gibt es für Android, Apple und Blackberry.

2. Es ist wichtig, dass die Uhr auf dem Server und dem Handy richtig gehen!
Das Handy bezieht seine Uhrzeit aus dem Netz des Providers und für den Server richten wir dafür die wöchentliche Uhrzeit-Synchronisation mit einem ntp-Server ein.

Dazu installieren wir zunächst das passende Paket...
Code:
Du musst dich Anmelden oder Registrieren um den Inhalt der Codes zu sehen!

... führen die Synchronisation einmal von Hand aus...
Code:
Du musst dich Anmelden oder Registrieren um den Inhalt der Codes zu sehen!

und tragen dann den Job ganz unten in den Crontab ein, damit die Uhrzeit synchronisiert wird:
Code:
Du musst dich Anmelden oder Registrieren um den Inhalt der Codes zu sehen!

Code:
Du musst dich Anmelden oder Registrieren um den Inhalt der Codes zu sehen!

Somit wird je Nacht (beginnent ab dem Tag, an dem der Job im Crontab gespeichert wurde) um 2.30 Uhr synchronisiert.

3. Um es uns gleich etwas einfacher zu machen installieren wir folgendes Paket, damit Putty uns 'nen QR-Code ausgeben kann.
Code:
Du musst dich Anmelden oder Registrieren um den Inhalt der Codes zu sehen!

4. Nun geht's ans Eingemachte. Wir wechseln zunächst in den tmp-Ordner.
Code:
Du musst dich Anmelden oder Registrieren um den Inhalt der Codes zu sehen!

Nun unterscheiden sich die Befehle etwas je nachdem ob wir ein 32bit oder 64bit-System haben. Wir führen also die folgenden zei Befehle passend zum System aus:

64bit:
Code:
Du musst dich Anmelden oder Registrieren um den Inhalt der Codes zu sehen!

32bit:
Code:
Du musst dich Anmelden oder Registrieren um den Inhalt der Codes zu sehen!

5. Zur Einrichtung des google-authenticator auf dem Server starten wir diesen.
Code:
Du musst dich Anmelden oder Registrieren um den Inhalt der Codes zu sehen!

Wir erhalten nun einen QR-Code und ein paar Notfall-Schlüssel:

Du musst dich Anmelden oder Registrieren um diesen Inhalt sichtbar zu machen!
Nun nehmen wir das Smartphone in die Hand, starten die App "Google Authenticator" und klicken im Menü auf "Konto einrichten".
Wir werden gefragt, ob wir einen QR-Code scannen oder einen Key eingeben wollen. Wir nehmen den QR-Code und scannen ihn aus Putty ab.
Das wars schon für's Smartphone. Wir müssten nun ein Bild sehen, das folgendem gleicht:


Du musst dich Anmelden oder Registrieren um diesen Inhalt sichtbar zu machen!
Wir sehen den Namen des Servers, den 6-stelligen Code (den wir zukünftig ebenfalls eingeben müssen) und eine kleine Stopuhr. Die Uhr läuft 30 Sekunden und anschließend ändert sich der Code wieder.

Zurück zu Putty, wir speichern die "emergency scratchs" (Erläuterung weiter unten). Den angezeigten Rest können wir vergessen, und die weiteren Fragen können und sollten mit JA/YES/Y beantwortet werden.

6. Nun folgen noch ein paar Einstellungen damit ssh weiß, was zu tun ist.

Wir bearbeiten folgende Datei:

Code:
Du musst dich Anmelden oder Registrieren um den Inhalt der Codes zu sehen!

und fügen ganz oben einfach folgende Zeile hinzu:

Code:
Du musst dich Anmelden oder Registrieren um den Inhalt der Codes zu sehen!

und dann bearbeiten wir noch diese Datei:

Code:
Du musst dich Anmelden oder Registrieren um den Inhalt der Codes zu sehen!

und ändern die Einstellung

Code:
Du musst dich Anmelden oder Registrieren um den Inhalt der Codes zu sehen!

von no auf yes

7. Wir starten noch den ssh-Dienst neu

Code:
Du musst dich Anmelden oder Registrieren um den Inhalt der Codes zu sehen!

VORSICHT

Putty an dieser Stelle noch nicht beenden!!!
Erstmal testen wir ob alles funktioniert.

Dazu starten wir eine weitere Putty-Instanz und verbinden uns ganz normal zum Server.
Wir werfen einen Blick auf den Google-Authenticator und füllen den Login bei Putty nach bestem Wissen und Gewissen aus:

Code:
Du musst dich Anmelden oder Registrieren um den Inhalt der Codes zu sehen!

Hat alles funktioniert?
Dann Glückwunsch, dein Server ist nun gesichert.

Hat es nicht funktioniert?
Dann machen wir in der noch verbundenen Putty-Instanz den Punkt 6. rückgängig und starten erneut SSH neu.

8. Zum Thema emergency scratch

Diese kopierten Codes (kleiner Tipp: auf nem Zettel ausdrucken!) sind Notfall-Codes falls wir keinen Zugriff mehr aufs Telefon (Diebstahl, Beschädigung, etc) mit unserem Key-Generator haben. Denn dann können wir zur Verification statt des 6-stelligen Code vom Handy einen 8-stelligen Notfall-Code nehmen.

Diese Codes sind EINMAL-BENUTZBARE-CODES d.h. sie funktionieren nur ein einziges mal und sind dann ungültig.

Was ist also zu tun, wenn sie mal aus irgend einem Grund zur Neige gehen?
Dann fügen wir hier ganz unten einfach ein paar neue Einmal-Codes ein:

Code:
Du musst dich Anmelden oder Registrieren um den Inhalt der Codes zu sehen!


Ich hoffe das kleine How-To hat euch gefallen.

Beste Grüße
Hunch
 
Zuletzt bearbeitet:
Zurück
Oben