Препятствование тому, чтобы программа использовала Интернет

Можно попробовать транскод также, это - большое приложение командной строки.

5
27.03.2012, 01:56
2 ответа

Вы могли использовать контейнеры 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, так то, чтобы заставлять это работать на wine в Вашей настольной среде может быть хитрым.

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

5
27.01.2020, 20:37

Один из более легких путей состоял бы в том, чтобы запустить ВИННУЮ программу как другого пользователя и настроить netfilter для отбрасывания пакетов от того пользователя.

Например, где "wineusername" является Вашим Винным пользователем, и 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
3
27.01.2020, 20:37

Теги

Похожие вопросы