quinta-feira, 15 de setembro de 2016

Dando os primeiros passos com Squid

Quem começa a mexer com Squid logo sente dificuldade para entender o jeito de configurá-lo. O Squid trabalha com ACL (Access Control List). Encare as ACLs como os personagens que farão parte do Squid. Para liberar um acesso a um site eu preciso criar uma ACL para o site, bem como para as máquina que terão acesso a ele. A forma de especificar uma ACL é a seguinte:

acl nome tipo valor

No port anterior criamos uma ACL chamada "all" que é do tipo src e possui valor 0/0. Abaixo eu descrevo os principais tipos de ACL usadas no Squid.


  • src - IP, intervalo de IP, ou rede de origem (172.20.120.4, 192.168.0.0/16, 10.0.0.1-10)
  • dst - IP, intervalo de IP, ou rede de destino
  • dstdomain - domínio (uol.com.br, blogspot.com, etc)
  • time - data e horário (12:01-13:00 : horário de almoço)
  • url_regex - expressão regular encontrada na URL (fazenda.[a-z][a-z].gov.br) 
  • port - porta usada pelo site (80,81,8080)
  • proto - protocolo usado (FTP, HTTP)


Assim, podemos criar regras misturando as ACL. Por exemplo, para liberar o acesso ao Facebook para a rede 10.0.100.0/24 podemos usar as seguintes linhas no arquivo /etc/squid3/squid.conf.

http_port 3128
acl all src 0/0
acl rede_interna src 10.0.100.0/24
acl facebook dstdomain facebook.com
http_access allow rede_interna facebook
http_access deny all

Com as regas acima liberamos o acesso ao domínio facebook.com (mas não ao facebook.com.br) somente para a rede 10.0.100.0/24. Os demais sites estão bloqueados para todos.