AA_123rf-787673_DwightSmith-123RF.jpg

© Dwight Smith,123RF

Praktikable Zwei-Faktor-Authentifizierung für Linux

Doppeldecker

Mobile Geräte benötigen ein Plus an Sicherheit, sollen die darauf gespeicherten Daten nicht in unbefugte Hände gelangen. Deswegen sichern Sie den Zugang am besten mit einem zweiten Faktor in Form eines YubiKeys ab.

Bislang melden Sie sich als Benutzer nur mit der Kombination aus Nutzername und Passwort am System an. Daneben stehen weitere Schnittstellen zur Verfügung, etwa via Smartcard [1], SSH-Key [2] oder gegenüber einem LDAP-Server ([3],[4]). Dagegen hat sich das Anmeldung per Fingerabdruck [5], via GPG-Key oder Personalausweis [6] bislang noch nicht durchgesetzt.

Bei den meisten gängigen Verfahren beruht die Überprüfung Ihrer Identität auf nur einem einzigen Faktor, der Kombination aus Nutzername (Login) und Passwort beziehungsweise Schlüssel. Das genügt in vielen Fällen, nicht aber für die Sicherheit mobiler Geräte sowie sicherheitskritischer Zugänge. Insbesondere die verteilte Rechenpower verkürzt das Knacken von Passworten immer mehr, sodass ein schlichtes Verlängern des Passworts das Ganze nur etwas nach hinten schiebt.

Hier kann nur ein zweiter Faktor Abhilfe schaffen, der weitere Zugangsinformationen über einen zusätzlichen Kanal bereitstellt. Das Verfahren ähnelt der PIN/TAN-Nutzung, wie Sie es vom Onlinebanking her kennen. Als Authentifizierungstoken kommt hier der YubiKey des skandinavischen Herstellers Yubico [7] zum Einsatz, der bereits in unterschiedlichen Szenarien hervorragende Dienste leistete ([8], [9], [10], [11]).

Welches konkrete Modell Sie verwenden, spielt hier keine Rolle. Das Token generiert dynamische Einmalpassworte (One Time Password, OTP), welche das Phishing – also das Ausspähen und Abfangen von Zugangsdaten – sinnlos machen. Große Portale wie beispielsweise Google und Owncloud [12] unterstützen das Token als Authentifizierungsmethode seit Längerem.

Kasten: Einstieg in PAM

Als zentrales Authentifizierungssystem unter Linux dient PAM [23]. Es entscheidet darüber, ob Sie Zugang zum System erhalten oder nicht. PAM steht für Pluggable Authentication Modules und beschreibt sich selbst als "flexibler Mechanismus zur Authentifizierung von Benutzern". Die verfügbaren Verfahren zur Authentifizierung stehen als separate Module bereit, die Sie nach Bedarf mit einem Dienst (Service) verbinden.

PAM gibt es nicht nur für Linux und Solaris, sondern auch als OpenPAM [24] für diverse BSD-Derivate sowie Mac OS X ab 10.6 "Snow Leopard" [25]. Für Debian/Ubuntu heißen die entsprechenden Pakete libpam-modules, libpam-modules-bin, libpam-runtime und libpam0g. Der verwendete Mechanismus hat sich bislang bewährt. Er gilt als sicher, zuverlässig und flexibel.

Das machen sich auch die Anwendungen zunutze, die auf PAM aufbauen: Sie greifen auf die Module zurück, die Sie in der PAM-Konfiguration unter /etc/pam.d/ eintragen und aktivieren (Listing 1). So muss nicht jede Applikation die benötigten Mechanismen zur Authentifizierung nochmals neu entwickeln. PAM verteilt die Überprüfung auf verschiedene Dateien – im Prinzip eine Datei pro Programm, Werkzeug oder Dienst – und gibt Ihnen damit den Freiraum, deren Nutzung nach Bedarf zu justieren.

Listing 1

# ls /etc/pam.d
atd              common-session                 gdm-autologin  ppp
chfn             common-session-noninteractive  gdm-welcome    samba
chpasswd         cron                           login          sshd
chsh             cups                           newusers       su
common-account   gdm                            other          sudo
common-auth      gdm3                           passwd         xscreensaver
common-password  gdm3-autologin                 polkit-1
#

Zwei-Faktor-Authentifizierung

