Weiterlesen mit NEWS. Jetzt testen.
Lesezeit ca. 5 Min.

Doppelt sicher


LinuxUser - epaper ⋅ Ausgabe 11/2020 vom 22.10.2020

Mithilfe einer Zwei-Faktor-Authentifizierung lässt sich die Anmeldung an einem System ohne großen Aufwand deutlich besser absichern.


Artikelbild für den Artikel "Doppelt sicher" aus der Ausgabe 11/2020 von LinuxUser. Dieses epaper sofort kaufen oder online lesen mit der Zeitschriften-Flatrate United Kiosk NEWS.

Bildquelle: LinuxUser, Ausgabe 11/2020

© ThomasKoschnick, 123RF

Wenn zwischen einem Angreifer und einem Benutzerkonto als einziger Schutz nur ein Passwort steht, macht das sicherheitsbewusste Administratoren nervös - zu Recht. Zwar lassen sich auf verschiedenen Wegen starke Passwörter erzwingen, doch Sorglosigkeit kann man nicht verbieten. Es ist daher oft sinnvoll, auf eine Zwei-Faktor-Authentifizierung umzusteigen. Dabei bleibt das Passwort als ein Faktor der Authentifizierung erhalten, aber ein zweites Element ...

Weiterlesen
epaper-Einzelheft 5,99€
NEWS Jetzt gratis testen
Bereits gekauft?Anmelden & Lesen
Leseprobe: Abdruck mit freundlicher Genehmigung von LinuxUser. Alle Rechte vorbehalten.
Lesen Sie jetzt diesen Artikel und viele weitere spannende Reportagen, Interviews, Hintergrundberichte, Kommentare und mehr aus über 1000 Magazinen und Zeitungen. Mit der Zeitschriften-Flatrate NEWS von United Kiosk können Sie nicht nur in den aktuellen Ausgaben, sondern auch in Sonderheften und im umfassenden Archiv der Titel stöbern und nach Ihren Themen und Interessensgebieten suchen. Neben der großen Auswahl und dem einfachen Zugriff auf das aktuelle Wissen der Welt profitieren Sie unter anderem von diesen fünf Vorteilen:

  • Schwerpunkt auf deutschsprachige Magazine
  • Papier sparen & Umwelt schonen
  • Nur bei uns: Leselisten (wie Playlists)
  • Zertifizierte Sicherheit
  • Freundlicher Service
Erfahren Sie hier mehr über United Kiosk NEWS.

Mehr aus dieser Ausgabe

Titelbild der Ausgabe 11/2020 von Gewiss kein alter Hut. Zeitschriften als Abo oder epaper bei United Kiosk online kaufen.
Gewiss kein alter Hut
Titelbild der Ausgabe 11/2020 von Getoppt. Zeitschriften als Abo oder epaper bei United Kiosk online kaufen.
Getoppt
Titelbild der Ausgabe 11/2020 von Systemwartung mit Stacer: Digitaler Hausputz. Zeitschriften als Abo oder epaper bei United Kiosk online kaufen.
Systemwartung mit Stacer: Digitaler Hausputz
Titelbild der Ausgabe 11/2020 von iNet Wireless Daemon: Ablösung für WPA Supplicant: Hex, hex. Zeitschriften als Abo oder epaper bei United Kiosk online kaufen.
iNet Wireless Daemon: Ablösung für WPA Supplicant: Hex, hex
Titelbild der Ausgabe 11/2020 von Bunte Tageskarte. Zeitschriften als Abo oder epaper bei United Kiosk online kaufen.
Bunte Tageskarte
Titelbild der Ausgabe 11/2020 von Sunflower: Doppelblüte. Zeitschriften als Abo oder epaper bei United Kiosk online kaufen.
Sunflower: Doppelblüte
Vorheriger Artikel
Gewiss kein alter Hut
aus dieser Ausgabe
Nächster Artikel Getoppt
aus dieser Ausgabe

... kommt hinzu.

In diesem Artikel zeigen wir, wie Sie beim Login neben dem Passwort zusätzlich ein Einmalpasswort verlangen, das eine App auf dem Smartphone erzeugt. Das Verfahren wurde von der Initiative For Open Authentication (OATH) erdacht und ist seit 2011 ein IETF-Standard.

Vorarbeiten

In unserem Testaufbau arbeiten wir mit Ubuntu 20.04, das Vorgehen ist aber auf anderen Distributionen sehr ähnlich. Es gibt einen Linux-Client und einen Server. Auf dem Server, der in unserem Beispiel influx heißt, gibt es das Konto des Benutzers bob. Bob meldet sich bisher ausschließlich per Passwort an. Sie wollen das Konto aber nun auf eine Zwei-Faktor-Authentifizierung umstellen.

