Workshop: Open Source-Tipp

Doppelt hält besser

Die Authentifizierung von Benutzern mit Hilfe eines statischen Passwortes ist nicht wirklich sicher. Einmal-Passwörter in Kombination mit einer PIN sind wesentlich besser. Die aktuelle FreeIPA-Version unterstützt nun auch diese Art der Authentifizierung. Wir setzen einen entsprechenden Dienst auf.
Die Datenmenge in Unternehmen wächst unaufhaltsam und auch deren notwendige Verfügbarkeit steht längst außer Frage. Deshalb befasst sich IT-Administrator im ... (mehr)

Mit der soeben erschienenen Version 4.0 bringt das Identity-Management Framework FreeIPA Support für Two Factor Authentication (2FA) und One-Time-Passwords (OTP). Bei dieser Art der Authentifizierung bestehen die beiden notwendigen Faktoren für eine erfolgreiche Authentifizierung aus etwas, das der Nutzer besitzen muss (üblicherweise ein Hardware- oder Software-Token) und etwas, das er wissen muss (ein statisches Passwort oder eine PIN). RSA als prominentes Beispiel für Hardware-Token ist sicherlich den meisten Lesern ein Begriff. FreeOTP [1] und der Google Authenticator [2] sind bekannte Vertreter für Software-Tokens.

FreeIPA-Architektur

Bei den Tokens selbst unterscheiden wir dann noch zwischen HOTP (HMAC-based One-Time-Password Algorithm) und TOTP (Time-based One-Time-Password Algorithm). Die erste Variante erzeugt jeweils eine Art Checksumme über einen Counter, der sich bei jedem neuen Token-Request erhöht. Der Counter wird auf Basis eines geheimen Schlüssels erzeugt. Dieser Schlüssel ist lediglich dem Hard- oder Software-Token und dem Authentifizierungsserver (hier Free-IPA) bekannt. Die zweite Variante funktioniert ähnlich, nur wird hier eine Checksumme auf Basis eines geheimen Schlüssels und der Unix-Zeit berechnet. Beide Varianten verwenden eine verkürzte Version der Checksumme (üblicherweise sechs bis acht Zahlen) als das eigentliche Token.

Oftmals ist bereits ein Authentifizierungsserver im Netzwerk vorhanden, der seinen Job über das Radius-Protokoll erledigt. FreeIPA kann in diesem Fall als Radius-Proxy arbeiten und die Anfrage an einen anderen Server weiterleiten. Die notwendige Konfiguration hierfür ist allerdings nicht Thema dieses Workshops, stattdessen beschreibt er den Zugriff auf die native OTP-Implementierung.

Bild 1: Nach dem Import des Tokens in den Google Authenticator erhält der User Zugriff auf das jeweils aktuelle One-Time-Password.

Damit dies funktioniert, muss die von FreeIPA eingesetzte MIT-Kerberos-Implementierung den RFC 6560 (OTP Preauthentication) unterstützen. Der Support hierfür ist seit kurzer Zeit verfügbar. Um herauszubekommen, ob ein Benutzer mittels OTP oder eines regulären Passwortes zu authentifizieren ist, muss das jeweilige Kerberos-Principal in der LDAP-Datenbank herausgesucht werden. Für diesen Zugriff erweitert FreeIPA die Kerberos-Implementierung um die Bibliothek .

Zusätzlich kommt das Framework mit einem neuen Service namens "ipa-otpd" daher. Das Key Distribution Center (KDC) des FreeIPA-Servers kommuniziert mittels Radius (über einen Unix Domain Socket) mit diesem neuen Service. Dieser sieht in der LDAP-Datenbank nach, ob der sich anmeldende Benutzer mittels nativen OTP oder eines entfernten Authentifizierungsservers zu verifizieren ist. Im ersten Fall wird eine LDAP bind-Anfrage an den eingebauten Directory-Server geschickt, ansonsten wird die Anfrage an den konfigurierten Authentifizierungsserver weitergereicht. Da der eingebaute Directory-Server jedoch von Hause aus keine OTP-Authentifizierung beherrscht, liefert FreeIPA in der neuen Version ein neues Directory-Server-Plug-In (). Hiermit ist eine Authentifizierung mittels OTP schließlich möglich.

Bild 2: Mit Google Authenticator lässt sich der QRCode, der von FreeIPA erzeugt wurde, scannen.

FreeIPA-Setup

Auf einem Fedora 20-System benötigen Sie die folgende yum-Konfigurationsdatei, um die aktuelle Version des FreeIPA-Servers zu installieren:

[pviktori-freeipa]
name=Copr repo for freeipa owned by pviktori
baseurl=http://copr-be.cloud.fedoraproject.org/results/pviktori/freeipa/fedora-$releasever-$basearch/
skip_if_unavailable=True
gpgcheck=0
enabled=1

Speichern Sie diese Datei als . Da das Framework eine aktuelle Version des Pakets "389-ds-base" benötigt, müssen Sie zur FreeIPA-Installation das "Updates-testing Repository" aktivieren. Um dieses nur für die Installation des FreeIPA-Servers zu aktivieren, führen Sie die Installation mit dem yum-Paketmanager wie folgt durch:

yum install --enablerepo=updates-testing freeipa-server

In Fedora 21 ist FreeIPA 4.0 bereits enthalten. Rawhide-Benutzer können die Version deshalb aus dem regulären Software-Repository heraus installieren. Das Setup des Identity-Management-Frameworks läuft nicht anders ab als in den Versionen zuvor auch. Mittels

ipa-server-install --setup-dns --forwarder=DNS-IP

rufen Sie das Installationsprogramm auf. Verwenden Sie hier einen passenden DNS-Server als Forwarder.

Die Installation läuft gewohnt einfach ab, lediglich das Setup der OTP-spezifischen Plug-Ins fällt auf. Ist die Installation abgeschlossen, so können Sie sich als Admin-Benutzer über die URL in das neue Web-Interface des Frameworks einloggen und neue Benutzer anlegen. Natürlich funktioniert dies auch mittels auf der Kommandozeile. Im Webinterface fällt auf, dass dieses um einiges moderner und aufgeräumter wirkt als noch in der Vorgängerversion.

comments powered by Disqus
Einmal pro Woche aktuelle News, kostenlose Artikel und nützliche ADMIN-Tipps.
Ich habe die Datenschutzerklärung gelesen und bin einverstanden.

Konfigurationsmanagement

Ich konfiguriere meine Server

  • von Hand
  • mit eigenen Skripts
  • mit Puppet
  • mit Ansible
  • mit Saltstack
  • mit Chef
  • mit CFengine
  • mit dem Nix-System
  • mit Containern
  • mit anderer Konfigurationsmanagement-Software

Ausgabe /2023