Der YubiKey folgt einem einfachen Prinzip: Die von Ihrem Token generierte Zeichenkette wird von einem Authentifizierungssystem auf Gültigkeit überprüft. Liefert dieses eine positive Rückmeldung, gilt die Zeichenkette als OTP für eine Anmeldung und die Authentifizierungsschritte somit als erfolgreich. Als Authentifizierungssystem existieren aktuell fünf Varianten.

Bei Variante 1, dem YubiCloud-Dienst des Herstellers Yubico, erfolgt die Abfrage via Internet als HTTP(S)-Request. Die lokale Basis dafür bildet das PAM-Modul libpam-yubico. Variante 2 nutzt ebenfalls dieses PAM-Modul, aber im Modus HMAC-SHA1 [13] zur lokalen Authentifizierung über ein kryptografisches Hash-Verfahren. Variante 3 nennt sich YubiHSM und entspricht Variante 1, kommt aber in Form zusätzlicher Hardware, die Sie über die USB-Schnittstelle an das (lokale) Authentifizierungssystem anstecken.

Variante 4 heißt YubiX, entspricht ebenfalls Variante 1, und kommt als vorkonfigurierte virtuelle Maschine, die bereits alle Komponenten zur Authentifizierung umfasst und somit als Teil Ihrer eigenen lokalen Infrastruktur [14] dienen kann. Variante 5 stellt das PAM-Modul YubiPAM [15], das Ihnen eine lokale Authentifizierung auf dem System ermöglicht und keine externen Dienste zur Überprüfung benötigt.

Die Varianten 1, 2, 4 und 5 lassen sich kostenfrei nutzen, die ersten drei beziehen Sie von der Webseite des Herstellers beziehungsweise über die Paketverwaltung des Systems. Variante 5 steht als Quellcode auf Github bereit. Für Variante 3 fallen hingegen Kosten von rund 650 Euro für die Crypto-Hardware an.

Da sich Variante 3 eher nicht für Endanwender rechnet und Variante 4 sich noch im Test befindet, betrachten wir nachfolgend nur die Varianten 1, 2 und 5. Die Einrichtung erfolgte auf Debian "Wheezy". Für Fedora gibt es eine schon etwas ältere, ausführliche Beschreibung ([16],[17]), die uns plausibel erscheint.

Variante 1

Das PAM-Modul libpam-yubico liegt als separates Paket in den Repositories der Distributionen. Dieses Modul pflegt der Hersteller Yubico eigenständig. Es prüft die Gültigkeit des erzeugten OTPs über eine Kommunikation mit der YubiCloud, also dem Yubico-eigenen cloudbasierten Validierungsdienst. Das PAM-Modul und die YubiKeys sind im Auslieferungszustand so konfiguriert, dass sie mit diesem Dienst kommunizieren. Das vereinfacht die Benutzung erheblich und führt sehr schnell zu einem Erfolgserlebnis und höherer Sicherheit.

Bitte beachten Sie aber, dass die vorgestellte Einrichtung und nachfolgende Nutzung im Alltag eine stabile Internetverbindung benötigt. Über diesen Kanal prüft der Yubico-Authentifizierungsserver die Validität des vom YubiKey generierten OTPs als zweiten Faktor. Führen Sie die vorgestellten Schritte ohne bestehende Internet-Verbindung aus, können Sie sich nicht auf dem System anmelden. Halten Sie daher während der Konfiguration eine zusätzliche Root-Shell offen, um die Einstellungen im Bedarfsfall zurücksetzen zu können, falls bei den Experimenten etwas schiefgeht.

Zunächst einmal benötigen Sie die YubiKey-ID, also die ersten zwölf Zeichen des OTPs, das Ihr YubiKey erzeugt. Diese ID erhalten Sie, indem Sie durch den Druck auf den YubiKey-Knopf ein OTP erzeugen und in einem Texteditor ausgeben lassen.

Im zweiten Schritt ordnen Sie den YubiKey einem bestimmten Benutzer (Login) zu. Das geschieht entweder über einen Eintrag im Home-Verzeichnis des Benutzers oder (besser) zentral über die Datei /etc/yubikey_mappings. Dort erfolgt die Zuordnung der YubiKeys mittels einer Liste von durch Doppelpunkte getrennte Felder. Feld 1 nimmt den Benutzernamen auf, ab Feld 2 folgt die ID des jeweiligen YubiKeys. Listing 2 zeigt das Vorgehen für den Benutzer frank.

