Hallo, ich möchte auf meinem PC Spiele über Wine, Steam etc spielen. Da ich den meisten Programmen aber nicht so wirklich vertraue, will ich diese Spiele mit 'sudo -u andererUser' unter einem anderen User laufen lassen und diesem dann nach Bedarf den Internetzugriff nehmen. Was ist der beste Weg um so etwas zu machen? Ich habe mich etwas in Apparmor und iptables eingelesen, aber mit dem, was ich davon verstanden habe würde ich mich wohl eher selbst in den Fuß schießen.
Internetzugriff für manche Programme verweigern
Anmeldungsdatum: Beiträge: 57 |
|
Anmeldungsdatum: Beiträge: 13931 |
Versuch mal mit: sudo iptables -I OUTPUT 1 -p <Protokoll> -o <output-Interface> -m owner --uid-owner andererUser -j REJECT |
(Themenstarter)
Anmeldungsdatum: Beiträge: 57 |
Was soll ich für <Protokoll> einsetzen? Ich will ja eigentlich allen Traffic blockieren. |
Anmeldungsdatum: Beiträge: 13931 |
Dann ohne Protokoll: sudo iptables -I OUTPUT 1 -o <output-Interface> -m owner --uid-owner andererUser -j REJECT |
(Themenstarter)
Anmeldungsdatum: Beiträge: 57 |
Danke, das funktioniert perfekt. Jetzt muss ich meinen Xorg nur noch dazu bringen, Clients von anderen Usern anzunehmen. Aber das Problem hatte ich auch schon, bevor ich die iptables-Regel aktiviert habe. |
Anmeldungsdatum: Beiträge: 867 |
Statisch kann man das so machen aber bei Bedarf wirst du damit ganz schnell Probleme bekommen. Bessser ist es mit "sg" oder "newgrp" in eigens angelegte Hauptgruppe (z.B. nonet) zu wechseln. Der iptables Befehl heisst dann --gid-owner. Neu erstellte Dateien nehmen die Hauptgruppe an. Wenn das Schmerzen bereiten sollte, so kann man das mittels sgid oder bindfs korrigieren. |
(Themenstarter)
Anmeldungsdatum: Beiträge: 57 |
Ich wusste gar nicht, dass man seine primäre Gruppe so einfach ändern kann. Wenn ich für eine Shell die Gruppe ändere, vererbt sich das dann auch automatisch an alle weiteren Prozesse, wie z.B. Steam, Wine etc, die ich daraus dann aufrufe? EDIT: Ich habe etwas damit rumgespielt und es scheint zu funktionieren. Wenn ich mit dieser Shell eine Datei erzeuge, bekommt die automatisch die Gruppe nonet. Bei Gedit muss man etwas mehr aufpassen, wenn noch eine andere Instanz läuft, verbindet es sich mit der und läuft unter der alten Gruppe weiter. Ich glaube, dass das selbe auch mit Wine passieren würde, aber ich brauche Wine sowieso nur für Spiele, also sollte das kein Problem sein. |
Anmeldungsdatum: Beiträge: 867 |
Die Hauptgruppe wird an die Kinder vererbt. Das mit gedit sind Ausnahmefälle, die sich testen lassen. Wenn dir das auch mit wine passiert dann liegt das daran, dass du mehrere Programme unter demselben "wineprefix" startest. (Default ist "~/.wine") Du kannst aber beliebige Präfixe parallel installieren und auch starten. Du kannst z.B. ein Spiel unter einem Präfix mit iptables regulieren und unter einem zweiten Präfix dann z.B. Teamspeak unreguliert laufen lassen. Mit folgenden Befehlen behältst du die Übersicht: ps aux ps -eo user,group,pid,command Im Terminal kannst du mehrere Prefixe so installieren: # bei Playonlinux mit 32 bit Installation i.d.R. in /home/<user>/.PlayOnLinux/wine/linux-x86/<WineVer>/bin/ wp=<pfad zu wine> # eine neue wine installation im Ordner "wine_teamspeak" export WINEPREFIX=/home/<user>/wine_teamspeak ${wp}wine explorer /desktop=teamspeak,1280x1024 winecfg.exe; Auf das Präfix muss immer Acht gegeben werden. Ist es falsch gesetzt und/oder ruft man es mit einer anderen WineVersion auf, so überschreibt man sich die dortige Installation und verliert damit die Registry-Einstellungen. Mit folgenden Befehlen lässt sich das Präfix abfragen: env echo $WINEPREFIX Mit POL (Playonlinux) ist es vermutlich auch möglich neue Prefixe zu setzen. Ich nutze es aber nur um neue Wineversionen zu installieren. Darauf zugreifen tue ich ohne POL. |
(Themenstarter)
Anmeldungsdatum: Beiträge: 57 |
Viele Programme verbinden sich mit einer bereits laufenden Instanz, wenn diese unter dem selben User läuft. Dass es dabei noch verschiedene Gruppen geben kann haben die meisten, mich eingeschlossen, vergessen. Wenn zum Beispiel ein Programm unter Wine eine Webseite öffnen will, geht ein Aufruf an den Firefox, der sich dann mit meinem bereits laufenden Firefox verbindet, der dann natürlich Internetzugriff hat. Wenn ich noch mehr Sicherheit wollte, müsste ich die Programme mit einem anderen User auf einem anderen X-Server laufen lassen und mit Ctrl-Alt-F? umschalten oder ganz einfach das LAN-Kabel ziehen. Aber für das, was ich machen will ist die Methode über eine andere primäre Gruppe wirklich ausreichend und auch ohne größere Einschränkungen umsetzbar. |
Anmeldungsdatum: Beiträge: 867 |
Das kann schon mal (bei insbesondere grafischen Programmen) passieren. Es stellt aber die Vererbungsregel auf ein reales Kind nicht in Frage.
Das hat etwas mit dem Pfad im Environment zu tun und das ist durchaus gewollt. Du kannst die Pfadvariable natürlich ändern. Es wäre eventuell auch möglich den Link auf das Wurzelverzeichnis "/" (Laufwerk z:) zu löschen. Das kann aber später zu Problemen bei weiteren Installationen führen.
Ja, in Kombination mit Gruppen lässt sich dann feinfühlig granulieren.
Das muss nicht sein. Es ist kein Problem grafische Programme unter einem anderen User im gleichen X-Server laufen zu lassen.
Das wäre reaktionär. |