Pular para o conteúdo
Guides 7 min de leitura 968 visualizações

Como montar seu próprio servidor proxy

Conquiste liberdade digital! Este guia mostra passo a passo como montar um servidor proxy robusto com Squid, 3proxy ou Dante para privacidade e controle totais.

Como montar seu próprio servidor proxy

Para montar seu próprio servidor proxy, normalmente você instala e configura um software de proxy dedicado, como Squid para cache HTTP/HTTPS, 3proxy para HTTP/SOCKS leve ou Dante para SOCKS5 robusto, definindo portas de escuta, controles de acesso e mecanismos de autenticação em um servidor Linux.

Montar um servidor proxy auto-hospedado dá controle sobre o tráfego de rede, privacidade, acesso a conteúdo com restrição geográfica ou segurança reforçada para redes internas. A escolha do software depende de requisitos específicos, como suporte a protocolos (HTTP, HTTPS, SOCKS), necessidades de cache e complexidade desejada.

Pré-requisitos gerais

Antes de configurar qualquer proxy, garanta que seu servidor atenda a estes requisitos básicos:
* Sistema operacional: costuma-se usar uma distribuição Linux (por exemplo, Ubuntu, Debian, CentOS).
* Acesso à rede: o servidor precisa ter conectividade de rede adequada e um endereço IP público, caso seja necessário acesso externo.
* Configuração do firewall: abra as portas necessárias (por exemplo, 3128 para HTTP, 1080 para SOCKS) no firewall do servidor (por exemplo, ufw, firewalld).

Servidor proxy Squid

O Squid é um proxy de cache poderoso e completo para clientes web, com suporte a HTTP, HTTPS, FTP e outros protocolos. Ele se destaca no cache de conteúdo acessado com frequência, reduzindo o consumo de banda e melhorando os tempos de resposta.

Instalação (Debian/Ubuntu)

sudo apt update
sudo apt install squid

No CentOS/RHEL: sudo yum install squid ou sudo dnf install squid.

Configuração básica

O arquivo principal de configuração fica normalmente em /etc/squid/squid.conf.
1. Definir a porta de escuta:
Localize ou adicione a diretiva http_port.
http_port 3128
2. Listas de controle de acesso (ACLs):
O Squid usa ACLs para definir segmentos de rede, usuários ou outros critérios, e regras http_access para aplicar ações.
```
# Define uma ACL de rede local (substitua pela sub-rede local do seu servidor ou pelo IP do cliente)
acl localnet src 192.168.1.0/24 # Exemplo: permitir clientes desta sub-rede
acl localhost src 127.0.0.1/32

# Permitir acesso para as ACLs definidas
http_access allow localhost
http_access allow localnet

# Negar todo o restante
http_access deny all
```
Para permitir acesso de qualquer endereço IP (menos seguro, use com cautela e com autenticação):
```
acl all src 0.0.0.0/0
http_access allow all
```
  1. Reiniciar o Squid:
    bash sudo systemctl restart squid sudo systemctl enable squid sudo systemctl status squid

Autenticação de usuário (Basic Auth)

Implemente autenticação básica por usuário/senha para mais segurança.
1. Instalar os utilitários do Apache (para o htpasswd):
bash sudo apt install apache2-utils
2. Criar o arquivo de senhas:
bash sudo htpasswd -c /etc/squid/passwd yourusername # Digite e confirme a senha. Para adicionar mais usuários, omita o -c: # sudo htpasswd /etc/squid/passwd anotheruser
3. Configurar a autenticação no Squid:
Adicione estas linhas ao squid.conf (por exemplo, no topo ou na seção AUTH):
```
auth_param basic program /usr/lib/squid/basic_ncsa_auth /etc/squid/passwd
auth_param basic children 5 startup=5 idle=1
auth_param basic realm "Squid Proxy Authentication"
auth_param basic credentialsttl 2 hours

acl authenticated proxy_auth REQUIRED
http_access allow authenticated
http_access deny all
```
Garanta que `http_access allow authenticated` apareça *antes* de qualquer regra `http_access deny all` que bloquearia usuários autenticados.
  1. Reinicie o Squid.

