Você está na página 1de 3

Squid-Cache.org.br - A Casa Brasileira do Squid :: Aprenda como...

http://www.squid-cache.org.br/index2.php?option=com_content&t...

Aprenda como controlar melhor o seu servidor de proxy Squid


Autoria de Augusto Campos (brain@matrix.com.br)

07 de abril de 2006 Originalmente publicado na edio 27 da Revista do Linux. Um dos usos mais comuns de computadores com Linux em redes corporativas no papel de elo de ligao entre os computadores locais e a Internet. H muitas maneiras de configurar este servio, e uma das mais populares o uso de servidores proxy, que permitem o acesso aos servios da Internet com segurana e economia de recursos. Entre os servidores proxy disponveis para Linux, o Squid , sem dvida, o mais popular. Com o Squid instalado em uma mquina Linux com acesso Internet e acessvel a partir das demais mquinas de sua rede, voc pode compartilhar a WWW e os servidores FTP, com a possibilidade de controlar e restringir o acesso. Os computadores da rede local no precisam estar rodando Linux - de fato, todos os principais browsers do mercado permitem o acesso atravs de um servidor proxy baseado no Squid. A plataforma de testes Para os exemplos deste artigo, instalamos a configurao padro do Conectiva Linux 7.0 servidor em um PC comum, ligado Internet atravs de um cable modem e com conexo rede local atravs de uma placa de rede PCI comum. A configurao da rede foi realizada de acordo com a documentao do provedor e da distribuio. Os procedimentos para outras distribuies so similares, e voc pode contar com a documentao do Squid para auxiliar. (Veja o box Para saber mais). O primeiro item a ser verificado a instalao do prprio Squid. No caso do Conectiva Linux 7.0, ele est no CD nmero 1, e foi instalado atravs do comando rpm -ivh /mnt/cdrom/squid-2.4.1-1cl.i386.rpm. O arquivo de configurao default do Squid vem quase pronto para utilizao (ao menos para nossos testes) - tudo o que voc precisa localizar a linha que diz http_access deny all e substituir por http_access allow all assim seu proxy dar acesso irrestrito a qualquer pgina http. As outras opes so importantes tambm, mas no precisamos alter-las agora. Agora que j temos o Squid instalado e configurado, hora de execut-lo. No Conectiva Linux, o comando /etc/rc.d/init.d/squid start - ou utilize o ntsysv (ou o Linuxconf ou a ferramenta padro de sua distribuio preferida) para configurar a inicializao automtica a cada boot. Configure seu browser para utilizar o servidor proxy (geralmente basta informar o endereo e a porta, que por padro 3128) e faa os testes - o acesso deve ocorrer normalmente. Em caso de problemas, revise os passos at tudo estar correto, antes de prosseguir. Controlando o acesso Para quem precisa de administrao direta, com mais flexibilidade e recursos, o ideal utilizar programas auxiliares, que utilizam a interface de redirecionamento do Squid para implementar listas de permisso e restrio baseadas em diversos critrios. H muitos programas neste estilo. Entre eles, o SquidGuard se destaca pelos recursos avanados, incluindo controle de acesso baseado no endereo de origem, de destino, na URL, no horrio ou em combinaes destes itens, alm de vrios tipos de redirecionamento, listas negras e outras preciosidades. Segundo o site oficial, o SquidGuard em um Pentium 500 atende a at 100.000 solicitaes em 10 segundos, com uma lista de controle de acesso de mais de 13.000 itens - rpido o suficiente para a sua rede, no? A compilao a partir do cdigo fonte exige que voc tenha a biblioteca db (disponvel em www.sleepycat.com) instalada. Portanto, prepare-se para vrios downloads e compilaes - a no ser que sua distribuio j conte com uma verso pr-compilada do SquidGuard. Depois de compilado e instalado de acordo com as instrues do site oficial, hora de configurar. Acompanhe as explicaes atravs das listagens de 1 a 3. O primeiro arquivo a ser criado o /etc/squidguard.conf (Listagem 1). Este arquivo diz quem pode acessar o que e quando. Vamos analisar cada uma de suas partes. Listagem 1 - /etc/squidguard.conf # /etc/squidguard.conf # parte 1 - definies bsicas logdir /var/squidGuard/logs dbhome /var/squidGuard/db # 2 - define uma regra de horrio time horario_livre { weekly * 00:00-08:00 18:00-24:00 } # 3 - define um grupo interno src sala_de_aula { ip 10.10.200.0/24 }

1 de 3

26/11/2011 03:35

Squid-Cache.org.br - A Casa Brasileira do Squid :: Aprenda como...

http://www.squid-cache.org.br/index2.php?option=com_content&t...

