Tomato Dual VLAN (где один из них туннелируется VPN)

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

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

Недавно я реализовал что-то подобное в своей домашней сети, на Tomato (shibby) v138. Вот диаграмма: Диаграмма Томатной ЛВС

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

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

  1. В разделе Basic / Network / LAN я добавил новый мост с именем «br1». Я дал ему IP-адрес 192.168.2.1, netmask 255.255.255.0, DHCP и IP Range 192.168. 2 .2-254.
  2. В Advanced / Virtual Wireless я добавил два новых виртуальных беспроводных интерфейса wl0.1 и wl1.1 для интерфейсов 2,4 ГГц и 5 ГГц соответственно. Оба назначаются новому мосту «LAN1 (br1)». Я дал тот же новый SSID, например, «частный». Вы также можете предоставить им другой пароль из общедоступной сети, если хотите.
  3. В разделе « VPN Tunneling / OpenVPN Client / Basic» я настроил VPN-клиент (мой VPN-провайдер – «Частный доступ в Интернет», поэтому я следил за этим руководством ). Я также включил «Начать с WAN», поэтому он будет запускаться автоматически.
  4. В разделе VPN Tunneling / OpenVPN Client / Advanced я установил параметр «Игнорировать перенаправление шлюза», чтобы клиент не перенаправлял все в VPN.
  5. В разделе VPN Tunneling / OpenVPN Client / Routing Policy я проверил «Перенаправление через VPN» и добавил строку с типом «From Source IP» и значением «192.168.2.0/24», чтобы все хосты в новой подсети маршрутизировались через VPN.

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

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

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

Подключение: если вы хотите, чтобы физический Ethernet-порт подключался через VPN, вы можете добавить новую VLAN в Advanced / 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 

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

Fail-safe : также известный как «kill kill», я добавил несколько дополнительных правил для администрирования / скриптов / брандмауэра , которые предназначены для предотвращения чего-либо из частной сети, идущей на незащищенную WAN (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 
Interesting Posts
Давайте будем гением компьютера.