Notícias
Novos modelos de linguagem da API Serverspace GPT
Serverspace Black Friday
RP
março 27, 2025
Atualizado março 27, 2025

Como instalar e configurar o proxy Squid?

Linux Redes Windows

Este serviço de infraestrutura é uma parte integrante da rede corporativa e do subsistema de segurança, permitindo implementar autorização, filtragem de conteúdo, além de atuar como um gateway para que os usuários controlem os recursos acessados.

Para o funcionamento completo e seguro da rede de informação, existem muitos serviços de infraestrutura que garantem seu desempenho. Um deles é o proxy, que é um nó intermediário. Sua tarefa é intermediar a conexão e realizar seu processamento: armazenar em cache as requisições e respostas, realizar SSL Bumping, autenticar o usuário na rede e filtrar pacotes de rede.

Neste artigo, vamos analisar um dos exemplos desse tipo de serviço e configurá-lo!

O que é um Proxy?

Proxy é um nó intermediário, cujo principal objetivo é processar o tráfego que passa por ele e repassá-lo. Em segmentos de rede corporativa, é utilizado como um ponto único de saída para os usuários, o que permite a autorização e o controle das ações. Como descrito acima, sua funcionalidade para controlar o tráfego é praticamente ilimitada:

  • SSL Bumping;
  • Armazenamento em cache de requisições;
  • Autenticação de clientes;
  • Análise de tráfego (sniffing);
  • Controle de recursos acessados.

E isso é lógico, pois o tráfego do usuário literalmente se espalha pela infraestrutura de rede e, nesses momentos, é muito difícil rastreá-lo, então o ponto único registra tudo. Esquematicamente, o algoritmo de funcionamento se parece com isto:

schema-454x600
Screenshot № 1 — Esquema

No entanto, além do segmento corporativo, o proxy permite anonimizar o tráfego de rede ao substituir o endereço do remetente dentro do pacote. Essa funcionalidade, em relação à tecnologia existente, é usada por hackers ou por pessoas que desejam ocultar seus rastros digitais. Clássicamente, ao construir uma cadeia de proxies — também chamada de proxy-chain — é possível se esconder atrás de vários cordões de rede.

Mas como o redirecionamento do tráfego para um único ponto é tecnicamente realizado? É simples: no caso de um reverse-proxy, o DNAT é responsável por isso, redirecionando para o endereço e a porta desejados conforme as regras. Já neste contexto, o forward-proxy estabelecerá uma conexão com o servidor na porta previamente determinada e, dentro dessa conexão, o cliente transmitirá os pacotes necessários no segmento de carga útil (payload).

Configuração simplificada (sem autenticação)

Para trabalhar com o serviço, vamos instalar todos os pacotes e dependências necessários:

apt update && apt install squid -y
installation-2-768x227
Screenshot № 2 — Instalação

Classicamente, o arquivo de configuração do servidor está localizado no caminho /etc/squid/squid.conf:

nano /etc/squid/squid/squid.conf

Vamos configurar várias funções do servidor, começando pela mais simples e básica. Remova todo o conteúdo da configuração antiga e escreva as seguintes diretivas:

acl mynet src 192.168.1.0.0/24
http_access allow mynet
http_access deny all
http_port 3128
cache_mem 256 MB

Onde cada uma dessas diretivas tem funcionalidades diferentes:

  • acl src — uma lista nomeada de ACLs que especifica o segmento de rede;
  • http_access allow — permissão para conectar a rede local ao proxy, pois por padrão a conexão é proibida. Essa permissão também permite trabalhar via http;
  • http_port — porta na qual o proxy ficará escutando;
  • cache_mem — aloca memória para o cache de requisições.

Após isso, salve o arquivo, reinicie o serviço e verifique sua funcionalidade:

systemctl restart squid && systemctl status squid && curl -x 'http://ip-proxy:port-proxy' 'target'
connect-1
Screenshot № 3 — Conexão

Mas se você expor essa máquina para fora, ela provavelmente se tornará parte da infraestrutura usada para mascarar ataques DDoS ou outros, portanto a autenticação é necessária!

Configuração clássica com autenticação

Para proteger o servidor proxy, usaremos a forma clássica de autenticação HTTP, com a ajuda de um módulo pré-instalado. Primeiro, vamos criar uma conta com a qual o usuário será autenticado:

sudo apt update && sudo apt install apache2-utils sudo htpasswd -c /etc/squid/passwd
mk-passwd
Screenshot № 4 — Criação de usuário

Na verdade, nesse contexto, um proxy é um serviço web que aceita conexões de entrada e, portanto, é possível usar módulos de autenticação com diferentes mecanismos e protocolos. Inclusive o PAM, que amplia o nível de possibilidades com sua base de bibliotecas:

auth-way
Screenshot № 5 — Forma de autenticação

