Как я могу гарантировать, что трафик передачи использует VPN?

Я хотел бы убедиться, что передача только отправляет / получает трафик, когда сервер, на котором он работает, подключен к VPN.

Я нашел этот вопрос похожим , но я не хочу форсировать весь трафик через VPN, и мне не удалось найти хорошее руководство о том, как использовать firestarter из командная строка.

Вместо этого я думал об использовании UFW, но у меня практически нет опыта работы с брандмауэрами, и я надеюсь, что сообщество может помочь мне.

Одна из моих идей состояла в том, чтобы заставить передачу использовать определенный порт, скажем, 33442, и затем разрешать трафик на этот порт и с него только с IP-адреса VPN-сервера. Я ознакомился с руководством по работе с сервером Ubuntu и думаю, что смогу сделать что-то вроде этого:

sudo ufw enable
sudo ufw deny port tcp from localhost to any port 33442
sudo ufa allow port tcp from localhost to VPNIP port 33442
sudo ufw deny port udp from localhost to any port 33442
sudo ufa allow port udp from localhost to VPNIP port 33442

Сохраняет ли эта логика свою соль? Как бы вы это сделали? Что бы я использовал для VPNIP, общедоступного IP-адреса сервера VPN, или я должен указать диапазон локальной подсети, к которому подключается VPN?

Спасибо за вашу помощь!

31
задан 13 April 2017 в 15:24

4 ответа

sudo groupadd vpnroute
sudo iptables -A OUTPUT -m owner --gid-owner vpnroute \! -o tun0 -j REJECT
sudo -g vpnroute transmission-gtk &
0
ответ дан 13 April 2017 в 15:24

В идеале вы должны использовать торрент-клиент с функцией привязки к определенному интерфейсу (интерфейсу VPN).

Среди торрент-клиентов Делуг делает это. Таким образом, вы можете установить Deluge и настроить интерфейс в настройках, и все готово!

0
ответ дан 13 April 2017 в 15:24

Это работает для безголовой передачи, я ограничиваю трафик в зависимости от пользователя, который запускает службу передачи, 10.0.0.0/8 - это ваша внутренняя сеть, вы должны изменить ее, чтобы она соответствовала вашей сети, tun0 - ваш интерфейс OpenVPN, [ 114] - это подключение к локальной сети.

Добавьте sudo к командам, если вы не являетесь пользователем root:

iptables -F (Мы использовали ключ -F для сброса всех существующих правил, поэтому мы начинаем с чистого состояния, из которого добавляются новые правила .)

iptables -L (список текущих настроек)

NET=10.0.0.0/8
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

делают iptables постоянными после перезапуска

apt-get install iptables-persistent
service iptables-persistent start
0
ответ дан 13 April 2017 в 15:24

Вот полное, 'КАК К' для НОВИЧКОВ (использующий debian) при проверке группы пользователей debian-передачи (т.е. передача) только направляет данные через vpn

, НЕ используют более длинное 'Как для' для vpn на основе сложных системных сценариев...! iptables является ЛУЧШИМ (и надежным), МЕТОД!!! - ИСПОЛЬЗУЯ НЕСКОЛЬКО IPTABLE УПРАВЛЯЕТ на основе пользователя передачи и группы для управления vpn (не как намного более сложные методы 'взлома', которые используют systemd сценарии, вверх и вниз по сценариям и т.д....) , и это настолько просто!

Шаг 1 - Установка: (Предполагает, что передача установлена, и пользователь debian-передачи поэтому существует!)

sudo apt-get install iptables
sudo apt-get install iptables-persistent

Шаг 2 - Создает transmission-ip-rules файл

sudo nano transmission-ip-rules

и добавляет текст в блоке кода ниже запуска от #!/bin/bash

ВАЖНЫЙ

  • , Если Ваша локальная сеть не имеет формы 192.168.1.x, Заменяют СЕТЕВУЮ переменную для соответствия собственному формату обращения локальной сети!!.
  • Также знать о причуде, что 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

, который это покажет, сколько данных идет, к который интерфейс и который ВВОД ИЛИ ВЫВОД стороны, таким образом, Вас можно уверить, что 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), которому Ваши данные соответствуют тому, что, остановился передача (путем добавления, ВВОДИТ (все) и Передают (все) правила для каждого интерфейса eth0, vpn (tun0)). Таким образом, Вы знаете точно, что происходит!!! Общие количества данных не будут соответствовать точно передаче - К сожалению, я не могу различить на ВХОДНОЙ стороне вниз пользователю debian-передачи, и будет и дополнительными издержками и возможно другими процессами с помощью той же VPN, но Вы будете видеть, что данные примерно соответствуют на ВХОДНОЙ стороне и являются приблизительно половиной на ВЫВОДЕ для vpn подтверждение его работы. Другая вещь отметить - это требует времени на разъединении vpn (все транспортные остановки с передачей) и снова соединяется, чтобы передача 'началась' на новом vpn, так не волнуйтесь, требуется ли приблизительно 5 минут для запуска torrenting снова...

ПОДСКАЗКА - Google 'ЧЕЛОВЕК iptables' и видит эта статья о пропускной способности, контролирующей , если Вы хотите знать линию за линией, как этот сценарий работает...

0
ответ дан 13 April 2017 в 15:24

Другие вопросы по тегам:

Похожие вопросы: