Aprenda Como Controlar Melhor o Seu Servidor de Proxy Squid Squid-Cache.org

download Aprenda Como Controlar Melhor o Seu Servidor de Proxy Squid Squid-Cache.org

of 3

Transcript of Aprenda Como Controlar Melhor o Seu Servidor de Proxy Squid Squid-Cache.org

  • Aprenda como controlar melhor o seu servidor de proxy Squid

    Autoria de Augusto Campos ([email protected])

    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 ligaoentre os computadores locais e a Internet. H muitas maneiras de configurar este servio, e uma das maispopulares o uso de servidores proxy, que permitem o acesso aos servios da Internet com segurana eeconomia de recursos.

    Entre os servidores proxy disponveis para Linux, o Squid , sem dvida, o mais popular. Com o Squidinstalado em uma mquina Linux com acesso Internet e acessvel a partir das demais mquinas de suarede, voc pode compartilhar a WWW e os servidores FTP, com a possibilidade de controlar e restringir oacesso. Os computadores da rede local no precisam estar rodando Linux - de fato, todos os principaisbrowsers 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 PCcomum, ligado Internet atravs de um cable modem e com conexo rede local atravs de uma placa derede PCI comum. A configurao da rede foi realizada de acordo com a documentao do provedor e dadistribuio. Os procedimentos para outras distribuies so similares, e voc pode contar com adocumentao 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 noCD nmero 1, e foi instalado atravs do comando rpm -ivh /mnt/cdrom/squid-2.4.1-1cl.i386.rpm. O arquivode configurao default do Squid vem quase pronto para utilizao (ao menos para nossos testes) - tudo oque 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 distribuiopreferida) para configurar a inicializao automtica a cada boot.

    Configure seu browser para utilizar o servidor proxy (geralmente basta informar o endereo e a porta, quepor padro 3128) e faa os testes - o acesso deve ocorrer normalmente. Em caso de problemas, revise ospassos at tudo estar correto, antes de prosseguir.

    Controlando o acesso

    Para quem precisa de administrao direta, com mais flexibilidade e recursos, o ideal utilizar programasauxiliares, que utilizam a interface de redirecionamento do Squid para implementar listas de permisso erestrio baseadas em diversos critrios.

    H muitos programas neste estilo. Entre eles, o SquidGuard se destaca pelos recursos avanados, incluindocontrole de acesso baseado no endereo de origem, de destino, na URL, no horrio ou em combinaesdestes itens, alm de vrios tipos de redirecionamento, listas negras e outras preciosidades. Segundo o siteoficial, o SquidGuard em um Pentium 500 atende a at 100.000 solicitaes em 10 segundos, com uma listade 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 emwww.sleepycat.com) instalada. Portanto, prepare-se para vrios downloads e compilaes - a no ser quesua 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 oque 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 }

    Squid-Cache.org.br - A Casa Brasileira do Squid :: Aprenda como... http://www.squid-cache.org.br/index2.php?option=com_content&t...

    1 de 3 26/11/2011 03:35

  • # 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 redirecthttp://www.nossapagina.com.br/bloqueado.htm } }

    A primeira parte traz as definies gerais, onde sero gravados os logs, e os arquivos de definies dedestinos proibidos. No exemplo, escolhemos dois diretrios em /var/squidGuard - eles precisam ser criadosmanualmente, 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 ounegado o acesso - esta parte vem mais tarde.

    A terceira parte define um grupo interno de mquinas, chamado sala_de_aula. Este grupo definido atravsdo endereo IP, e sua mscara 10.10.200.0/24 - ou seja, qualquer endereo IP que comece com10.10.200. Se voc no est em dia com a sua aritmtica de mscaras IP, uma boa hora para reler osmanuais!

    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 doisarquivos texto (cujos contedos esto nas listagens 2 e 3). O primeiro indica um conjunto de nomes dedomnio (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 donosso grupo de destinos porno, mas voc pode ter mltiplos grupos de destinos, para bloque-los deacordo 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 exemplodo 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 sitespodem 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 negandotodos os acessos: pass none. Alm disso, nesta regra definimos o destino default a ser redirecionado todavez que algum usurio tentar acessar uma pgina a que no tem acesso. Mas certifique-se de que essapgina existe!

    Listagem 2 - /var/squidGuard/db/porno/dominios

    www.foo.com xporno.com zzgirls.netListagem 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 parautilizar o SquidGuard. Edite o /etc/squid.conf, acrescentando a seguinte linha (o path do SquidGuard podeser 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 assuas necessidades e maximize a eficincia do uso de sua conexo web. Uma sugesto extra definirregras que bloqueiem os endereos dos banners dos sites mais freqentados, evitando assim o trfegogerado por eles.

    Analisando os logs

    Squid-Cache.org.br - A Casa Brasileira do Squid :: Aprenda como... http://www.squid-cache.org.br/index2.php?option=com_content&t...

    2 de 3 26/11/2011 03:35

  • Controlar o acesso pode no ser suficiente, se voc no souber o que e como cortar. Felizmente o Squidmantm excelentes logs de acesso, e h timos programas capazes de analisar todos estes registros e gerarrelatrios bastante coerentes.

    Um dos mais simples de instalar e utilizar o Calamaris. Ele l os seus logs do Squid e gera relatrios pororigem, por destino, e vrios outros, contendo picos, mdias e todas as outras mtricas que voc precisapara saber quem est usando seu servidor proxy, e de que forma. Os relatrios podem ser gerados emHTML, caso voc queira public-los em sua Intranet, ou em texto puro, especial para ser enviadoautomaticamente por e-mail (que tal inclu-lo na cron para rodar todos os dias ao final do expediente?) ouconsultado no console.

    O Calamaris em Perl, portanto sua instalao extremamente simples: descompacte o arquivo .tar.gz ecopie 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 osrelatrios (-a), em formato mail (-m). Ao invs do -m, poderamos usar o -w para gerar em formato web. Eh 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 quaisservios 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 - corteapenas os sites desnecessrios!

    O SquidGuard uma excelente ferramenta para implementar as regras de controle de acesso, e o Calamarispermite que voc possa acompanhar seus resultados. Seu efeito combinado excelente para a eficincia desua rede, e voc no deve deixar de experimentar e aplicar estas duas ferramentas.

    Para Saber Mais

    SquidSquidGuardCalamaris

    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

    Squid-Cache.org.br - A Casa Brasileira do Squid :: Aprenda como... http://www.squid-cache.org.br/index2.php?option=com_content&t...

    3 de 3 26/11/2011 03:35