Sie können das von Google erstellte Open-Source-PAM (Pluggable Authentication Module) verwenden, das als Google Authenticator bezeichnet wird . Dieses Modul ist sowohl in den Standard-Repositorys als auch in GitHub verfügbar, sodass Sie es aus dem Quellcode erstellen können. In Verbindung mit der gleichnamigen Android-, iOS- oder Blackberry-App werden zeitbasierte, zeitkritische Codes für die Authentifizierung zusammen mit Ihrem Kennwort erstellt. Da es sich um ein PAM-Modul handelt, kann es praktisch überall abgelegt werden . Lass uns anfangen!
Installieren
Zu Beginn können Sie die PAM folgendermaßen installieren:
sudo apt-get install libpam-google-authenticator
Einfach!
Einrichten:
Nach der Installation möchten Sie auch die entsprechende mobile Anwendung für Android, iOS oder Blackberry installieren (abhängig von Ihrer mobilen Plattform). Jeder ist ohne den anderen nutzlos. Nachdem Sie die Anwendung haben, die Sie für Ihr Mobilgerät benötigen, führen Sie Folgendes in einem Terminal aus:
google-authenticator
Zunächst werden Ihnen einige Fragen gestellt. Die erste Frage ist die einzige, auf die Sie mit "Ja" antworten müssen. Sie werden gefragt, ob die Codes zeitbasiert sein sollen. Lesen Sie danach jede Frage und treffen Sie die Wahl, die für Sie am sinnvollsten ist.
Nach Abschluss der Ersteinrichtung sehen Sie in Ihrem Terminal einen sehr großen QR-Code sowie einige andere Informationen. Die Zeile "Ihr neuer geheimer Schlüssel lautet:" wird dringend benötigt, wenn Sie den QR-Code nicht zum Koppeln Ihres Geräts verwenden möchten. Schließen Sie dieses Fenster also erst, wenn Sie eingerichtet sind! Die "Rubbelcodes", die Sie erhalten, sind ebenfalls wichtig, da Sie sie zum Anmelden verwenden, wenn Sie Ihr mobiles Gerät verlieren. Schreiben Sie sie auf und bewahren Sie sie an einem sicheren Ort auf.
Öffnen Sie jetzt auf Ihrem Mobilgerät die Google Authenticator-Anwendung und wählen Sie "Konto einrichten". Sie können entweder den erzeugten QR-Code scannen oder "Mit Schlüssel versehen" auswählen. Wenn Sie den QR-Code scannen, wird alles automatisch unter einem Konto mit dem Namen "your_user @ your_host" gespeichert. Wenn Sie jedoch "Bereitgestellten Schlüssel verwenden" auswählen, müssen Sie manuell einen Namen, einen Schlüssel und einen Tokentyp eingeben. Der Name kann beliebig sein. Der Schlüssel wäre der zuvor erzeugte geheime Schlüssel. Der Typ ist standardmäßig zeitbasiert. Nach dem Einrichten sehen Sie das Konto im Hauptfenster der Google Authenticator-App sowie einen kreisförmigen Timer daneben. Dieser Timer wird alle 30 Sekunden erschöpft und ein neuer Code wird generiert.
Aktivieren Sie es!
Hier kommt die Magie. Da es sich um ein PAM-Modul handelt, kann es an verschiedenen Orten eingesetzt werden. Ich sudo
füge Authentifizierung zu Anfragen, SSH-Anmeldungen und LightDM-Anmeldungen hinzu. Nachdem Sie dieses Tutorial gelesen haben, können Sie es basierend auf denselben Techniken an einer anderen Stelle aktivieren.
SSH
Ich mache das zuerst, weil es einen zusätzlichen Schritt gibt. Als erstes müssen Sie Ihre SSH-Konfigurationsdatei bearbeiten:
gksudo gedit /etc/ssh/sshd_config
Suchen Sie nach der Zeile, in der steht:
ChallengeResponseAuthentication no
und ändern Sie das "Nein" in ein "Ja".
Nun müssen Sie das PAM-Modul für ssh bearbeiten:
gksudo gedit /etc/pam.d/sshd
Fügen Sie am Ende dieser Datei die folgende Zeile hinzu:
auth required pam_google_authenticator.so nullok
Das Argument "nullok" weist das System an, keinen Bestätigungscode anzufordern, wenn ein Benutzer keine Zwei-Faktor-Authentifizierung eingerichtet hat. Nach dieser Bearbeitung starten Sie Ihren ssh-Dienst neu:
sudo service ssh restart
sudo
Anfragen
Bearbeiten Sie die PAM-Datei für sudo
:
gksudo gedit /etc/pam.d/sudo
Fügen Sie am Ende die folgende Zeile hinzu:
auth required pam_google_authenticator.so nullok
Jetzt werden Sie bei jeder sudo
Anfrage nach einem Bestätigungscode und einem Passwort gefragt.
LightDM (GUI-Login)
Bearbeiten Sie die PAM-Datei für LightDM:
gksudo gedit /etc/pam.d/lightdm
Fügen Sie am Ende die folgende Zeile hinzu:
auth required pam_google_authenticator.so nullok
Das ist es! Jedes Mal, wenn Sie sich über die GUI anmelden, werden Sie nach Ihrem Passwort nach einem Bestätigungscode gefragt.
Systemweite und TTY-Anmeldung
Selbst wenn Sie die oben genannten Methoden aktivieren, werden Sie nicht nach einem Bestätigungscode gefragt, wenn Sie mit CTRL+ ALT+ zu einem TTY wechseln F#. Um dies zu beheben, bearbeiten Sie die common-auth
PAM-Datei:
gksudo gedit /etc/pam.d/common-auth
und füge die folgende Zeile ganz am Ende hinzu:
auth required pam_google_authenticator.so nullok
Hinweis: Da diese Common-Auth-Datei in allen anderen Auth-Typ-Dateien enthalten ist, müssen Sie die erforderlichen Auth-Zeilen aus den anderen Dateien entfernen. Andernfalls werden Sie zweimal nach dem Bestätigungscode gefragt, und Sie können sich nach dem Anmelden nicht mehr anmelden.
Einpacken
Wie Sie sehen konnten, war es ziemlich einfach, diese Authentifizierung hinzuzufügen. Wenn Sie einen anderen Display-Manager als LightDM verwenden, können Sie einfach die oben stehende LightDM-Zeile entsprechend ändern. Da Ihr Mobilgerät und Ihr System diesen geheimen Schlüssel bereits gemeinsam genutzt haben, sollten sie immer synchron sein. Für diese Einrichtung gibt es keine Interaktion mit Google-Servern oder anderen Internetressourcen. Selbst wenn beide Geräte vollständig offline waren, sind die in Ihrer Anwendung angezeigten Bestätigungscodes korrekt. Wenn Sie sich mit einer der von Ihnen aktivierten Methoden anmelden müssen, müssen Sie nur Ihre mobile Anwendung öffnen und den aktuellen Bestätigungscode abrufen.
Habe Spaß!!