Para que a autenticação comece a funcionar, vamos à configuração e definimos os parâmetros e políticas:

acl mynet src 192.168.1.0/24
http_access allow mynet
http_port 3128
cache_mem 256 MB
auth_param basic programme /usr/lib/squid/basic_ncsa_auth /etc/squid/passwd
auth_param basic realm 'Proxy Authentication Required'
acl authenticated proxy_auth REQUIRED
http_access allow authenticated
auth-config
Screenshot № 6 — Configuração da autenticação

Vamos deixar o bloco superior inalterado, pois ele define a política do segmento de rede. Vamos analisar o bloco escrito abaixo. A diretiva auth_param define o parâmetro de autenticação, uma biblioteca para verificar o usuário com nossas credenciais na primeira linha e, na segunda, antes da verificação propriamente dita. Na terceira linha, o parâmetro acl proxy_auth significa que haverá validação antes de conectar, e http_access aplica essa regra previamente escrita.

Vamos verificar a configuração após reiniciar o serviço:

sudo systemctl restart squid

Vamos tentar conectar sem uma conta e, em seguida, com uma:

curl -x 'http://ip-adders:port' 'target-url' && curl -x 'http://username:passwd@ip-adders:port' 'target-url'
auth
Screenshot № 7 — Conexão com credenciais

Como você pode ver, a autenticação foi bem-sucedida e o servidor web retornou uma resposta correta. Mas e se, além da autorização e controle de usuários, for necessário inspecionar o tráfego e ver o que os funcionários estão fazendo e pesquisando via SSL?

Configuração avançada com SSL-Bumping

Essa configuração permitirá implementar a substituição do certificado original por um certificado assinado próprio, que deve ser adicionado como confiável em todos os dispositivos por meio de políticas de grupo. O processo de comunicação será o seguinte:

  1. O cliente se conecta a um site HTTPS via Squid.
  2. O Squid intercepta a conexão e estabelece sua própria conexão criptografada com o cliente.
  3. O Squid estabelece uma conexão criptografada separada com o servidor de destino.
  4. O Squid descriptografa o tráfego entre cliente e servidor, podendo filtrá-lo ou registrá-lo.
  5. O Squid transmite os dados ao cliente assinados com seu próprio certificado.

Para começar, verifique se seu servidor proxy possui essa funcionalidade, pois as compilações podem variar e o ssl-bumping pode estar ausente em algumas:

sudo squid -v | grep '*-ssl*'
triuble-check-1-600x87
Screenshot № 8 — Verificação das opções

Se você não tiver esse recurso, conclua a instalação do software:

sudo apt install squid-openssl

E prossiga para a criação do certificado usando a utilidade:

/usr/lib/squid/security_file_certgen -c -s /var/lib/squid/ssl_db -M 4MB
chown -R squid:squid /var/lib/squid/ssl_db

Não se esqueça de configurar o arquivo de configuração para o bumping de conexão:

http_port 3128 ssl-bump cert=/var/lib/squid/ssl_db/myCA.pem key=/var/lib/squid/ssl_db/myCA.key
ssl_bump peek all
sslcrtd_program /usr/lib/squid/security_file_certgen -s /var/lib/squid/ssl_db -M 4MB
ssl-bump
Screenshot № 9 — Configuração do SSL bumping

Após isso, salve a configuração e reinicie o serviço — o proxy deve começar a trocar os certificados. Observe que alguns sites são protegidos contra ataques MitM (Man-in-the-Middle) com uma verificação adicional no nível do certificado http na memória. Se ele não corresponder ao original, a conexão será bloqueada, o que pode causar problemas para os clientes na sua rede. Nesses casos, é possível escrever uma exceção para eles.
Se você não tiver recursos suficientes, pode executar essas ações em servidores em nuvem mais potentes. A Serverspace oferece servidores VPS isolados para uso comum e virtualizado.

1 (4)
Screenshot № 10 — Criar servidor

Levará algum tempo para implantar a capacidade do servidor. Após isso, você poderá se conectar de qualquer forma conveniente. Este serviço de infraestrutura é uma parte integrante da rede corporativa e do subsistema de segurança, permitindo implementar autorização, filtragem de conteúdo, além de atuar como um gateway para que os usuários controlem os recursos acessados.

Avaliação:
4 fora de 5
Аverage rating : 4.7
Avaliado por: 3
CEP 01311-930 São Paulo Avenida Paulista, nº 1765, 7º andar, Cj. 72, CV 10172, Bela Vista
+ 55 11 5118-1047
ITGLOBAL.COM BR LTDA

Você também pode gostar...

Usamos cookies para melhorar sua experiência no Serverspace. Ao continuar a navegar em nosso site, você concorda com o Uso de Cookies e com a Política de Privacidade.