Controlando o Squid no Linux

Um dos usos mais comuns de computadores com Linux em redes corporativas é no papel de elo de ligação entre os computadores locais e a Internet. Há muitas maneiras de configurar este serviço, e uma das mais populares é o uso de servidores proxy, que permitem o acesso aos serviços da Internet com segurança e economia de recursos.

Por Softwares Pular para comentários
Controlando o Squid no Linux Um dos usos mais comuns de computadores com Linux em redes corporativas ? no papel de elo de liga??o entre os computadores locais e a Internet. H? muitas maneiras de configurar este servi?o, e uma das mais populares ? o uso de servidores proxy, que permitem o acesso aos servi?os da Internet com seguran?a e economia de recursos.

Entre os servidores proxy dispon?veis para Linux, o Squid ?, sem d?vida, o mais popular. Com o Squid instalado em uma m?quina Linux com acesso ? Internet e acess?vel a partir das demais m?quinas 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 n?o precisam estar rodando Linux - de fato, todos os principais browsers do mercado permitem o acesso atrav?s de um servidor proxy baseado no Squid.

A plataforma de testes

Para os exemplos deste artigo, instalamos a configura??o padr?o do Conectiva Linux 7.0 servidor em um PC comum, ligado ? Internet atrav?s de um cable modem e com conex?o ? rede local atrav?s de uma placa de rede PCI comum. A configura??o da rede foi realizada de acordo com a documenta??o do provedor e da distribui??o. Os procedimentos para outras distribui?es s?o similares, e voc? pode contar com a documenta??o do Squid para auxiliar. (Veja o box Para saber mais).

O primeiro item a ser verificado ? a instala??o do pr?prio Squid. No caso do Conectiva Linux 7.0, ele est? no CD n?mero 1, e foi instalado atrav?s do comando rpm -ivh /mnt/cdrom/squid-2.4.1-1cl.i386.rpm. O arquivo de configura??o default do Squid vem quase pronto para utiliza??o (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 p?gina http. As outras op?es s?o importantes tamb?m, mas n?o 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 padr?o de sua distribui??o preferida) para configurar a inicializa??o autom?tica a cada boot.

Configure seu browser para utilizar o servidor proxy (geralmente basta informar o endere?o e a porta, que por padr?o ? 3128) e fa?a 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 administra??o direta, com mais flexibilidade e recursos, o ideal ? utilizar programas auxiliares, que utilizam a interface de redirecionamento do Squid para implementar listas de permiss?o e restri??o baseadas em diversos crit?rios.

H? muitos programas neste estilo. Entre eles, o SquidGuard se destaca pelos recursos avan?ados, incluindo controle de acesso baseado no endere?o de origem, de destino, na URL, no hor?rio ou em combina?es destes itens, al?m de v?rios tipos de redirecionamento, listas negras e outras preciosidades. Segundo o site oficial, o SquidGuard em um Pentium 500 atende a at? 100.000 solicita?es em 10 segundos, com uma lista de controle de acesso de mais de 13.000 itens - r?pido o suficiente para a sua rede, n?o?

A compila??o a partir do c?digo fonte exige que voc? tenha a biblioteca db (dispon?vel em www.sleepycat.com) instalada. Portanto, prepare-se para v?rios downloads e compila?es - a n?o ser que sua distribui??o j? conte com uma vers?o pr?-compilada do SquidGuard.

Depois de compilado e instalado de acordo com as instru?es do site oficial, ? hora de configurar. Acompanhe as explica?es atrav?s 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 - defini?es b?sicas logdir /var/squidGuard/logs dbhome /var/squidGuard/db

# 2 - define uma regra de hor?rio 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 }

# 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 n?o for nenhuma origem conhecida, rejeitar default { pass none redirect http://www.nossapagina.com.br/bloqueado.htm } }


A primeira parte traz as defini?es gerais, onde ser?o gravados os logs, e os arquivos de defini?es de destinos proibidos. No exemplo, escolhemos dois diret?rios em /var/squidGuard - eles precisam ser criados manualmente, com permiss?o de leitura para todos.

A segunda parte define uma regra de hor?rio, chamada horario_livre, que vai das 18:00 ?s 8 da manh?. Voc? pode ter m?ltiplas regras de hor?rio, incluindo configura?es baseadas em dias da semana ou do m?s. Note que estamos apenas definindo nomes para as regras, sem dizer se neste hor?rio vai ser permitido ou negado o acesso - esta parte vem mais tarde.

A terceira parte define um grupo interno de m?quinas, chamado sala_de_aula. Este grupo ? definido atrav?s do endere?o IP, e sua m?scara ? 10.10.200.0/24 - ou seja, qualquer endere?o IP que comece com 10.10.200. Se voc? n?o est? em dia com a sua aritm?tica de m?scaras IP, ? uma boa hora para reler os manuais!

A parte 4 define um segundo grupo interno de m?quinas, chamado escritorios, com a m?scara 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 conte?dos est?o nas listagens 2 e 3). O primeiro indica um conjunto de nomes de dom?nio (exemplo: xporno.com), e o segundo cont?m fragmentos de URLs (exemplo: www.exemplo.org/legs) que iremos bloquear logo a seguir. Se voc? sabe usar express?es regulares, ? poss?vel definir um terceiro tipo de arquivo, contendo as express?es que dever?o ser bloqueadas. O nome do nosso grupo de destinos ? porno, mas voc? pode ter m?ltiplos grupos de destinos, para bloque?-los de acordo com o hor?rio e com a origem das requisi?es de acesso com o m?ximo de flexibilidade.

A ?ltima parte do arquivo ? a que ir? unir todas as defini?es acima, criando regras. Seguimos um exemplo do pr?prio site oficial do SquidGuard para demonstrar v?rias combina?es poss?veis.

O item (a) define as regras para o escrit?rio. Dentro das horas definidas em horario_livre, todos os sites podem passar (pass all). Fora desse hor?rio, vale a regra mais restritiva: exceto porn?, passa tudo (pass ! porno all).

O item (b) ? uma regra mais simples: nas salas de aula, n?o importa o hor?rio: passa tudo menos porn? (pass !porno all).

Se a origem n?o for nenhuma das duas acima, ca?mos no grupo (c) - o default. No caso, estamos negando todos os acessos: pass none. Al?m disso, nesta regra definimos o destino default a ser redirecionado toda vez que algum usu?rio tentar acessar uma p?gina a que n?o tem acesso. Mas certifique-se de que essa p?gina 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

Ap?s 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 instala??o):

redirect_program /usr/bin/squidGuard


Reinicie o Squid (pode ser atrav?s do comando killall -HUP squid) e teste! Adapte a configura??o para as suas necessidades e maximize a efici?ncia do uso de sua conex?o ? web. Uma sugest?o extra ? definir regras que bloqueiem os endere?os dos banners dos sites mais freq?entados, evitando assim o tr?fego gerado por eles.

Analisando os logs



Controlar o acesso pode n?o ser suficiente, se voc? n?o souber o que e como cortar. Felizmente o Squid mant?m excelentes logs de acesso, e h? ?timos programas capazes de analisar todos estes registros e gerar relat?rios bastante coerentes.

Um dos mais simples de instalar e utilizar ? o Calamaris. Ele l? os seus logs do Squid e gera relat?rios por origem, por destino, e v?rios outros, contendo picos, m?dias e todas as outras m?tricas que voc? precisa para saber quem est? usando seu servidor proxy, e de que forma. Os relat?rios 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 instala??o ? extremamente simples: descompacte o arquivo .tar.gz e copie o execut?vel (chamado 'calamaris', sem extens?o) para o diret?rio /usr/bin. A?, digite calamaris -- help para ver as op?es deste programa, e use-o da seguinte forma:

cat /var/squid/logs/access.log | calamaris -a -m


Note que a localiza??o do seu arquivo de log de acesso pode variar! A op??o indica que queremos todos os relat?rios (-a), em formato mail (-m). Ao inv?s do -m, poder?amos usar o -w para gerar em formato web. E h? muitas outras op?es dispon?veis na documenta??o, 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 servi?os e bloqueie sites indesej?veis. Com o controle por hor?rios, voc? pode ajudar a evitar que o acesso ? Internet comprometa a produtividade, sem ter que bloquear completamente o acesso ? Internet - corte apenas os sites desnecess?rios!

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 efici?ncia de sua rede, e voc? n?o deve deixar de experimentar e aplicar estas duas ferramentas.

Refer?ncia: http://br-linux.org/

Recomendações do editor:

Mais sobre: squid, linux, proxie
Compartilhe com seus amigos:
Daniel Paulino
Daniel Paulino CEO na DanielPaulino.net. Instrutor, palestrante sobre mídias sociais e aficionado por tecnologia que adora compartilhar o que sabe através de vídeo aulas e artigos em vários sites a web.
FACEBOOK // TWITTER: @DanielPaulinoS
Quer conversar com o(a) Daniel, comente:
Carregar comentários
Últimas notícias