29-8-02 - Boletim ViaLinuxis em sintonia com o Fórum |
proxy transparente |
Temos um Servidor Linux com clientes windows. Nossa rede eh organizada em grupos de trabalho e nao em dominio. Ha alguma maneira de bloquear o acesso a internet apenas de um micro especifico na rede sem utilizar o proxy squid?? Isso porque se o usuario souber configurar o internet explorer para nao acessar via servidor proxy ele terah acesso sem restricao a internet. Ha algum jeito pra isso?
Wendelmaques Rodrigues Pereira URL: http://www.e-alinux.com
Sim, você usará o chamado proxy transparente, no qual você redireciona todas as requisições da rede interna usando a portal 80 para a porta 3128 do squid. Assim, mesmo se o usuário desativar o proxy nas configurações do navegador, ele usará o proxy de forma transparente. Para permitir o acesso a determinadas máquinas da rede, você também usará o iptables para tal. Veja os exemplos abaixo: Para redirecionar transparentemente os usuários para navegar usando o squid use a seguinte regra no iptables do seu gateway de acesso à internet: iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128 Assumindo que sua interface de saída seja a eth0 e a porta do proxy do squid é a 3128. Agora no arquivo de configuração do squid, certifique que existe as seguintes linhas descomentadas (/etc/squid/squid.conf): #>> Inicio das configurações no squid. httpd_accel_host virtual httpd_accel_port 80 httpd_accel_with_proxy on httpd_accel_uses_host_header on #>> Fim das configurações no squid. Agora para permitir que somente determinadas máquinas tenham acesso ao web, use o iptables com as seguintes regras: #echo 1 > /proc/sys/net/ipv4/ip_forward #modprobe iptable_nat #iptables -t nat -A POSTROUTING -s 10.0.0.10 -o ppp0 -j MASQUERADE Obs: A primeira linha habilita o repasse de pacotes no kernel, você pode deixar ela em /etc/init.d/network por padrão, ou em qualquer lugar que permita a execução dessa linha na inicialização do sistem. A segunda carrega o módulo nat. A terceira linha permite que a máquina '10.0.0.10' tenha acesso ao acesso via ppp0 que pode ser eth0, ou seja, na verdade vai ser só o repasse de pacotes de uma interface para outra, que dá a impressão de está havendo autorização de acesso na internet. Lembre-se de limprar todas as regras de acesso à internet, pois se elas estiverem já configuradas não vai adiantar somente que uma máquina esteja com essa configuração, ou seja, negue todo o acesso e só então faça a configuração manual para cada máquina.