Listing 2

# touch /etc/yubikey_mappings
# echo frank:ccccccbevgvr >> /etc/yubikey_mappings

Im dritten Schritt benötigen Sie ein zusätzliches Geheimnis, das Sie der ID Ihres YubiKeys zuordnen und damit die Abfrage bei Yubico zusätzlich absichern. Diesen sogenannten API-Key erzeugen Sie über den Upgrade-Service von Yubico [18]. Im Formular auf der Webseite tragen Sie im oberen Feld als Referenz Ihre Mailadresse ein, im unteren Feld ein OTP Ihres YubiKeys. Ein Klick auf den Knopf Get API Key erzeugt dann eine Service-ID sowie das zusätzliche Geheimnis (Abbildung 1). Jedes dieser Paare aus Service-ID und Geheimnis ist einzigartig. Aus Sicherheitsgründen empfiehlt sich, es nur einmal zu nutzen und pro Dienst beziehungsweise Server jeweils ein separates Paar zu verwenden.

Abbildung 1: Die vom Upgrade-Service generierte Service-ID und das zusätzliche Geheimnis.

Im vierten Schritt melden Sie sich als Benutzer root an und installieren falls noch nicht vorhanden über die Paketverwaltung das Paket libpam-yubico (bei Debian/Ubuntu) beziehungsweise yubico-pam (bei Fedora) nach. Danach konfigurieren Sie das neue PAM-Modul und verbinden es mittels Service-ID und zusätzlichem Geheimnis in Form von Parametern. Sie lösen das mit dem Kommando dpkg-reconfigure libpam-yubico aus.

Im entsprechenden Dialog (Abbildung 2) tragen Sie als Parameter zunächst die Service-ID und das Geheimnis ein. Zusätzlich benötigt das PAM-Modul die Information, wo Sie die Zuordnung zwischen Benutzer und YubiKey hinterlegt haben. Dazu ergänzen Sie den Parameter authfile=/etc/yubikey_mappings und bestätigen den Dialog.

Abbildung 2: Ergänzen der Service-ID und des zusätzlichen Geheimnisses für Libpam-yubico.

Anschließend aktivieren Sie das neue PAM-Modul. Abbildung 3 zeigt das Dialogfenster nach dem (automatischen) Aufruf von pam-auth-update. Es listet die bereits verfügbaren PAM-Module und deren Status auf. Mit der Leertaste schalten Sie das entsprechende Modul ein beziehungsweise wieder aus.

Abbildung 3: Ein- und Ausschalten der installierten PAM-Module.

Als Ergebnis erhalten Sie einen zusätzlichen Eintrag in /etc/pam.d/common-auth (Abbildung 4). Dieser besagt, dass das Modul pam_yubico.so erforderlich ist (required), im Client-Modus arbeitet (client) und diesen Schritt überspringt, sofern bereits eine Authentifizierung über eine vorherige Ebene im PAM-Stack erfolgreich war (try_first_pass).

Abbildung 4: Modulkonfiguration in /etc/pam.d/common-auth.

Die drei letzten Parameter bezeichnen die oben genannte Service-ID (id), das zusätzliche Geheimnis (key) sowie die Zuordnung zur Authorisierungsdatei (authfile). Weitere Parameter, wie beispielsweise die Angabe eines LDAP-Servers oder eines eigenen Diensts zur Authentifizierung, dokumentieren die Manpage und das Handbuch zum Modul ausführlich [19].

Von nun an benötigen alle PAM-basierten Logins – und damit jeder Benutzer auf dem System – den eigenen, vorab konfigurierten, zusätzlichen YubiKey zur Authentifizierung als zweiten Schlüssel. Listing 3 zeigt, wie sich dadurch der Anmeldedialog im Terminal erweitert.

Listing 3

