Blockieren Sie den gesamten ausgehenden Datenverkehr für einen Benutzer, der Wine Apps ausführt

1554
kktsuri

Schönen Tag,

Ich verwende viele WINE-Apps unter Linux, die gut funktionieren, aber eine Sache, nach der ich gerade suche, ist, ihren Zugang zum Internet zu blockieren (ausgehend), mit Ausnahme von sehr wenigen Weinanwendungen.

Ich habe herausgefunden, dass ich einen neuen Benutzer auf dem System erstellen und ihm den gesamten ausgehenden Datenverkehr für die Ethernet-Schnittstelle mit Iptables verweigern kann. Dann kann ich diesen Benutzer immer dann verwenden, wenn ich WINE-Apps ausführen möchte, die ich blockieren möchte. So wie:

iptables -I OUTPUT -o ethX -m owner --uid-owner UserB -j DROP 

Nehmen wir jedoch an, dass ich eine WINE-App haben möchte, die eine Verbindung zum Internet herstellt. Zur Vereinfachung verwenden wir Firefox unter WINE (als Beispiel).

Also werde ich UserA benutzen, das Internet hat, um Firefox in WINE auszuführen, und UserB, um jede andere WINE-App auszuführen und sie zu blockieren.

Das ist gut, aber ich habe gesehen, dass einige Leute behaupten, dass dies in gewisser Weise umgangen werden kann. Ich mache mir keine Sorgen darüber, dass die Apps "Linux-fähig" sind oder fortgeschrittene Malware wie diese, da sie Windows-Apps sind und ich ein solches Risiko eingehen werde, dass sie nicht versuchen werden, den Block zu umgehen, und ich möchte es auf keinen Fall ein chroot Gefängnis, das ist zu viel und kompliziert für etwas so grundlegendes.

Meine Frage ist schließlich: Erlaubt WINE Apps, Datenverkehr selbst zu senden? Wie funktioniert WINE genau beim Networking? Denn wenn die App selbst sendet, dann haben die Pakete UserBuuid und werden leicht verworfen. Wenn die App jedoch so etwas wie ... Weinserver oder einen anderen Daemon verwendet, um mit zu kommunizieren, und der Daemon dann den tatsächlichen Netzwerkverkehr sendet, würde dies natürlich fehlschlagen, da das Paket die UserB-Uuid nicht enthält.

Wie kann ich sicher sein? Die meisten Apps, die ich blockieren möchte, sind Apps, denen ich nicht per se "vertraue". Selbst wenn sie nur triviale Daten versenden, bin ich nur paranoid. Offensichtlich schweigen sie darüber, so dass ich dies meines Wissens nicht so leicht überwachen kann. Wenn es also eine Möglichkeit gibt, dies zu überwachen und zu sehen, ob es funktioniert (oder eine einfache Bestätigung von jemandem, der es weiß), wäre das großartig.

Weiß jemand, wie WINE das tut? Oder wenn es etwas anderes gibt, nur um zu verhindern, dass alle WINE-Apps auf UserB ausgehenden Zugriff haben. Oder reicht es aus, nur alle UserB-Pakete zu sperren?

Vielen Dank!

AKTUALISIEREN:

Es sieht aus wie „wineserver“ ist separat für jeden WINEPREFIX, so dass für diejenigen, die wissen, was das ist, glaube ich, dass nur durch eine andere WINEPREFIX für jeden der 2 Erstellen von Benutzern, eine mit Internet und das eine ohne alle Probleme sollten gelöst werden .

Ich bin nicht zu 100% sicher, ob es eine Möglichkeit zum Fluchtweg blockiert, aber es sollte ausreichen, da die meisten Windows-Apps nicht einmal wissen, dass sie auf Liunx laufen. Wie konnten sie also ausbrechen? Es sei denn, es handelt sich um wirklich große Malware.

Jedes WINEPREFIX hat eine andere simulierte Windows-Installation, daher finde ich es einfacher, sie symbolisch mit einem gemeinsamen Verzeichnis zu verknüpfen, in dem sich alle Apps befinden. Das macht es einfacher, ohne sich um diese 2 separaten WINEPREFIX kümmern zu müssen.

Erstellen Sie einfach ein Shell-Skript, um die Apps für jeden Benutzer zu starten. zB eine für den Internetzugang und eine ohne.

Wenn jemand mehr tolle Ideen hat, wie dies verbessert werden könnte, teilen Sie uns dies bitte. Im Moment würde ich sagen, dass ich ziemlich zufrieden bin.

4

1 Antwort auf die Frage

0
glapworth

Je nachdem, welche Kernelversion auf Ihrer Box ausgeführt wird, können Sie Netzwerk-Namespaces nutzen. Um einen Prozess mit einem eigenen leeren Netzwerk-Namensraum zu starten, verwenden Sie das unshareTool, z unshare -n wine