• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

yubikey und gnome-keyring und kwallet

stka

Guru
Hi ho zusammen,
ich habe jetzt endlich meine beiden Rechner auf die Anmeldung mit OTP und yubikey umgestellt, das klappt auch super auch ssh, sudo und Installation der updates ist kein Problem. Alle Passwörter für Webseiten liegen in keepassXC und die Datenbank wird über den yubikey mit challange-response (der yubikey hat zwei slots) entsperrt. Nur wenn ich mich angemeldet habe und einen Browser starte, kommt die Passwortabfrage für den gnome-keyring oder kwallet, abhängig von dem verwendeten Windowmanager. Hat da jemand eine Idee wir ich das auch über den yubikey machen kann, oder wie ich die beiden Dinger deaktivieren kann? Denn Passwörter liegen eh keine mehr im Browser.

Danke schon mal
Stefan
PS Wenn Interesse besteht, will ich die Einrichtung hier gerne mal in einer Kurzform posten.
 

/dev/null

Moderator
Teammitglied
Hi Stefan,

habe mich über deinen Beitrag sehr gefreut.
Ich selbst nutze meinen YK bislang lediglich, um meinen KeepassXC zu entsperren. Und das schon recht lange.
Sonst nutze ich das Teil in meiner Tätigkeit als ehrenamtl. Administrator in einer Organisation, welche ihre gesamte Mailkommunikation und Dateinspeicherung über einen Provider abwickelt, welcher Kopano nutzt. Und da gehts eben nur mit dem YK.
An weiteren Informationen habe ich großes Interesse.

MfG Peter
 
OP
S

stka

Guru
Na Ok, :)
Da ich mal denke, dass die meisten hier auf eine Antwort warten, poste ich das mal hier. Das ganze ist eine recht kurz gehaltenen Form, also ohne viel Prosa :). Eins noch, wenn ihr den yubikey so einrichtet, benötigt der immer Kontakt zum yubico-Server, da der yubikey selbst keine Uhr hat ist die Einstellung von OTP ohne den Kontakt zum Server zwar möglich, aber nicht so zuverlässig. Das wäre dann über "OATH-HOTP" zu realisieren. Habe ich aber noch nicht getestet. Aber vielleicht macht das einer von euch und postet die Einrichtung dann auch hier :)
Ach ja, noch eins: Die Anleitung ist für Ubuntu, sollte aber so ähnlich für Suse usw. gehen, nur die PAM-Konfiguration wird anders sein.

Los geht's

1. udev anpassen siehe https://support.yubico.com/support/solutions/articles/15000006449-using-your-u2f-yubikey-with-linux
Installationsanweisung unter https://developers.yubico.com/yubico-pam/YubiKey_and_SSH_via_PAM.html
2. Ubuntu PPA installieren
sudo add-apt-repository ppa:yubico/stable
sudo apt-get update
sudo apt-get install libpam-yubico

3. yubikey-personalization-gui installieren

4. Yubikey in USB stecken und zum Testen auf der Konsole Knopf drücken
Es wird ein OTP angezeigt und versucht es als Kommando auszuführen:
----------
stefan  I ccccccldrbkelerneubhlbiffnvjdkuhfgbvebrtcldk
zsh: command not found: ccccccldrbkelerneubhlbiffnvjdkuhfgbvebrtcldk
----------

5. ID festlegen mit der personalization-gui
- klick auf "Yubico OTP"
- Slot 1 auswählen und auf "write Configuration" klicken. Die Warnung kann einfach mit "yes" bestätigt werden.
- Konfiguration speichern
- Klick auf "Upload to yubico" sonst funktioniert OTP nicht!!!
- Nochmal auf einer Konsole den Knopf am yubikey betätigen und das OTP in die Webseite kopieren.
- Dann den key hochladen
- Auf der Testwebseite die Authentifizierung prüfen
- Public-ID aufschreiben
- Dann auf der Webseite https://upgrade.yubico.com/getapikey/ einen API-key anfordern
ID und secret speichern GAAAAAANZ wichtig!!!
- Auf Webseite https://developers.yubico.com/yubico-pam/ und zu "Central authorization mapping" gehen
- Datei "/etc/yubikey_mappings" erstellen und für jeden Benutzer mit seinen Schlüsseln (mindestens 2 ) eintragen
Die ID die dort eingetragen werden muss sind die ersten 12 Zeichen des OTP
stefan:abcdefhijkl:<zweite-id>
- Jetzt muss die Datei /etc/pam.d/common-auth angepasst werden. VORSICHT immer ein "root-Konsole" geöffnet lassen beim Ändern von PAM-Dateien!
Für jeden yubikey muss ein Zeile mit der ID eingetragen werden:
auth sufficient pam_yubico.so id=12345 authfile=/etc/yubikey_mappings
auth sufficient pam_yubico.so id=54321 authfile=/etc/yubikey_mappings
- Persönliche Anpassung in .yubicon/authorized_yubikeys
stefan:abcdefhijkl:<zweite-id>
- Jetzt auf eine Konsole mit strg+alt+F3 gehen und die Anmeldung testen
- Jetzt sollte auch bei der GUI Anmeldung der yubikey funktionieren
- Bis zu diesem Zeitpunkt geht noch die Anmeldung mit Passwort und yubikey
- In der Datei /etc/pam.d/common-auth dier folgenden Zeile auskommentieren:
#auth [success=1 default=ignore] pam_unix.so nullok_secure
Dann ist die Anmeldung mit Passwort nicht mehr möglich
Ein "debug" am Ende der Zeile hilft bei der Fehlersuche

