Impedindo que o programa use a Internet

Impedindo que o programa use a Internet

Existe uma maneira de impedir que certos programas se conectem à Internet no Debian (um firewall bloqueando conexões de saída), por exemplo, para impedir que um programa do Windows em execução no Wine possa ligar para casa?

Responder1

Você poderia usarContêineres Linuxpara criar um ambiente sem interfaces de rede. Por exemplo, se eu criar um arquivo de configuração como este:

# lxc.network.type = empty

E então inicie um shell assim:

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

Descobrirei que dentro deste shell não há dispositivos de rede disponíveis além de 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)

Observe que você deve ser root para executar o lxc-execute, portanto, fazer com que isso funcione wineem seu ambiente de área de trabalho pode ser complicado.

Aparentemente, também existe um sandboxcomando disponível como parte do SELinux. Aqui estáum exemplo usando sandbox para executar o Firefox. Isso requer que você tenha o selinux habilitado.

Responder2

Uma das maneiras mais fáceis seria executar o programa WINE como um usuário diferente e configurar o netfilter para descartar pacotes desse usuário.

Por exemplo, onde "wineusername" é o seu usuário Wine e em1 é a sua interface de rede:

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

informação relacionada