💾 Cache — economia de banda ao guardar páginas visitadas
📊 Monitorar e registrar todos os acessos
🕶 Anonimato parcial dos clientes na internet
📋 O que são ACLs?
ACL = Access Control List — Lista de Controle de Acesso.
As ACLs definem quem pode acessar o quê e quando.
Tipos de ACL
Tipo
Função
src
IP de origem (cliente)
dst
IP de destino
dstdomain
Domínio de destino
port
Porta de destino
time
Horário de acesso
Estrutura de uma ACL
squid.conf — estrutura
# 1. Definir a ACLaclnometipovalor# 2. Aplicar a regrahttp_accessdeny/allownome
⚠ Ordem das regras importa!
As regras são lidas de cima para baixo. A primeira que "casar" com a requisição é aplicada. Coloque sempre o deny antes do allow!
📁 Arquivos Importantes
Arquivo / Diretório
Função
/etc/squid/squid.conf
Configuração principal do Squid
/etc/squid/block.txt
Lista de domínios bloqueados
/var/log/squid/access.log
Log de todos os acessos
/var/log/squid/cache.log
Log de erros e eventos internos
Sobre o squid.conf
Arquivo muito grande — mais de 8000 linhas
A maioria das linhas são comentários (#)
Use busca para encontrar a seção certa
Procure pela linha: # INSERT YOUR OWN RULE(S) HERE
💡 Dica — busca no VIM:
Dentro do VIM, digite /INSERT YOUR + Enter para pular direto à seção correta.
$systemctl status squid● squid.service - Squid Web Proxy Server Active: active (running)
2
Configurar Rotas de Rede
O servidor Squid possui duas interfaces de rede:
Interface
Tipo
IP
Função
enp0s3
NAT
10.0.2.x
Acesso à internet
enp0s8
Rede Interna
192.168.0.1
Conecta os clientes
Precisamos definir a rota padrão pela interface que tem saída para a internet:
bash — configurar rota padrão
# Remover rota padrão atual$sudo ip route del default# Adicionar rota para internet via NAT$sudo ip route add default via 10.0.2.2
💡 Analogia: É como definir a "saída principal" do prédio. Direcionamos o tráfego para a porta que tem acesso à rua (internet).
3
Criar Lista de Bloqueio
bash — criar arquivo block.txt
$sudo vim /etc/squid/block.txt
/etc/squid/block.txt
# Sites para bloquear (um por linha).facebook.com.instagram.com.twitter.com.tiktok.com.youtube.com
Por que o ponto inicial (.)? .facebook.com bloqueia todos os subdomínios:
facebook.com, www.facebook.com, m.facebook.com, pt-br.facebook.com etc.
Adicione um domínio por linha — inclua os sites que desejar bloquear!
4
Configurar ACLs no squid.conf
bash — abrir configuração
$sudo vim /etc/squid/squid.conf# Busque pela linha: /INSERT YOUR + Enter
Adicione abaixo da linha # INSERT YOUR OWN RULE(S) HERE:
squid.conf — ACLs de bloqueio
# Criar ACL com a lista de sites bloqueadosaclblockdstdomain"/etc/squid/block.txt"# Bloquear acesso aos sites da listahttp_accessdenyblock# Permitir acesso aos demais sites da redehttp_accessallowlocalnet
⚠ ORDEM IMPORTA!
Sempre coloque o denyantes do allow. Se inverter, o Squid vai permitir tudo e nunca chegar na regra de bloqueio!
5
Configurar DNS do Squid
❗ PASSO MUITO IMPORTANTE!
Sem a configuração de DNS, os sites permitidos não funcionarão!
squid.conf — adicionar DNS
# Adicionar próximo ao topo ou após "http_port 3128":dns_nameservers8.8.8.88.8.4.4
Por quê essa configuração é necessária?
O Squid não usa o DNS do sistema operacional
Ele precisa de sua própria configuração de resolução de nomes
8.8.8.8 e 8.8.4.4 = servidores DNS públicos do Google
Situação
Sites bloqueados
Sites permitidos
Sem dns_nameservers
✅ Funciona
❌ Erro de DNS
Com dns_nameservers
✅ Funciona
✅ Funciona
6
Reiniciar o Squid
bash — reiniciar e verificar
# Aplicar as novas configurações$sudo systemctl restart squid# Verificar se está rodando$systemctl status squid● squid.service - Squid Web Proxy Server Active: active (running)
✅ Resumo do que foi configurado no servidor:
✅ Rotas de rede (NAT + rede interna)
✅ Lista de sites bloqueados (block.txt)
✅ ACLs de controle de acesso
✅ DNS do Squid (8.8.8.8)
⏭ Falta: Configurar o cliente Windows
7
Configurar Cliente Windows
Para que o Windows use o Squid como proxy, é preciso configurar nas definições de rede:
Abra o Menu Iniciar
Digite proxy na busca
Clique em "Configurações de proxy"
Ative a opção "Usar servidor proxy"
Preencha os campos:
Configuração de proxy — Windows
Endereço:192.168.0.1Porta:3128
O endereço 192.168.0.1 é o IP da interface interna do servidor Squid (enp0s8) — a interface que está na mesma rede dos clientes.
🧪 Testando o Proxy
No cliente Windows (com o proxy já configurado), abra o navegador e teste:
Site
Resultado Esperado
google.com
✅ Deve abrir normalmente
wikipedia.org
✅ Deve abrir normalmente
github.com
✅ Deve abrir normalmente
facebook.com
🚫 Deve ser bloqueado
instagram.com
🚫 Deve ser bloqueado
youtube.com
🚫 Deve ser bloqueado
Mensagem de bloqueio do Squid
ERROR - Access Denied"The requested URL could not be retrieved"
🎯 Desafio Interativo
Arraste cada conceito para seu par correto:
3128
squid.conf
dstdomain
http_access deny
8.8.8.8
Porta padrão do Squid
Arquivo de configuração principal
Tipo de ACL para bloquear domínios
Comando para negar acesso
DNS público do Google
🛠 Atividade Prática
💻 VirtualBox⏱ ~30 min🧑💻 Individual
1
Instalar o Squid
No servidor Ubuntu, atualize os repositórios e instale o pacote squid. Verifique com systemctl status squid.
2
Configurar rotas
Remova a rota padrão e adicione uma nova via 10.0.2.2 (interface NAT). Confirme com ip route.
3
Criar block.txt
Crie /etc/squid/block.txt com ao menos 5 domínios para bloquear, usando o ponto inicial (.facebook.com).
4
Configurar ACLs e DNS
No squid.conf, adicione as ACLs de bloqueio abaixo de "INSERT YOUR" e insira a linha dns_nameservers 8.8.8.8 8.8.4.4.
5
Reiniciar e testar
Reinicie o Squid, configure o proxy no Windows (192.168.0.1:3128) e teste acessar sites permitidos e bloqueados.
📋 Observe: O que aparece no navegador ao tentar acessar um site bloqueado? Verifique o log com sudo tail -f /var/log/squid/access.log.
❓ Verifique seu Conhecimento
Qual a principal função de um servidor proxy?
ADistribuir endereços IP na rede
BIntermediar e controlar o acesso à internet
CResolver nomes de domínio
DCompartilhar arquivos entre computadores
✓ O proxy age como intermediário: clientes conectam ao proxy, que faz as requisições em seu nome, filtrando e cacheando o tráfego.
Qual porta padrão usa o Squid?
A80
B8080
C3128
D443
✓ O Squid escuta por padrão na porta 3128. Configure os clientes para usar essa porta como proxy HTTP.
Qual diretiva no squid.conf bloqueia acesso a um site específico?