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


8

Eu acho que não há nenhuma solução iptables / pf para permitir apenas um aplicativo XY em, por exemplo: porta TCP de saída 80, eth0. Portanto, se eu tiver um ID do usuário: "500", como posso bloquear outras comunicações, a mencionada 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 sistema operacional convidado visita um site ... como declarar isso? - definir o usuário normal seria muito buraco


é certo que pode ser mais fácil se você dividir essa pergunta em 2 (ou mais) perguntas ... o material bsd será muito diferente do material linux ... e, em muitos aspectos, você também terá uma pergunta sobre caixa virtual. Pessoalmente, penso que "como permito apenas o aplicativo / usuário XY através do iptables" e "como permito apenas o aplicativo / usuário XY através do pf" são boas perguntas.
Xenoterracide

Respostas:


8

aqui está o iptablescomando para permitir uma certa uidatravés de uma certa porta.

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

na página do manual

[!] --uid-owner userid [-userid] Corresponde se a estrutura de arquivos do soquete do pacote (se houver) pertencer ao usuário especificado. Você também pode especificar um UID numérico ou um intervalo de UID.

no que diz respeito ao virtualbox .. Eu acredito que ele executa seu próprio kernel ... então você pode usar o --uid-ownervirtualbox no sistema operacional host, mas também possui uma --uid-ownerregra de proprietário na máquina virtual.

Também pode ser útil observar que isso --gid-ownertambém existe, e você pode criar um grupo browsere sgidseus aplicativos de navegador para executá-lo com um grupo eficaz browsere colocar apenas os usuários que você deseja que navegem nesse grupo ... isso não seria um solução perfeita ... mas a maioria dos usuários não tentaria executar outros aplicativos como esse grupo, geralmente restringindo a saída para o aplicativo que eu acredito. Eu não tentei isso, então não sou 100% que funcionaria como descrevi.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.