Ось повний "ЯК ДО" для NOOBS (використовуючи debian), щоб переконатися, що група користувачів debian-передачі (тобто передача) лише маршрутизує дані через vpn
НЕ використовуйте більш тривалий "Як" для vpn на основі складних системних скриптів ...! iptables - НАЙКРАЩИЙ (і нерозумний) МЕТОД !!! - ВИКОРИСТАННЯ РОЗУМИХ ІНТЕРАКТИВНИХ ПРАВИЛ, заснованих на користувачі та групі передачі для управління vpn (не так, як у багатьох більш складних методах "хак", які використовують системні сценарії, сценарії вгору та вниз тощо ...), і це так просто!
Крок 1 - Налаштування: (передбачається, що передача встановлена, і користувач передачі debian таким чином існує!)
sudo apt-get install iptables
sudo apt-get install iptables-persistent
Крок 2 - Створіть файл передачі-ip-правила
sudo nano transmission-ip-rules
і додайте текст у блок коду нижче, починаючи з #!/bin/bash
ВАЖЛИВО
- Якщо ваша локальна мережа не має форми 192.168.1.x Змініть змінну NET так, щоб вона відповідала вашому власному формату адресації локальної мережі !!.
- Також пам’ятайте про химерність, що 192.168.1.0/25 насправді дає діапазон 192.168.1.0-255!
- Іноді ваші інтерфейси eth0, tun0 (що є vpn) тощо. Можливо, інакше - перевірте "ifconfig" та змініть, якщо потрібно.
#!/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
Збережіть файл та запустіть
sudo iptables -F
sudo chmod +x transmission-ip-rules
sudo ./transmission-ip-rules
то переконайтеся, що ці правила зберігаються між перезавантаженнями:
sudo dpkg-reconfigure iptables-persistent
і торкніться так для обох підказок. Зроблено!
Що в цьому сценарії чудово, це те, що він буде відслідковувати всі дані через пристрій! Коли ви видаєте
sudo iptables -L -v
він покаже, скільки даних збирається в який інтерфейс і в яку сторону INPUT або OUTPUT, щоб ви могли бути впевнені, що сценарій vpn працює належним чином. Наприклад;
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
Цей скрипт вичерпно перевірений на з'єднаннях, відключеннях, перезавантаженнях з vpn. Це чудово працює. Для передачі можна ТОЛЬКО використовувати VPN. Великою перевагою цього сценарію перед іншими є те, що я переконався, як ви бачите (черезiptables -L -v
), що ваші дані співпадають з тим, що перетягується через передачу (додаючи правила INPUT (усі) та Forward (усі) для кожного інтерфейсу eth0, vpn (tun0)). Так ви точно знаєте, що відбувається !!! Підсумки даних не співпадатимуть точно з передачею - на жаль, я не можу розрізнити на INPUT сторону вниз до користувача debian-передачі, і з'являться як додаткові накладні, так і, можливо, інші процеси, що використовують той же VPN, але ви побачите дані приблизно приблизно на стороні INPUT і знаходиться приблизно на половині на вихідному для vpn, що підтверджує його роботу. Ще одне, що слід зазначити - потрібно пройти деякий час, коли вимкнути vpn (весь трафік припиняється з передачею) та знову підключитись до передачі, щоб "дістати" новий vpn, тому не хвилюйтесь, якщо потрібно знову близько 5 хвилин, щоб знову почати торрент. .
Порада - google "MAN iptables" і перегляньте цю статтю про моніторинг пропускної здатності, якщо ви хочете дізнатися по черзі, як працює цей скрипт ...