Wie kann ich einen Passcode-Generator zur Authentifizierung für Remoteanmeldungen verwenden?

55

Ich möchte die Authentifizierung meiner SSH-Anmeldungen verstärken, indem ich einen weiteren Faktor hinzufüge: ein Passcode-Generator-Gerät oder eine Passcode-Generierungsanwendung auf meinem Mobiltelefon. Die einzigen offensichtlichen Optionen im Standard-Setup sind ein festes Kennwort und ein Schlüsselpaar. Wie kann ich das machen?

(Wenn ich ein Passwort und einen Passcode-Generator verwende, bietet dies eine Zwei-Faktor-Authentifizierung (2FA): Das Passwort ist "was ich weiß" und der Passcode ist "was ich habe".)

Jorge Castro
quelle

Antworten:

49

Eine Möglichkeit hierfür ist das von Google bereitgestellte Tool Google Authenticator .

  1. Installieren Sie libpam-google-authenticator Installieren Sie libpam-google-authenticator

    • oder nur sudo apt-get install libpam-google-authenticator
  2. Bearbeiten /etc/pam.d/sshd, um das Modul einzuschließen:

    • sudoedit /etc/pam.d/sshd
    • und füge dann diese Zeile oben in die Datei ein und speichere:

      auth required pam_google_authenticator.so
      
  3. Bearbeiten Sie Ihre SSH-Konfigurationsdatei, um die Herausforderung zu aktivieren:

    • sudoedit /etc/ssh/sshd_config und ändern Sie dann die Antwortauthentifizierung von:

      ChallengeResponseAuthentication no 
      

      zu

      ChallengeResponseAuthentication yes
      

      und speichern Sie die Datei.

  4. sudo restart ssh SSH neu starten

  5. Lauf google-authenticator

    • Dadurch erhalten Sie Ihren geheimen Schlüssel, den Bestätigungscode und die Notfall-Rubbelcodes. Es werden Ihnen auch einige Fragen zur Geschwindigkeitsbegrenzung gestellt.

Mobile Anwendungen:

Sie benötigen einen dieser Codes, um den Authentifizierungscode auf einem anderen Gerät zu erhalten.

Verwandte und nützliche:

Beachten Sie, dass das Kombinieren eines Passworts mit Einmalpasswörtern eine Zwei-Faktor-Authentifizierung ist: Es kombiniert das, was Sie wissen (ein Passwort) mit dem, was Sie haben (das Passcode-Generator-Gerät). Wenn Sie dagegen einmal verwendbare Passwörter mit einem SSH-Schlüsselpaar kombinieren, dreht sich alles um das, was Sie haben. Wenn zwei Authentifizierungsfaktoren vom selben Typ sind, haben Sie keine Zwei-Faktor-Authentifizierung. Dies wird manchmal als eineinhalb-Faktor-Authentifizierung bezeichnet.

Jorge Castro
quelle
12

Google Authenticator ist in Ordnung für Ihre persönlichen Server, aber Sie werden möglicherweise feststellen, dass es sich nicht gut in Ihre vorhandene Identitätsinfrastruktur einfügt. Wenn Sie andere Optionen ausprobieren möchten, sollten Sie RADIUS als Authentifizierungsprotokoll und das Plug-in für Pam-Radius verwenden. Alle unternehmensorientierten Zwei-Faktor-Authentifizierungssysteme unterstützen Radius. Wir haben ein Dokument darüber geschrieben, wie Sie Ubuntu die WiKID-Zwei-Faktor-Authentifizierung über pam-radius hinzufügen können .

Durch die Verwendung von radius können Sie neben SSH auch andere Systeme an denselben Authentifizierungsserver anbinden. Sie können Authentifizierungsanforderungen auch über Freeradius an LDAP und dann an Ihren 2FA-Server weiterleiten, um die Autorisierung von der Authentifizierung zu trennen. Dasselbe können Sie übrigens auch mit AD tun.

nowen
quelle
1

Ich fordere alle die folgende Zeile am setzen oben und nicht unten der /etc/pam.d/sshdwie oben bereits beschrieben wurde (jetzt korrigiert):

auth required pam_google_authenticator.so

Andernfalls bleibt Ihr System für Brute-Force-Angriffe auf Ihr Kennwort offen und setzt den ersten Teil der Zwei-Faktor-Authentifizierung außer Kraft : Ihr Kennwort.

Sie werden zuerst nach Ihrem Bestätigungscode und dann nach Ihrem Kennwort gefragt (unabhängig davon, ob der Code korrekt war). Wenn einer der beiden falsch ist, müssen Sie beide erneut eingeben. Sie können es anders herum konfigurieren, aber das ist eine etwas schwierigere Änderung, die in der aktuellen sshd-Standardkonfiguration für Ubuntu (15.04) beschrieben wird.

Überprüfen Sie dieses Problem, um zu erfahren, warum es benötigt wird:

https://github.com/google/google-authenticator/issues/514

Maarten
quelle