Aktivieren der Zwei-Faktor-für SSH-Logins

0
267
Shutterstock/TATSIANAMA

Wenn Sie wirklich wollen, sperren Sie Ihre cloud-server, können Sie durch aktivieren der zwei-Faktor-Authentifizierung für SSH in der gleichen Weise würden Sie fügen Sie es zu Ihrem Google Mail-Konto zu verhindern, dass andere Zugriff, wenn Sie geklaut hast dein SSH-private-key.

Ist Das Wirklich Nötig?

Verglichen mit zwei-Faktor auf eine E-Mail oder web-basierten Konto, zwei-Faktor auf SSH ist nicht so nützlich. Für so etwas wie E-Mail, point-of-failure ist in der Regel Passwort-reset-Systeme, leicht zu knacken Passwörter, oder Datenmissbrauch. Wirklich, alles was mit schlechten Passwörtern oder schlechte Passwort-management.

Für SSH, das ist nicht viel von einem Problem. SSH benutzt eine sehr gute Verschlüsselung für den öffentlichen und privaten Schlüsseln, die es verwendet, um verbindungen. Wenn dein SSH-server ist gesperrt und nicht erlaubt, die Passwort-Zugang, niemand ist immer in, es sei denn, Sie haben das physikalische Gerät, das sich der Schlüssel befindet, und es ist nicht sehr wahrscheinlich, dass jemand bruteforce Ihre SSH-Schlüssel jederzeit in diesem Jahrhundert. Also, in einem Sinne, es ist fast so, als wenn Sie bereits eine zwei-Faktor -, weil Sie Ihre Schlüssel bleiben auf Ihrem laptop.

Aber, in einigen fringe Fälle, zwei-Faktor kann eine gute Wahl sein. Wenn einige Irrer hacker beschließt, Sie zu stehlen Ihren laptop mit der Absicht, nabbing Ihre SSH-Schlüssel zusammen mit ihm (und nicht nur verkaufen es auf Craigslist, wenn Sie nicht knacken Sie Ihr Gerät Passwort), mit zwei-Faktor setzen Sie einen Schritt Voraus.

Ein mehr real-world-Problem, obwohl mit SSH-agent-forwarding; Mit agent-forwarding eingeschaltet, die wichtigsten Anforderungen zu unterzeichnen, in zusätzliche Server weitergeleitet bekommen Sie zurück zu Ihrem Gerät. Dies ermöglicht Ihnen, den SSH in einem public-server, und—aus, dass die öffentlichen server—SSH wieder in eine andere private-server auf dem gleichen Netzwerk, so dass Sie Zugriff ähnlich wie ein VPN funktionieren würde.

Aber das problem ist, dass, wenn der öffentliche server ist kompromittiert, wenn Sie-agent-forwarding aktiviert ist, kann ein Angreifer in der Lage ist zu handeln, wie Sie, während Sie verbunden sind, auf die öffentlichen server. Dies ist eine mögliche Erhöhung von Privilegien, je nachdem, wie Sie eingerichtet haben, ist Ihr Netzwerk. Zwei-Faktor-SSH würde das Problem lösen.

Wieder, dies ist ein sehr edge-Fall-Lösung, und wird wahrscheinlich dazu führen, mehr Probleme als es verhindert, aber wenn Sie ernsthaft über die sperren alles ab, wir werden Ihnen zeigen, wie.

Aktivieren der Zwei-Faktor-für SSH

Um zwei-Faktor-Anforderungen, verwenden wir Google-Pluggable Authentication Modul (PAM), Werke, die mit Authy und Google Authenticator. Installieren Sie es von Ihrer Distribution Paket-manager:

sudo apt-get install libpam-google-authenticator

Anschließend führen Sie die Initialisierung Befehl:

google-authenticator

Antwort ja auf die erste Frage etwa mit tokens zeitabhängig. Dies ist sicherer. Ihr terminal wird dann überflutet werden, mit einem riesigen QR-code, und Sie werden wahrscheinlich haben, um etwas verkleinern.

Öffnen Sie Ihre Google authenticator app, und Scannen Sie Ihren code (nicht die Abbildung). Ihre app synchronisieren soll, und starten Sie die Ausgabe von sechs-stelligen codes, ändern sich alle 30 Sekunden.

Sie sollten auch notieren Sie all die zusätzlichen Ausgaben, einschließlich der geheime Schlüssel und emergency scratch codes. Diese werden verwendet, um den Zugang wieder zu Ihrem server, wenn Sie gesperrt sind, aus jedem Grund, obwohl Sie sollten davor gewarnt, dass alle Probleme in Bezug auf Fehlkonfiguration kann noch lassen Sie sich dauerhaft gesperrt. Wir werden wiederum auf zwei-Faktor-Optional getestet werden, bevor es verbindlich.

