In diesem Tutorial beschreiben wir die notwendigen Schritte zum Konfigurieren der Zwei-Faktor-Authentifizierung (2FA) mit dem Google-Authentifikator auf einem Ubuntu 16.04 VPS. Diese Anwendung enthält Implementierungen von Einmal-Passcode-Generatoren für mehrere mobile Plattformen. Diese Methode fügt Ihrem Server eine weitere Schutzebene hinzu und fügt dem grundlegenden Anmeldeverfahren einen zusätzlichen Schritt hinzu.
1. Anmeldung über SSH
Melden Sie sich über SSH als Benutzer root bei Ihrem Server an
ssh root@IP_Address
2. Aktualisieren Sie die Systempakete
Alle installierten Pakete aktualisieren:
apt-get update && apt-get upgrade
3. Google Authenticator installieren
Installieren Sie den Google Authenticator Paket.
apt-get install libpam-google-authenticator
Führen Sie nach der Installation des Pakets das Programm google-authenticator aus, um einen Schlüssel für den Benutzer zu erstellen, mit dem Sie sich anmelden werden. Das Programm kann zwei Arten von Authentifizierungstoken generieren – zeitbasiert und einmalige Token . Zeitbasierte Passwörter ändern sich zufällig zu einem bestimmten Zeitpunkt, und Einmalpasswörter sind für eine einzige Authentifizierung gültig.
4. Führen Sie Google Authenticator aus
In unserem Fall verwenden wir zeitbasierte Passwörter. Führen Sie das Programm aus, um die Schlüssel zu erstellen
google-authenticator
Sie werden gefragt, ob die Authentifizierung zeitbasiert sein soll.
Do you want authentication tokens to be time-based (y/n) y
Ein großer QR-Code wird in Ihrem Terminal generiert. Sie können den Code mit der Authentifizierungsanwendung auf Ihrem Android-/iOS-/Windows-Telefon oder -Tablet scannen oder den auf dem Bildschirm generierten geheimen Schlüssel eingeben.
Notfall-Scratch-Codes werden ebenfalls generiert. Sie können diese Codes zur Authentifizierung verwenden, falls Sie Ihr Mobilgerät verlieren.
Your emergency scratch codes are: 80463533 68335920 89221348 12489672 11144603
Speichern Sie die Authentifizierungseinstellungen für den Root-Benutzer, indem Sie die nächste Frage mit JA beantworten
Do you want me to update your "/root/.google_authenticator" file (y/n) y
5. Konfigurieren Sie den Authentifikator zum Generieren von Einmalpasswörtern.
Als Nächstes können Sie den Authentifikator so konfigurieren, dass Einmalkennwörter generiert werden. Da sie 30 Sekunden dauern, können alle generierten Passwörter einmal verwendet werden.
Do you want to disallow multiple uses of the same authentication token? This restricts you to one login about every 30s, but it increases your chances to notice or even prevent man-in-the-middle attacks (y/n) y
Sie können die nächste Einstellung verwenden, wenn Sie Probleme mit der Zeitsynchronisierung auf Ihren Geräten haben, daher werden wir diese Option nicht verwenden
By default, tokens are good for 30 seconds and in order to compensate for possible time-skew between the client and the server, we allow an extra token before and after the current time. If you experience problems with poor time synchronization, you can increase the window from its default size of 1:30min to about 4min. Do you want to do so (y/n) n
Die nächste Einstellung verhindert Brute-Force-Angriffe. Sie haben nur drei Versuche alle 30 Sekunden, das richtige Passwort einzugeben.
If the computer that you are logging into isn't hardened against brute-force login attempts, you can enable rate-limiting for the authentication module. By default, this limits attackers to no more than 3 login attempts every 30s. Do you want to enable rate-limiting (y/n) y
Jetzt haben wir die Google Authenticator-Anwendung konfiguriert und der nächste Schritt besteht darin, die Authentifizierungseinstellungen in openSSH zu konfigurieren. Öffnen Sie dazu die Datei „/etc/pam.d/sshd“ und fügen Sie am Ende der Datei folgende Zeile hinzu:
# vim /etc/pam.d/sshd auth required pam_google_authenticator.so
Speichern Sie die Änderungen und öffnen Sie die Datei „/etc/ssh/sshd_config“ und aktivieren Sie die Challenge-Response-Authentifizierung.
# vim /etc/ssh/sshd_config ChallengeResponseAuthentication yes
6. SSH-Server neu starten
Speichern Sie die Datei und starten Sie den SSH-Server neu, damit die Änderungen wirksam werden.
systemctl restart ssh
Wenn Sie dieses Tutorial genau befolgt haben, ist die Zwei-Faktor-Authentifizierung auf Ihrem Server aktiviert und jedes Mal, wenn Sie versuchen, sich über SSH bei Ihrem Ubuntu VPS anzumelden, müssen Sie Ihr Benutzerkennwort und den von der Google-Authentifizierungsanwendung auf Ihrem Mobilgerät generierten Bestätigungscode eingeben .
Natürlich müssen Sie SSH nicht mit Zwei-Faktor-Authentifizierung auf Ubuntu 16.04 sichern, wenn Sie einen unserer Linux-VPS-Hosting-Dienste verwenden. In diesem Fall können Sie einfach unsere erfahrenen Linux-Administratoren bitten, SSH mit Zwei-Faktor-Authentifizierung zu sichern auf Ubuntu 16.04. Sie sind rund um die Uhr erreichbar und kümmern sich umgehend um Ihr Anliegen.
PS. Wenn Ihnen dieser Beitrag zur Sicherung von SSH mit Zwei-Faktor-Authentifizierung unter Ubuntu 16.04 gefallen hat, teilen Sie ihn bitte mit Ihren Freunden in den sozialen Netzwerken über die Schaltflächen unten oder hinterlassen Sie eine Antwort im Kommentarbereich. Danke.
Eine neue Version ist hier verfügbar:Set Up Multi-Factor Authentication for SSH on Ubuntu 20.04.