Proxy transparente com o DansGuardian

Como vimos até agora, o DansGuardian funciona como uma camada extra, uma espécie de “pedágio”, por onde as requisições passam antes de chegarem ao Squid e por onde as respostas passam antes de serem enviadas ao cliente.

Normalmente, os clientes precisam ser configurados manualmente para utilizar o DansGuardian como proxy, acessando-o através da porta 8080. Isso traz de volta o problema de configurar manualmente cada um dos micros e evitar que os usuários removam a
configuração para acessar diretamente, sem passar pelo filtro.

Contudo, é possível configurar o DansGuardian para trabalhar como proxy transparente, da mesma forma que fizemos anteriormente com o Squid. Neste caso, o firewall redireciona as requisições recebidas na porta 80 para o DansGuardian e ele as repassa
para o Squid, que finalmente faz o acesso. Os clientes precisam apenas ser configurados para acessar a internet usando o servidor onde estão instalados o Squid e DansGuardian como gateway.

Comece adicionando as quatro linhas que ativam o proxy transparente no “/etc/squid/squid.conf”:

httpd_accel_host virtual
httpd_accel_port 80
httpd_accel_with_proxy on
httpd_accel_uses_host_header on

Depois vêm as regras de firewall para habilitar o compartilhamento da conexão e direcionar as requisições recebidas na porta 80 para a porta usada pelo DansGuardian. Novamente, é a mesma configuração usada para fazer um proxy transparente no Squid,
mudando apenas a porta. Lembre-se que o “eth0” deve ser substituído pela interface ligada na rede local:

modprobe iptable_nat
iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A PREROUTING -i eth0 -p tcp –dport 80 -j REDIRECT \
–to-port 8080
iptables -A INPUT -m tcp -p tcp -s ! 127.0.0.1 –dport 3128 -j DROP

A última regra bloqueia a porta 3128 usada pelo Squid, para impedir que algum espertinho configure o navegador para acessar diretamente através do Squid, sem passar pelo DansGuardian. A única exceção é o endereço 127.0.0.1, ou seja, o próprio servidor.
Lembre-se de colocar estes comandos no arquivo “/etc/rc.d/rc.local” ou “/etc/init.d/bootmisc.sh” para não precisar ficar digitando tudo a cada boot.

Sobre o Autor

Redes Sociais:

Deixe seu comentário

X