Por firewall de processo?

18

Estive lendo, mas não consigo encontrar uma maneira de criar regras de firewall por processo. Eu sei, iptables --uid-ownermas isso só funciona para o tráfego de saída. Eu considerei scripting netstate iptablesmas isso parece terrivelmente ineficiente, pois se um processo só está activa para um pequeno espaço de tempo o script pode perdê-la. Basicamente, quero impor restrições específicas em relação à porta e ao dst em um processo, deixando outros processos inalterados. Alguma ideia?


Para referência, o selinux pode fazer exatamente isso e funciona bastante bem. A instalação é um pouco trabalhosa.

s3c
fonte
11
Talvez o LXC (Linux Containers) faça o truque? lxc.sourceforge.net
nsg
O que é tão difícil no selinux? Certamente, existe uma curva de aprendizado, mas existem ótimas ferramentas, tanto gráficas quanto de linha de comando, para ajudar na configuração. O suporte está disponível no IRC em #selinux, bem como #fedora
Panther
você já tentou usar Douane? askubuntu.com/a/330259/46437
Aquarius Poder
A GUI do firewalld para iptables permite que você faça exatamente isso, e é bastante fácil de usar.
BKilpat01 11/11/16

Respostas:

10

Sua pergunta é muito semelhante a /programming/5451206/linux-per-program-firewall-similar-to-windows-and-mac-counterparts

Havia o --cmd-ownermódulo proprietário do iptables, mas ele foi removido porque não funcionava corretamente. Agora está disponível uma primeira versão beta do Leopard Flower , que resolve o problema por um daemon de espaço do usuário.

Em geral, um firewall por processo não é muito útil, a menos que você realmente isole e restrinja os programas. Para isso, você deve procurar soluções de segurança como TOMOYO Linux, SELinux, AppArmor, grsecurity, SMACK, ...

jofel
fonte
1

Fácil, execute seu processo com um usuário diferente e use '--uid-owner' :)

jirib
fonte
11
Esse foi o meu primeiro pensamento também, mas como observei, não funciona nos processos de escuta.
S3c
Qual é exatamente a sua intenção? Para garantir que um proprietário / processo específico tenha seus próprios portos abertos para conexão de entrada / saída?
jirib