GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Multi-Faktor-Authentifizierung auf Linux-Systemen einrichten

Angesichts der steigenden Anzahl von Sicherheitsverletzungen und Passwortkompromittierungen benötigen wir so viele Sicherheitsebenen wie möglich.

Eine Möglichkeit, zusätzliche Sicherheit zu erreichen, besteht darin, eine zusätzliche Authentifizierungsebene hinzuzufügen. Multi-Faktor-Authentifizierung (MFA) ist eine Methode, um mehr als einen Berechtigungsnachweis zu verlangen, um Ihre Identität nachzuweisen.

Was ist MFA?

Wenn Sie sich bei einem Konto oder Gerät anmelden, werden Sie normalerweise nach einem Benutzernamen und einem Passwort gefragt. Wenn Sie eine SSH-Verbindung zu einem Linux-Computer herstellen, werden Sie möglicherweise nach einem SSH-Schlüsselpaar gefragt. Bei der mehrstufigen Authentifizierung müssen Benutzer mehr als eine Information angeben, um sich erfolgreich bei einem Konto oder Linux-Host zu authentifizieren. Bei den zusätzlichen Informationen kann es sich um ein Einmalpasswort (OTP) handeln, das per SMS an Ihr Mobiltelefon gesendet wird, oder um Anmeldeinformationen von einer App wie Google Authenticator, Twilio Authy oder FreeOTP.

Pluggable Authentication Modules (PAM) sind der in Linux verwendete Authentifizierungsmechanismus. In diesem Artikel verwenden wir das Google PAM-Modul, um MFA zu aktivieren, sodass Benutzer sich mit zeitbasierten Einmalpasswortcodes (TOTP) anmelden können.

Implementieren Sie das Google-Authentifizierungsmodul

Installieren Sie zunächst das Google-Authentifizierungsmodul auf einem Linux-Computer. Öffnen Sie dazu ein Terminalfenster und führen Sie den folgenden Befehl aus:

# sudo dnf install google-authenticator -y

Als nächstes konfigurieren Sie google-authenticator um OTP-Codes zu generieren. Führen Sie den folgenden Befehl aus, um den Konfigurationsprozess zu starten:

# google-authenticator

Dieses Tool stellt eine Reihe von Fragen. Beantworten Sie die meisten dieser Fragen mit Ja (y ), es sei denn, Sie benötigen etwas anderes als die Standardeinstellung.

Do you want authentication tokens to be time-based (y/n) y

Dadurch werden ein QR-Code auf dem Bildschirm, ein geheimer Schlüssel und Wiederherstellungscodes generiert. Scannen Sie mit einer Authentifizierungs-App wie Google Authenticator auf einem Smartphone den QR-Code, der mit dem obigen Befehl generiert wurde. Beantworten Sie die restlichen Fragen, um den Vorgang abzuschließen.

Do you want me to update your "/home/user/.google_authenticator" file? (y/n) y

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

By default, a new token is generated every 30 seconds by the mobile app. 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. This allows for a time skew of up to 30 seconds between authentication server and client. If you experience problems with poor time synchronization, you can increase the window from its default size of 3 permitted codes (one previous code, the current code, the next code) to 17 permitted codes (the 8 previous codes, the current code, and the 8 next codes). This will permit for a time skew of up to 4 minutes between client and server.
Do you want to do so? (y/n) y

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 three login attempts every 30s.
Do you want to enable rate-limiting? (y/n) y

Konfigurieren Sie SSH so, dass es zur Eingabe des OTP-Codes auffordert

Bearbeiten Sie einige SSH-Konfigurationsdateien, um einen OTP-Code als Zweitfaktor-Authentifizierung anzufordern.

Öffnen Sie mit Ihrem bevorzugten Texteditor /etc/pam.d/sshd zum Bearbeiten:

# sudo vi /etc/pam.d/sshd

Fügen Sie die folgenden Konfigurationszeilen hinzu:

auth required pam_google_authenticator.so nullok

Diese Konfigurationszeile ermöglicht es PAM, das Google Authenticator PAM-Modul zu verwenden, das wir im vorherigen Schritt installiert haben.

Mit dem nullok Eintrag in der Zeile, erfordert SSH keinen OTP-Code für Benutzer auf dem Computer, die nicht für MFA konfiguriert sind. Entfernen Sie diese Option vollständig, um jeden Benutzer zu zwingen, MFA auf diesem System zu verwenden.

