Squid: Proxy Transparente
28 04 2008Usar proxy transparente pode ser uma boa solução para escritórios e empresas pequenas. Dessa forma, fazendo com que todas as estações naveguem obrigatoriamente pelo proxy.
Nesse caso, no script de firewall se usa um comando redirecionando todas as conexões da porta 80 para porta onde roda o serviço de proxy, como no caso abaixo 3128:
-A PREROUTING -s 192.168.0.0/24 -p tcp -m tcp –dport 80 -j REDIRECT –to-ports 3128
Após fazer o redir no script de firewall, no squid.conf, da versão 2.4 ou 2.5 se usa os seguintes parâmetros:
httpd_accel_port 80
httpd_accel_host virtual
httpd_accel_with_proxy on
httpd_accel_uses_host_header on
Para versão 2.6 do squid, basta especificar na linha http_port 192.168.0.1:3128 transparent
Uma desvantagem do uso do proxy transparent, é que ao ocorrer problema pra acessar algum site, não é possível testar o acesso ao mesmo sem passar pelo proxy.
Mas existe uma forma de fazer com que uma estação específica, ou uma rede inteira nao faça o redir da porta 80 para 3128. Colocando uma regra especificando outra ação no PREROUTING antes de ser lida a regra que faz o redir. No caso específico, usei essa regra:
-I PREROUTING -s 192.168.0.0/24 -d 200.201.173.0/255.255.255.0 -j ACCEPT
-I PREROUTING -s 192.168.0.0/24 -d 200.201.174.0/255.255.255.0 -j ACCEPT
Obs.: é importante o parametro “I” que faz com que a regra seja lida primeiro.
Nessa situação acima era necessário fazer com que as conexões destinadas ao range de ips do conectividade social fossem repassadas direto ao destino sem fazer o redir.

















Comentários