Nainštalujte server Dante Socks v5 Proxy v Ubuntu 26.04


Toto je krok za krokom sprievodca, ktorý ukazuje, ako nainštalovať a nastaviť Dante socks5 proxy server v Ubuntu 26.04 LTS.

Dante je slobodný open-source softvér umožňujúci smerovať sieťovú prevádzku medzi klientmi a servermi. S ním môžete obchádzať sieťové obmedzenia, napríklad navštevovať sieťové zdroje, ktoré nie sú dostupné priamym prístupom.

Môžete ho tiež použiť na skrytie svojej pôvodnej IP adresy, takže cieľový server uvidí iba IP adresu servera Dante. V mojom prípade používam proxy Dante SOCKS na zníženie latencie pre lepšie herné zážitky.

Predpoklady:

Na sledovanie tohto tutoriálu potrebujete server s Ubuntu 26.04 s právami sudo.

V mojom prípade mám VPS server s 1 jadrom CPU, 1 GB pamäte a 20 GB úložiska.

Krok 1: Nainštalujte server Dante

Dante je dostupný v Ubuntu a vo väčšine systémových repozitárov iných distribúcií Linuxu. Ak ho chcete nainštalovať, pripojte sa k svojmu serveru Ubuntu a potom spustite nasledujúce príkazy jeden po druhom:

sudo apt update
sudo apt install dante-server

Po nainštalovaní serverového balíka automaticky vytvorí službu systemd a spustí ju potichu na pozadí.

Na kontrolu stavu služby použite príkaz:

systemctl status danted.service

Pre Debian spustite systemctl enable --now danted.service, aby ste povolili a spustili službu, ak nebeží.

Ak je služba povolená, ale nepodarilo sa jej spustenie, nebojte sa, postupujte podľa kroku 2 na úpravu konfiguračného súboru.

Krok 2: Konfigurácia servera Dante

Dante štandardne načítava súbor /etc/danted.conf pre konfigurácie servera. Súbor má štandardne všetky konfigurácie zakázané, čo spôsobuje, že služba sa nepodarí spustiť.

Ak chcete upraviť konfiguračný súbor, pravdepodobne si najprv vytvorte zálohu (alebo súbor odstráňte, ak chcete) spustením príkazu:

sudo mv /etc/danted.conf /etc/danted.conf.backup

Ďalej spustite nižšie uvedený príkaz na úpravu súboru:

sudo nano /etc/danted.conf

Príkaz automaticky vytvorí súbor s prázdnym obsahom, ak ste pôvodný súbor zmazali alebo použili príkaz mv na zálohovanie.

Keď sa súbor otvorí, pridajte nasledujúci obsah a upravte ho podľa potreby.

logoutput: /var/log/danted.log
errorlog: /var/log/danted.errlog
user.privileged: root
user.unprivileged: nobody

# The listening network interface or address.
internal: 0.0.0.0 port=1080
internal: :: port = 1080

# The proxying network interface or address.
external: eth0

# socks-rules determine what is proxied through the external interface.
socksmethod: username

# client-rules determine who can connect to the internal interface.
clientmethod: none

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
}

Tu je viac o pravidlách:

  • logoutput: /var/log/danted.log - nastavuje umiestnenie prístupového logu (voliteľné).
  • errorlog: /var/log/danted.errlog - nastavte umiestnenie záznamu chýb (voliteľné).
  • user.privileged: root - spustiť pozadinskú službu ako root, neskôr stratí oprávnenia.
  • user.unprivileged: nobody - spustiť normálnu prevádzku proxy s používateľom nobody.
  • internal: 0.0.0.0 port=1080 - počúva na všetkých IPv4 rozhraniach na porte 1080. Ak chcete, môžete podľa potreby zmeniť IP adresu a číslo portu.
  • internal: :: port=1080 - počúvať na IPv6 (voliteľné).
  • external: eth0 - nahraďte eth0 názvom sieťového rozhrania vášho servera. Spustite príkaz ip route get 1.1.1.1 | awk '{print $5; exit}' na serveri, aby ste zistili.
  • clientmethod: none - znamená, že akákoľvek IP adresa v client pass {} môže začať TCP pripojenie.
  • socksmethod: username - je potrebné zadať používateľské meno a heslo na autentifikáciu, aj pri clientmethod: none. Použite socksmethod: none (hoci to nie je bezpečné), aby akákoľvek IP v sekcii socks pass {} mohla pristupovať bez autentifikácie.
  • client pass { from: 0.0.0.0/0 to: 0.0.0.0/0 ...} - prvá brána (TCP spojenie), keď sa klient pokúša pripojiť k dante serveru. Znamená to povolenie prístupu z akejkoľvek IP na akékoľvek sieťové rozhranie na serveri. Môžete použiť from: 23.168.111.125/32 to: 0.0.0.0/0, takže prístup bude povolený len určitej IP (v tomto prípade 23.168.111.125 je vaša VEREJNÁ IP).
  • socks pass { from: 0.0.0.0/0 to: 0.0.0.0/0 ...} - kontroluje, čo môžu povolení klienti robiť. S socksmethod: username je potrebná autentifikácia heslom. Tiež môžete podľa potreby nahradiť IP.

