Como restringir o acesso à Internet para um usuário em particular na rede usando iptables no Linux

10

Digamos que há dois usuários na LAN, A e B. Como restringir o usuário A do acesso à Internet usando as regras do iptables e salvando as regras para que, após a reinicialização, elas continuem funcionando. Suponha também que eu queira conceder acesso ao usuário em algum momento; como faço para ativá-lo novamente? Eu estou usando o Ubuntu Linux 10.04. Seria legal se alguém me mostrasse como fazê-lo a partir da linha de comando, já que geralmente faço login na máquina usando um login ssh local.

    
por Marwan Tanager 28.09.2011 / 22:22

2 respostas

16

Eu assumo que os usuários A e B estão usando a (s) mesma (s) máquina (s) Linux onde você é o administrador. (Não está completamente claro na sua pergunta. Se A e B têm seus próprios computadores nos quais são administradores, é um problema completamente diferente.)

O comando a seguir evitará que o usuário com o uid 1234 envie pacotes na interface eth0 :

iptables -t mangle -A OUTPUT -o eth0 -m owner --uid-owner 1234 -j DROP

Eu recomendo ler o guia do iptables do Ubuntu para obter familiaridade básica com a ferramenta (e consulte a página do manual para obter coisas como a mesa mangle).

O usuário ainda poderá executar o ping (porque é root setuid), mas não qualquer outra coisa. O usuário ainda poderá se conectar a um proxy local se esse proxy tiver sido iniciado por outro usuário.

Para remover essa regra, adicione -D ao comando acima.

Para tornar a regra permanente, adicione-a a /etc/network/if-up.d/my-user-restrictions (torne esse script executável começando com #!/bin/sh ). Ou use iptables-save (consulte o guia do iptables do Ubuntu para obter mais informações).

    
por 28.09.2011 / 23:18
0

Eu não usaria o iptables para isso.

Eu assumo que A e B estão associados aos IPs fixos ClientA e ClientB. Eu suponho que o seu Internet-Proxy é ServerI (seu Ubuntu-Server?).

Então, eu adicionaria uma entrada de roteamento deny / drop do ClientA para o ServerI.

Eu não uso o Ubuntu - então não posso dizer qual arquivo de configuração usar para tornar essa configuração permanente (sobreviver a uma reinicialização).

Talvez alguém possa adicionar esse detalhe?

    
por 28.09.2011 / 22:53