Aquí hay un 'CÓMO' completo para NOOBS (usando debian) para asegurarse de que el grupo de usuarios de transmisión debian (es decir, transmisión) solo enruta datos a través de vpn
¡NO use el 'Cómo hacer' más largo para vpn basado en scripts de sistema complejos ...! ¡iptables es EL MEJOR (e infalible) MÉTODO! - UTILIZAR UNAS POCAS REGLAS DE IPTABLE basadas en el usuario y el grupo de transmisión para controlar el vpn (no como muchos métodos más complejos de 'pirateo' que usan scripts systemd, scripts de subida y bajada, etc.) ¡ y es muuuy simple!
Paso 1 - Configuración: (¡Asume que la transmisión está instalada y que el usuario de transmisión de Debian existe!
sudo apt-get install iptables
sudo apt-get install iptables-persistent
Paso 2 - Crear el archivo de transmisión-reglas-ip
sudo nano transmission-ip-rules
y agregue el texto en el bloque de código a continuación a partir de #!/bin/bash
IMPORTANTE
- Si su red local no tiene la forma 192.168.1.x ¡Cambie la variable NET para que corresponda con su propio formato de direccionamiento de red local!
- ¡También tenga en cuenta la peculiaridad de que 192.168.1.0/25 realmente da el rango 192.168.1.0-255!
- A veces, sus interfaces eth0, tun0 (que es la vpn), etc., pueden ser diferentes: verifique con 'ifconfig' y cambie si es necesario.
#!/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
Guarde el archivo y luego ejecute
sudo iptables -F
sudo chmod +x transmission-ip-rules
sudo ./transmission-ip-rules
luego asegúrese de que estas reglas persistan entre reinicios con:
sudo dpkg-reconfigure iptables-persistent
y toca sí a ambas indicaciones. ¡HECHO!
¡Lo mejor de este script es que rastreará todos los datos a través del dispositivo! Cuando emites
sudo iptables -L -v
mostrará cuántos datos van a qué interfaz y de qué lado de ENTRADA o SALIDA, de modo que puede estar seguro de que el script vpn funciona correctamente. P.ej;
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
Este script ha sido probado exhaustivamente en conexiones, desconexiones, reinicios desde vpn. Funciona muy bien La transmisión SOLO puede usar la VPN. La gran ventaja de este script sobre los demás es que me he asegurado como puedes ver (a través deiptables -L -v
) que sus datos coinciden con lo que se extrae de la transmisión (al agregar las reglas INPUT (todas) y Reenviar (todas) para cada interfaz eth0, vpn (tun0)). ¡Entonces sabes exactamente lo que está pasando! Los totales de datos no coincidirán exactamente con la transmisión. Desafortunadamente, no puedo discriminar en el lado de ENTRADA hacia el usuario de la transmisión debian, y habrá una sobrecarga adicional y quizás otros procesos que usen la misma VPN, pero verá que los datos son aproximadamente recuentos en el lado de ENTRADA y es aproximadamente la mitad en la SALIDA para el VPN que confirma su funcionamiento. Otra cosa a tener en cuenta: se tarda un tiempo en una desconexión de VPN (todo el tráfico se detiene con la transmisión) y se vuelve a conectar para que la transmisión se ponga en marcha en la nueva VPN, así que no se preocupe si tarda unos 5 minutos en comenzar a torrenting nuevamente. .
SUGERENCIA: busque en Google 'MAN iptables' y vea este artículo sobre la supervisión del ancho de banda si desea conocer línea por línea cómo funciona este script ...