Dienstgeräte - Verschlüsselung des home

Hallo @martin.res, hallo @dorian ,

ich habe mir jetzt unabhängig von dir, Martin, noch die Mühe gemacht und noch die Verschlüsselung der Leihgeräte mit LUKS durchgezogen. Den Nachteil, den du schreibst: „kann nur ein Benutzer“ habe ich hingenommen, da es sich wirklich um einzel-Verleihen von Geräten geht. Wenn eines zurück geht, kann der/die nächste sich das einrichten. Daher habe ich beschlossen das über zwei Partitionen zu regeln: „tmp“ für das TMP-Verzeichnis und /var/tmp wie bei dir und „/home/user“ für den User.

Entscheidend ist die (1) Vorbereitung der Partitionen und eben noch ein paar Kleinigkeiten um einen lokalen User sich einloggen zu lassen und (2) ein turnkey-Skript, das die Verschlüsselung erstellt und das Einbinden des verschlüsselten User-Homes macht.

Momentan macht das bei mir pam_mount.
Jetzt kommt eventuell @dorian ins Spiel:

  • Ich habe das Gefühl, dass pam_mount zu Gunsten von pam_exec rausgeflogen ist… also würde ich das gerne im Sinne des linuxmuster-linuxclient7 „richtig“ machen… bloß wie?
  • Ich habe mein turnkey-Skript in bash und zenity geschrieben wegen der vielen Bash-Befehle, sonst würde ein python-skript mit einer GUI auch gehen.
  • Ich würde mir wünschen, dass wir uns hier einigen, wie man am besten einen oder mehrere lokale User anlegt und das dem linuxmuster-linuxclient7 Befehl zur Einrichtung beibringt. Ich habe z.B. einen user „anonym“ für autologin falls kein Leihgerät und nicht im Netzwerk. Ich habe einen User „alex“ für obiges Einloggen und Einrichten der Verschlüsselung und dann gibt es noch „linuxadmin“, den wohl jeder hat… usw. da gibt es verschiedene Ansätze, kann ich mir vorstellen.

Hier mal zwei Beispiele in Aktion (erster Versuch nochmal gelöscht, weil der admin.key fehlt)

Ich würde mich freuen, wenn wir die Version von Martin oder mir in linuxmuster-linuxclient7 einbauen könnten, so dass das jeder einrichten kann.

Hier noch mein Skript inkl. Desktop-Datei: linuxmuster-privateaccount-turnkey.tgz (3,2 KB)

Und ich habe es auf der Wikiseite noch dokumentiert: anwenderwiki:linuxclient:home_verschluesselung [CommunityWiki]

VG, Tobias

Hallo Tobias,

warum willst Du den linuxmuster-linuxclient auf den Leihgeräten haben? Eigentlich braucht man den doch nicht, oder willst Du in der Schule dann die Serverhomes mounten lassen?
Meine Sorge wäre hier, dass wenn es Updates gibt, irgendwas nicht mehr geht, was man normalerweise mit einem neuen Image löst, aber das geht ja bei diesen Geräten nur schwierig.

Ich hätte ein Ubuntu 22.04 für den Zweck, wenn Du magst…
LG
Max

Morgen!

Oh, danke für das abermalige Angebot, und wenn mein Ansatz scheitert, dann komm ich auf dein Angebot zurück.

Aber: ja ich will dasselbe image wie in der Schule, sonst ist das für manche Lehrer ja kein Vorteil.

Ich habe meinen Lehrern angekündigt: sie können entweder selbst updates machen, oder sie stöpseln ab und zu ihren Rechner ins grüne Netz (jeder hat einen eigenen Adapter) und kriegen ein neues Image mit update.
Das home-Verzeichnis bleibt davon unberührt.

