Oto kompletne „W JAKI SPOSÓB” dla NOOBS (przy użyciu debiana), aby upewnić się, że grupa użytkowników debian-transmisja (tj. Transmisja) kieruje dane tylko przez VPN
NIE używaj dłuższego „Jak to zrobić” dla VPN opartego na złożonych skryptach systemowych ...! iptables jest NAJLEPSZĄ (i niezawodną) METODĄ !!! - UŻYWANIE KILKA ZASAD IPTABELI w oparciu o użytkownika i grupę transmisji do sterowania VPN (nie jak wiele bardziej złożonych metod „hackowania”, które wykorzystują skrypty systemowe, skrypty w górę i w dół itp.) I jest to takie proste!
Krok 1 - Konfiguracja: (Zakłada się, że transmisja jest zainstalowana i dlatego użytkownik debian-transmisja istnieje!)
sudo apt-get install iptables
sudo apt-get install iptables-persistent
Krok 2 - Utwórz plik zasad transmisji ip
sudo nano transmission-ip-rules
i dodaj tekst w bloku kodu poniżej, zaczynając od #!/bin/bash
WAŻNY
- Jeśli twoja sieć lokalna nie ma postaci 192.168.1.x Zmień zmienną NET, aby odpowiadała twojemu własnemu formatowi adresowania sieci lokalnej !!
- Pamiętaj również o dziwactwie, że 192.168.1.0/25 faktycznie daje zakres 192.168.1.0-255!
- Czasami twój interfejs eth0, tun0 (który jest VPN) itp. Może być inny - sprawdź za pomocą „ifconfig” i zmień w razie potrzeby.
#!/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
Zapisz plik, a następnie uruchom
sudo iptables -F
sudo chmod +x transmission-ip-rules
sudo ./transmission-ip-rules
następnie upewnij się, że te reguły będą się utrzymywać między restartami za pomocą:
sudo dpkg-reconfigure iptables-persistent
i stuknij tak, aby wyświetlić oba monity. GOTOWY!
Wspaniałe w tym skrypcie jest to, że będzie śledzić wszystkie dane przez urządzenie! Kiedy wydajesz
sudo iptables -L -v
pokaże, ile danych idzie do którego interfejsu i po której stronie WEJŚCIE lub WYJŚCIE, dzięki czemu masz pewność, że skrypt VPN działa poprawnie. Na przykład;
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
Ten skrypt został gruntownie przetestowany na połączeniach, rozłączeniach, restartach z VPN. Działa świetnie. Transmisja może korzystać TYLKO z VPN. Ogromną zaletą tego skryptu w porównaniu z innymi jest to, że upewniłem się, jak widać (przeziptables -L -v
), że dane są zgodne z tym, co jest przenoszone przez transmisję (przez dodanie reguł INPUT (wszystkie) i Forward (wszystkie) dla każdego interfejsu eth0, vpn (tun0)). Więc dokładnie wiesz, co się dzieje !!! Sumy danych nie zgadzają się dokładnie z transmisją - Niestety nie mogę dyskryminować użytkownika po stronie WEJŚCIA w stosunku do użytkownika transmisji debian, i będą istniały zarówno dodatkowe koszty ogólne, jak i być może inne procesy korzystające z tej samej sieci VPN, ale zobaczysz dane w przybliżeniu wysokie po stronie WEJŚCIA i około połowy na WYJŚCIU dla VPN potwierdzającej jego działanie. Kolejna rzecz do zapamiętania - odłożenie połączenia VPN zajmuje cały czas (cały ruch zatrzymuje się wraz z transmisją) i ponowne połączenie, aby „zacząć” nową VPN, więc nie martw się, jeśli ponowne uruchomienie torrenta zajmie około 5 minut. .
WSKAZÓWKA - google „MAN iptables” i zapoznaj się z tym artykułem na temat monitorowania przepustowości, jeśli chcesz wiedzieć, wiersz po wierszu, jak działa ten skrypt ...