Torrenting protejat prin IP VPS sub wireguard

=====================



In primul rand trebuie un VPS platit cu care sa aveti peering bun, macar 4-500 mbps, altfel nu merita deranjul pt acest setup.
Comunicarea se va face prin tunele wireguard si astfel isp gen digi nu va mai putea vedea activitatea de tip torrenting, va vedea doar IP-ul VPS-ului si doar va putea presupune ce faceti vazand activitate sporita de la si catre acel IP public al VPS-ului.

Config VPS

Wireguard

Aici vom seta doua tunele SERVER, primul routeaza tot traficul prin el iar al doilea doar asigura comunicarea cu serverul vostru cu linux unde rulati deluge sau qbittorrent.
Am explicat aici cum se creeaza key pt tunelele wireguard.
Primul tunel, cel care va asigura IP-ul public in clientul vostru de torrente. PSK nu este obligatoriu:


Al doilea tunel creat special pt a fi conectabil
$ cat /etc/wireguard/wg1.conf

[Interface]
Address = 10.10.11.1/24
PrivateKey = wg1-server-priv-key
ListenPort = 52740

[Peer]
PublicKey = wg1-client-pub-key
AllowedIPs = 10.10.11.0/24

Nginx

Aveti nevoie de nginx pt al doilea tunel.
Nu trebuie nimic special, poate doar marita limita worker_connections 10240; dar nu cred ca este obligatoriu.
Ce este aici important este modulul ha care se comporta similar cu Haproxy. In configul global nginx.conf declarati asa la sfarsit:
stream {
include /etc/nginx/ha/*.conf;
}
Si de asemeni in subfolderul ha puneti ha.conf:
upstream deluge1 {
server 10.10.11.2:33450;
}
server {
listen 50000;
listen 50000 udp;
proxy_pass deluge1;
proxy_timeout 3s;
error_log /dev/null crit;
}

Config server propriu

Wireguard

Configurile pt cele doua tunele CLIENT care se conecteaza la server.
Primul tunel, cel care va asigura IP-ul public in clientul vostru de torrente:

Observati in wg-vps ca tabela de routare este taiata (Table = off) si este necesar un script care ridica tunelul si adauga corect routele care trebuie:


Al doilea tunel creat special pt a fi conectabil
$ cat /etc/wireguard/wg1.conf

[Interface]
PrivateKey = wg1-client-priv-key
Address = 10.10.11.2/24

[Peer]
PublicKey = wg1-server-pub-key
AllowedIPs = 10.10.11.0/24
Endpoint = IP_PUBLIC_VPS:52740
PersistentKeepalive = 25

Clietul de torrente

Eu folosesc deluge insa merge si cu qbitorrent. Este IMPERATIV ca respectivul client de torrente sa asculte numai pe interfata 10.88.188!!!!!
Pt deluge-web ce folosesc eu este mai complicat si scriu si aici sa nu uit insa la qbitorrent e mult mai simplu.

Listen efectiv doar pe interfata care trebuie unde se vede f clar si portul:
$cat /var/lib/deluge/.config/deluge/core.conf
"outgoing_ports": [
50000,
],
............
"listen_interface": "10.88.188.12",
............
"listen_ports": [
50000,
],
"dht": false,

Nginx

Similar ca pe server, aceeasi abordare, iata ha.conf:
upstream deluge1 {
server 10.88.188.12:50000;
}

server {
listen 33450;
listen 33450 udp;
proxy_pass deluge1;
proxy_timeout 3s;
error_log /dev/null crit;
}

Ideea e ca pe VPS nginx asculta pe 50000, apoi prin wg1 ajunge pe home server si aici nginx redirectioneaza mai departe catre deluge [10.88.188.12]:50000 (acelasi port deci trebuie puse la fel).
E la mintea cocosului ca portul care trebuie pus in torrent fie deluge sau qbit sau rutorrent trebuie sa fie 50000! Ala e portul prin care esti conectabil!

In felul asta digi vede activitate prin acel IP_public_VPS dar nu are cum sa vada ca e activitate de tip torrenting si pe orice tracker, administratorii te vad la seed cu IP_public_VPS.
Deci nu vede nimeni ip-ul tau real de acasa de digi sau ce provider ai.

Mentenanta

O data la 24 de ore se restarteaza tunele wireguard si pe VPS si pe homeserver si de asemeni trebuie restartat clientul de torrente
VPS:
$ crontab -l
19 3 * * * /usr/bin/wg-quick down wg0 && sleep 2 && /usr/bin/wg-quick up wg0
20 3 * * * /usr/bin/wg-quick down wg1 && sleep 2 && /usr/bin/wg-quick up wg1

HOMESERER:
$ crontab -l
21 3 * * * /bin/bash /root/deluge-vpn-restart.sh
Scriptul asta il aveti mai sus, da restart pe rand la cele doua tunele si apoi la deluge-web. Se observa ca treaba asta se intampla la un minut dupa ce se restarteaza pe VPS, deci mare atentie cu ora de pe VPS!
Setupul asta este mult mai util in Europa de vest unde sunt legi mult mai restrictive in ceea ce priveste pirateria. OK, poti plati un seedbox dar e mai scump unul cu storage mai mare comparativ cu cat costa un VPS. Toata jmecheria la VPS e sa aiba banda mare si sa nu se ingatuie de la putine core si RAM mic....

Cu setupul asta poti primi CG-NAT de la jegurile de la digi si pur si simplu te pisi pe el de ip public, ip-ul public e ala de pe VPS. Cu aceeasi schema poti deschide alte porturi prin VPS catre alte servicii pe care le ai acasa de ex camere de supraveghere, mai bine traficul routat prin VPS decat prin serverele din China :))

Sunt aspecte pe care le-am tot explicat, cum setezi reguli de accept in firewall samd, sunt explicate in alte tutoriale. Aici am explicat strict mecanismul cum sa iesi prin VPS fara sa intru in alte detalii.

Happy safe torrenting!