Como instalar e configurar um servidor Proxy Socks5 no Ubuntu com Dante

Como configurar um servidor Proxy Socks5 no Ubuntu com Dante

Dante é um servidor socks5 que você pode usar para configurar um proxy socks5 em sua máquina Ubuntu ou Debian. Neste tutorial rápido vamos aprender como configurar o Dante e usar a autenticação. Com a autenticação ativada, o servidor proxy Dante exige que todos os clientes forneça detalhes de login para usar o servidor proxy.

Instalando o Dante no Ubuntu

Os repositórios padrão do Ubuntu têm o pacote dante-server, mas está desatualizado. A versão atual é 1.4.2 que foi atualizada a menos de 30 dias. O recurso de autenticação não funciona corretamente.
Se você não precisa de autenticação, então você pode instalá-lo.
$ sudo apt update
$ sudo apt install dante-server
Para saber a versão que foi instalada no seu sistema, por favor execute o comando abaixo, lembre-se de usar o root:
$ danted -v
Vamos utilizar o pacote disponibilizado via PPA, vamos baixar o pacote e instalar, para isso execute o os comando abaixo:
$ wget http://archive.ubuntu.com/ubuntu/pool/universe/d/dante/dante-server_1.4.2+dfsg-2build1_amd64.deb
$ sudo dpkg -i dante-server_*.deb
$ sudo apt -f install

Configurando o servidor Dante

A próxima tarefa é configurar o servidor dante antes de iniciá-lo. O arquivo de configuração pode ser encontrado logo abaixo, copie e cole, mas se souber o que esta fazendo, faça as alterações que precisar:
Primeiro edite o arquivo com o editor de sua escolha, no meu caso, o nano:
$ sudo nano /etc/danted.conf
O conteúdo abaixo é o que uso, mas como disse altere como desejar:

# remove everything (holding Ctrl+K will do it) and copy-paste basic config:
logoutput: syslog
user.privileged: root
user.unprivileged: nobody
# desired proxy ports may differ, used here: POP3 110, IMAP 143, HTTPS 443
internal: 0.0.0.0 port = 110
internal: 0.0.0.0 port = 143
internal: 0.0.0.0 port = 443
# interface name may differ, use `ip a` command and copy non-lo interface:
external: eth0
# set socksmethod to ‘none’ instead of ‘username’ if you want to disable auth.
socksmethod: username
clientmethod: none
user.libwrap: nobody
client pass {
from: 0/0 to: 0/0
log: connect disconnect error
}
socks pass {
from: 0/0 to: 0/0
log: connect disconnect error
}
# end of config

O Dante pode usar as contas de usuário do sistema unix para autenticar os clientes conectados. Para isso você deve criar um usuário separado. Qualquer cliente que se conectar a este servidor proxy estará enviando a senha em texto sem formatação na rede, então cuidado com isso. Agora, crie um usuário “proxyuser” e senha para usar na autenticação com sock5:

$ sudo useradd –shell /usr/sbin/nologin proxyuser

ou se preferir:

$ sudo adduser –system –no-create-home –disabled-login –group proxyuser

Crie a senha do usuário, e insira a nova senha duas vezes:

$ sudo passwd proxyuser

Se você usa firewall no Ubuntu libere as portas a seguir:

$ sudo ufw allow 110
$ sudo ufw allow 143
$ sudo ufw allow 443
Agora inicie o servidor proxy Dante:
$ sudo systemctl restart danted
$ sudo systemctl enable danted

Confira se o serviço esta ativo:

$ sudo systemctl status danted

Depois de conectar, você pode consultar os logs com o seguinte comando:

$ sudo journalctl -xe -u danted
Use o comando netstat para verificar o número da porta que esta sendo usada:
$ netstat -nlpt | grep dant

Testando o Proxy Socks5 no Ubuntu com Dante

Depois de configurar tudo, é hora de testar se o servidor proxy está funcionando como esperado. Use o comando curl para fazer isso. Especifique o nome de usuário, a senha, o ip do servidor e o número da porta e tente buscar alguma URL.
$ curl -v -x socks5://proxyuser:password@yourserverip:443 http://www.google.com/
Se tudo correr bem, você deve ver o html de google.com no terminal. Agora você pode usar o proxy dentro dos navegadores. Se você precisar de suporte ou mais informações sobre o Dante, saiba que existe um página do projeto oficial com todas as instruções e passível de comentários e suporte.