Es fehlt daher nur noch ein „leihgeräte“-switch, so dass das Image weiß, dass der Lehrer z.B. seinen offline-Nutzer behalten kann. Ich gebe zu, das habe ich noch nicht ganz durchdacht, weil im Image ja /etc/passwd und /etc/shadow und /etc/group definitiv drin sind…Aber das lässt sich ja lösen: Es sind sicher nur ein paar wenige Dateien, die im Falle eines „Leihgeräte“-Switch-on anders sind als in allen anderen Fällen.
Und mir geht es auch nicht um den linuxmuster-linuxclient7 an sich. Die Funktionalität von server-homes usw. sollte man auch deaktivieren können. Mir ging es um die neue Funktionalität: offline-user ordentlich einrichten zu können und zu aktivieren / deaktivieren.

VG, Tobias

Hi,

Ich denke, das ist out-of-scope für den Linuxclient, wenn dann sollte es als eigenes Paket ausgeliefert werden.
Der beste Weg, das in den Linuxclient zu integrieren, ist meiner Meinung nach mit Hookscripten (onLogin, onLogout, …).

VG
Dorian

Hi Dorian,
ok schade.
ist aber meine Annahme richtig, dass pam_mount zu Gunsten von pam_exec rausgeflogen ist?
VG, Tobias

Hi Tobias,

Neija, was heißt „zu gunsten von“? pam_exec und pam_mount haben im linuxclient nichts miteinander zutun. pam_exec benutzen wir einfach nur, um beim Login und Logout das onLoginLogoutAsRoot Script auszuführen (siehe: Script calling strategy · linuxmuster/linuxmuster-linuxclient7 Wiki · GitHub). Und pam_mount wurde früher benutzt, um ein einzelnes share beim Anmelden einzuhängen. Mit der neuen Struktur gibt es aber viel mehr shares als ein einzelnes (z.B. von GPOS), weshalb ich eine einheitliche API zum Einhängen von Shares gebaut hab (siehe: Module: shares — linuxmuster-linuxclient7 1.0.8-1 documentation).
Ein einzelnes Share über pam_mount einzuhängen ist daher nicht mehr sinnvoll, da es einfach nur overhead ist. Siehe den commit, in dem ich es rausgeworfen habe:
https://github.com/linuxmuster/linuxmuster-linuxclient7/commit/cbe2426e386eec0eb9fcbff3fa044bbc1768faf9
Es ist einfach nur das pam_mount rausgefolgen, ohne, dass neuer Code gebraucht wurde, um es zu ersetzen.
Das Einhängen der Shares passiert außerdem nicht im onLoginAsRoot (weil da das Kerberos Ticket noch nich verfügbar ist), sondern im onLogin (aufgerufen durch profile.d, s.o.):
Home: linuxmuster-linuxclient7/onLogin at a6115cfec0ea7fbfae13ec36f3e27b87c09934c9 · linuxmuster/linuxmuster-linuxclient7 · GitHub
Sysvol: linuxmuster-linuxclient7/onLogin at a6115cfec0ea7fbfae13ec36f3e27b87c09934c9 · linuxmuster/linuxmuster-linuxclient7 · GitHub
GPOs: linuxmuster-linuxclient7/onLogin at a6115cfec0ea7fbfae13ec36f3e27b87c09934c9 · linuxmuster/linuxmuster-linuxclient7 · GitHub

Ich hoffe, das schafft ein bisschen Klarheit :slight_smile:
Viele weitere Infos über Konzepte/Interna finden sich im Wiki und der Dokumentation

VG,
Dorian

2 „Gefällt mir“

Super ausführliche Antwort, Dorian, vielen Dank!
Die API-Doku hatte ich gefunden, aber die sagte mir natürlich nicht, wie was abläuft. Und ich wollte auch nicht genauer fragen, bevor ich nicht einen funktionierenden und aktuellen linuxmuster-linuxclient7 habe. (Da ich noch unter linbo 2.x bin und von 7.1 das linuxclient7-paket nicht gezogen habe, funktioniert bei mir noch einiges nicht richtig, weswegen ich immer fleißig Funktionalität des lc7 abschalte :)…