Dazu installieren Sie auf Bobs Client zuerst das Authentifizierungsmodul (Listing 1, erste Zeile). Dann loggen Sie sich als bob ein und starten das Modul (zweite Zeile). Das Modul fragt Sie zunächst, ob die Authentifizierung zeitbasiert erfolgen soll. Es will wissen, ob auf den beteiligten Systemen die identische Uhrzeit (bezogen auf UTC) herrscht. Das können Sie bejahen: Alle halbwegs aktuellen Systeme synchronisieren die Uhrzeit über das Network Time Protocol (NTP).

Danach erscheint ein QR-Code 1, den Sie mit einer OTP-App scannen, die Sie auf Ihrem Smartphone installieren. Davon gibt es eine Fülle; Sie können jede App verwenden, die das TOTP-Protokoll nutzt. Großer Beliebtheit erfreut sich etwa die App Google Authenticator, die aber nicht quelloffen ist.

Für unser Beispiel installieren wir die von Red Hat entwickelte App FreeOTP, die es für iOS ↗ und Android ↗ gibt 2. Nachdem Sie den Code gescannt haben, erscheint eine neue Schaltfläche in der App, über die Sie jederzeit ein Einmalpasswort erzeugen können, das dann 30 Sekunden lang gilt.

Legen Sie das Smartphone nun zunächst zur Seite, und kehren Sie zurück auf die Konsole. Unterhalb des QR-Codes aus Abbildung 1 finden Sie noch eine Reihe sogenannter Emergency Scratch Codes. Falls Sie Ihr Smartphone verlieren sollten, können Sie sich mit diesen Codes noch einloggen, um einen neuen QR-Code zu generieren und damit von vorn anzufangen. Jeder der Emergency Scratch Codes lässt sich nur einmal benutzen. Speichern Sie diese Codes an einem sicheren Ort.

Jetzt stellt Ihnen Google Authenticator noch eine Reihe von Sicherheitsfragen, die Sie alle getrost mit y beantworten können 3. Es geht dabei darum, die Anzahl der Logins pro Zeitintervall zu begrenzen, aber gleichzeitig eine gewisse Toleranz für Zeitunterschiede zwischen Client und Server zu gewährleisten.

Diese Schritte müssen Sie für jeden Benutzer auf dem System vornehmen, der die Zwei-Faktor-Authentifizierung verwenden soll. Auf der Client-Seite sind damit alle Arbeiten erledigt; es geht auf dem Server weiter.

PAM anpassen

Um den Zugriff per Zwei-Faktor-Authentifizierung zu aktivieren, müssen Sie noch zwei Konfigurationsdateien anpassen, wofür Sie Root-Rechte benötigen.

Den Anfang macht die Datei /etc/ ssh/sshd_config. Finden Sie darin die beiden Zeilen, die mit UsePAM und ChallengeResponseAuthentication beginnen, und stellen Sie sicher, dass beide auf yes enden (Listing 2).

Danach editieren Sie, ebenfalls als Root, die Datei /etc/pam.d/sshd. Weit oben in der Datei steht die Zeile @include common‑auth. Fügen Sie dahinter die Zeile auth required pam_google_authenticator. so ein, sodass die Abfolge wie in Listing 3 aussieht.

1 Den von Google Authenticator erzeugten QR-Code scannen Sie mit einer OTPApp wie FreeOTP.


Schlüssel und Passwort

Nun starten Sie den SSH-Dienst auf dem Zielsystem mit dem Kommando systemctl restart ssh einmal durch. Beim nächsten Login-Versuch per Secure Shell fragt der Server jetzt nicht mehr nur das Benutzerpasswort ab (Password: im Screenshot), sondern auch das Einmalpasswort (Verification Code:), das Sie per App erzeugen 4.

UTC: Coordinated Universal Time. Weltzeit für einheitliche Zeitangaben, entspricht MEZ - 1 respektive der früheren Greenwich Mean Time (GMT). Coordinated bedeutet, dass UTC Schwankungen der Erdrotation durch gelegentliche Schaltsekunden ausgleicht.

OTP: One-time Password. Ein Einmalkennwort gilt nur für eine einzige Verwendung und kann kein zweites Mal benutzt werden.

TOTP: Time-based One-time Password Algorithmus. Verfahren zum Erzeugen von zeitlich limitierten Einmalkennwörtern auf Basis des Keyed-Hash Message Authentication Code (HMAC).