Für ssh noch in der /etc/ssh/sshd_config challenge-response abschalten
# Change to yes to enable challenge-response passwords (beware issues with
# some PAM modules and threads)
ChallengeResponseAuthentication no

6. Einrichtung 2er Slot am yubikey mit challange-respons für keepassxc https://keepassxc.org/docs/#faq-yubikey-2fa
- In der personalization-gui auf "challange-Response" klicken und "HMAC-SHA1" auswählen
den zweiten Slot des yubikeys auswählen
auf "Generate" klicken

Fertig

Jetzt den zweiten yubikey genau so einrichten. Einen der Keys gut wegschließen fals der erste defekt oder verloren ist.
 

/dev/null

Moderator
Teammitglied
Danke.
Ähnliches habe ich schon mal in der c't gelesen. Aber da war mir noch nicht so.

Bevor ich es "nachbaue" noch einige Fragen:
- Gibt es Probleme bei weiteren Nutzern, die keinen YK benutzen? (Ich halte immer ein Gastkonto vor, und meiner xyl wäre das garantiert zu "umständlich".)
- Zugang von außerhalb per ssh, also "peter@<kiste> (und dann ein langer PW-gesicherter Key) weiterhin möglich? (Das wäre ja auch der Noteingang.)
- und auf der Konsole per root und PW?
- mein bald zu kaufender zweiter Key sollte einer mit NFC sein. Allerding von einem anderen Hersteller (Solo oder ??) => kompatibel zu deiner Lösung?


MfG Peter
 
OP
S

stka

Guru
Hi Peter,

ich fange mal hinten an:
Ob der yubikey zum Key von "solo" kompatibel ist weiß ich nicht. Ich denke aber mal nein, denn der yubikey verbindet sich, bei der Nutzung von OTP, immer mit einem yubico-Server, entweder bei yubico direkt oder bei einem eigenen Server.

Den Zugang per Passwort weiterhin zuzulassen spricht ja gegen das System, dann kannst du es auch gleich bleiben lassen ;-) Denn du willst ja gerade verhindern, dass eine Anmeldung mit Passwort noch möglich ist. Du kannst natürlich auch jede PAM-Datei einzeln editieren und nur die Dienste konfigurieren die du benötigst. Dann musst du die PAM-Einträge nicht in der common-auth machen sondern direkt in den Dateien für den Dienst, so kannst du dann ssh oder sudo ausnehmen. Du kannst einige PAM-Konfigurationen auch abhängig von der UID machen, so ist es möglich z.B. die Authentifizierung gegen ein AD über winbind erst ab der UID=1001 durchzuführen so wäre der erste Benutzer eines Linux-Systemes (UID=1000) außen vor. Aber ob da mit dem yubico-Modul geht weiß ich nicht müsstes du nachlesen.
Beim yubikey musst du aufpassen, es gibt einen für knapp 20.-€ der kann aber nix der einzige der alles kann ist der "yubikey 5 NFC" damit habe ich das auch gemacht.

Wenn du den Key für Windows-System nutzen willst, dann geht ohen yubikey gar nichts mehr, also da IMMER einen zweiten als Backup einrichten! Bei Linux kannst du immer noch über eine live-Distribution booten und dann die PAM-Dateien anpassen. Was dann aber nicht mehr geht wenn du deine Platte mit LUKS verschlüsselt hast und mit dem yubikey entschlüsseln willst, dann bist du am :zensur: wenn du deinen yubikey verlierst oder schrottest.

Ich werde jetzt noch zwei davon kaufen und bei meiner Frau das Windows-System absichern und weg von der Passwortliste auf Papier und im Browser zu kommen.

Hoffe das hilft die weiter

Stefan
 

/dev/null

Moderator
Teammitglied
Klar hilft mir das weiter.
Ich werde das mal mit einem meiner beiden Notebooks testen. Das ist der, mit dem ich "früher" immer unterwegs war und dessen SSD auch verschlüsselt ist. Da bin ich (natürlich neben root) auch der einzige Nutzer.
Und ja, ich habe den "besseren" YK.
Habe gestern bei heise gelesen, dass ssh jetzt wohl auch mit dem YK (oder einem anderen Produkt ??) kompatibel ist.
Letztendlich bin ich sehr daran interessiert eine Authentisierung möglichst mit irgend einem "Sicherheitsschlüssel" zu machen und ich hoffe mal, dass die allgemeine Trägheit bald überwunden wird und FIDO2 usw. zum Durchbruch kommt. (Nicht nur, weil meine Altersgruppe zunehmend Passwörter vergisst. Noch ist es aber bei mir noch nicht so weit :???: )

MfG Peter
 
OP
S

stka

