ACL (Access Control List)
Autor: Charles | Publicado: 2010-06-25T05:47:00-07:00

É  uma lista que define quem tem permissão de acesso a certos  serviços.  Isso é, para quem um servidor  deve permitir ou negar determinada  tarefa. É normalmente uma lista de  princípios com os tipos de acesso  definido para cada usuário ou grupo.Roteadores utilizam "Access  Control List" para filtragem de pacotes, seja ele de  entrada ou de  saida, TCP/UDP, entre outros protocolos.  As "acl´s" não pode ser  tratada como um firewal,  mas sim como um complemento para segurança de  sua rede.Criando ACL'sEx.: Vamos criar  três ACLs: acesso_total, acesso_restrito e bloqueado. Estes  arquivos  terão os seguintes conteúdos:   acesso_total = IPs dos  clientes que terão acesso  total à internet. Não passarão por nenhuma  restrição do Squid.   acesso_restrito = IPs dos  clientes que passarão pelo  bloqueio de sites estabelecido na acl  seguinte.  bloqueado = Lista de palavras que o Squid  bloqueará se  forem encontradas na URL.  De posse destas três  ACLs, vamos declará-las no squid.conf desta  maneira:acl acesso_total src "/etc/squid/acesso_total"acl acesso_restrito src "/etc/squid/acesso_restrito"acl bloqueado url_regex -i "/etc/squid/bloqueado"OBS: A opção -i encontrada na linha que declara o bloqueio serve para  NÃO fazer distinção entre maiúsculas e minúsculas.Agora que as regras foram declaradas, vamos ativá-las dessa maneira:http_access allow acesso_totalhttp_access deny bloqueadohttp_access allow acesso_restritohttp_access deny allComo o Squid as lê: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". Então, quem ele encontra aqui já é liberado e  não 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 estão  no arquivo "/etc/squid/bloqueado". Se, por exemplo, neste arquivo tiver a  palavra sexo, qualquer site que tenha esta palavra na sua URL não será  acessado, como em www.uol.com.br/sexo, www.sexomais.com.br, etc.  Mas atenção neste detalhe. O Squid vem lendo o arquivo de cima para  baixo e só chegará a segunda regra quem não cair na primeira, ou seja  quem não 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 não  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 máscara (0.0.0.0/0.0.0.0), pois ela já vem declarada no  início 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 seqüência como o Squid lê as  ACLs.  Se ele lê a primeira (acesso_total) e ninguém se aplica a ela, então  passará para a segunda. Se nesta também ninguém se aplica, ele passará  para a terceira. É óbvio concluir que se o cliente não está cadastrado no  acesso_total, nem está no acesso_restrito, então ele não faz parte da  rede e deve ser bloqueado . Só chegará a última quem não 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.