O Squid Proxy é um servidor proxy que tem como principal função atuar como intermediário entre um cliente (como um navegador web) e o servidor de destino. Ele é utilizado para otimizar o uso de banda, melhorar o desempenho e a segurança da rede, além de oferecer controle sobre o acesso a determinados conteúdos. Aqui estão algumas das principais funcionalidades e usos do Squid Proxy:
- Cache de Conteúdo: Armazena em cache conteúdos frequentemente acessados, como páginas web, imagens e arquivos. Isso reduz a quantidade de tráfego na rede, melhora o tempo de resposta para os usuários e diminui a carga nos servidores de origem.
- Controle de Acesso: Permite a criação de políticas de controle de acesso, restringindo o acesso a certos websites ou conteúdos com base em critérios como endereço IP, horários de uso, entre outros. Isso é útil em ambientes corporativos e escolares para garantir um uso adequado da internet.
- Aumento de Segurança: Atua como uma camada adicional de segurança, ocultando o IP real dos clientes e filtrando conteúdos maliciosos. Pode ser configurado para bloquear sites maliciosos ou indesejados, protegendo a rede interna contra ameaças.
- Economia de Banda: Reduz a quantidade de dados que precisa ser baixada da internet, pois conteúdos populares são servidos diretamente do cache do proxy. Isso é especialmente útil em redes com largura de banda limitada.
- Anonimização: Pode ser usado para anonimizar o tráfego da rede, ocultando a identidade dos usuários e dificultando o rastreamento por terceiros.
- Balanceamento de Carga: Distribui o tráfego de rede de forma equilibrada entre vários servidores, aumentando a eficiência e evitando sobrecargas.
Traefik
Para subir o Squid Proxy, também vou subir um Traefik, que é um Proxy Reverso. Neste projeto ele é utilizado para rotear o tráfego HTTP e HTTPS para os containers e gerenciar certificados SSL automaticamente.
Primeiros passos
Clone o meu repositório no seu servidor
git clone https://github.com/antonioanerao/squid-proxy.git
Acesse a pasta clonada
cd squid-proxy
Configurações do Traefik
Altere as permissões do arquivo ./data/acme.json para 600. Este arquivo é usado para armazenar informações de certificados SSL/TLS obtidos automaticamente pelo Let’s Encrypt. Ele contém os dados necessários para renovar e gerenciar esses certificados, garantindo conexões seguras para os serviços que o Traefik está roteando.
sudo chmod 600 ./data/acme.json
Abra o arquivo docker-compose.yml e, na linha 32, altere o dominio.com.br para o domínio que você vai usar
labels:
- "traefik.enable=true"
- "traefik.http.routers.squid.entrypoints=websecure"
- "traefik.http.routers.squid.rule=Host(`dominio.com.br`)"
```
Configurações para o Squid Proxy
Limpe todo o conteúdo do arquivo passwords
echo "" > ./passwords
Dê permissão de execução para o arquivo _novo-usuario.sh_ e execute-o para criar um novo usuário para autenticar no seu proxy. Você pode criar mais de um usuário. Você pode precisar instalar o apache2-utils.
chmod u+x ./novo-usuario.sh
./novo-usuario.sh meuNovoUsuario
Suba sua stack Traefik + Squid Proxy
docker compose up -d
Testando o retorno do seu proxy
curl -x seuUsuario:suaSenha@seudomini.com.br:9000 http://ip-api.com
Categorias: Docker, Geral, Proxy
Tags: container, docker, proxy