Tomato Dual VLAN (где один из них VPN-туннель)

5

Я работаю над настройкой домашней сети с помощью Tomato для работы с двумя SSID Wi-Fi. Мой маршрутизатор является двухдиапазонным маршрутизатором NETGEAR NIGHTHAWK, и до сих пор Tomato прекрасно с ним работает, также как и функция VPN. Единственным недостатком является то, что когда VPN активен (когда вы выбираете запуск через интерфейс Tomato), он применяет VPN-туннель к обоим SSID, которые я настроил. Есть ли какой-нибудь способ применить VPN только к одному из этих SSID? Таким образом, меняя беспроводную сеть, я могу отделиться от туннеля VPN, который работает на моем маршрутизаторе.

Это возможно?

matsko
источник
Я на полпути сам, тебе нужно поиграть iptables командная строка. Например, вызов этого приведет к удалению правила, направляющего весь трафик из вторичной сети (той, что на 192.168.2.xxx), в туннель. tun11 это мой openvpn ... но мне нужно добавить маскировку интерфейса ... iptables -t nat -D POSTROUTING -s 192.168.2.0/24 -o tun11 -j MASQUERADE
draeron

Ответы:

6

Недавно я реализовал что-то подобное в моей домашней сети, на Tomato (shibby) v138. Вот схема: Tomato LAN diagram

Прежде чем перейти к настройке VPN, у меня изначально были сети с частотой 2,4 ГГц и 5 ГГц с одним SSID, назовем его «общедоступным». Внутренняя сеть назначает устройства адресам в диапазоне 192.168.1.2-254. Это то, что вы видите в верхней половине диаграммы.

Вот изменения, которые я сделал, чтобы добавить новую подсеть, которая была маршрутизирована через VPN:

  1. Под Основные / Сеть / LAN Я добавил новый мост с именем "br1". Я дал ему IP-адрес 192.168.2.1, маску сети 255.255.255.0, DHCP включен и диапазон IP-адресов 192.168. 2 .2-254.
  2. Под Advanced / Virtual Wireless Я добавил два новых виртуальных беспроводных интерфейса, wl0.1 и wl1.1, для интерфейсов 2,4 ГГц и 5 ГГц соответственно. Оба назначены новому мосту "LAN1 (br1)". Я дал оба одинаковых новых SSID, например, "частный". Вы также можете дать им другой пароль из публичной сети, если хотите.
  3. Под VPN-туннелирование / OpenVPN-клиент / Базовый , Я настроил VPN-клиент (мой VPN-провайдер - Private Internet Access, поэтому я следовал это руководство ). Я также включил «Начать с WAN», чтобы он запускался автоматически.
  4. Под VPN-туннелирование / OpenVPN-клиент / Advanced Я установил опцию «Игнорировать перенаправление перенаправления», чтобы клиент не перенаправлял все в VPN.
  5. Под VPN-туннелирование / OpenVPN-клиент / Политика маршрутизации Я проверил «Redirect via VPN» и добавил строку с типом «From Source IP» и значением «192.168.2.0/24», чтобы все узлы в новой подсети маршрутизировались через VPN.

В этот момент я могу запустить VPN-клиент, затем выбрать беспроводное устройство, подключиться к «частной» сети и подтвердить, что мой IP-адрес, выходящий в Интернет, находится за VPN, подключиться к «общедоступному» и транслировать Netflix / Amazon Prime видео без получения ошибок географического ограничения.

Теперь вы можете настроить каждое устройство для подключения к любому SSID в соответствии с их потребностями. В нашем доме медиа-стример, который передает потоки Netflix на телевизор, остается в сети общего пользования. Мой телефон и ноутбук подключены к частной сети. В большинстве случаев вы должны выбрать одно или другое - вы не хотите, чтобы устройство автоматически подключалось к одному из них произвольно.

Дополнительные опции

