Linux: restringindo a saída em uma base de aplicativo

1

eu digitei:

netstat -atlpvn

e notou que aplicativos como gedit e python tinham endereços externos fora da rede (a rede era um único computador conectado à internet).

Existe alguma maneira de eu restringir quais aplicativos são permitidos de saída? Por exemplo, eu gostaria que o firefox tivesse conexões de saída?

Obrigado

    
por artella 28.12.2011 / 18:50

3 respostas

3

Até onde eu sei, a única maneira de restringir a conectividade com a Internet, aplicativo por aplicativo, é através dos recursos do SELinux, e envolve dar aos aplicativos que devem ter privilégios adicionais de conectividade com a Internet. Duvido que conceder privilégios adicionais ao Firefox contribua para a segurança, e um aplicativo que tente acessar a Internet poderia fazê-lo através do Firefox ou do wget ou de algum outro aplicativo "legítimo" de qualquer maneira. Além disso, para scripts, acho que você teria que dar os recursos ao interpretador (por exemplo, /usr/bin/python ), que não discrimina de forma útil.

Você pode restringir a conectividade com a Internet de usuário a usuário; veja ligue o software a diferentes interfaces de rede e Dual conexão de rede para exemplos. Ou você pode executar aplicativos para os quais não deseja conceder conectividade à Internet em um ambiente virtual leve, como o LXC .

    
por 28.12.2011 / 21:36
3

EDIT: esta solução não funciona desde o kernel 2.6.14. Veja o comentário de Gilles.

Você pode usar as regras de iptables nos nomes de processos correspondentes da cadeia de saída com a opção --cmd-owner. Algo como:

iptables -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -m owner --cmd-owner "firefox-bin" -j ACCEPT
iptables -A OUTPUT -m owner --cmd-owner "ssh" -j ACCEPT
iptables -A OUTPUT -j DENY

Com isso, você permite o tráfego de saída do firefox-bin, ssh e conexões estabelecidas.

    
por 28.12.2011 / 21:31
0

Você provavelmente precisaria de um aplicativo como o LeopardFlower, que permite o firewall por aplicativo. Além disso, criar uma conta separada e lançar o firefox sob ele e usar a regra como ipatbles -A OUTPUT -m owner --uuuuuuuuuuuu 1005 -j DROP para bloquear todo o tráfego desse usuário.

    
por 29.12.2011 / 17:59