Ecco un 'HOW TO' completo per NOOBS (usando debian) per assicurarsi che il gruppo di utenti debian-transmission (cioè trasmissione) instrada i dati solo attraverso la VPN
NON usare il "How to" più lungo per vpn basato su script di sistema complessi ...! iptables è IL METODO MIGLIORE (e infallibile) !!! - UTILIZZARE ALCUNE REGOLE IPTABILI basate sull'utente e sul gruppo di trasmissione per controllare la VPN (non come molti metodi di 'hack' più complessi che usano script di sistema, script su e giù ecc ...) ed è davvero semplice!
Step 1 - Setup: (Suppone che la trasmissione sia installata e quindi l'utente debian-transmission esiste!)
sudo apt-get install iptables
sudo apt-get install iptables-persistent
Passaggio 2: creare il file di trasmissione-ip-rules
sudo nano transmission-ip-rules
e aggiungi il testo nel blocco di codice in basso a partire da #!/bin/bash
IMPORTANTE
- Se la rete locale non è nel formato 192.168.1.x Modificare la variabile NET in modo che corrisponda al proprio formato di indirizzamento della rete locale !!.
- Siate anche consapevoli della stranezza che 192.168.1.0/25 fornisce effettivamente l'intervallo 192.168.1.0-255!
- A volte le tue interfacce eth0, tun0 (che è il vpn) ecc. Possono essere diverse - controlla con 'ifconfig' e cambia se necessario.
#!/bin/bash
# Set our rules so the debian-transmission user group can only route through the vpn
NET=192.168.1.0/25
GROUP=debian-transmission
IFACE_INTERNAL=eth0
IFACE_VPN=tun0
ALLOW_PORT_FROM_LOCAL=9091
iptables -A OUTPUT -d $NET -p tcp --sport $ALLOW_PORT_FROM_LOCAL -m owner --gid-owner $GROUP -o $IFACE_INTERNAL -j ACCEPT
iptables -A OUTPUT -d $NET -p udp --sport $ALLOW_PORT_FROM_LOCAL -m owner --gid-owner $GROUP -o $IFACE_INTERNAL -j ACCEPT
iptables -A OUTPUT -m owner --gid-owner $GROUP -o $IFACE_VPN -j ACCEPT
iptables -A OUTPUT -m owner --gid-owner $GROUP -o lo -j ACCEPT
iptables -A OUTPUT -m owner --gid-owner $GROUP -j REJECT
# not needed - but added these to properly track data to these interfaces....when using iptables -L -v
iptables -A INPUT -i $IFACE_VPN -j ACCEPT
iptables -A INPUT -i $IFACE_INTERNAL -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT
# track any forward (NAT) data for completeness - don't care about interfaces
iptables -A FORWARD
Salvare il file ed eseguirlo
sudo iptables -F
sudo chmod +x transmission-ip-rules
sudo ./transmission-ip-rules
quindi assicurati che queste regole persistano tra i riavvii con:
sudo dpkg-reconfigure iptables-persistent
e toccare Sì per entrambi i prompt. FATTO!
La cosa fantastica di questo script è che terrà traccia di tutti i dati attraverso il dispositivo! Quando emetti
sudo iptables -L -v
mostrerà quanti dati stanno andando su quale interfaccia e su quale lato INPUT o OUTPUT in modo da poter essere certi che lo script vpn funzioni correttamente. Per esempio;
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
1749K 661M ACCEPT all -- tun0 any anywhere anywhere
3416K 3077M ACCEPT all -- eth0 any anywhere anywhere
362K 826M ACCEPT all -- lo any anywhere anywhere
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
0 0 all -- any any anywhere anywhere
Chain OUTPUT (policy ACCEPT 2863K packets, 2884M bytes)
pkts bytes target prot opt in out source destination
1260 778K ACCEPT tcp -- any eth0 anywhere 192.168.1.0/ 25 tcp spt:9091 owner GID match debian-transmission
0 0 ACCEPT udp -- any eth0 anywhere 192.168.1.0/ 25 udp spt:9091 owner GID match debian-transmission
1973K 1832M ACCEPT all -- any tun0 anywhere anywhere owner GID match debian-transmission
8880 572K ACCEPT all -- any lo anywhere anywhere owner GID match debian-transmission
13132 939K REJECT all -- any any anywhere anywhere owner GID match debian-transmission reject-with icmp-port-unreachable
Questo script è stato ampiamente testato su connessioni, disconnessioni, riavvii da VPN. Funziona benissimo. La trasmissione può utilizzare SOLO la VPN. Il grande vantaggio di questo script rispetto agli altri è che mi sono assicurato come puoi vedere (viaiptables -L -v
) che i tuoi dati corrispondono a ciò che viene trasferito sulla trasmissione (aggiungendo le regole INPUT (tutto) e Avanti (tutto) per ciascuna interfaccia eth0, vpn (tun0)). Quindi sai esattamente cosa sta succedendo !!! I totali dei dati non coincideranno esattamente con la trasmissione - Sfortunatamente non posso discriminare dal lato INPUT verso l'utente di trasmissione debian, e ci saranno sia overhead extra che forse altri processi usando la stessa VPN, ma vedrai i dati approssimativamente sul lato INPUT ed è circa la metà su OUTPUT per la VPN che conferma il suo funzionamento. Un'altra cosa da notare: ci vuole un po 'di tempo su una disconnessione vpn (tutto il traffico si interrompe con la trasmissione) e riconnettersi affinché la trasmissione si "avvii" sul nuovo vpn, quindi non preoccuparti se ci vogliono circa 5 minuti per ricominciare il torrent .. .
SUGGERIMENTO - google "MAN iptables" e leggi questo articolo sul monitoraggio della larghezza di banda se vuoi sapere riga per riga come funziona questo script ...