Kommentieren Sie als Nächstes die folgende Zeile aus, um die Kennwortauthentifizierung für Anmeldungen zu deaktivieren:

#auth substack password-auth

Speichern und schließen Sie die Datei.

Ändern Sie im nächsten Schritt die SSH-Konfiguration so, dass die Eingabeaufforderung für den OTP-Code nach der erfolgreichen Authentifizierung des SSH-Schlüsselpaars angezeigt wird.

Öffnen Sie mit Ihrem bevorzugten Texteditor /etc/ssh/sshd_config zum Bearbeiten:

# sudo vi /etc/ssh/sshd_config

Suchen Sie die Zeile ChallengeResponseAuthentication no und kommentieren Sie sie aus und fügen Sie eine neue Konfigurationszeile ChallengeResponseAuthentication yes hinzu . Diese Zeile lässt SSH nach einer Challenge Response fragen . In unserem Fall ist die Antwort ein OTP-Code nach einer erfolgreichen SSH-Schlüssel-basierten Authentifizierung. Hier ist die Zeile:

#ChallengeResponseAuthentication no

ChallengeResponseAuthentication yes

Lassen Sie schließlich SSH wissen, dass es nach beidem fragen soll einen SSH-Schlüssel und einen Verifizierungscode, um uns zu authentifizieren. SSH sucht nach einem SSH-Schlüsselpaar (publickey ) und dann den OTP-Code (keyboard-interactive ). Fügen Sie am Ende der Datei Folgendes hinzu:

AuthenticationMethods publickey,keyboard-interactive

Um das SSH-Schlüsselpaar und die OTP-Authentifizierung nur für einen bestimmten Benutzer zu aktivieren, fügen Sie stattdessen Folgendes hinzu:

Match user <username>

           AuthenticationMethods publickey,keyboard-interactive

Speichern Sie die Datei und beenden Sie sie. Starten Sie den SSH-Dienst neu, damit die Änderungen wirksam werden:

# sudo systemctl restart sshd

Testen Sie die Konfiguration

Testen wir unser Setup. Öffnen Sie ein Terminalfenster und verbinden Sie sich per SSH mit dem Linux-Host. Sie werden von der Authentifizierungs-App nach einem OTP-Code gefragt.

Um neben einem SSH-Schlüsselpaar und einem OTP-Code nach einem Passwort gefragt zu werden, öffnen Sie dann /etc/pam.d/ssd Datei zum Bearbeiten und kommentieren Sie diese Zeile aus:

auth substack password-auth

Als nächstes öffnen Sie /etc/ssh/sshd_config Datei zum Bearbeiten und fügen Sie eine weitere Authentifizierungsmethode hinzu:

AuthenticationMethods publickey,password publickay,keyboard-interactive

Vergessen Sie nicht, SSH neu zu starten, nachdem Sie diese Änderungen vorgenommen haben.

Abschluss

Mit MFA fügen wir eine weitere Authentifizierungsebene hinzu, die unsere Systeme sicherer macht. Zusätzlich zur traditionellen benutzernamen- und passwortbasierten Authentifizierung verwenden wir sicherere Methoden wie ein SSH-Schlüsselpaar und TOTP (Google Authenticator), um sich beim System anzumelden. Durch die Umsetzung dieser Maßnahmen verbessern wir die Systemsicherheit und erschweren das Eindringen in Linux-Geräte.

[ Möchten Sie mehr über Sicherheit erfahren? Schauen Sie sich die Checkliste für IT-Sicherheit und Compliance an. ]


Linux
  1. Eine Einführung in den Auslagerungsbereich auf Linux-Systemen

  2. Linux Massen-/Remoteverwaltung?

  3. Dienste in Linux aktivieren

  4. Einrichten einer Subdomain mit Apache unter Linux

  5. Festlegen von Linux-Umgebungsvariablen

Installieren Sie Microsoft Visual Studio-Code unter Linux

So richten Sie die Multi-Faktor-Authentifizierung für SSH unter Linux ein

Logrotate unter Linux einrichten

Installieren von Microsoft Visual Studio Code unter Linux

Top 3 Linux-Serverbetriebssysteme im Jahr 2021

Zeitzoneneinstellung in Linux