Desativar rede para usuários específicos

16

Estou trabalhando na distribuição Ubuntu / Mint para ser executada ao vivo. Existem várias contas que se enquadram em três grupos gerais: Admin, Internet e Segurança.

  • Admin é obviamente tem autoridade para fazer o que for.
  • Conta da Internet é para usar a Internet.

As outras contas são contas de segurança . Sob nenhuma circunstância é permitida qualquer rede de Internet, impressora, Bluetooth, dispositivos WiFi, etc.

O que eu gostaria de fazer é remover os drivers de rede do kernel, mas isso desabilitaria as contas que precisam da Internet.

Quais são as maneiras de nível mais baixo para desativar a Internet para essas contas de segurança? Estou procurando soluções impossíveis de conectar .

bambuntu
fonte

Respostas:

14

Você pode fazer isso com iptables.

Em um terminal, adicione a regra a iptables

sudo iptables -A OUTPUT -p all -m owner --uid-owner username -j DROP

onde username é o usuário que você deseja desativar a conexão com a Internet. Salve o arquivo e saia.

Isso adicionará uma regra ao iptablesdizer que todos os pacotes de saída criados pelo usuário especificado serão descartados automaticamente iptables.

Se você quiser fazer o mesmo para um grupo completo, sugiro que, em vez de --uid usernamevocê usar --gid-owner groupname, isso terá o mesmo efeito para um grupo completo de usuários.

Portanto, para impedir que o grupo Security acesse a Internet, o comando seria semelhante a este

sudo iptables -A OUTPUT -p all -m owner --gid-owner security -j DROP

Para tornar a regra permanente, você pode criar um script /etc/network/if-up.d/, adicionar as linhas necessárias e torná-lo executável.


Como opção, use iptables-savepara salvar suas regras atuais e restaurá-las na inicialização.

Salve as iptablesregras atuais

sudo iptables-save > /etc/iptables_rules

Abra /etc/rc.localcom o seu editor de texto favorito e, no final do arquivo, adicione

/sbin/iptables-restore < /etc/iptables_rules

Isso restaurará as regras salvas em cada inicialização.

Para mais informações, visite a página [ iptablesmanpage ] para mais informações sobre várias iptablesopções.

Bruno Pereira
fonte
Obrigado. Isso funcionou para a Internet, mas esse usuário ainda pode usar o bluetooth. Estou testando a tecnologia sem fio, mas não confirmei. Parece que a conta está bloqueada no DENY. Eu tentei, sudo iptables -A OUTPUT -p all -m owner --uid-owner internet -j ACCEPTmas isso não o ativou novamente para testes.
bambuntu 6/02
Ok, o iptables parece ser um filtro para algo mais baixo que realmente faz a conexão de rede. Qual é o aplicativo que possibilita a conexão? Posso desativá-lo? Nesse caso, desabilitar com base em quem está no controle do console. Esta distribuição ao vivo destina-se a vários usuários, mas não a mais de um console. Portanto, se eu conseguir rastrear quem está usando o console, acho que posso desativar esse aplicativo de rede com base nas permissões dos usuários.
bambuntu 6/02/2012
Bem, esse seria o seu gerente de rede no Ubuntu network-manager, se você remover um usuário do grupo networke desativar a conexão network-managerou outra ferramenta similar, ele não poderá recuperá-lo novamente, por outro lado, o usuário que faz parte do grupo de rede. Esse é outro nível de pensamento, pois desabilita a conexão.
Bruno Pereira
Depois de pesquisar um pouco no Google, descobri que você pode remover o gerenciador de rede e configurar o Ubuntu tradicionalmente editando / etc / network / interfaces . Este não parece ser o aplicativo de rede que estou procurando desativar. Estou parecendo um pouco mais baixo. Quão baixo podemos ir antes de chegar ao motorista?
bambuntu 07/02
Consegui remover e limpar o gerenciador de rede. Nesse ponto, a rede estava desativada. Mas pude trazer as coisas de volta com isso: sudo /etc/init.d/networkingdepois da edição /etc/network/interfaces Então é /etc/init.d/networkingtão baixo quanto você vai?
bambuntu
2

A solução de Bruno é boa: acho que provavelmente a melhor solução independente.

Outra opção em que você pode pensar é configurar um firewall / proxy em uma máquina separada, como o gateway para a Internet, que permite apenas conexões que fornecem autenticação por usuário. Você pode usar os dois juntos para obter proteção extra.

poolie
fonte