Voici un «COMMENT FAIRE» complet pour NOOBS (en utilisant Debian) pour vous assurer que le groupe d'utilisateurs de transmission Debian (c'est-à-dire la transmission) achemine uniquement les données via le VPN
N'UTILISEZ PAS le "How to" plus long pour vpn basé sur des scripts système complexes ...! iptables est LA MEILLEURE (et infaillible) MÉTHODE !!! - UTILISER QUELQUES RÈGLES IPTABLES basées sur l'utilisateur et le groupe de transmission pour contrôler le vpn (pas comme beaucoup de méthodes de piratage plus complexes qui utilisent des scripts systemd, des scripts de montée et de descente, etc.) et c'est tellement simple!
Étape 1 - Configuration: (suppose que la transmission est installée et que l'utilisateur de la transmission Debian existe donc!)
sudo apt-get install iptables
sudo apt-get install iptables-persistent
Étape 2 - Créez le fichier transmission-ip-rules
sudo nano transmission-ip-rules
et ajoutez le texte dans le bloc de code ci-dessous à partir de #!/bin/bash
IMPORTANT
- Si votre réseau local n'est pas de la forme 192.168.1.x Modifiez la variable NET pour qu'elle corresponde à votre propre format d'adressage de réseau local !!.
- Soyez également conscient de la bizarrerie que 192.168.1.0/25 donne réellement la plage 192.168.1.0-255!
- Parfois vos interfaces eth0, tun0 (qui est le vpn) etc. peuvent être différentes - vérifiez avec 'ifconfig' et changez si nécessaire.
#!/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
Enregistrez le fichier, puis exécutez
sudo iptables -F
sudo chmod +x transmission-ip-rules
sudo ./transmission-ip-rules
puis assurez-vous que ces règles persistent entre les redémarrages avec:
sudo dpkg-reconfigure iptables-persistent
et appuyez sur oui aux deux invites. TERMINÉ!
Ce qui est génial avec ce script, c'est qu'il va suivre toutes les données via l'appareil! Lorsque vous émettez
sudo iptables -L -v
il montrera combien de données vont à quelle interface et de quel côté INPUT ou OUTPUT afin que vous puissiez être assuré que le script vpn fonctionne correctement. Par exemple;
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
Ce script a été testé de manière exhaustive sur les connexions, déconnexions, redémarrages à partir du VPN. Cela fonctionne très bien. La transmission ne peut utiliser que le VPN. Le grand avantage de ce script par rapport aux autres est que je me suis assuré comme vous pouvez le voir (viaiptables -L -v
) que vos données correspondent à ce qui est transmis par la transmission (en ajoutant des règles INPUT (tout) et Forward (tout) pour chaque interface eth0, vpn (tun0)). Vous savez donc exactement ce qui se passe !!! Les totaux de données ne correspondront pas exactement à la transmission - Malheureusement, je ne peux pas discriminer du côté INPUT vers l'utilisateur de la transmission debian, et il y aura à la fois des frais supplémentaires et peut-être d'autres processus utilisant le même VPN, mais vous verrez les données approximativement correspondre sur le côté INPUT et est environ la moitié sur la sortie pour le vpn confirmant son fonctionnement. Une autre chose à noter - cela prend un certain temps sur une déconnexion vpn (tout le trafic s'arrête avec la transmission) et se reconnecter pour que la transmission démarre sur le nouveau vpn alors ne vous inquiétez pas s'il faut environ 5 minutes pour recommencer le torrent. .
CONSEIL - google 'MAN iptables' et consultez cet article sur la surveillance de la bande passante si vous voulez savoir ligne par ligne comment ce script fonctionne ...