Verhindern, dass das Programm das Internet nutzt

Verhindern, dass das Programm das Internet nutzt

Gibt es eine Möglichkeit, bestimmten Programmen in Debian die Verbindung zum Internet zu verwehren (durch eine Firewall, die ausgehende Verbindungen blockiert), um so beispielsweise einem in Wine laufenden Windows-Programm die Möglichkeit zu nehmen, „Call Home“ zu verwenden?

Antwort1

Du könntest benutzenLinux-Containerum eine Umgebung ohne Netzwerkschnittstellen zu erstellen. Wenn ich beispielsweise eine Konfigurationsdatei wie diese erstelle:

# lxc.network.type = empty

Und starten Sie dann eine Shell wie folgt:

# lxc-execute --name bash -f /tmp/lxc.conf /bin/bash

Ich werde feststellen, dass in dieser Shell keine anderen Netzwerkgeräte verfügbar sind als lo:

# ifconfig -a
lo        Link encap:Local Loopback  
          LOOPBACK  MTU:16436  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)

Beachten Sie, dass Sie zum Ausführen Root-Rechte benötigen . Es kann also schwierig sein, dies in Ihrer Desktopumgebung lxc-executezum Laufen zu bringen .wine

Es gibt anscheinend auch einen sandboxBefehl als Teil von SELinux. Hier istein Beispiel für die Verwendung einer Sandbox zum Ausführen von Firefox. Dies erfordert, dass Sie Selinux aktiviert haben.

Antwort2

Eine einfachere Möglichkeit besteht darin, das WINE-Programm als anderer Benutzer auszuführen und Netfilter so einzurichten, dass Pakete von diesem Benutzer gelöscht werden.

Beispielsweise ist „wineusername“ Ihr Wine-Benutzer und „em1“ Ihre Netzwerkschnittstelle:

iptables -A OUTPUT -o em1 -m owner --uid-owner wineusername -j DROP
iptables -A FORWARD -o em1 -m owner --uid-owner wineusername -j DROP
iptables -A INPUT -o em1 -m owner --uid-owner wineusername -j DROP

verwandte Informationen