Как заблокировать доступ в интернет для винных приложений?

39

Как можно запретить доступ к Интернету конкретным или любым винным приложениям?

При использовании определенных приложений под Windows они время от времени пытались получить доступ к Интернету без какой-либо очевидной причины. Тогда я смог предотвратить такое поведение с помощью персонального брандмауэра. К сожалению, я не нашел брандмауэр уровня приложений в Ubuntu до сих пор. Это особенно раздражает, когда я за границей использую роуминг данных с моим 3G модемом.

YSN
источник
Вы можете попробовать мою предварительную загрузку noinet. askubuntu.com/questions/249826/…
эскорт
Может кто-л. расширить ответы / предоставить дополнительный ответ, который работает с nftables?
Дирди

Ответы:

29

На форумах Ubuntu есть хорошее руководство по блокировке доступа любой программы к Интернету .

меры

sudo addgroup no-internet  # Create group "no-internet"
sudo adduser $USER no-internet  # Add current user to no-internet

Правило iptables, чтобы запретить этой группе доступ к сети

sudo iptables -I OUTPUT 1 -m owner --gid-owner no-internet -j DROP
sudo ip6tables -I OUTPUT 1 -m owner --gid-owner no-internet -j DROP # To also block IPv6 traffic

Процесс, который вы не хотите иметь доступ к Интернету, используя sg илиsudo -g (выполнить команду как другой идентификатор группы):

sg no-internet -c "processFullPath args"

В основном это включает в себя создание новой группы, отказ в доступе к Интернету, а затем запуск любой программы, которую вы хотите ограничить как этот идентификатор группы. Так что в вашем случае вы просто всегда запускаете wine, используя метод, описанный в руководстве.

goric
источник
2
Спасибо, вот и все! Но я не понимаю, почему кто-то проголосовал за тебя. Твой ответ - именно то, на что я надеялся.
YSN
Это отличный ответ, если вы перейдете по ссылке, но я подозреваю, что DV был, потому что это в основном ссылка ответ. Если вы хотите, как, вы должны перейти на форумы. Это сказало, это получило возражение от меня.
RobotHumans
1
Выработать: выполнить команду под новым использованием группы: sg no-internet -c "command args". Также обратите внимание: очевидно, что это правило iptable не пропускает пинги, поэтому, если вы собираетесь проверить, работает ли оно, используйте вместо него netcat. РЕДАКТИРОВАТЬ : Я также отметил: он не прерывает соединения IPv6, поэтому вы заблокировали только UDP и TCP IPv4.
Привет-ангел
1
@ Привет-Ангел Наверное, должны быть те же аргументы, но с ip6tables.
Пабло А
16

Создайте группу и станьте ее членом

addgroup wino

adduser $USER wino

Теперь введите iptablesправило, чтобы заблокировать эту группу от использования Интернета, вы можете набрать это на терминале и нажать Enter

iptables -A OUTPUT -m owner --gid-owner wino -j REJECT

Чтобы это правило запускалось после каждой перезагрузки с использованием systemd iptables-persistent saveиз iptables-persistentпакета.

При использовании rc-local : вы можете вставить правило /etc/rc.local. Убедитесь, что последняя строка в этом текстовом файле говорит exit 0.

Пример использования:

sg wino "wine executablename.exe"

Вам нужно, " "а также введите вино перед названием программы.

отметка
источник
2
Я отредактировал вашу usermodкоманду, чтобы добавить -a. Без -aэтого вы в конечном итоге удалите пользователя из всех других дополнительных групп (например admin, cdromи т. Д.)! Также удобнее использовать addgroup/ adduser.
gertvdijk
собирался починить -а себя. да не заводите вино как корень! нужен только root, чтобы сделать правило iptables. пример использования был для обычного пользователя после выполнения этих шагов.
отметьте
ах извините, моя ошибка удаленный комментарий
gertvdijk
@gertvdijk Я отредактировал команды еще раз, adduser <username> <groupname>это разумная вещь здесь.
Гюнтберт
1
есть ли возможность установить по умолчанию, что интернет заблокирован для этой программы (т.е. сделать sgвызов устаревшим, например, с chownпомощью программы)?
Bonanza
8
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings]
"MigrateProxy"=dword:00000001
"ProxyEnable"=dword:00000001
"ProxyHttp.1.1"=dword:00000000
"ProxyOverride"="<local>"
"ProxyServer"="http://NonExistantProxyAddress:80"
"User Agent"="Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1"

чтобы добавить в ваш реестр Wine (или виртуальных дисков playonlinux):

решение гораздо проще, чем использование групп (и не мешает подключению pol, только приложения)

кредиты для http://ootput.wordpress.com/2011/06/06/block-wine-applications-from-the-internet/comment-page-1/

РЕДАКТИРОВАТЬ: ожидая, что гик в комментарии добавит параметры реестра для блокировки TCP, в то же время: http://support.microsoft.com/en-us/kb/154596 (звучит как установка портов на ноль или создание какой-либо конфигурации ошибка действительно блокирует соединения tcp / udp, но я еще не сталкивался с этой проблемой, поэтому мне не нужно обходиться)

mikakun
источник
3
это только блокирует доступ к программному обеспечению, которое учитывает настройки прокси-сервера, большинство не очевидно ... так что это не верное решение!
K1773R
1
как какой? (все программное обеспечение, которое я использовал с pol, действительно было заблокировано). следовательно, я не убежден вашим утверждением: оно действительно во многих случаях, может быть, не в некоторых, но в каком?
Микакун
2
нет, это не так. например; Любое программное обеспечение, которое просто подключается к порту host: через TCP, будет продолжать работать. Настройка прокси HTTP - это то, что программа должна распознавать и соблюдать. Если вы мне не верите, найдите / скомпилируйте программное обеспечение, которое подключается к другому хосту через TCP, и убедитесь сами.
K1773R