Für die nächsten Fragen, beantworten Sie die folgenden:

  • Antwort ja, um die Aktualisierung Ihrer Konfiguration, sonst nichts.
  • Antwort ja, um die verbotene Mehrfachnutzung der einzelnen token. Sie sollte verfallen, sobald Sie verwendet werden.
  • Keine Antwort auf die Ausweitung der gültige code-Fenster, da gibt es nicht wirklich einen Punkt, um es.
  • Antwort ja, um zu ermöglichen, rate-limiting, das wird blockieren, die Angreifer nach drei versuchen. Ihre letzten drei codes gültig für eine minute und eine Hälfte, so dass Sie nicht haben, um sorgen über sich selbst sperren, indem Sie zu langsam.

Alle Ihre Konfiguration wird gespeichert in ~/.google-authenticator. Sie können diese Datei kopieren, um einen zusätzlichen server gelten die gleichen Konfiguration nicht erneut führen Sie die Initialisierung tool erneut aus, oder Sie werden zum verknüpfen von zwei separaten Geräten.

Konfigurieren von SSH für die Arbeit mit Google PAM

Öffnen Sie die PAM-Konfigurationsdatei /etc/pam.d/sshd in Ihrem Lieblings-text-editor, und fügen Sie die folgende Zeile ganz unten:

auth erforderlich pam_google_authenticator.so nullok

Die nullok-Richtlinie bedeutet, dass diese nur vorübergehend ist, so dass die zwei-Faktor wird optional sein, bis Sie dies ändern. Lassen Sie auf diese Weise für die Prüfung. Sie wollen auch zu finden der Zeile mit @include common-auth, und kommentieren Sie diese mit einem #:

# Standard Un*x-Authentifizierung.
#@include common-auth

Dieser schaltet die Passwort-basierte Authentifizierung, die Sie nicht wollen.

Öffne SSH-Einstellungen in /etc/ssh/sshd_config. Finden Sie die ChallengeResponseAuthentication option aus, und drehen Sie ihn auf:

# Ändern auf ja, um aktivieren von challenge-response-Passwörter (Achtung Probleme mit
# einige PAM-Module und threads)
ChallengeResponseAuthentication yes

Dies ermöglicht 2FA jedoch, SSH-Schlüssel überschreiben 2FA standardmäßig, so müssen Sie, um das zu beheben, indem die folgende Zeile an das Ende der sshd_config:

AuthenticationMethods publickey,keyboard-interactive

Dies erfordert eine public key ” und “keyboard-interactive”, das ist die Eingabeaufforderung, die Sie fragt, für Ihre zwei-Faktor-code.

SSH ist jetzt konfiguriert, so können Sie sshd neu starten, um es wiederum auf diese neuen Einstellungen:

sudo systemctl restart sshd.service

Dies wird nicht schließen Sie Ihre Verbindung öffnen, so sollte man jede Verbindung die Prüfung in einem separaten terminal-Registerkarte. Eine neue Registerkarte öffnen und versuchen, eine Verbindung zu Ihrem server. Sollten Sie aufgefordert werden einen Bestätigungs-code. Geben Sie in eine von Ihrem Telefon aus, und wenn alles richtig verknüpft, sollte es funktionieren. Wenn nicht, sollten Sie weiterhin Zugriff auf das Konto leer lassen.

Wenn alles richtig funktioniert, und Sie haben doppelt überprüft, dass es keine Probleme mit der Anmeldung haben, können Sie entfernen die “nullok” Richtlinie in /etc/pam.d/sshd um 2FA obligatorisch.

Wenn Sie verlieren den Zugang, können Sie immer noch melden Sie sich mit der Notfall-codes gegeben, um Sie bei der Konfiguration von PAM und der geheime Schlüssel sollte Ihnen ermöglichen, zu verknüpfen TOTP-app soll deins werden unverknüpfte aus irgendeinem Grund.

Add-Zugang für Service Accounts

Wenn Sie ein service-Konto muss auf Ihren server zugreifen (z.B. rsync), müssen Sie diesen deaktivieren, 2FA für das Konto. Das ist ziemlich einfach zu tun; zuerst werden wir wollen eine neue Gruppe zu Dienstkonten hinzufügen:

sudo groupadd-service

Fügen Sie dann den Benutzer dieser Gruppe:

sudo useradd <Benutzername>
sudo usermod-a -G – <username>

Öffnen Sie als Nächstes die PAM-Konfiguration in /etc/pam.d/sshd ein, und fügen Sie die folgende Zeile:

auth [success=done default=ignore] pam_succeed_if.so user ingroup-service

Beachten Sie, dass dies nicht lassen Sie Zugriff auf Ihre server, ohne die 2FA, aber wenn der Benutzer nicht root kann es nicht sein, eine große Sache.