Como bloquear o acesso à Internet para aplicativos de vinho?

39

Como impedir que aplicativos específicos ou quaisquer aplicativos wine acessem a Internet?

Ao usar certos aplicativos no Windows, eles tentavam acessar a Internet de tempos em tempos, sem qualquer motivo óbvio. Consegui impedir esse comportamento com um firewall pessoal naquela época. Infelizmente, até agora não encontrei um firewall no nível de aplicativo no Ubuntu. Isso é especialmente irritante quando estou no exterior usando roaming de dados com meu modem 3G.

YSN
fonte
Você pode tentar minha pré-carga noinet. askubuntu.com/questions/249826/…
escor
Pode smb. estender as respostas / fornecer uma resposta adicional que funcione com nftables?
dirdi 23/11

Respostas:

29

Há um bom tutorial sobre como impedir que um determinado programa acesse a Internet nos fóruns do Ubuntu .

Passos

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

regra iptables para impedir que esse grupo acesse a rede

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

Processo que você não deseja ter acesso à Internet usando sg ousudo -g (execute o comando como um ID de grupo diferente):

sg no-internet -c "processFullPath args"

Basicamente, envolve a criação de um novo grupo, a negação do acesso à Internet e a execução de qualquer programa que você deseja restringir como esse ID de grupo. Portanto, no seu caso, você sempre executaria o wine usando o método descrito no tutorial.

goric
fonte
2
Obrigado, é isso! Mas não entendo por que alguém te rejeitou. Sua resposta é exatamente o que eu esperava.
YSN
É uma ótima resposta se você seguir o link, mas suspeito que o DV foi porque é uma resposta principalmente de link. Se você quer saber como, precisa ir aos fóruns. Dito isto, recebeu um voto positivo de mim.
RobotHumans
1
Para elaborar: para executar um comando sob o novo uso do grupo: sg no-internet -c "command args". Observe também: aparentemente essa regra do iptable não deixa cair pings; portanto, se você testar se está funcionando, use o netcat. EDIT : Notei também: ele não descarta conexões IPv6, então você só bloqueou o UDP e o TCP do IPv4.
Hi-Angel
1
@ Hi-Angel Provavelmente deve ser o mesmo argumento, mas com ip6tables.
Pablo A
16

Faça um grupo e torne-se um membro

addgroup wino

adduser $USER wino

Agora, digite uma iptablesregra para impedir que esse grupo use a Internet. Você pode digitar isso no terminal e pressionar Enter

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

Para fazer esta regra ser executada após cada reinicialização com systemd use iptables-persistent savefrom iptables-persistentpackage.

Se estiver usando rc-local : você pode colocar a regra /etc/rc.local. Verifique se a última linha desse arquivo de texto diz exit 0.

Exemplo de uso:

sg wino "wine executablename.exe"

Você precisa do " "e também digite wine antes do nome do programa.

marca
fonte
2
Eu editei seu usermodcomando para adicionar -a. Sem -a, você vai acabar de remover o usuário de todos os outros grupos complementares (como admin, cdrom, etc.)! Também é mais conveniente usar addgroup/ adduser.
gertvdijk
estava prestes a consertar o -a eu mesmo. sim, não comece o vinho como raiz! só precisa de root para fazer a regra do iptables. o exemplo de uso foi para usuário normal depois de executar essas etapas.
marca de
ah desculpa meu erro. comentário removido.
gertvdijk
@gertvdijk Eu editei os comandos mais uma vez, adduser <username> <groupname>é a coisa mais sensata aqui.
guntbert
1
existe alguma possibilidade de tornar padrão que a Internet esteja bloqueada para esse programa (ou seja, tornar a sgchamada obsoleta, por exemplo, através chowndo programa)?
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"

para adicionar ao seu registro wine (ou unidades virtuais playonlinux):

solução muito mais simples do que usar grupos (e não impede a conexão da pol, apenas os aplicativos)

créditos para http://ootput.wordpress.com/2011/06/06/block-wine-applications-from-the-internet/comment-page-1/

EDIT: aguardando o geek no comentário para adicionar configurações do registro para bloquear o TCP, enquanto isso: http://support.microsoft.com/en-us/kb/154596 (soa como definir portas como zero ou criar alguma configuração O erro realmente bloqueará as conexões TCP / UDP; mas ainda não enfrentei esse problema, por isso não preciso de uma solução alternativa)

mikakun
fonte
3
isso apenas bloqueia o acesso a softwares que respeitam as configurações de proxy, a maioria não obviamente ... então essa não é uma solução válida!
K1773R
1
como qual? (todo o software que eu tenho usado com pol foi bloqueado). portanto, não estou convencido de sua afirmação: ela é válida em muitos casos, pode não estar em algumas, mas qual?
Mikakun
2
não, não é. por exemplo; qualquer software que se conecte a uma porta host: via TCP continuará funcionando. Uma configuração de proxy HTTP é algo que um programa precisa reconhecer e honrar. Se você não acredita em mim, obtenha / compile software que se conecta a outro host via TCP e veja por si mesmo.
K1773R