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

Dante

Guia detalhado para configurar um servidor proxy SOCKS5 Dante no Linux. Cobre instalação, configuração e testes para acesso seguro à rede.

SOCKS5
Dante

Configurar um servidor proxy SOCKS5 no Linux usando o Dante envolve instalar o pacote dante-server, configurar o /etc/danted.conf para definir interfaces de rede, métodos de autenticação e regras de acesso, e então iniciar o serviço danted. O Dante funciona como um servidor SOCKS, roteando o tráfego de rede entre os clientes e os destinos finais, aumentando a segurança da rede e permitindo o acesso a recursos restritos.

Pré-requisitos

Antes de prosseguir, garanta o seguinte:

  • Um servidor Linux (por exemplo, Debian, Ubuntu, CentOS, RHEL, Fedora) com privilégios de root ou sudo.
  • Entendimento básico da linha de comando do Linux e de conceitos de rede.
  • Uma interface de rede disponível para o proxy escutar (interna) e uma interface para as conexões de saída (externa). Elas podem ser a mesma.

Instalação

Instale o pacote do servidor Dante específico da sua distribuição Linux.

Debian/Ubuntu

sudo apt update
sudo apt install dante-server

RHEL/CentOS/Fedora

sudo dnf install dante-server # Para Fedora/RHEL 8+
# Ou, para CentOS/RHEL 7 mais antigos:
sudo yum install dante-server

Configuração

O arquivo de configuração principal do Dante é o /etc/danted.conf. O arquivo padrão pode conter configurações de exemplo; muitas vezes é melhor fazer backup do original e começar com uma configuração mínima e limpa.

sudo mv /etc/danted.conf /etc/danted.conf.bak
sudo nano /etc/danted.conf

Estrutura básica da configuração

Um danted.conf mínimo define a interface de escuta (internal), a interface de saída (external) e as regras básicas de acesso.

logoutput: /var/log/danted.log
internal: 0.0.0.0 port=1080
external: eth0 # Substitua eth0 pela interface de rede externa do seu servidor

socksmethod: none
user.privileged: root
user.notprivileged: nobody

client pass {
    from: 0.0.0.0/0 to: 0.0.0.0/0
    log: error connect disconnect
}

socks pass {
    from: 0.0.0.0/0 to: 0.0.0.0/0
    log: error connect disconnect
}

Explicação das diretivas:

  • logoutput: especifica o caminho do arquivo de log.
  • internal: define a interface de rede e a porta em que o Dante escuta as conexões de entrada dos clientes.
    • 0.0.0.0 faz o bind em todas as interfaces de rede disponíveis.
    • port=1080 é a porta SOCKS padrão.
    • Você pode especificar um endereço IP específico (por exemplo, internal: 192.168.1.10 port=1080).
  • external: define a interface de rede que o Dante usa para as conexões de saída até os destinos. Substitua eth0 pela interface pública ou de saída real do seu servidor (por exemplo, ens3, enp0s3).
  • socksmethod: especifica os métodos de autenticação que os clientes SOCKS podem usar. none significa sem autenticação.
  • user.privileged: o usuário sob o qual o Dante roda ao executar operações privilegiadas (por exemplo, fazer bind em portas baixas).
  • user.notprivileged: o usuário para o qual o Dante muda nas operações sem privilégio, depois da inicialização.
  • Regras client pass: controlam quais clientes podem se conectar ao servidor Dante.
    • from: 0.0.0.0/0 permite conexões de qualquer endereço IP. Restrinja isso por segurança.
    • to: 0.0.0.0/0 especifica o destino das conexões do cliente (neste contexto, sempre o próprio proxy).
  • Regras socks pass: controlam quais destinos os clientes SOCKS podem alcançar através do proxy.
    • from: 0.0.0.0/0 refere-se aos clientes que se autenticaram com sucesso ou passaram pelas regras de cliente.
    • to: 0.0.0.0/0 permite conexões para qualquer destino. Restrinja isso por segurança.
    • log: error connect disconnect habilita o log dos eventos de conexão.

Métodos de autenticação

O Dante suporta vários métodos de autenticação. Os mais comuns são none (sem autenticação) e username (usuário/senha).

1. Sem autenticação (anônimo)

Este método serve para redes privadas confiáveis, em que todos os clientes são conhecidos e autorizados a usar o proxy sem credenciais explícitas. Não é recomendado para proxies expostos à internet.

# ... (restante da configuração básica)
socksmethod: none

client pass {
    from: 192.168.1.0/24 to: 0.0.0.0/0 # Restringe a uma sub-rede específica
    log: error connect disconnect
}

socks pass {
    from: 192.168.1.0/24 to: 0.0.0.0/0 # Clientes desta sub-rede podem alcançar qualquer destino
    log: error connect disconnect
}
2. Autenticação por usuário/senha

Este é o método mais comum e recomendado para proxies SOCKS5, especialmente quando os clientes são externos ou não confiáveis. O Dante usa usuários do sistema para a autenticação.