2 Im Gegensatz zu Google Authenticator ist die von Red Hat entwickelte App FreeOTP eine quelloffene Anwendung, die mehr Transparenz bietet.


3 Alle von Google Authenticator gestellten Fragen können Sie getrost mit „y“ beantworten.


Die Änderungen, die Sie bisher vorgenommen haben, gelten nur für den Zugriff per SSH. Möchten Sie die Zwei-Faktor-Authentifizierung nicht nur für den entfernten Login aktivieren, sondern auch für den lokalen, ändern Sie dazu die Datei /etc/pam.d/login (Listing 4).

Es genügt, hinter der Zeile @include common‑auth die Zeile auth required pam_google_authenticator.so einzufügen. Die im Listing vorhandene Zeile session optional pam_motd.so noupdate dient zur Anzeige von Benachrichtigungen (Message of the Day) und ist nicht auf jedem System vorhanden.

Window-Manager GDM

Falls Ihr System Gnome als grafische Benutzeroberfläche nutzt, können Sie auch hier die Zwei-Faktor-Authentifizierung beim Login aktivieren. Sie nehmen dazu dieselbe Änderung wie im vorigen Abschnitt noch einmal vor, nur in einer anderen Datei: der /etc/pam.d/gdm‑password (Listing 5). Nach einem Neustart fragt auch Gnome den zweiten Faktor beim Login mit ab.

Lassen Sie uns zum Login per SSH zurückkommen. Viele Benutzer bevorzugen den passwortlosen Zugang per Public-Key-Authentifizierung. Dazu gibt der Benutzer bob auf seinem Client das Kommando ssh‑keygen ‑t rsa ‑b 4096 ein, um ein Schlüsselpaar zu generieren 5.

Passwortlose Anmeldung

Danach genügt das Kommando ssh‑copy‑id bob@influx, gefolgt von der Eingabe des aktuellen Passworts, und Bob kann sich fortan ohne Passworteingabe auf dem l-Server influx anmelden. Auch diese Art des Logins lässt sich mit 2FA kombinieren.

Dazu ändern Sie zwei Konfigurationsdateien auf dem Server, die Sie bereits kennengelernt haben. Öffnen Sie zunächst die /etc/ssh/sshd_config, und geben Sie am Ende folgende Zeile ein:

AuthenticationMethods publickey,´ keyboard‑interactive

Die zweite Datei, die Sie bearbeiten müssen, ist wieder die /etc/pam.d/sshd. Hier deaktivieren Sie die Zeile @include common‑auth, indem Sie dieser ein Hash-Zeichen (#) voranstellen:

#@include common‑auth

4 Der Anmeldedialog fragt neben dem Benutzerpasswort (Password:) nun auch das Einmalpasswort (Verification code:) ab.


Weitere Infos und interessante Links www.linux-user.de/qr/45182

Starten Sie den SSH-Dienst mit systemctl restart ssh neu. Wenn Bob sich nun auf dem Server einloggt, muss er zwar kein Passwort eingeben, wohl aber das Einmalpasswort aus der App.

Fazit

Sicherheit ist keine Hexerei - selbst, wenn Sie sich nicht täglich aus beruflichen Gründen mit der Materie befassen. Wie Sie gesehen haben, lässt sich schon mit einfachen Mitteln die Anmeldung an einem System mithilfe einer Zwei-Faktor-Authentifizierung deutlich besser gegen unbefugten Zugriff absichern - auf der Konsole sowie am grafischen Login.

Das bietet einen erhöhten Schutz gegen unerwünschte Besucher, selbst wenn ein Anwender letztendlich ein schwaches Passwort wählt. (jlu)

5 Für das passwortlose Login erzeugt Bob auf seinem Client ein Schlüsselpaar.

Listing 1

$ sudo apt install libpam‑google‑authenticator

$ google‑authenticator

Listing 2

UsePAM yes […] ChallengeResponseAuthentication yes

Listing 3

[…] @include common‑auth

auth required pam_google_ authenticator.so […]

Listing 4

[…] @include common‑auth session optional pam_motd.so noupdate

# diese Zeile einfuegen: auth required pam_google_ authenticator.so […]

Listing 5

[…] @include common‑auth # diese Zeile einfuegen: auth required pam_google_ authenticator.so […]

README

Eine 2-Faktor-Authentifizierung bietet einen erhöhten Schutz gegen unerwünschte Besucher, selbst wenn Sie ein schwaches Passwort wählen. Als zweiter Faktor neben dem Passwort dient dabei ein zeitlich gültigkeitsbeschränkter sechsstelliger Zahlencode, den etwa eine Authenticator-App auf dem Smartphone erzeugt.