Como bloquear o acesso à Internet para um aplicativo

8

Eu procuraria uma maneira de executar um aplicativo que o impedisse de acessar a Internet, possivelmente sem instalar um programa específico para fazer isso. A maioria das respostas que encontrei se refere a ESTE post, então tentei esta solução. Em poucas palavras, criei um grupo sem Internet (com um comando ni relacionado ) e inicio o aplicativo usando esse grupo. Mas isso não funciona completamente, provavelmente porque o post é de 2009 e algo no iptables mudou (estou usando o Ubuntu 14.04). Por exemplo, se eu executar ni "ping google.com"a saída ping: sendmsg: Operation not permitted, a solução funcionará bem. Mas com os outros programas, como Firefox ou wget (por exemplo ni firefox), a conexão à Internet ainda funciona. Como posso resolver?

ᴜsᴇʀ
fonte

Respostas:

3

Você pode usar apparmorpara negar o tráfego de rede para algum aplicativo. Primeiro você deve instalar apparmore apparmor-utils..

sudo apt-get install apparmor*

Depois disso, você pode gerar um perfil para seu aplicativo ...

sudo aa-genprof /usr/bin/google-chrome

O próximo passo é alterar a Networkingparte do perfil para:

sudo nano /etc/apparmor.d/usr.bin.chromium-browser

audit deny network,
audit deny network inet stream,
deny network inet6 stream,
deny @{PROC}/[0-9]*/net/if_inet6 r,
deny @{PROC}/[0-9]*/net/ipv6_route r,
deny capability net_raw,

Em seguida, verifique a configuração com apparmor_parser e recarregue a configuração

sudo apparmor_parser -r /etc/apparmor.d/usr.bin.chromium-browser

Altere o modo de complainpara enforceaka ativado apparmorpara este aplicativo.

sudo aa-complain /etc/apparmor.d/usr.bin.chromium-browser

Mais manual você pode encontrar aqui e aqui e aqui

2707974
fonte
Não funciona. Observe que adicionei as linhas no arquivo /etc/apparmor.d/usr.bin.APPNAMEapós a linha /usr/bin/APPNAME r,e não sei se está correto.
ᴜsᴇʀ