Passos:

  1. Crie um usuário de sistema para o proxy. Não crie um diretório home nem atribua um shell, por segurança.
    bash sudo useradd -r -s /bin/false proxyuser sudo passwd proxyuser # Digite e confirme uma senha forte
    Repita para usuários adicionais, se necessário.

  2. Altere o danted.conf:
    ```
    logoutput: /var/log/danted.log
    internal: 0.0.0.0 port=1080
    external: eth0

    socksmethod: username # Habilita a autenticação por usuário/senha
    user.privileged: root
    user.notprivileged: nobody

    client pass {
    from: 0.0.0.0/0 to: 0.0.0.0/0
    log: error connect disconnect
    }

    socks pass {
    from: 0.0.0.0/0 to: 0.0.0.0/0
    socksmethod: username # Exige usuário/senha nas conexões SOCKS
    log: error connect disconnect
    }
    `` A diretivasocksmethod: usernamedentro da regrasocks pass` garante que apenas usuários autenticados possam usar o proxy.

3. Autenticação por IP

Este método permite que endereços IP ou sub-redes específicas usem o proxy sem usuário/senha. Pode ser combinado com a autenticação username.

# ... (restante da configuração)
socksmethod: username # Permite usuário/senha como opção

client pass {
    from: 192.168.1.0/24 to: 0.0.0.0/0 # Permite uma sub-rede específica sem autenticação
    log: error connect disconnect
}

client pass {
    from: 0.0.0.0/0 to: 0.0.0.0/0 # Permite todos os demais clientes, mas exige autenticação
    socksmethod: username
    log: error connect disconnect
}

socks pass {
    from: 192.168.1.0/24 to: 0.0.0.0/0 # Clientes desta sub-rede podem alcançar qualquer destino (sem autenticação)
    log: error connect disconnect
}

socks pass {
    from: 0.0.0.0/0 to: 0.0.0.0/0 # Clientes autenticados podem alcançar qualquer destino
    socksmethod: username
    log: error connect disconnect
}

Nessa configuração, os clientes de 192.168.1.0/24 não precisam de autenticação, enquanto todos os outros clientes devem informar usuário e senha.

Configuração do firewall

Depois de configurar o Dante, abra a porta SOCKS (1080 por padrão) no firewall do sistema para permitir conexões de entrada.

Firewalld (CentOS/RHEL/Fedora)

sudo firewall-cmd --permanent --add-port=1080/tcp
sudo firewall-cmd --reload

UFW (Debian/Ubuntu)

sudo ufw allow 1080/tcp
sudo ufw enable # Se o UFW ainda não estiver habilitado

Gerenciamento do serviço

Após a configuração e os ajustes de firewall, inicie e habilite o serviço Dante.

sudo systemctl start danted
sudo systemctl enable danted
sudo systemctl status danted

Verifique o status do serviço para garantir que ele esteja rodando sem erros. Revise o /var/log/danted.log em busca de problemas de configuração.

Testando o proxy

Use uma máquina cliente para testar o proxy SOCKS5.

Usando curl (sem autenticação)

curl -x socks5://YOUR_SERVER_IP:1080 http://ifconfig.me/ip

A saída deve ser o endereço IP público do seu servidor, indicando que o tráfego está passando pelo proxy.

Usando curl (com autenticação por usuário/senha)

curl -x socks5://proxyuser:your_password@YOUR_SERVER_IP:1080 http://ifconfig.me/ip

Substitua proxyuser e your_password pelas credenciais configuradas antes.

Usando proxychains (utilitário cliente para Linux)

  1. Instale o proxychains:
    bash sudo apt install proxychains4 # Debian/Ubuntu sudo dnf install proxychains-ng # RHEL/CentOS/Fedora

  2. Configure o proxychains.conf:
    Edite o /etc/proxychains.conf ou o ~/.proxychains/proxychains.conf.
    Comente strict_chain e descomente dynamic_chain.
    No fim do arquivo, adicione os dados do seu servidor proxy:

    ```

    ... (outras configurações do proxychains)

    dynamic_chain

    strict_chain

    random_chain

    round_robin_chain

    dynamic_chain # Usa a cadeia dinâmica para ter flexibilidade

    [ProxyList]

    add proxy here ...

    socks5 127.0.0.1 9050

    socks5 YOUR_SERVER_IP 1080 proxyuser your_password # Com autenticação

    Ou, sem autenticação:

    socks5 YOUR_SERVER_IP 1080

    ```

  3. Teste com o proxychains:
    bash proxychains curl http://ifconfig.me/ip
    A saída deve mostrar o endereço IP do seu servidor proxy.

Boas práticas de segurança

  • Restrinja o acesso: use regras client pass para limitar quais IPs de clientes podem se conectar ao seu proxy.
  • Senhas fortes: na autenticação por usuário/senha, garanta que todos os usuários do proxy tenham senhas fortes e únicas.
  • Privilégio mínimo: não conceda privilégios desnecessários ao usuário nobody nem aos usuários do proxy.
  • Atualizações regulares: mantenha o sistema operacional Linux e o pacote Dante atualizados para corrigir vulnerabilidades de segurança.
  • Logs e monitoramento: revise regularmente os logs do Dante (/var/log/danted.log) em busca de atividade suspeita. Implemente soluções de monitoramento de logs.
  • Regras de firewall: configure o firewall para aceitar conexões na porta SOCKS (1080) apenas de faixas de IP confiáveis.
  • Usuário dedicado: use um usuário de sistema dedicado para o acesso ao proxy, em vez de contas de usuário já existentes.
  • Desative métodos não usados: habilite apenas as opções de socksmethod estritamente necessárias.
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.