Получать проводной : Если вы хотите, чтобы физический порт Ethernet подключался через VPN, вы можете добавить новую VLAN в Дополнительно / VLAN и назначьте его новому мосту (br1). На этом этапе вы можете переместить один или несколько физических портов Ethernet на маршрутизаторе в вашу защищенную VLAN, если хотите. Я не сделал, поэтому только беспроводные клиенты смогут присоединиться к моей частной подсети.

Внутренняя маршрутизация После выполнения описанных выше действий вы можете обнаружить, что клиенты в общедоступных и частных сетях не могут общаться друг с другом. Настройка политики маршрутизации VPN-клиента, как я делал выше, добавляет это правило:

iptables -t mangle -A PREROUTING -s 192.168.2.0/24 -j MARK --set-mark 311

к сценарию брандмауэра томата. Это помечает каждый пакет, исходящий из сети 192.168.2.0/24, и все с пометкой 311 маршрутизируется через VPN. Это означало, что никакие устройства в «общедоступной» подсети (192.168.1.0/24) не могли общаться с устройствами в «частной» подсети через внутреннюю сеть, потому что, хотя запрос проходил, ответ перенаправлялся на VPN и потерял. В моем случае я хотел иметь возможность доступа к общим файлам с сервера в частной сети, поэтому я решил снять отметку для всего, что должно быть отправлено в общедоступную сеть. Я сделал это, добавив строку:

iptables -t mangle -A PREROUTING -s 192.168.2.0/24 -d 192.168.1.0/24 -j MARK --set-mark 0

в Администрирование / Scripts / Firewall , Вы можете добавить аналогичное правило для любых портов, которые вы собираетесь перенаправлять на маршрутизатор из частной сети.

Безотказный : Также известный как «переключатель уничтожения», я добавил пару дополнительных правил Администрирование / Scripts / Firewall которые предназначены для предотвращения попадания чего-либо из частной сети в незащищенную глобальную сеть (vlan2). Это означает, что если VPN по какой-то причине отключается, клиенты, подключающиеся к частной сети, не могут случайно установить связь через незащищенный интерфейс WAN.

iptables -I FORWARD -s 192.168.2.0/24 -o vlan2 -m state --state NEW -j REJECT --reject-with icmp-host-prohibited 
iptables -I FORWARD -p tcp -s 192.168.2.0/24 -o vlan2 -m state --state NEW -j REJECT --reject-with tcp-reset
Matt
источник
Я на AdvancedTomato v35-140. Я дословно следовал вашим инструкциям до раздела «Необязательные дополнения», но мой трафик в частной сети не проходил через vpn. После некоторых перезагрузок, работы с настройками, сохранения, перезагрузки и т. Д. У меня наконец-то остались те же настройки, что и раньше (как в вашем посте), и теперь это работает. Спасибо!
m59
1
Так сработало в итоге? Процесс для меня не был столь же линейным, как написано, было много проб и ошибок и перезагрузок, но я попытался отредактировать его до основных этапов.
Matt
1
Ага. Либо это что-то вроде ошибки с Tomato, случайностью, либо есть неинтуитивная необходимость менять вещи или перезагружаться в определенное время или что-то еще. Но все мои настройки выглядят как ваши и раньше не работали, а теперь работают!
m59
Вы можете переключаться между vpn и non-vpn wifi и соответственно скрывать свой IP? У меня есть подключение к интернету, но мой трафик, кажется, не проходит через VPN, если я уже подключился к Wi-Fi не на vpn на устройстве, если я не перезагружаю сам маршрутизатор после переключения этого устройства на vpn wifi.
m59
Да, я тестирую с использованием службы в стиле «что такое мой ip», и при подключении к каждому SSID мой внешний IP-адрес изменяется соответственно. Когда происходит сбой (т. Е. Вы подключены к Wi-Fi VPN, но ваш трафик не проходит через VPN), проверьте назначенный IP-адрес вашего устройства - это в «частной» подсети? Кроме того, если вы не настроите «отказоустойчивый» и VPN отключится, ваш трафик не будет защищен, даже если вы подключитесь к частному SSID.
Matt