Предотвращение использования Интернета

Есть ли способ заблокировать некоторые программы от возможности подключения к Интернету в Debian (брандмауэр, блокирующий исходящие соединения), например, чтобы заблокировать программу Windows, работающую в вине, от возможности позвонить домой?

Вы можете использовать контейнеры Linux для создания среды без сетевых интерфейсов. Например, если я создам файл конфигурации следующим образом:

# lxc.network.type = empty 

Затем запустите оболочку следующим образом:

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

Я найду, что в этой оболочке нет доступных сетевых устройств, кроме 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) 

Обратите внимание, что для запуска lxc-execute вы должны быть root, поэтому для работы с wine в среде вашего рабочего стола может быть сложно.

Также есть команда sandbox доступная как часть SELinux. Вот пример использования песочницы для запуска Firefox . Это требует, чтобы вы включили selinux.

Одним из самых простых способов было бы запустить программу WINE в качестве другого пользователя и настроить netfilter для удаления пакетов от этого пользователя.

Например, где «wineusername» – ваш пользователь Wine, а em1 – ваш сетевой интерфейс:

 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