$ su
Yubikey for `root':
Passwort:
[...]

Kasten: Login via SSH

Der SSH-Dialog bietet nur ein Eingabefeld oder einen Prompt, in dem Sie normalerweise nur das Passwort eingeben. In der beschriebenen Einstellung ist auch dieser Zugang bereits mittels YubiKey-OTP abgesichert. Daher tragen Sie am Prompt zuerst das Passwort (ohne [Eingabe]) ein und direkt danach Ihr YubiKey-OTP. PAM nimmt die Eingabe im Hintergrund wieder auseinander und prüft beide Teile auf Korrektheit. Eine ausführliche Besprechung der Absicherung von SSH finden Sie im zweiten Teil unserer YubiKey-Serie in LU 10/2012 [9].

Diesen Artikel als PDF kaufen

Express-Kauf als PDF

Umfang: 7 Heftseiten

Preis € 0,99
(inkl. 19% MwSt.)

LinuxCommunity kaufen

Einzelne Ausgabe
 
Abonnements
 
TABLET & SMARTPHONE APPS
Bald erhältlich
Get it on Google Play

Deutschland

Ähnliche Artikel

  • Sichere Authentifizierung mit dem YubiKey (Teil 2)
    SSH-Zugänge gelten als sicher – sofern die Zugangsdaten in den richtigen Händen bleiben. Mit dem YubiKey ergänzen Sie ihr Sicherheitskonzept um eine wirksame 2-Faktor-Authentifizierung.
  • Sichere Authentifizierung mit dem YubiKey
    1001 Passworte verwalten: Ein Alptraum. Passwortzettel am Monitor: Keine gute Idee. Passwort zu kompliziert und vergessen: Ärgerlich. Der YubiKey löst all diese Probleme und ist kinderleicht zu handhaben.
  • Via NFC authentifizieren mit YubiKey Neo und Smartphone
    Der Zugangsschutz geht in eine neue Runde – diesmal kontaktlos per NFC. Mit einem Smartphone und dem YubiKey Neo greifen Sie von mobilen Geräten sicher auf Ihre Daten zu.
  • Doppelt gemoppelt
    Für die Desktop-Anmeldung genügen normalerweise Benutzername und Passwort – beide oft leicht zu erraten. Für besseren Schutz sorgt eine Zwei-Faktor-Authentifizierung mithilfe eines PAM-Moduls und einer kostenlosen Handy-App.
Kommentare

Infos zur Publikation

title_2016_06

Digitale Ausgabe: Preis € 5,99
(inkl. 19% MwSt.)

Mit der Zeitschrift LinuxUser sind Sie als Power-User, Shell-Guru oder Administrator im kleinen Unternehmen monatlich auf dem aktuelle Stand in Sachen Linux und Open Source.

Sie sind sich nicht sicher, ob die Themen Ihnen liegen? Im Probeabo erhalten Sie drei Ausgaben zum reduzierten Preis. Einzelhefte, Abonnements sowie digitale Ausgaben erwerben Sie ganz einfach in unserem Online-Shop.

NEU: DIGITALE AUSGABEN FÜR TABLET & SMARTPHONE

HINWEIS ZU PAYPAL: Die Zahlung ist auch ohne eigenes Paypal-Konto ganz einfach per Kreditkarte oder Lastschrift möglich!       

Aktuelle Fragen

Ideenwettbewerb
G.-P. Möller, 28.05.2016 10:57, 0 Antworten
Liebe User, im Rahmen eines großen Forschungsprojekts am Lehrstuhl für Technologie- und Innova...
Welche Drucker sind Linux-mint kompatibel?
Johannes Nacke, 20.05.2016 07:32, 4 Antworten
Hallo Ihr Lieben, ich bitte um mitteilung welche Drucker Kompatibel sind mit Linux-Mint. LG Joh...
MS LifeCam HD-5000 an Debian
Kay Michael, 13.04.2016 22:55, 0 Antworten
Hallo, ich versuche die oben erwähnte Cam an einem Thin Client mit Debian zu betreiben. Linux...
Import von Evolution nach KMail erzeugt nur leere Ordner
Klaus-Christian Falkner, 06.04.2016 12:57, 3 Antworten
Hallo, da ich vor einiger Zeit von Ubuntu auf Kubuntu umgestiegen bin, würde ich gerne meine E...
Sophos lässt sich nicht unter Lubuntu installieren
Chrstina Turm, 30.03.2016 20:56, 3 Antworten
Hi Leute, habe mir vor paar Tagen auf ein Notebook, das ohne Linux ausgedient hätte, Linux dr...