Я недавно реализовал нечто подобное в своей домашней сети, на Tomato (shibby) v138. Вот диаграмма:
прежде чем попасть в настройку VPN, у меня изначально были сети 2,4 ГГц и 5 ГГц на одном SSID, давайте назовем его "общедоступным". Внутренняя сеть назначила устройства адресам в диапазоне 192.168.1.2-254. Это то, что вы видите в верхней части схемы.
это те изменения, которые я сделал, чтобы добавить новую подсеть маршрутизация через VPN:
- под Basic/Network / LAN, я добавил новый мост с именем "br1". Я дал ему IP-адрес 192.168.2.1, маску подсети 255.255.255.0, DHCP включен, и диапазон IP 192.168.2.2-254.
- под Расширенный / Виртуальный Беспроводной, я добавил два новых виртуальных беспроводных интерфейса, wl0.1 и wl1.1, для интерфейсов 2,4 ГГц и 5 ГГц соответственно. Оба назначены на новый мост " LAN1 (br1)". Я дал оба тот же новый SSID, например "private". Вы также можете дать им другой пароль от публичной сети, если хотите.
- под VPN туннелирование / openvpn клиент / Basic, я настроил VPN-клиент (мой поставщик VPN является частный доступ в интернет, так что я следовал данное руководство). Я также включил "начать с WAN", поэтому он запустится автоматически.
- под VPN туннелирование / openvpn клиент / дополнительно, я установил " игнорировать шлюз перенаправления" вариант, чтобы клиент не путь все к VPN.
- под VPN туннелирование / клиент OpenVPN / политика маршрутизации, я проверил " перенаправление через VPN "и добавил строку с типом" от исходного IP "и значением" 192.168.2.0/24", так что все хосты в новой подсети маршрутизируются через VPN.
в этот момент я могу запустить VPN-клиент, затем выбрать беспроводное устройство, подключиться к" частной " сети и подтвердить, что мой IP-адрес в интернете находится за VPN, и подключиться к "public" и поток 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
для сценария брандмауэра tomato. Это отмечает каждый пакет, происходящий в сети 192.168.2.0/24, и все с меткой 311 маршрутизируется через VPN. Это означало, что любые устройства в подсети" public " (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
to Администрирование / Скрипты / Firewall. Аналогичное правило можно добавить для любых портов, которые планируется пересылать маршрутизатору из частной сети.
отказобезопасности: также известный как "Kill switch", я добавил пару дополнительных правил к Администрирование / Скрипты / Firewall, которые предназначены для предотвращения чего-либо из частной сети, идущей в незащищенную 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