Interceptação de HTTPS (proxy transparente)

O Squid pode interceptar e descriptografar tráfego HTTPS, o que exige gerar e confiar em um certificado SSL personalizado nas máquinas cliente. Essa é uma configuração complexa, usada principalmente em ambientes corporativos para filtragem e monitoramento de conteúdo, e em geral não é recomendada para uso pessoal por causa das implicações de segurança e privacidade.

Servidor proxy 3proxy

O 3proxy é um servidor proxy leve e versátil, com suporte a HTTP, HTTPS (CONNECT), SOCKS4/5, FTP e outros protocolos. É conhecido pelo pequeno consumo de recursos e pela configuração flexível.

Instalação (compilando a partir do código-fonte)

O 3proxy costuma ser compilado a partir do código-fonte para obter a versão mais recente e o máximo de controle.
1. Instalar as ferramentas de compilação:
bash sudo apt update sudo apt install build-essential git
2. Baixar e compilar:
bash git clone https://github.com/z3APA3A/3proxy.git cd 3proxy make -f Makefile.Linux sudo make -f Makefile.Linux install
Os binários normalmente serão instalados em /usr/local/bin/3proxy.

Configuração básica

Crie um arquivo de configuração, por exemplo /etc/3proxy/3proxy.cfg.
1. Resolvedor DNS:
nserver 8.8.8.8 # DNS do Google nserver 1.1.1.1 # DNS da Cloudflare
2. Autenticação (se desejar):
auth strong users yourusername:CL:yourpassword # CL para texto puro, use hash em produção
3. Definir os proxies:
* Proxy HTTP:
proxy -p3128
* Proxy SOCKS5:
socks -p1080
* HTTP e SOCKS combinados:
proxy -p3128 socks -p1080
4. Controle de acesso:
Depois das linhas users e antes das linhas proxy/socks:
allow yourusername # Permitir apenas o usuário especificado # Ou para permitir todos os usuários autenticados: # allow * # Ou para permitir a partir de um IP específico: # allow 192.168.1.0/24
Uma configuração básica e menos segura, que permite qualquer pessoa de qualquer lugar:
allow * * proxy -p3128 socks -p1080
5. Iniciar o 3proxy:
bash /usr/local/bin/3proxy /etc/3proxy/3proxy.cfg
Para execução em segundo plano, use start 3proxy /etc/3proxy/3proxy.cfg dentro do arquivo de configuração, ou use systemd para um gerenciamento de serviço adequado.

Serviço systemd (opcional)

Crie /etc/systemd/system/3proxy.service:

[Unit]
Description=3proxy Proxy Server
After=network.target

[Service]
ExecStart=/usr/local/bin/3proxy /etc/3proxy/3proxy.cfg
Restart=always
User=nobody # Executar como usuário sem privilégios

[Install]
WantedBy=multi-user.target

Em seguida:

sudo systemctl daemon-reload
sudo systemctl enable 3proxy
sudo systemctl start 3proxy
sudo systemctl status 3proxy

Servidor SOCKS Dante

O Dante é um servidor proxy SOCKS robusto, com suporte principal a SOCKS4 e SOCKS5. É conhecido pela estabilidade e pelo desempenho, o que o torna adequado para tunelamento SOCKS de alto tráfego.

Instalação (Debian/Ubuntu)

sudo apt update
sudo apt install dante-server

No CentOS/RHEL: sudo yum install dante-server ou sudo dnf install dante-server.

Configuração básica

