verses do Squid Dicas do Guia do Hardware A partir do Squid 2.6 a configurao de proxy transparente mudou, tornando desatualizados a maioria dos tutoriais e dicas antigos. Esta dica explica a nova configurao mais simples !" e d# dicas gerais para quem $ novo no tema.Carlos E. Morimoto !"#$"%##& % Squid permite compartil&ar a conexo entre v#rios micros, servindo como um intermedi#rio entre eles e a internet. 'sar um proxy $ diferente de simplesmente compartil&ar a conexo diretamente, via (A). Ao compartil&ar via (A), os micros da rede acessam a internet diretamente, sem restri*es. % servidor apenas repassa as requisi*es rece+idas, como um garoto de recados. % proxy $ como um +urocrata que no se limita a repassar as requisi*es! ele analisa todo o tr#fego de dados, separando o que pode ou no pode passar e guardando informa*es para uso posterior. 'm dos principais pro+lemas de usar um proxy $ que voc, precisa configurar manualmente cada micro da rede para utiliz#-lo, o que $ um tra+al&o cansativo e tedioso, so+retudo em grandes redes. % Squid responde a este desafio com a possi+ilidade de criar um proxy transparente, onde o proxy se integra a uma rede .# existente, acelerando a conexo, mas sem precisar de qualquer configurao nos clientes. Ao usar um proxy transparente, voc, tem +asicamente uma conexo compartil&ada via (A), com a mesma configurao +#sica nos clientes. % proxy entra na &ist/ria como um adicional. 'ma regra de fire0all envia as requisi*es rece+idas na porta 12 do servidor para o proxy, que se encarrega de responder aos clientes. )oda a navegao passa a ser feita automaticamente atrav$s do proxy incluindo o cac&e dos arquivos do 3indo0s update, do0nloads diversos e os pacotes instalados atrav$s do apt-get", sem que voc, precise fazer nen&uma configurao adicional nos clientes !". 4esmo que algu$m tente desa+ilitar o proxy manualmente nas configura*es do navegador, ele continuar# sendo usado. 5asta usar o endereo 67 do servidor rodando o proxy como gate0ay da rede. 8em+re-se de que, para usar o proxy transparente, voc, .# deve estar compartil&ando a conexo no servidor via (A) e, naturalmente, .# deve estar com um servidor Squid configurado. 9oc, aprende a configurar o Squid em detal&es no cap:tulo ; do livro <edes e Servidores 8inux 2ed. 9oc, pode tam+$m ler meu tutorial antigo, dispon:vel no! &ttp!==000.guiado&ard0are.net=tutoriais=2>2=. 7ara ativar o proxy transparente, rode o comando a+aixo. Ele direciona as requisi*es rece+idas na porta 12 para o Squid! # iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRET --to-port !"#8 % ?et&2? no comando indica a placa da rede local, onde o proxy rece+e as requisi*es dos outros micros da rede e o ?@A21? indica a porta usada pelo Squid. Adicione o comando .unto com os B comandos que compartil&am a conexo no final do arquivo ?=etc=rc.d=rc.local? ou ?=etc=init.d=+ootmisc.s&? no Ce+ian" para que eles se.am executados durante o +oot.Dinalmente, voc, precisa ativar o suporte ao modo transparente dentro do arquivo ?=etc=squid=squid.conf? e reiniciar o servio. E aqui que entra a parte principal desta dica. A partir do Squid 2.6 a configurao de proxy transparente mudou, tornando desatualizados a maioria dos tutoriais e dicas antigos. Se voc, est# usando uma verso recente, do Squid 2.6 em diante, a configurao de proxy transparente $ feita com uma Fnica lin&a. 5asta su+stituir a lin&a ?&ttpGport @A21? no in:cio do arquivo por! http$port !"#8 transparent %u se.a, na verdade voc, precisa apenas adicionar o ?transparent?, para que o Squid passe a entender as requisi*es redirecionadas pela regra do fire0all. (o caso das vers*es mais antigas, anteriores H 2.6 como a usada no Ce+ian Sarge e no '+untu ;.A2", voc, usa a receita antiga, onde $ necess#rio adicionar as quatro lin&as a+aixo, no final do arquivo ?=etc=squid=squid.conf? neste caso, sem alterar a lin&a ?&ttpGport @A21?"! &ttpdGaccelG&ost virtual &ttpdGaccelGport 12 &ttpdGaccelG0it&Gproxy on &ttpdGaccelGusesG&ostG&eader on Em qualquer um dos dois casos, voc, precisa reiniciar o servio para que a alterao entre em vigor! # %etc%init&d%s'(id restart Em caso de dFvida so+re qual verso do Squid est# instalada, use o comando ?squid -v?, que al$m de reportar a verso, informa todas as op*es que foram usadas durante a compilao! # s'(id -) Squid Iac&e! 9ersion 2.6.S)A58E2configure options! J--prefixK=usrJ J-- execGprefixK=usrJ J--+indirK=usr=s+inJ J--s+indirK=usr=s+inJ J-- li+execdirK=usr=li+=squidJ J--sysconfdirK=etc=squidJ J--localstatedirK=var=spool=squidJ J--datadirK=usr=s&are=squidJ J--ena+le-async-ioJ J--0it&-pt&readsJ J--ena+le- storeioKufs,aufs,disLd,nullJ J--ena+le-linux-netfilterJ J--ena+le-linux-proxyJ J--ena+le- arp-aclJ J--ena+le-epollJ J--ena+le-removal-policiesKlru,&eapJ J--ena+le-snmpJ J-- ena+le-delay-poolsJ J--ena+le-&tcpJ J--ena+le-cac&e-digestsJ J--ena+le-underscoresJ J-- ena+le-referer-logJ J--ena+le-useragent-logJ J--ena+le-aut&K+asic,digest,ntlmJ J-- ena+le-carpJ J--0it&-large-filesJ Ji@16-de+ian-linuxJ J+uildGaliasKi@16-de+ian-linuxJ J&ostGaliasKi@16-de+ian-linuxJ JtargetGaliasKi@16-de+ian-linuxJ Em resumo, voc, vai ter a conexo compartil&ada via (A) no servidor e configurar# os clientes para acessar atrav$s dela, colocando o servidor como gate0ay da rede. Ao ativar o proxy transparente, a configurao dos clientes continua igual, a Fnica diferena $ que agora graas H nova regra do 6pta+les" todo o tr#fego da porta 12 passar#, o+rigatoriamente, pelo servidor Squid. 6sso permite que voc, se +eneficie do log dos acessos e do cac&e feito pelo proxy, sem ter que se su.eitar Hs desvantagens de usar um proxy, como ter que configurar manualmente cada estao. 'ma o+servao importante $ que esta configurao de proxy transparente no funciona em con.unto com o sistema de autenticao incluso no Squid. Ao usar o proxy transparente a autenticao deixa de funcionar, fazendo com que voc, precise escol&er entre as duas coisas. Iaso voc, precise com+inar o uso de autenticao com o proxy transparente, voc, precisar# utilizar outra soluo, como o (atAI8 ou o (oIatAut&, que voc, encontra nos linLs! &ttp!==000.&ostname.org=proxyGaut&= e &ttp!==nocat.net=.