1

Запуск Shibby Tomato v130 на Asus RT-N66U.

Мои цели следующие

  1. Когда Transmission работает на маршрутизаторе, все потоки торрент-трафика проходят через клиента OpenVPN, также работающего на маршрутизаторе. Никакой другой трафик не пройдет через VPN.
  2. Я использую отдельный веб-сервер со статическим внутренним IP-адресом 192.168.1.3. Я хочу перенаправить порты WAN 80 и 443 на сервер.

Я могу заставить 1 или 2 работать по одному, но не могу заставить их работать одновременно.

Во-первых, я создал 2-ю локальную сеть с помощью Tomato GUI (br1) и дал ему IP-адрес 192.168.2.1. Затем я назначил Transmission использовать этот IP-адрес, изменив строку конфигурационного файла settings.json "bind-address-ipv4": "192.168.2.1",

Во-вторых , с использованием слегка измененной версии сценария WAN up, опубликованной в этом ответе, для того, чтобы туннелировать только определенные хосты через туннель openvpn client [closed]

# This code goes in the WAN UP section of the Tomato GUI.
#
# This script configures "selective" VPN routing. Normally Tomato will route ALL traffic out
# the OpenVPN tunnel. These changes to iptables allow some outbound traffic to use the VPN, and some
# traffic to bypass the VPN and use the regular Internet instead.
#
#  To list the current rules on the router, issue the command:
#      iptables -t mangle -L PREROUTING
#
#  Flush/reset all the rules to default by issuing the command:
#      iptables -t mangle -F PREROUTING
#

#
# First it is necessary to disable Reverse Path Filtering on all
# current and future network interfaces:
#
for i in /proc/sys/net/ipv4/conf/*/rp_filter ; do
      echo 0 > $i
done

#
# Delete and table 100 and flush any existing rules if they exist.
#
ip route flush table 100
ip route del default table 100
ip rule del fwmark 1 table 100
ip route flush cache
iptables -t mangle -F PREROUTING

#
# Copy all non-default and non-VPN related routes from the main table into table 100.
# Then configure table 100 to route all traffic out the WAN gateway and assign it mark "1"
#
# NOTE: Here I assume the OpenVPN tunnel is named "tun11".
#
#
ip route show table main | grep -Ev ^default | grep -Ev tun11 \
  | while read ROUTE ; do
      ip route add table 100 $ROUTE
done
ip route add default table 100 via $(nvram get wan_gateway)
ip rule add fwmark 1 table 100
ip route flush cache

#
# Define the routing policies for the traffic. The rules will be applied in the order that they
# are listed. In the end, packets with MARK set to "0" will pass through the VPN. If MARK is set
# to "1" it will bypass the VPN.
#
# EXAMPLES:
#
#  All LAN traffic will bypass the VPN (Useful to put this rule first, so all traffic bypasses the VPN and you can configure exceptions afterwards)
#    iptables -t mangle -A PREROUTING -i br0 -j MARK --set-mark 1
#  Ports 80 and 443 will bypass the VPN
#    iptables -t mangle -A PREROUTING -i br0 -p tcp -m multiport --dport 80,443 -j MARK --set-mark 1
#  All traffic from a particular computer on the LAN will use the VPN
#    iptables -t mangle -A PREROUTING -i br0 -m iprange --src-range 192.168.1.2 -j MARK --set-mark 0
#  All traffic to a specific Internet IP address will use the VPN
#    iptables -t mangle -A PREROUTING -i br0 -m iprange --dst-range 216.146.38.70 -j MARK --set-mark 0
#  All UDP and ICMP traffic will bypass the VPN
#    iptables -t mangle -A PREROUTING -i br0 -p udp -j MARK --set-mark 1
#    iptables -t mangle -A PREROUTING -i br0 -p icmp -j MARK --set-mark 1

# By default all traffic bypasses the VPN
iptables -t mangle -A PREROUTING -i br0 -j MARK --set-mark 1

# Only foward to Transmission
iptables -t mangle -A PREROUTING -i br0 -m iprange --src-range 192.168.2.1 -j MARK --set-mark 0

Я могу получить только маршрутизацию трафика передачи через VPN со всеми другими компьютерами, идущими через обычную глобальную сеть. Тем не менее, выполнение этого скрипта, по-видимому, уничтожает мой порт на сервере, и я больше не могу получить доступ к серверу извне сети.

Я настроил TCP-порты 80 и 443 для перенаправления на 192.168.1.3 в томатном графическом интерфейсе. Проверка как iptables -L -vn и iptables -L -vn -t nat перед запуском сценария WAN up (доступ к серверу возможен извне, но VPN еще не работает)

iptables -L -vn показывает

Chain wanin (1 references)
 pkts bytes target     prot opt in     out     source               destination
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            192.168.1.3         tcp dpt:80
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            192.168.1.3         tcp dpt:443

iptables -L -vn -t nat показывает

Chain WANPREROUTING (1 references)
 pkts bytes target     prot opt in     out     source               destination
    0     0 DNAT       icmp --  *      *       0.0.0.0/0            0.0.0.0/0           to:192.168.1.1
    1    40 DNAT       tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:80 to:192.168.1.3:80
    0     0 DNAT       tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:443 to:192.168.1.3:443

Пост, запускающий скрипт WAN up

iptables -L -vn показывает

Chain wanin (1 references)
 pkts bytes target     prot opt in     out     source               destination
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            192.168.1.3         tcp dpt:80
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            192.168.1.3         tcp dpt:443

iptables -L -vn -t nat показывает

Chain WANPREROUTING (1 references)
 pkts bytes target     prot opt in     out     source               destination
    0     0 DNAT       icmp --  *      *       0.0.0.0/0            0.0.0.0/0           to:192.168.1.1
    0     0 DNAT       tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:80 to:192.168.1.3:80
    0     0 DNAT       tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:443 to:192.168.1.3:443

И то же, что и раньше, но я не могу подключиться к серверу через порт 80 или 443 из-за пределов сети.

Таким образом, простой вопрос заключается в том, как с помощью этого сценария подключения к глобальной сети или чего-то подобного, как перенаправить порты на определенный IP и сохранить их вне VPN?

0