Guru
Also, ssh geht da ssh die PAM-Dateien nutzt und inklusive ssh und sudo nutzt (wenigstens bei allem was auf Debian läuft). Und das mit den vergessen Passwörtern würde ich bei dir nicht auf's Alter schieben sondern auf deine Nickname hier :D :D
 

/dev/null

Moderator
Teammitglied
Teilerfolg

Einen großen Teil der "Arbeiten" hatte ich ja schon erledigt, als ich das Öffnen meiner KeepassXC-Datei mit Hilfe eines (sonst viel zu einfachen) PW + YK organisiert hatte. Schnee von gestern ... .
Es hat nicht lange gedauert, und es lief auch mit der Anmeldung nur per YK als User auf meinem NB. Zumindest, so lange ich diesen per LAN an meinem Router angeschlossen habe.
Eigentlich Ziel erreicht! Perfekt, komfortaben und einfach.

Aber:
Alle meine "außerhäusig" betriebenen Geräte laufen aber ausschließlich über mein Wireguard-VPN zu meinem Heimnetz und von dort über den heimischen Router ins "böse Netz". Sinn dahinter: ich will allem, was außerhäusig meine Daten transportiert (bspw. eben unverschlüsseltes WLAN, Hotel usw. und eben auch das in unserer Region sehr verbreitete Freifunk-Netz!) nur verschlüsselte Daten zum Mitlesen anbieten. Und zwar ohne jedesmal darüber nachdenken zu müssen, worüber mein Zugang läuft und was ich gerade zu tun gedenke. Bspw. irgendwelche Daten auf dem NAS öffnen usw. Mein IT-Gerödel zu Hause ist ausschließlich (!) per VPN zu erreichen.
Ja, und mit dieser Konstellation hat der YK eben seine Probleme, weil er das VPN noch nicht hat, wenn er seinen Server erreichen will. Mein Rechner bietet mir als erstes nach dem LogIn ein Fenster an, wo ich für Wireguard das root-PW eingeben muss. Aber so weit kommt er ja nicht.

Ich denke weiter drüber nach.


MfG Peter (der mit dem Papierkorb ;) )
 
OP
S

stka

Guru
Und ich dachte immer ich wäre paranoid wenn es um Verschlüsselung geht :D :roll: :p
Aber für VPN gibt es auch eine Lösung mit dem yubikey, oder du stellt um auf zeitbasiertes OTP, ist halt etwas kompliziertet und kann auch mal in die Hose gehen, da der yubikey keine eigenen Uhr hat.
 
OP
S

stka

Guru
Die Deutsche Bahn in Zusammenarbeit mit den Mobilfunkprovidern hat mir die Grenzen der Anmeldung mit dem Yubiky und OTP gezeigt. Da der yubikey keine eigen Zeit generieren kann, ist er auf einen yubikey-Server angewiesen, mit dem er sich bei der Anmeldung "Unterhalten" kann. Ist man nun irgendwo ohne Wlan oder fester Internetverbindung, klappt das nicht. Aber zum Glück hat der Yubikey einen zweiten Slot in dem eine andere Art der Authentifizierung eingetragen werden kann. Da ich den zweiten Slot schon für "Challange-Response" eingerichtet hatte um mich bei dem Passwortmanager "keepassXC" mit dem yubikey zu Authentifizieren, habe ich einfach eine weitere PAM-Regel erstellt, so dass ich mich auch dann noch anmelden kann. Dann kommt zwar für jeden yubikey eine Abfrage über OTP, aber dann kommt Challange-Response und die Anmeldung klappt dann. Meine Datei common-auth sieht jetzt wie folgt aus:
Code:
# here are the per-package modules (the "Primary" block)
auth sufficient pam_yubico.so id=12345 authfile=/etc/yubikey_mappings
auth sufficient pam_yubico.so id=23456 authfile=/etc/yubikey_mappings
auth sufficient pam_yubico.so id=34567 authfile=/etc/yubikey_mappings
auth required pam_yubico.so mode=challenge-response chalresp_path=/etc/yubico
#auth   [success=1 default=ignore]      pam_unix.so nullok_secure
Wie ihr hier sehen könnt, kommen erst drei yubikeys mit OTP (hier solltet ihr MINDESTENS 2 haben) dann kommt die challange-response Einrichtung. Der Pfad zeigt auf das Verzeichnis in dem für alle drei keys der Schlüssel für Challange-Response liegt.

Wie man Challage-Response für die Anmeldung einrichtet kann hier super gut nachgelesen werden.
https://developers.yubico.com/yubico-pam/Authentication_Using_Challenge-Response.html

Jetzt kann mich auch die Zusammenarbeit der Bahn und Vodafone nicht mehr von der Anmeldung im Zug abhalten :)

BTW: Die eigentliche Frage mit Gnome-keyring und kwallet ist immer noch nicht gelöst. Ich habe jetzt in der Konfiguration für beide das Passwort entfernt, so startet der Browser ohne eine Passwortabfrage. Das Passwort schützt ja die im Browser gespeicherten Passwörter, da ich alle Passwörter im Keepass habe, kann mir das egal sein.
 
Oben