Hier ist ein vollständiges 'HOW TO' für NOOBS (unter Verwendung von debian), um sicherzustellen, dass die Benutzergruppe von debian-transmission (dh die Übertragung) nur Daten über den VPN weiterleitet
Verwenden Sie NICHT das ausführlichere "How to" für vpn, das auf komplexen Systemskripten basiert ...! Iptables ist die beste (und narrensichere) Methode !!! - VERWENDUNG EINIGER IPTABLE-REGELN basierend auf dem Übertragungsbenutzer und der Übertragungsgruppe zur Steuerung des VPN (nicht wie bei vielen komplexeren Hack-Methoden, bei denen Systemd-Skripte, Up- und Down-Skripte usw. verwendet werden) und es ist soooo einfach!
Schritt 1 - Setup: (Angenommen, die Übertragung ist installiert und der Benutzer debian-transmission existiert daher!)
sudo apt-get install iptables
sudo apt-get install iptables-persistent
Schritt 2 - Erstellen Sie die Datei mit den Übertragungs-IP-Regeln
sudo nano transmission-ip-rules
und fügen Sie den Text in den folgenden Codeblock ein, beginnend mit #!/bin/bash
WICHTIG
- Wenn Ihr lokales Netzwerk nicht die Form 192.168.1.x hat, ändern Sie die NET-Variable so, dass sie Ihrem eigenen lokalen Netzwerkadressierungsformat entspricht !!.
- Beachten Sie auch die Eigenart, dass 192.168.1.0/25 tatsächlich den Bereich 192.168.1.0-255 ergibt!
- Manchmal sind Ihre Schnittstellen eth0, tun0 (das ist der VPN) usw. vielleicht anders - überprüfen Sie mit 'ifconfig' und ändern Sie sie bei Bedarf.
#!/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
Speichern Sie die Datei und führen Sie sie aus
sudo iptables -F
sudo chmod +x transmission-ip-rules
sudo ./transmission-ip-rules
Stellen Sie dann sicher, dass diese Regeln zwischen den Neustarts bestehen bleiben:
sudo dpkg-reconfigure iptables-persistent
und tippen Sie auf Ja, um beide Eingabeaufforderungen zu bestätigen. GETAN!
Das Tolle an diesem Skript ist, dass es alle Daten über das Gerät verfolgt! Wenn Sie ausstellen
sudo iptables -L -v
Es wird angezeigt, wie viele Daten auf welcher Schnittstelle und auf welcher Seite EINGABE oder AUSGABE gespeichert sind, sodass Sie sicher sein können, dass das VPN-Skript ordnungsgemäß funktioniert. Z.B;
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
Dieses Skript wurde eingehend auf Verbindungen, Verbindungsabbrüche und Neustarts über den VPN getestet. Es funktioniert super Die Übertragung kann NUR über das VPN erfolgen. Der große Vorteil dieses Skripts gegenüber den anderen ist, dass ich dafür gesorgt habe, wie Sie sehen können (viaiptables -L -v
) dass Ihre Daten mit dem übereinstimmen, was über die Übertragung abgerufen wird (durch Hinzufügen von INPUT (all) - und Forward (all) -Regeln für jede Schnittstelle eth0, vpn (tun0)). Sie wissen also genau, was passiert !!! Die Gesamtsummen der Daten stimmen nicht genau mit der Übertragung überein - Leider kann ich auf der INPUT-Seite nicht nach dem Debian-Übertragungsbenutzer unterscheiden, und es wird sowohl zusätzlichen Overhead als auch möglicherweise andere Prozesse geben, die dasselbe VPN verwenden, aber die Daten sind ungefähr gleich hoch Auf der INPUT-Seite und ungefähr zur Hälfte auf dem OUTPUT, damit der vpn seine Funktion bestätigt. Noch etwas zu beachten - es dauert eine Weile, bis die VPN-Verbindung getrennt wird (der gesamte Datenverkehr wird mit der Übertragung unterbrochen) und die Verbindung wiederhergestellt wird, damit die Übertragung auf dem neuen VPN "in Gang kommt". Machen Sie sich also keine Sorgen, wenn es ungefähr 5 Minuten dauert, bis das Torrenting erneut beginnt. .
TIPP - googeln Sie 'MAN iptables' und lesen Sie diesen Artikel über die Bandbreitenüberwachung, wenn Sie zeilenweise wissen möchten, wie dieses Skript funktioniert ...