USB Stick und User Security Settings
Wie kann ich bei USB-Sticks, die bei SuSE 9.2 automatisch erkannt und gemountet werden, Security Einstellungen für bestimmte Benutzer vornehmen? D.h. ich will z.B. einigen Benutzern das Schreiben auf den Stick erlauben (evtl. durch Benutzergruppe) und anderen nicht. Damit verhindere ich im wesentlichen, dass der Benutzer einfach Daten vom Rechner kopieren kann. Detlef
Detlef Grittner wrote:
Wie kann ich bei USB-Sticks, die bei SuSE 9.2 automatisch erkannt und gemountet werden, Security Einstellungen für bestimmte Benutzer vornehmen? [...]
Du wirst Dich vermutlich durch das Wirrwar aus hotplug, udev und subfs kaempfen muessen. Ich glaube nicht, dass es soooo einfach geht, aber schau Dir die entsprechenden Konfig-Dateien in /etc/ und Unterverzeichnissen mal an. Ich hatte vor kurzem eine Frage zu udev gestellt, da hat auch niemand drauf geantwortet - ich fuerchte, das Thema ist schlicht recht unuebersichtlich. Cheers, Th.
Hallo Detlef, hallo Leute, Am Donnerstag, 7. April 2005 21:00 schrieb Detlef Grittner:
Wie kann ich bei USB-Sticks, die bei SuSE 9.2 automatisch erkannt und gemountet werden, Security Einstellungen für bestimmte Benutzer vornehmen?
D.h. ich will z.B. einigen Benutzern das Schreiben auf den Stick erlauben (evtl. durch Benutzergruppe) und anderen nicht. Damit verhindere ich im wesentlichen, dass der Benutzer einfach Daten vom Rechner kopieren kann.
Ich kenne Deine Umgebung nicht - aber wie wärs mit der Holzhammermethode? ;-) Einfach /media/ per chgrp und chmod nur noch für eine Gruppe zugänglich machen. Haken an der Sache: Auch das CD-ROM ist nicht mehr verfügbar (es sei denn, Du verwendest einen alternativen Mountpoint). Eine wirklich saubere Lösung dürfte, wie Thomas schon angemerkt hat, deutlich schwieriger werden. [1] Das CD-Brennen solltest Du natürlich auch noch verbieten ;-) Gruß Christian Boltz [1] Ein möglicher Ansatz, um nicht im hotplug-Code wühlen zu müssen, wäre der Einsatz von ACL: - für /media/cdrom den Zugriff für alle erlauben - für /media/ eine restriktive default-ACL festlegen, die den Zugriff auf neu angelegte Mountpoints (z. B. USB-Sticks) nur einer Gruppe erlaubt. (Bitte testen mit einem ext2/3-formatierten Stick, dessen / Zugriff für alle erlaubt. Nicht dass die Berechtigungen des Mountpoints überschrieben werden...) Zu ACL gibt es übrigens ein schönes Kapitel im Handbuch und wenn man das 3x gelesen hat, versteht man es sogar ;-)) --
Ein Massenprovider hat nun mal jede Menge Kunden, und 10% Idioten sind halt immer dabei. Die stoeren mich gar nicht. Die 75 % Vollidioten schon eher. [Roman Niederdrenk und Hans Bonfigt in doc]
on 11.04.2005 23:57 Christian Boltz wrote:
Hallo Detlef, hallo Leute,
... Gruß
Christian Boltz
[1] Ein möglicher Ansatz, um nicht im hotplug-Code wühlen zu müssen, wäre der Einsatz von ACL: - für /media/cdrom den Zugriff für alle erlauben - für /media/ eine restriktive default-ACL festlegen, die den Zugriff auf neu angelegte Mountpoints (z. B. USB-Sticks) nur einer Gruppe erlaubt. (Bitte testen mit einem ext2/3-formatierten Stick, dessen / Zugriff für alle erlaubt. Nicht dass die Berechtigungen des Mountpoints überschrieben werden...) Zu ACL gibt es übrigens ein schönes Kapitel im Handbuch und wenn man das 3x gelesen hat, versteht man es sogar ;-))
Hallo, ich habe jetzt ein Lösung, die noch nicht ganz das macht, was sie soll, aber immerhin ACLs verwendet. (Die kenne ich übrigens von Windows (duck...) und unter Solaris gabs das auch schon.) Um die Sache etwas perfekter zu machen und nicht das ganze Media Verzeichnis zunageln zu müssen, habe ich noch folgendes gemacht: In /etc/hotplug/hotplug.subfs.functions findet sich unter SuSE 9.2 die Scriptfunktion, mit der die hotplug Geräte als subfs gemountet werden. Hier findet sich in Zeile 275 bzw. 281 der mkdir Befehl, der den Mountpoint in media erzeugt. Ändert man nun die Variable MPDIR in Zeile 13 z. B. auf "MPDIR=/media/test", dann werden die usb-stick Verzeichnisse auf "/media/test/usb-blablabla" gemountet. Dann lege ich das Verzeichnis /media/test an, das durch das Skript in Ruhe gelassen wird. Dieses test Verzeichnis wird mit "chmod o-rwx test" dichtgemacht und durch entsprechende ACLs nur für bestimmte Gruppen oder Benutzer geöffnet. Okay, aber nun gibts noch ein Problem: Um auf das Device zugreifen zu können, genügt r-- auf dem Verzeichnis nicht (warum eigentlich nicht?), daher habe ich mal einen Eintrag user:blabla:r-x als ACL hinzugefügt. Dann kann ich ins Verzeichnis /media/test/usb-blablabla wechseln und sehe dann dieses: drwxr-xr-x ... blabla users ...... Also unterhalb vom Verzeichnis test wird das device mit dem eingeloggten User als Owner gemountet. Somit kann ich zwar bestimmten Usern den Weg dorthin verbauen, aber wenn ich sie durchlasse, dann haben sie wieder volle Kontrolle. Jetzt stellt sich die Frage, wo kann man den owner beim Mounten eine USB Sticks einrichten? Oder kann man ein sogenanntes traverse checking einschalten, d.h. die Restriktion eines übergeordneten Verzeichnisses schlägt die Rechte eines untergeordneten? Oder brauche ich jetzt schon MAC (mandatory access control)? Gruß, Detlef
Hallo Detlef, hallo Leute, (und sorry für die verspätete Antwort) Am Dienstag, 12. April 2005 21:07 schrieb Detlef Grittner:
on 11.04.2005 23:57 Christian Boltz wrote:
[1] Ein möglicher Ansatz, um nicht im hotplug-Code wühlen zu müssen, wäre der Einsatz von ACL: [...] ich habe jetzt ein Lösung, die noch nicht ganz das macht, was sie soll, aber immerhin ACLs verwendet.
;-)
Um die Sache etwas perfekter zu machen und nicht das ganze Media Verzeichnis zunageln zu müssen, habe ich noch folgendes gemacht: In /etc/hotplug/hotplug.subfs.functions findet sich unter SuSE 9.2 die Scriptfunktion, mit der die hotplug Geräte als subfs gemountet werden. Hier findet sich in Zeile 275 bzw. 281 der mkdir Befehl, der den Mountpoint in media erzeugt. Ändert man nun die Variable MPDIR in Zeile 13 z. B. auf "MPDIR=/media/test", dann werden die usb-stick Verzeichnisse auf "/media/test/usb-blablabla" gemountet. Dann lege ich das Verzeichnis /media/test an, das durch das Skript in Ruhe gelassen wird. Dieses test Verzeichnis wird mit "chmod o-rwx test" dichtgemacht und durch entsprechende ACLs nur für bestimmte Gruppen oder Benutzer geöffnet.
OK.
Okay, aber nun gibts noch ein Problem: Um auf das Device zugreifen zu können, genügt r-- auf dem Verzeichnis nicht (warum eigentlich nicht?), daher habe ich mal einen Eintrag user:blabla:r-x als ACL hinzugefügt.
Um ein Verzeichnis betreten zu dürfen ("cd test"), braucht man Ausführrechte ("x"). Leserechte ("r"), braucht man, wenn man sich den Verzeichnisinhalt anzeigen lassen will (mit ls, find usw.). Weiß man den Dateinamen der gewünschten Datei, braucht man keine Leserechte am Verzeichnis. cat test/irgendeinedatei geht auch ohne Leserechte am Verzeichnis (für die Datei müssen natürlich Leserechte bestehen ;-)
Dann kann ich ins Verzeichnis /media/test/usb-blablabla wechseln und sehe dann dieses: drwxr-xr-x ... blabla users ...... Also unterhalb vom Verzeichnis test wird das device mit dem eingeloggten User als Owner gemountet. Somit kann ich zwar bestimmten Usern den Weg dorthin verbauen, aber wenn ich sie durchlasse, dann haben sie wieder volle Kontrolle.
Klar. Deshalb hast Du sie ja oberhalb ausgesperrt.
Jetzt stellt sich die Frage, wo kann man den owner beim Mounten eine USB Sticks einrichten?
Oder kann man ein sogenanntes traverse checking einschalten, d.h. die Restriktion eines übergeordneten Verzeichnisses schlägt die Rechte eines untergeordneten?
Das brauchst Du nicht einzuschalten, das ist immer so. Bei Dir dürfte es derzeit etwa so aussehen (vereinfacht): /media root:root rwxr-xr-x -> jeder darf in /media rein /media/test root:trusted rwxr-x--- -> nur Mitglieder der Gruppe "trusted" dürfen rein /media/test/foo user:users rwxr-xr-x -> nur Mitglieder der Gruppe "trusted" dürfen rein (alle anderen werden schon aus /media/test/ ausgesperrt). Gleich noch ein Beispiel. Angenommen, es gäbe folgende Dateirechte: /media/test/foo user:users rwxr-x--- Das würde bedeuten, dass Leute, die in das Verzeichnis wollen, den Gruppen "trusted" (wegen /media/test) _und_ users angehören müssen. Außerdem kommt der User "user" rein - falls er in der Gruppe "trusted" ist.
Oder brauche ich jetzt schon MAC (mandatory access control)?
Wir wollen es nicht gleich übertreiben ;-) Gruß Christian Boltz -- "Der Unterschied zwischen einem Windows- und Linux-User ist der, daß ein Linux-User lesen kann!" [Frank Gerd Walzebuck in suse-linux]
Hallo, Am Donnerstag, 7. April 2005 21:00 schrieb Detlef Grittner:
D.h. ich will z.B. einigen Benutzern das Schreiben auf den Stick erlauben (evtl. durch Benutzergruppe) und anderen nicht. Damit verhindere ich im wesentlichen, dass der Benutzer einfach Daten vom Rechner kopieren kann.
Ich würde versuchen, über die fstab und die mount-Optionen einzustellen, unter welcher Gruppe der Stick gemountet werden soll und nur der Gruppe Schreibrechte geben. (ungetestet) Gruß, Wolfgang
Wolfgang Hinsch wrote:
[...] Ich würde versuchen, über die fstab und die mount-Optionen einzustellen, unter welcher Gruppe der Stick gemountet werden soll und nur der Gruppe Schreibrechte geben. (ungetestet)
Ja, mach das mal fuer einen USB-Stick, der ueber Hotplug gemanaged wird und fuer den gar kein Eintrag in /etc/fstab existiert...?!? Cheers, Th.
Am Dienstag, 12. April 2005 20:26 schrieb Thomas Hertweck:
Wolfgang Hinsch wrote:
[...] Ich würde versuchen, über die fstab und die mount-Optionen einzustellen, unter welcher Gruppe der Stick gemountet werden soll und nur der Gruppe Schreibrechte geben. (ungetestet)
Ja, mach das mal fuer einen USB-Stick, der ueber Hotplug gemanaged wird und fuer den gar kein Eintrag in /etc/fstab existiert...?!?
Eintrag für usbfs ist bei mir in der fstab. man mount /usbfs Mount options for usbfs devuid=uid and devgid=gid and devmode=mode busuid=uid and busgid=gid and busmode=mode listuid=uid and listgid=gid and listmode=mode Wenn er verhindern will, dass ein usb-Stick beschrieben wird, will er sicher auch andere USB-Medien nicht beschreiben lassen. Ich würde das mal testen. Kann natürlich auch sein, dass die Maus dann nicht mehr läuft oder ... Gruß, Wolfgang
Wolfgang Hinsch wrote:
Am Dienstag, 12. April 2005 20:26 schrieb Thomas Hertweck:
[...] Ja, mach das mal fuer einen USB-Stick, der ueber Hotplug gemanaged wird und fuer den gar kein Eintrag in /etc/fstab existiert...?!?
Eintrag für usbfs ist bei mir in der fstab. man mount /usbfs
Was bitte hat das USB Device Filesystem und dessen Rechte mit dem Problem hier zu tun? Sorry, ich kann Dir nicht folgen. Es muessen die Rechte des Mountpoints beschraenkt werden, nicht die Rechte von usbfs. Durch das Beschraenken der Rechte von usbfs koennen vielleicht nicht mehr alle User die Infos in /proc/bus/usb einsehen, das loest aber nicht das Problem. Rechte von /proc/bus/usb werden ja nicht auf den Mount-Point uebertragen. Wenn ein Geraet erst mal (durch welchen User auch immer) gemountet ist auf einen bestimmten Mount-Point, koennen in Deinem Szenario immer noch alle die Daten dort lesen und evtl. sogar beschreiben (je nach Mount-Optionen fuer das entsprechende Geraet, die Hotplug so anwendet). Und das genau soll doch verhindert werden. Sorry, ich kann Deinen Ansatz nicht ganz nachvollziehen oder ich verstehe es nicht. Cheers, Th.
participants (4)
-
Christian Boltz
-
Detlef Grittner
-
Thomas Hertweck
-
Wolfgang Hinsch