O arquivo principal de configuração é /etc/danted.conf.
1. Definir interfaces de rede e portas:
logoutput: stderr internal: eth0 port = 1080 # Substitua eth0 pelo nome da interface interna do seu servidor external: eth0 # Substitua eth0 pelo nome da interface externa do seu servidor
Se você tiver apenas uma interface, use-a tanto em internal quanto em external.
2. Privilégios de usuário:
user.privileged: root user.notprivileged: nobody
3. Métodos de autenticação:
Para autenticação por usuário/senha, o Dante usa usuários do sistema.
socksmethod: username none
username exige autenticação do cliente; none permite acesso sem autenticação.
4. Regras de acesso:
Defina regras client (quem pode se conectar ao proxy) e regras socks (que tráfego o proxy vai encaminhar).
```
# Regra de cliente: permitir que qualquer um se conecte ao proxy
client pass {
from: 0.0.0.0/0 to: 0.0.0.0/0
socksmethod: username none # Aplica os métodos de autenticação definidos acima
}

# Regra SOCKS: permitir que o proxy encaminhe tráfego para qualquer lugar
socks pass {
    from: 0.0.0.0/0 to: 0.0.0.0/0
    socksmethod: username none
}
```
Para restringir o acesso do cliente a uma faixa de IP específica:
```
client pass {
    from: 192.168.1.0/24 to: 0.0.0.0/0
    socksmethod: username none
}
```
  1. Criar um usuário de sistema para autenticação:
    Se socksmethod: username for usado, crie um usuário de sistema (sem diretório home nem acesso a shell, por segurança).
    bash sudo adduser --no-create-home --shell /usr/sbin/nologin proxyuser # Defina uma senha forte para o proxyuser
  2. Reiniciar o Dante:
    bash sudo systemctl restart danted sudo systemctl enable danted sudo systemctl status danted

Tabela comparativa: Squid vs. 3proxy vs. Dante

Recurso Squid 3proxy Servidor SOCKS Dante
Tipo HTTP/HTTPS, cache, direto/reverso HTTP, HTTPS (CONNECT), SOCKS4/5, FTP SOCKS4/5
Complexidade Média a alta (por causa dos muitos recursos) Baixa a média (configuração compacta) Média (implementação SOCKS robusta)
Uso principal Cache web, filtragem de conteúdo, controle de acesso Proxy leve, gateway SOCKS, versátil Proxy SOCKS de alto desempenho, tunelamento
Desempenho Alto (especialmente com cache) Muito leve, eficiente Alto, otimizado para tráfego SOCKS
Autenticação Basic, Digest, NTLM, helpers externos Basic, NTLM, por IP, helpers externos Usuário/senha (usuários do sistema), por IP
Suporte a SO Linux, FreeBSD, Windows (via Cygwin) Linux, Windows, BSD, macOS Linux, FreeBSD, Solaris, macOS
Configuração Extensa, granular, em texto Compacta, tipo script, em texto Em texto, com seções claras

Considerações gerais de segurança e desempenho

  • Firewall: configure sempre o firewall do servidor (por exemplo, ufw, firewalld) para permitir conexões de entrada nas portas do proxy apenas a partir de IPs ou faixas de IP confiáveis.
  • Autenticação: use senhas fortes e únicas para a autenticação do proxy. Para proxies expostos publicamente, sempre ative a autenticação.
  • Privilégio mínimo: execute os serviços de proxy sob um usuário dedicado e sem privilégios (por exemplo, nobody ou um usuário personalizado) para limitar os danos em caso de comprometimento.
  • Monitoramento: revise regularmente os logs do proxy em busca de atividade incomum e monitore os recursos do servidor (CPU, RAM, I/O de rede) para identificar gargalos de desempenho ou possíveis ataques.
  • Atualizações: mantenha o software de proxy e o sistema operacional atualizados para corrigir vulnerabilidades de segurança.
  • Hardware: garanta que o servidor tenha CPU, RAM e banda de rede adequadas à carga esperada. Para o Squid com cache pesado, armazenamento SSD é vantajoso.
Atualizado: 04.03.2026
Voltar à categoria

Leia também

Experimente nossos proxies

20,000+ proxies em 100+ países do mundo

support_agent
GProxy Support
Usually replies within minutes
Hi there!
Send us a message and we'll reply as soon as possible.