Damit bleibt für pam_mount ja entweder Platz für meine Lösung, oder ich bastel mein mount in die onLogin(AsRoot) Scripte…

Was deine Meinung: „das sprengt den Rahmen des lc7“… habe ich nochmal nachgedacht. Wenn die Funktionalität von linuxmuster-linuxclient7 nur wäre: „Es führt automatisiert den Domänenbeitritt aus und das vereinheitlicht das Management von Liux- und Windowsclients durch Auslesen der GPO-Konfigurationen im Active Directory.“, dann ok.
Aber das ist ja etwas untertrieben:

  • prepare-image nimmt typische (generische) Bereinigungen an einem Linuxsystem vor.
  • /etc/systemd/system/linuxmuster-linuxclient7.service als klassischer systemd-service greift in das System zu Bootzeit und in autostart zu login-zeit ein
  • dem template-System zufolge greift es in pam, lightdm/sddm, krb, nss, smb und timesyncd
  • konfiguriert sudo

das hat alles meines wissens nicht so wahnsinnig viel mit dem zu tun, was als GPO im AD steht, oder?

Will damit nur sagen: Wenn es den Bedarf für eine (einheitliche, einfach) out-of-AD-reach-Nutzung (a.k.a. offline-client) gäbe, dann wäre sicher viel über hook-skripte machbar, aber manche Teile von linuxmuster-lc7 würde man evtl. auch gern abhängig von der offline-Nutzung oder online-Nutzung ab- oder anschalten können.
Ich werde es einfach ausprobieren: Wenn ich mir nicht zu helfen weiß, schalte ich lc7-Features ab, um einen offline-client zum Laufen zu bringen und dann melde ich mich, ob das auch eleganter geht.

VG, Tobias

Doch:

  • prepare-image räumt nur Sachen auf, die von der AD-Anmeldung oder GPOs erzeugt werden (Drucker, Userhomes, Gecachete Nutzer, …)
  • Der systemd service wird benötitgt, um beim boot/shutdown eine Serververbindung aufzubauen und das serverseitige sysstart / sysstop script (und die entsprechenden lokalen) auszuführen
  • Alle Templates beziehen sich auf den AD login:

Alles, was der Client im Moment macht, geht nicht hinaus über:

  • Useranmeldung
  • GPO:
    • Shares einbinden
    • Drucker installieren
  • Hookscripte
  • Python API für das alles

Und das würde ich auch gerne so beibehalten. Das kann er und er ist darin auch relativ robust (wie man daran sieht, dass @Michael sich schon lange nicht mehr beschwert hat). Lieber wenige Sachen machen und die dafür gut :wink:
Dazu kommt noch, dass es bei der Verschlüsselung ja auch viele individuelle Anforderungen gibt und es nicht so einfach ist, eine einzelne Lösung zu finden, die immer funktioniert und jeden Edge-case abdeckt. Auch Sachen wie as automatische Managen von Profilordnern hab ich genau deshalb nicht eingebaut.

Ja, das ist ein Punkt, der noch nicht wirklich gut unterstützt ist. Offline Unterstützung ist tatsächlich etwas, das noch verbessert werden könnte. Aber auch dann geht Verschlüsselung über den client hinaus.

Ich empfehle dir, alle Scripte mit Python3 zu machen. Dann kannst du direkt die bestehende Library benutzen und wir können auch neue apis einbauen, wenn bedarf ist.
Auch über weitere Hooks können wir gerne reden, auf dem Plan steht im Moment noch einer für prepare-image: Add hook to run custom script on prepare-image · Issue #35 · linuxmuster/linuxmuster-linuxclient7 · GitHub

VG
Dorian

1 „Gefällt mir“

Äh, wann beschwere ich mich hier jemals? Meine Intention ist jedenfalls eine andere und soll der Sache dienlich sein…

War nicht böse gemeint :wink: