Você está na página 1de 5

30/10/12

Mini Tutorial sobre as ACLs no Squid

Mini Tutorial sobre as ACLs no Squid Prof. Agenor Prado 1 Introduo: O objetivo deste documento familiarizar os usurios a utilizar as Listas de Controle de Acesso (ACLs Access Control Lists) no Squid. Este mini tutorial no tem pretenso de ser um curso sobre Squid, nem mesmo um tutorial completo deste. Apenas um guia de referncia para criao de regras de acesso/bloqueio a Internet atravs das ACLs do Squid. Parte dos exemplos aqui usados forma retirados de tutorias de terceiros conforme podemos ver na referncia no final deste. 2 O Squid O Squid um Proxy (procurador) que extrapola a funcionalidade de armazenar pginas em cache para otimizar o acesso dos usurios a Internet. Suas funcionalidades atuais incluem bloqueios/permisses de acesso baseado em URLs, palavras chaves, IPs da rede local, IPs de destino e etc... O Squid foi desenvolvido sob licena GNU/GPL, originalmente para sistemas operacionais tipo Unix (Unix Like), mas possui hoje verso estvel tambm para Windows. Atualmente o Squid mantido por um grupo independente de desenvolvedores que recebem donativos de diversas empresas para manter o projeto em funcionamento. O Squid suporta alm do HTTP outros protocolos da camada de aplicao do modelo de referncia TCP/IP tais como HTTPS, FTP entre outros. 3 - Configurao A configurao do Squid feita editando seu arquivo de configurao, o squid.conf. Na instalao do RPM ele estar no /etc/squid/ (estamos baseando este mini tutorial em Linux). Use seu editor preferido para configurar o arquivo. O arquivo de configurao muito bem explicado, as configuraes padro vm comentadas facilitando o entendimento. O Squid trabalha "Escutando" uma porta TCP determinada, os clientes que querem acessar uma pagina Web, FTP, SSL fazem requisies nesta porta informando o servidor e o protocolo que querem utilizar e o squid faz a requisio na porta certa. A porta padro do Squid a porta 3128 isto pode ser alterado com uma diretiva do squid.conf chamada http_port. Como o objetivo deste tutorial apenas conceitos de ACLs no entraremos em detalhes desta configurao. Aps a instalao e a criao da cache do Squid (ver outros tutoriais a respeito destes processos) podemos comear a configurar as permies deste atravs das ACLs que so as listas de controle de acesso.

dc363.4shared.com/doc/BztEKYiE/preview.html

1/5

30/10/12

Mini Tutorial sobre as ACLs no Squid

4 - Entendendo as ACLs. As ACLs permitem especificar endereos de origem ou destino, domnios, horrios, usurios, portas ou mtodos de conexo ao Proxy, que serviro de base para permitir ou negar o acesso baseando-se em conjuntos dessas ACL's (isso depende de cada tipo de ACL). Isto permite uma grande flexibilidade na configurao do Squid: podemos, por exemplo, especificar quais endereos podem ser acessados, quais no podem ser acessados, que certo endereo somente pode ser acessado em determinado horrio, que um usurio somente pode acessar a partir de uma maquina especifica, que um protocolo pode ou no ser utilizado, ou qualquer combinao dessas permisses/restries. As ACLs devem ser configuradas no arquivo squid.conf 4.1 A Sintaxe da ACL acl NOME_DA_ACL TIPO_DA_ACL parmetro Podemos colocar como exemplo da sintaxe a seguinte ACL:
a c lm i n h a r e d e s r c1 9 2 . 1 6 8 . 0 . 0 / 2 5 5 . 2 5 5 . 2 5 5 . 0 | | | | _>D o m n i od aA C L | | | | | | _>T i p od eA C L | | | | _>N o m ed aA C L | | _>C o m a n d od ec r i a od eA C L (fonte: http://www.marceloeiras.com.br/linux/tutorial/squid/squid.htm )

Ou ainda: acl NOME_DA_ACL TIPO_DA_ACL "/caminho/completo/arquivo" 4.2 Os tipos de ACLs  SRC: ACL do tipo src (origem) ela trata o IP ou uma faixa de IP com que o cliente chega no Proxy. DST: ACL do tipo dst (destino) ela trata o IP de destino da navegao. DSTDOMAIN: ACL do tipo dstdomain (domnio de destino) ela trata o domnio de destino da navegao. TIME: ACL do tipo time (tempo) ela trata um determinado momento baseado em dia da semana e hora (ver tabela de dias da semana em anexo).  URL_REGEX: ACL do tipo url_regex (expresso regular na URL) uma determinada entrada na URL.

 

dc363.4shared.com/doc/BztEKYiE/preview.html

2/5

30/10/12

Mini Tutorial sobre as ACLs no Squid

PORT: ACL do tipo port (porta) ela trata a porta de destino da navegao. PROXY_AUTH: ACL do tipo proxy_auth (autenticao no Proxy) ela trata o Login com que o cliente se autentica no Proxy. Requer uma configurao de autenticao.

As ACLs so case sensitive caso vc queira que o Squid no faa destino entre maisculas e minsculas vc dever colocar o opo i antes da ACL (ver exemplo mais abaixo). 4.3 Regras das ACLs: O acesso ou negao de uma ACL dado pelo comando http_access seguido da palavra alow (em caso de permisso) ou deny (em caso de negao). Ex: http_access deny ips_proibidos
| _>N o m ed aA C L

Ex: http_access deny i url_proibidas


| _>N o m ed aA C L

4.4 - O Funcionamento das ACLs Squid l as ACLs de cima para baixo no arquivo squid.conf. Quando encontra uma regra ele para, analisa e qualquer regra desta ACL no entrar nas regras das ACLs seguintes. Pode ser um pouco confuso, mas com um exemplo de configurao podemos esclarecer isto: Vamos criar trs ACLs: primeira ser acesso_total = IPs dos clientes que tero acesso total internet. No passaro por nenhuma restrio do Squid a segunda ser acesso_restrito = IPs dos clientes que passaro pelo bloqueio de sites estabelecido na acl seguinte e finalmente a terceira ser bloqueado = Lista de palavras que o Squid bloquear se forem encontradas na URL. Elas sero declaradas da seguinte maneira no squid.conf: acl acesso_total src "/etc/squid/acesso_total" acl acesso_restrito src "/etc/squid/acesso_restrito" acl bloqueado url_regex -i "/etc/squid/bloqueado"

Isto significa que dentro do diretrio /etc/squid teremos os arquivos acesso_total e acesso_restrito contento IPs de mquinas com acesso total e acesso restrito. E neste mesmo diretrio o arquivo bloqueado contendo as palavras que no podem aparecer nas URLs dos clientes com acesso restrito.

dc363.4shared.com/doc/BztEKYiE/preview.html

3/5

30/10/12

Mini Tutorial sobre as ACLs no Squid

Agora vamos ativar estas regras colocando os seguintes comando no squid.conf e nesta mesma ordem http_access allow acesso_total http_access deny bloqueado http_access allow acesso_restrito http_access deny all

Como o Squid l estes comandos: A primeira regra que o Squid l (http_access allow acesso_total) diz que ser LIBERADO acesso a quem estiver com o IP cadastrado no arquivo "/etc/squid/acesso_total". Ento, quem ele encontra aqui j liberado e no passa mais pelas outras ACLs seguintes. Por isso o acesso direto e total. A segunda regra que ele encontra (http_access deny bloqueado) diz que ser NEGADO o acesso s URLs que coincidirem com as palavras que esto no arquivo "/etc/squid/bloqueado". Se, por exemplo, neste arquivo tiver a palavra sexo, qualquer site que tenha esta palavra na sua URL no ser acessado, como em www.uol.com.br/sexo, www.sexomais.com.br, etc. Mas ateno neste detalhe. O Squid vem lendo o arquivo de cima para baixo e s chegar a segunda regra quem no cair na primeira, ou seja quem no tiver o IP cadastrado no arquivo de acesso total. A terceira regra que o Squid l (http_access allow acesso_restrito) diz que ser LIBERADO acesso a quem tiver com o IP cadastrado no arquivo "/etc/squid/acesso_restrito". Como na terceira regra s chega quem no caiu na regra anterior, o acesso pode ser liberado tranquilamente. A quarta e ltima regra (http_access deny all) nega o acesso a qualquer IP de qualquer mscara (0.0.0.0/0.0.0.0), pois ela j vem declarada no incio das ACLs (acl all src 0.0.0.0/0.0.0.0). Voc deve estar se perguntando: Mas como pode negar acesso a todos os IPs se tenho que liberar o meu? A resposta simples e est no que eu enfatizei at agora. O segredo est na seqncia como o Squid l as ACLs. Se ele l a primeira (acesso_total) e ningum se aplica a ela, ento passar para a segunda. Se nesta tambm ningum se aplica, ele passar para a terceira. bvio concluir que se o cliente no est cadastrado no acesso_total, nem est no acesso_restrito, ento ele no faz parte da rede e deve ser bloqueado. S chegar a ltima quem no caiu em nenhuma das anteriores. Por isso, divida sua rede em quem pode ter acesso total e restrito e cadastre os clientes em seus respectivos arquivos.

dc363.4shared.com/doc/BztEKYiE/preview.html

4/5

Anexo I - Tabela dos dias da Semana


Abreveao Dia da semana S M T W H F A domingo segunda-feira tera-feira quarta-feira quinta-feira sexta-feira sbado

Anexo II Exemplos de ACL 1) SRC acl ESTACAO_DIRETOR src 192.168.1.100/255.255.255.255 ou acl ESTACAO_DIRETOR src /etc/squid/ip_diretor 2) DST acl IP_INTEGRAL dst 200.175.44.1/255.255.255.255 ou acl IP_INTEGRAL dst /etc/squid/ip_destino 3) DSTDOMAIN acl SITE_LEGAL dstdomain tecrede.com.br ou acl SITE)LEGAL dstdomain /etc/squid/url_site_legal

4) TIME acl HORARIO_ALMOCO time MTWHF