carlosdias98
(usa Debian)
Enviado em 01/10/2008 - 00:33h
Veja se pode te ajudar
** Entendendo como o squid lê as ACLs
A cada caractere inserido no squid.conf lembre-se que o squid lê as acls de cima para baixo e quando encontra alguma que se aplique ele pára. Parece meio complicado mas funciona assim:
Vou 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_rstrito = 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 detas 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_total
http_access deny bloqueado
http_access allow acesso_restrito
http_access deny all
Como 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 sequência como o squid lê as acls.
Se ele lê a primeira (acesso_total) e ninguém se aplicar a ela, então passará para a segunda. Se nesta tb ninguém se aplicar 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. (Deve ser algum espertinho mudando de ip, hehehe!!!). Só chegará a última quem não caiu em nenhuma das anteriores. Por issso, divida sua rede em quem pode ter acesso tota e restrito e cadastre os clientes em seus respectivos arquivos.
Obs: Retirado do site
http://www.squid-cache.org.br
Autoria de Djair Dutra C. Jr.