Diagnósticos e Testes de Segurança
Squid
Prof. Alex Dias
Instituto Federal do Triângulo Mineiro
Campus Uberlândia Centro
[Link]/uberlandiacentro
TRC - Diagnósticos e Testes de Segurança
SQUID
De onde vem o termo Squid?
Squid é um animal cefalópode (como uma lula, polvo) de dez
braços, encontrado nas costas marítimas.
No mundo tecnológico squid é um aplicativo utilizado como
proxy, filtro de conteúdos e cache de endereços. O squid
pode ser instalado tanto em Linux quanto no sistema
operacional Windows... Veremos mais adiante!
TRC - Diagnósticos e Testes de Segurança
20/11/2023
2
Proxy (introdução)
Proxy = Procuração
• Trata-se de um servidor (um sistema de computador ou uma aplicação) que age
como um intermediário para requisições de clientes solicitando recursos de
outros servidores.
• Em termos técnicos, servidor proxy é um software que tem uma “procuração”
de um ou mais hosts para buscar na internet uma informação solicitada.
TRC - Diagnósticos e Testes de Segurança
20/11/2023
3
Proxy (introdução)
• Um servidor proxy funciona como servidor e também como cliente web.
• Vantagens
1. Diminui tempo de resposta
2. Reduz substancialmente o tráfego nos enlaces de acesso à Internet
3. Além disso, o Cache Web pode conectar uma rede inteira à internet...
4. ...e também proporcionar segurança a essa rede, uma vez que a Internet só “enxerga” ele.
TRC - Diagnósticos e Testes de Segurança
20/11/2023
4
Proxy (introdução)
• O servidor proxy se encontra em uma posição estratégica, entre o cliente e o
servidor web, conectando redes distintas.
• Por conta dessa posição estratégica, ele pode receber funcionalidades de
segurança, fiscalizando cada pacote que entra e sai da rede interna.
TRC - Diagnósticos e Testes de Segurança
20/11/2023
5
Proxy (introdução)
O servidor proxy é responsável pela execução de 3 funções importantes:
1. Cache de conteúdos.
2. Prover conexão a internet para os computadores de uma rede local.
3. Filtro de conteúdos dos pacotes.
TRC - Diagnósticos e Testes de Segurança
20/11/2023
6
1. Cache de conteúdos
• Sempre que há uma requisição de serviços (por exemplo, HTTP ou FTP), o servidor proxy
captura os dados que o destinatário disponibiliza ao cliente e os guarda em uma área local
(cache).
• Na próxima vez que o mesmo site for acessado, o navegador primeiro fará a procura no
servidor proxy.
• Se os dados forem encontrados neste servidor e o arquivo não estiver desatualizado, a
transferência de dados se dará entre ele e o cliente (navegador). Se o servidor proxy não
dispuser dos dados requisitados, o acesso será feito normalmente ao site de destino.
OBS: O acesso ao conteúdo disponível no cache, através da rede local, é muito mais rápido do que o acesso à
mesma informação disponível na internet.
TRC - Diagnósticos e Testes de Segurança
20/11/2023
7
1. Cache de conteúdos
• Problema: E se o arquivo do Cache WEB estiver desatualizado?
• Solução: Mecanismo GET CONDICIONAL
• Linha de cabeçalho adicional: If-Modified-Since
TRC - Diagnósticos e Testes de Segurança
20/11/2023
8
2. Fornecer conexão a internet...
• Os usuários da rede local compartilham um único
acesso a internet provido pelo servidor proxy.
• Isto viabiliza a utilização de um número maior de
computadores dividindo a mesma infraestrutura
de acesso.
• Neste caso, o proxy funciona como um gateway
da rede, coordenando todos os redirecionamentos
e executando a substituição de um endereço que
não pode ser visualizado na internet por outro
que é chamado de endereço válido na internet.
TRC - Diagnósticos e Testes de Segurança
20/11/2023
9
3. Filtro de conteúdos dos pacotes
• Devido a localização privilegiada do proxy, toda troca de informações entre o usuário (cliente) e o
servidor web (http) passam, obrigatoriamente, por ele.
• Neste caso, o administrador de rede pode configurar o proxy para controlar ou filtrar todo o
conteúdo das informações que entram ou saem pela rede, de acordo com os critérios estabelecidos
como política de segurança da empresa.
• Por exemplo, um empresário pode não querer que seus funcionários acessem sites de
relacionamento ou sites de conteúdo considerados não adequados ao ambiente de trabalho.
TRC - Diagnósticos e Testes de Segurança
20/11/2023
10
Servidor Proxy - Squid
O squid trabalha, basicamente, com 2 conceitos importantes:
1. A criação de listas de acesso (acl’s – access lists);
2. A criação de regras (http_access) que executam ações com as listas criadas.
Esses parâmetros são configurados dentro do arquivo de configurações do squid
com o nome de [Link]
TRC - Diagnósticos e Testes de Segurança
20/11/2023
11
1. Access List (ACL)
• Uma lista de acesso é um arquivo que contém informações sobre o que o
administrador da rede quer que seja permitido ou proibido de ser acessado pela
rede.
• Por exemplo, a configuração do proxy pode prever que uma lista de usuários
tenham acesso a internet, porém uma lista de palavras deve ser verificada e não
ter o acesso permitido.
• A sintaxe de configuração de uma acl é mostrada abaixo:
acl nome_da_acl tipo_da_lista arquivo
TRC - Diagnósticos e Testes de Segurança
20/11/2023
12
1. Access List (sintaxe)
acl nome_da_acl tipo_da_lista arquivo
• acl : palavra reservada do squid para identificar o parâmetro de configuração de um access
list.
• nome_da_acl : toda acl possui um nome, o qual deve ser sugestivo para indicar do que se
trata o conteúdo da lista.
• tipo_da_lista : existem vários tipos de lista, vamos exemplificar apenas 2:
- src é o tipo usado para indicar que a lista contém endereços IP;
- url_regex é o tipo usado para indicar que a lista contém palavras.
• arquivo : nome e local do arquivo que irá conter a lista de endereços IP ou de palavras.
TRC - Diagnósticos e Testes de Segurança
20/11/2023
13
2. Regras (http_access)
As regras são ações que devem ser executadas com as listas criadas. Duas ações são as mais
executadas pelo servidor proxy:
(1) permitir o acesso (allow)
(2) negar o acesso (deny)
A sintaxe é mostrada a seguir:
http_access ação nome_da_acl
• http_access: Palavra reservada para identificar o parâmetro de configuração de uma regra.
• ação:
- deny proibir o acesso de acordo com o conteúdo;
- allow permitir o acesso de acordo como o conteúdo.
• nome_da_acl : é o nome da acl criada anteriormente, sobre a qual será executada uma ação.
TRC - Diagnósticos e Testes de Segurança
20/11/2023
14
Exemplo de configuração
• Imagine que o administrador deseje permitir o acesso a
internet para os usuários de uma rede representada pelo
endereço [Link]/24.
• Este mesmo administrador também deseja que as
palavras “bate-papo” e “facebook” tenham acesso
proibido. As configurações das acl’s e regras são
mostradas abaixo:
• acl ips_permitidos src rede_local
• acl palavras_proibidas url_regex palavras
• ...
• http_access deny palavras
• http_access allow rede_local
TRC - Diagnósticos e Testes de Segurança
20/11/2023
15
Exemplo de configuração
• Primeiramente será necessário criar o rede_local e inserir uma linha contendo o ip dos
computadores com acesso permitido a internet ([Link]/24).
• Em seguida será preciso criar o palavras contendo as palavras bate-papo e facebook.
• As acl’s podem ser criadas em qualquer ordem.
• Já as regras obedecem uma ordem de execução vertical, ou seja, se invertêssemos as
regras, qualquer usuário da rede teria acesso às palavras proibidas.
TRC - Diagnósticos e Testes de Segurança
20/11/2023
16
Exemplo de configuração
• acl ips_permitidos src rede_local
• acl palavras_proibidas url_regex palavras
• ...
• http_access deny palavras
• http_access allow rede_local
• Do jeito que está, primeiro é verificado se o conteúdo que o usuário pretende acessar está dentro da lista
de palavras proibídas.
• Caso esteja, a tentativa de conexão é interrompida imediatamente, independente de ser um usuário que
tenha ou não acesso a internet.
• Caso o conteúdo não seja proibido, a regra seguinte será determinante para decidir se é ou não um
usuário que pertence a lista de usuários com acesso permitido.
TRC - Diagnósticos e Testes de Segurança
20/11/2023
17
Hora da Prática
• Objetivo: Instalar e configurar o servidor Squid (Proxy), usando o Kali (ou Ubuntu),
para realizar as funções de compartilhamento de acesso, filtro de conteúdo de
pacotes e cache de página web acessadas pelos clientes de uma rede local. Como
cliente, utilize o Windows 7.
Importante: o Kali (ou Ubuntu) e o Windows 7 (cliente) devem estar dentro da mesma rede local!
TRC - Diagnósticos e Testes de Segurança
20/11/2023
18
Hora da Prática
• Objetivo: Instalar e configurar o servidor Squid (Proxy), usando o Kali (ou Ubuntu),
para realizar as funções de compartilhamento de acesso, filtro de conteúdo de
pacotes e cache de página web acessadas pelos clientes de uma rede local. Como
cliente, utilize o Windows 7.
Importante: o Kali (ou Ubuntu) e o Windows 7 (cliente) devem estar dentro da mesma rede local!
TRC - Diagnósticos e Testes de Segurança
20/11/2023
19
Hora da Prática
Antes da instalação do squid (Kali ou Ubuntu):
• Para ativar o roteamento entre as interfaces eth0 e eth1 do servidor proxy, deve ser atribuído o valor 1 ao
arquivo ip_forward. Tal atribuição pode ser feita através do comando:
echo "1" > /proc/sys/net/ipv4/ip_forward
• Finalmente, deve-se usar uma regra do Iptables que permita que os pacotes da rede interna sofram NAT.
iptables -t nat -A POSTROUTING -s [Link]/24 -o eth1 -j MASQUERADE
Importante: verifique se a interface eth0 é a que está conectada a rede local e a
eth1 está na rede NAT
TRC - Diagnósticos e Testes de Segurança
20/11/2023
20
Hora da Prática
• Instalando o Squid:
Para instalar o squid basta digitar:
apt-get install squid
o servidor proxy será instalado na pasta /etc/squid
TRC - Diagnósticos e Testes de Segurança
20/11/2023
21
Hora da Prática
• Configurando o Squid:
Abra o arquivo de configuração: nano /etc/squid/[Link]
Localize a linha onde está escrito: acl Safe_ports port 777 ...
Em seguida acrescente as ACLs como mostramos no exemplo
Dica: o texto explicativo antes da colocação das acls facilita encontrar essa
localização caso tenha que alterar alguma coisa no que foi feito.
TRC - Diagnósticos e Testes de Segurança
20/11/2023
22
Hora da Prática
• Configurando o Squid:
Abra o arquivo de configuração: nano /etc/squid/conf.d/[Link]
Em seguida acrescente as linhas (http_access) como mostramos no exemplo
A regra http_access allow localhost foi acrescentada para permitir acesso a
internet a partir do próprio servidor proxy.
TRC - Diagnósticos e Testes de Segurança
20/11/2023
23
Hora da Prática
Importante: as regras poderiam ter sido acrescentadas diretamente no mesmo
arquivo de configurações [Link]. Isso vai depender da versão instalada.
Observe que este é o local onde as regras devem há um include que aponta para o diretório /etc/squid/conf.d,
local onde serão verificadas todas as regras escritas, porém, na versão do squid instalada, serão verificadas todas
As regras escritas em arquivos com extensão .conf
TRC - Diagnósticos e Testes de Segurança
20/11/2023
24
Hora da Prática
• Criando as listas de acesso:
nano /etc/squid/rede_local
Escreva o ip e máscara da rede local e salve o arquivo
No nosso exemplo: [Link]/24
nano /etc/squid/palavras
Escreva as palavras que serão usadas para bloquear acesso aos sites que as contenham
em sua url, em seguida salve o arquivo
No nosso exemplo:
bate-papo
facebook
TRC - Diagnósticos e Testes de Segurança
20/11/2023
25
Hora da Prática
• Reiniciando o servidor squid
Finalmente ative o servidor proxy usando o comando:
/etc/init.d/squid restart
Caso ele já esteja ativo aparecerá uma mensagem de que o servidor já “está rodando”.
Importante: A cada alteração nos arquivos de configuração ou caso você queira, por
exemplo, alterar as palavras proibidas no arquivo “palavras”, será necessário reiniciar
o servidor, neste caso o comando squid -k reconfigure, é o mais indicado.
TRC - Diagnósticos e Testes de Segurança
20/11/2023
26
Hora da Prática
• Testando o acesso:
Abra o navegador no Windows 7 e altere as configurações de rede para acessar o
proxy (insira o endereço IP do servidor) na porta 3128.
Tente acessar uma url que contenha a palavra facebook ou bate-papo
TRC - Diagnósticos e Testes de Segurança
20/11/2023
27
Avaliação 2
1. A medida que for executando as tarefas, faça um roteiro explicativo (how-to) e acrescente as telas
com os resultados obtidos e comentários.
2. Crie regras no servidor proxy para permitir acesso para permitir acesso a todos os ips da rede local,
exceto um deles (a sua escolha)
3. Acrescente palavras para proibir acesso a sites através do tipo de lista url_regex
4. Acrescente regras para bloquear acesso a domínios completos, [Link]. [Link] (e não apenas
a palavra uol)
5. Acrescente regras para que a internet não fique disponível fora do horário comercial (seg a sex das
08h às 18h)
6. Acrescente uma regra para autenticação do usuário para acesso ao proxy
7. Utilize o aplicativo SARG para visualizar as informações do cache dos acessos realizados.
OBS:
• Avaliação realizada em duplas
• Entrega do relatório (how-to) e apresentação do funcionamento dos requisitos
acima no laboratório, são obrigatórios para avaliação
TRC - Diagnósticos e Testes de Segurança
20/11/2023
28