iptables / pf para permitir somente o aplicativo / usuário XY?

4

Acho que não há uma solução iptables / pf para permitir apenas um aplicativo XY em, por exemplo: porta tcp de saída 80, eth0. Então, se eu tenho um ID de usuário: "500", então como eu poderia bloquear qualquer outra comunicação, em seguida, o mencionado na porta 80 / outbound / tcp / eth0? (por exemplo: apenas o privoxy está usando a porta 80 no eth0)

Extra: o virtualbox também usa a porta 80? quando um navegador no convidado visita um site ... como declamar isso? - definir o usuário normal seria muito buraco

    
por LanceBaynes 03.05.2011 / 07:24

1 resposta

6

aqui está o comando iptables para permitir um certo uid através de uma determinada porta.

iptables -A OUTPUT -p tcp -m tcp --dport 80 -m owner --uid-owner username -j ACCEPT 

da página de manual

[!] --uid-owner userid[-userid] Matches if the packet socket’s file structure (if it has one) is owned by the given user. You may also specify a numerical UID, or an UID range.

no que diz respeito ao virtualbox .. Acredito que ele executa seu próprio kernel ... portanto, talvez você queira usar o --uid-owner de virtualbox no sistema operacional host, mas tenha uma regra de --uid-owner de proprietário na máquina virtual como bem.

Também pode ser útil observar que --gid-owner também existe e você pode criar um grupo browser e sgid de seus aplicativos de navegador para que ele seja executado com um grupo efetivo browser e só coloque usuários que você quer ter navegação nesse grupo ... isso não seria uma solução perfeita ... mas a maioria dos usuários não tentaria executar nenhum outro aplicativo como esse grupo, geralmente restringindo a saída para esse aplicativo, acredito. Eu não tentei isso, então eu não estou 100% que funcionaria como eu descrevi.

    
por 03.05.2011 / 10:53