Pravidlá vyššie sú pre TCP pripojenia. Môžete pridať viac sekcií client pass {} a socks pass {} s nasledujúcimi pravidlami:

  • from: ::/0 to: ::/0 - povoliť prístup z akejkoľvek IPv6 adresy.
  • command: udpreply - povoliť UDP asociáciu.
  • udp.portrange: 40000-45000 - nastaviť rozsah UDP portov.

Takto to môže vyzerať:

client pass {
  from: 0.0.0.0/0 to: 0.0.0.0/0
}
client pass {
  from: ::/0 to: ::/0
}

socks pass {
  from: 0.0.0.0/0 to: 0.0.0.0/0
  command: connect udpassociate
  log: connect disconnect ioop
}
socks pass {
  from: ::/0 to: ::/0
  command: connect udpassociate
  log: connect disconnect ioop
}

# Log UDP replies from remote hosts back to clients
socks pass {
  from: 0.0.0.0/0 to: 0.0.0.0/0
  command: udpreply
  log: connect disconnect ioop
}
socks pass {
  from: ::/0 to: ::/0
  command: udpreply
  log: connect disconnect ioop
}

Po úprave súboru stlačte Ctrl+S na uloženie a Ctrl+X na ukončenie.

Krok 3: Vytvoriť používateľa pre overovanie

Na účely autentifikácie je potrebné vytvoriť používateľa na strane servera spustením nižšie uvedeného príkazu:

sudo useradd -M -s /usr/sbin/nologin USER_NAME_HERE

Potom nastavte pre používateľa heslo:

sudo passwd USER_NAME_HERE

Nahradiť USER_NAME_HERE ľubovoľným menom, ktoré chcete. Potom môžete použiť používateľské meno a heslo na autentifikáciu počas pripojenia.

Krok 4: Vytvorte logovacie súbory a zmeňte vlastníctvo

Ak ste povolili záznamy, potom musíte tiež upraviť vlastníctvo súborov záznamov.

Najprv spustite príkaz na vytvorenie logovacích súborov:

touch /var/log/danted.log
touch /var/log/danted.errlog

Potom zmeňte vlastníka na noboby a nogroup:

chown nobody:nogroup /var/log/danted.log
chown nobody:nogroup /var/log/danted.errlog

Krok 5: Nakonfigurujte firewall

Ak máte na serveri Ubuntu povolený firewall (spustite sudo ufw status), potom spustite nižšie uvedené príkazy na otvorenie portov pre proxy server Dante:

sudo ufw allow 1080/tcp

Sem nahraďte 1080 podľa toho, ktorý port používate, a tiež spustite nasledujúci príkaz, ak máte povolenú UDP asociáciu:

sudo ufw allow 40000:45000/udp

Krok 6: Použiť zmeny

Nakoniec reštartujte službu dante, aby sa zmena uplatnila:

sudo systemctl restart danted

A spustite nasledujúci príkaz na kontrolu stavu služby:

sudo systemctl status danted --no-pager

Akákoľvek nesprávna konfigurácia v /etc/danted.conf môže spôsobiť zlyhanie spustenia služby.

Krok 7: Skúste sa pripojiť k serveru Dante

Po správnom nastavení servera môžete skúsiť spustiť nižšie uvedený príkaz na miestnom počítači s Linuxom na začatie pripojenia:

curl -v -x socks5://USER_NAME:PASSWORD@SERVER_IP:1080 http://www.google.com/
It should output something looks like:
*   Trying xx.xxx.xxx.xxx:1080...
* Host www.google.com:80 was resolved.
* IPv6: 2001:4860:482a:7700::, 2001:4860:4826:7700::, 2001:4860:482b:7700::, 2001:4860:4827:7700::, 2001:4860:4829:7700::, 2001:4860:482d:7700::, 2001:4860:4828:7700::, 2001:4860:482c:7700::
* IPv4: 142.251.153.119, 142.251.156.119, 142.251.150.119, 142.251.157.119, 142.251.152.119, 142.251.154.119, 142.251.151.119, 142.251.155.119
* Opened SOCKS connection from 192.168.0.104 port 49060 to www.google.com port 80 (via 23.106.152.194 port 1138)
* Established connection to 23.106.152.194 (23.106.152.194 port 1138) from 192.168.0.104 port 49060 
* using HTTP/1.x
...

Pre grafického klienta socks5 používam proxifier, ktorý však NIE JE slobodný softvér. Môžete skúsiť slobodný open-source ProxyBridge, ktorý funguje v Linuxe, Windows a macOS.