# 4 - define um segundo grupo src escritorios { ip 10.9.0.0/16 } # 5 - um grupo de destinos dest porno { domainlist porno/dominios urllist porno/urls } # 6 - quem pode o que acl { # item (a) - escritorios, por horario escritorios within horario_livre { pass all } else { pass !porno all } # item (b) - sala de aula - nunca porn! sala_de_aula { pass !porno all } # item (c) - se no for nenhuma origem conhecida, rejeitar default { pass none redirect http://www.nossapagina.com.br/bloqueado.htm } } A primeira parte traz as definies gerais, onde sero gravados os logs, e os arquivos de definies de destinos proibidos. No exemplo, escolhemos dois diretrios em /var/squidGuard - eles precisam ser criados manualmente, com permisso de leitura para todos. A segunda parte define uma regra de horrio, chamada horario_livre, que vai das 18:00 s 8 da manh. Voc pode ter mltiplas regras de horrio, incluindo configuraes baseadas em dias da semana ou do ms. Note que estamos apenas definindo nomes para as regras, sem dizer se neste horrio vai ser permitido ou negado o acesso - esta parte vem mais tarde. A terceira parte define um grupo interno de mquinas, chamado sala_de_aula. Este grupo definido atravs do endereo IP, e sua mscara 10.10.200.0/24 - ou seja, qualquer endereo IP que comece com 10.10.200. Se voc no est em dia com a sua aritmtica de mscaras IP, uma boa hora para reler os manuais! A parte 4 define um segundo grupo interno de mquinas, chamado escritorios, com a mscara 10.9.0.0/16 qualquer IP que comece com 10.9. A quinta parte um pouco diferente: ela especifica um grupo de destinos, que toma a forma de dois arquivos texto (cujos contedos esto nas listagens 2 e 3). O primeiro indica um conjunto de nomes de domnio (exemplo: xporno.com), e o segundo contm fragmentos de URLs (exemplo: www.exemplo.org/legs) que iremos bloquear logo a seguir. Se voc sabe usar expresses regulares, possvel definir um terceiro tipo de arquivo, contendo as expresses que devero ser bloqueadas. O nome do nosso grupo de destinos porno, mas voc pode ter mltiplos grupos de destinos, para bloque-los de acordo com o horrio e com a origem das requisies de acesso com o mximo de flexibilidade. A ltima parte do arquivo a que ir unir todas as definies acima, criando regras. Seguimos um exemplo do prprio site oficial do SquidGuard para demonstrar vrias combinaes possveis. O item (a) define as regras para o escritrio. Dentro das horas definidas em horario_livre, todos os sites podem passar (pass all). Fora desse horrio, vale a regra mais restritiva: exceto porn, passa tudo (pass ! porno all). O item (b) uma regra mais simples: nas salas de aula, no importa o horrio: passa tudo menos porn (pass !porno all). Se a origem no for nenhuma das duas acima, camos no grupo (c) - o default. No caso, estamos negando todos os acessos: pass none. Alm disso, nesta regra definimos o destino default a ser redirecionado toda vez que algum usurio tentar acessar uma pgina a que no tem acesso. Mas certifique-se de que essa pgina existe! Listagem 2 - /var/squidGuard/db/porno/dominios www.foo.com xporno.com zzgirls.net Listagem 3 - /var/squidGuard/db/porno/urls www.portalzz.com.br/safadas www.exemplo.org/legs Aps criar este arquivo, crie os dois arquivos das listagens 2 e 3, e voc j poder configurar o Squid para utilizar o SquidGuard. Edite o /etc/squid.conf, acrescentando a seguinte linha (o path do SquidGuard pode ser diferente, dependendo de como voc fez a instalao): redirect_program /usr/bin/squidGuard Reinicie o Squid (pode ser atravs do comando killall -HUP squid) e teste! Adapte a configurao para as suas necessidades e maximize a eficincia do uso de sua conexo web. Uma sugesto extra definir regras que bloqueiem os endereos dos banners dos sites mais freqentados, evitando assim o trfego gerado por eles. Analisando os logs

2 de 3

26/11/2011 03:35

Squid-Cache.org.br - A Casa Brasileira do Squid :: Aprenda como...

http://www.squid-cache.org.br/index2.php?option=com_content&t...

Controlar o acesso pode no ser suficiente, se voc no souber o que e como cortar. Felizmente o Squid mantm excelentes logs de acesso, e h timos programas capazes de analisar todos estes registros e gerar relatrios bastante coerentes. Um dos mais simples de instalar e utilizar o Calamaris. Ele l os seus logs do Squid e gera relatrios por origem, por destino, e vrios outros, contendo picos, mdias e todas as outras mtricas que voc precisa para saber quem est usando seu servidor proxy, e de que forma. Os relatrios podem ser gerados em HTML, caso voc queira public-los em sua Intranet, ou em texto puro, especial para ser enviado automaticamente por e-mail (que tal inclu-lo na cron para rodar todos os dias ao final do expediente?) ou consultado no console. O Calamaris em Perl, portanto sua instalao extremamente simples: descompacte o arquivo .tar.gz e copie o executvel (chamado 'calamaris', sem extenso) para o diretrio /usr/bin. A, digite calamaris -help para ver as opes deste programa, e use-o da seguinte forma: cat /var/squid/logs/access.log | calamaris -a -m Note que a localizao do seu arquivo de log de acesso pode variar! A opo indica que queremos todos os relatrios (-a), em formato mail (-m). Ao invs do -m, poderamos usar o -w para gerar em formato web. E h muitas outras opes disponveis na documentao, esperando para serem descobertas e testadas. O Squid uma excelente ferramenta para liberar o acesso da sua rede interna WWW e a servidores de FTP. Se bem configurado e controlado, ele permite que voc defina exatamente quem pode acessar quais servios e bloqueie sites indesejveis. Com o controle por horrios, voc pode ajudar a evitar que o acesso Internet comprometa a produtividade, sem ter que bloquear completamente o acesso Internet - corte apenas os sites desnecessrios! O SquidGuard uma excelente ferramenta para implementar as regras de controle de acesso, e o Calamaris permite que voc possa acompanhar seus resultados. Seu efeito combinado excelente para a eficincia de sua rede, e voc no deve deixar de experimentar e aplicar estas duas ferramentas. Para Saber Mais Squid SquidGuard Calamaris

Fonte: Linux in Brazil Comentrios Somente usurios registrados podem escrever comentrios. Por favor faa o login ou registre-se.
Powered by AkoComment 2.0!

ltima Atualizao ( 14 de abril de 2006 )

Fechar Janela

3 de 3

26/11/2011 03:35