26.02.2014 Aufrufe

LinuxUser Office Perfekt (Vorschau)

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

NETZ&SYSTEM<br />

YubiKey (Teil 2)<br />

G Ein Ausschnitt aus<br />

der Datei /etc/pam.d/<br />

sshd mit den eingefügten<br />

PAM-Modulen.<br />

DIE AUTOREN„<br />

Thomas Osterried<br />

verwendet Linux seit<br />

Anfang der 90er-Jahre<br />

und arbeitet als Freelancer<br />

mit Linux systemnah<br />

in den Bereichen<br />

Virtualisierung<br />

und Embedded-<br />

Systeme in LAN und<br />

WLAN.<br />

Frank Hofmann<br />

(http:// www. efho. de)<br />

hat Informatik an der<br />

Technischen Universität<br />

Chemnitz studiert.<br />

Der Spezialist für<br />

Druck und Satz koordiniert<br />

seit 2008 das<br />

Regionaltreffen der Linux<br />

User Groups aus<br />

der Region Berlin-<br />

Brandenburg.<br />

Beide Autoren arbeiten<br />

in Berlin im<br />

Büro 2.0, einem<br />

Open-Source Experten-Netzwerk,<br />

und<br />

sind darüber hinaus<br />

Mitgründer des Schulungsunternehmens<br />

Wizards of FOSS.<br />

DANKSAGUNG<br />

Die Autoren bedanken<br />

sich bei Wolfram<br />

Eifler für Kritik, Anmerkungen,<br />

Kommentare<br />

und Ergänzungen<br />

im Vorfeld der Arbeit<br />

an diesem Artikel.<br />

Nachdem Sie die modifizierte<br />

/ etc/pam.d/sshd gespeichert haben,<br />

sollten Sie noch die Benutzerrechte<br />

der Datei einschränken:<br />

Mit chmod 600 /etc/pam.d/ssh sorgen<br />

Sie dafür, dass nur root die<br />

Datei lesen und schreiben darf.<br />

Damit auf dem Zielsystem ein<br />

Abgleich erfolgen kann, müssen<br />

Sie noch die Private-ID ihres<br />

YubiKey hinterlegen. Dazu legen<br />

Sie als normaler Benutzer in Ihrem<br />

Home-Verzeichnis auf dem<br />

Zielsystem das Verzeichnis .yubico<br />

und darin die Textdatei authorized_yubikeys<br />

an. In der Datei<br />

identifizieren Sie alle YubiKeys,<br />

mit denen Sie sich am System anmelden<br />

wollen. Nach dem jeweiligen<br />

Benutzernamen folgen die<br />

Private-IDs der zugehörigen<br />

YubiKeys, jeweils durch einen<br />

Doppelpunkt voneinander getrennt<br />

(Listing 1).<br />

Um zu verhindern, dass ein anderer<br />

Benutzer diese Datei lesen<br />

und damit kopieren kann, um<br />

sich unberechtigt mit Ihrem<br />

Schlüssel anmelden zu können,<br />

ändern Sie noch die Zugriffsrechte<br />

entsprechend:<br />

$ chmod 700 $HOME/.yubico; chmodU<br />

600 $HOME/.yubico/authorized_yuU<br />

bikeys<br />

Danach testen Sie die Anmeldung<br />

über SSH und bauen dazu von Ihrem<br />

lokalen System aus eine Verbindung<br />

zum Zielsystem auf.<br />

Geben Sie Ihre PIN sowie Ihr<br />

Yubico-OTP als Geheimnisse ein.<br />

Auf dem Zielsystem nimmt der<br />

SSH-Daemon die Eingaben entgegen,<br />

verifiziert diese via PAM und<br />

gibt bei Erfolg eine Shell frei.<br />

Haken und Ösen<br />

Die Anmeldung und Authentifizierung<br />

via YubiKey hat Vor- und<br />

Nachteile. Implementieren Sie<br />

das oben beschriebene<br />

Verfahren,<br />

müssen<br />

sich fortan alle<br />

Benutzer, die sich<br />

per SSH auf das<br />

Zielsystem verbinden, mit einer<br />

2-Faktor-Autorisierung anmelden<br />

und sich dazu mit ihrem eigenen<br />

YubiKey ausweisen. Ist der<br />

Schlüssel nicht zur Hand oder<br />

ging verloren, können sie sich<br />

nicht mehr anmelden. Das Login<br />

klappt erst wieder, nachdem mit<br />

administrativer Hilfe der bestehende<br />

Schlüssel in der Datei authorized_yubikeys<br />

ausgetragen, ein<br />

Ersatzschlüssel ergänzt und dem<br />

Benutzer der neue YubiKey ausgehändigt<br />

wurde.<br />

Die Authentifizierung gelingt<br />

nur im Zusammenspiel mit einem<br />

Validierungsserver, in unserem<br />

Beispiel mit der YubiCloud. Wir<br />

haben diese hier gewählt, weil Sie<br />

dadurch sofort mit dem vorgestellten<br />

YubiKey experimentieren<br />

können. Bedenken Sie aber, dass<br />

es sich bei der YubiCloud um einen<br />

Dienst außerhalb Ihres Netzwerks<br />

handelt und daher zur erfolgreichen<br />

Anmeldung stets eine<br />

Internetverbindung vom Zielsystem<br />

aus dahin bestehen muss.<br />

Eigener Validierungsserver<br />

Als Administrator geben Sie freilich<br />

ungern die Validierung aus<br />

der Hand. Als eigene Lösungen<br />

für den Server kommt der in C<br />

geschriebene YubiServer ([7],[8])<br />

infrage, von dem alternative Implementierungen<br />

in Python [9],<br />

Java [10] und PHP [11] zur Verfügung<br />

stehen. Der YubiServer<br />

versteht sich als „simpler und<br />

leichtgewichtiger Validierungsserver<br />

für Yubico-OTP und<br />

HOTP/ OATH“ und bringt die<br />

Oberfläche Yubiserver-admin<br />

mit, mit deren Hilfe Sie Nutzer<br />

und deren Keys verwalten.<br />

LISTING 1<br />

$ cat /home/fho/.yubico/<br />

authorized_yubikeys<br />

fho:ccccccbavaev:vvkiknackeil<br />

Im Unternehmensumfeld ist die<br />

PHP-Variante die erste Wahl, die<br />

zusätzlich das HSM-Protokoll<br />

zum Hardware Key Storage Module<br />

YubiHSM [12] implementiert.<br />

Eine Authentifizierung via<br />

Radius (Modul YubiRadius [13])<br />

und die Anbindung an den freien<br />

Dienstleister OpenID [14] ergänzen<br />

die Palette.<br />

Fazit<br />

Mit dem YubiKey gelingt eine<br />

sinnvolle und sichere Erweiterung<br />

jedes Sicherheitskonzepts<br />

um eine 2-Faktor-Authentifizierung.<br />

Die geschilderten Beispiele<br />

zeigen recht anschaulich, an welchen<br />

Schrauben es zu drehen gilt.<br />

Passende Debian-Pakete und Tutorials<br />

stehen zum Einsatz bereit,<br />

was den Einstieg erleichtert. Das<br />

effektive Einrichten setzt jedoch<br />

ein Grundwissen rund um die<br />

Protokolle zur Authentifizierung<br />

voraus. (jlu) n<br />

INFO<br />

[1] YubiKey (Teil 1): Thomas Osterried,<br />

Frank Hofmann, „Ausbuchstabiert“,<br />

<strong>LinuxUser</strong> 09/ 2012, S. 18,<br />

http:// www. linux-community. de/ 25925<br />

[2] Debian-Paket yubikey-personalization:<br />

http:// packages. debian. org/ squeeze/<br />

yubikey-personalization<br />

[3] Debian-Paket yubikey-personalization-gui:<br />

http:// packages. debian. org/ wheezy/<br />

yubikey-personalization-gui<br />

[4] Github-Repository von Yubico:<br />

https:// github. com/ Yubico/<br />

[5] YubiCloud:<br />

http:// www. yubico. com/ yubicloud<br />

[6] Debian-Paket libyubikey: http:// packages.<br />

debian. org/ squeeze/ libyubikey0<br />

[7] YubiServer: http:// yubiserver. include. gr<br />

[8] YubiKey Validation Server (C):<br />

http:// err. no/ personal/ blog/ 2010/ Mar/ 16<br />

[9] YubiKey Validation Server (Python): http://<br />

code. google. com/ p/ yubico-yubiserve/<br />

[10] YubiKey Validation Server (Java):<br />

http:// code. google. com/ p/ yubikey-server-j<br />

[11] YubiKey Validation Server (PHP): http://<br />

code. google. com/ p/ yubikey-val-server-php/<br />

[12] Yubico HSM Module:<br />

http:// www. yubico. com/ YubiHSM<br />

[13] YubiRadius:<br />

http:// www. yubico. com/ yubiradius<br />

[14] OpenID: http:// openid. net<br />

72 10 | 12<br />

www.linux-user.de

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!