Рассмотрим вариант настройки доступа в веб-интерфейс 3G/4G USB-модема, который находится за VPN-сервером. Возьмем за пример SSTP VPN-сервер на Keenetic и SSTP-клиент на мобильном устройстве с Android. Нужно обеспечить доступ к интерфейсу управления USB-модема с VPN-клиента через VPN-туннель.
Подключитесь к интерфейсу командной строки (CLI) роутера Keenetic, к которому подключен USB-модем.
С помощью правил межсетевого экрана создайте группу фильтрации пакетов для-интерфейса модема (в нашем примере используется USB-модем c типом подключения CdcEthernet):
(config)> access-list modem
Network::Acl: "modem" access list created.
(config-acl)> permit ip 0.0.0.0 0.0.0.0 0.0.0.0 0.0.0.0
Network::Acl: Rule accepted.
(config-acl)> exit
Core::Configurator: Done.
(config)> system configuration save
Core::ConfigurationSaver: Saving configuration...
Разрешите правило для исходящих пакетов для CdcEthernet-интерфейса и с помощью команды ip static добавьте статическое правило переадресации запросов из сети VPN-туннеля до сети USB-модема (до шлюза, адресом которого является WAN IP-адрес CdcEthernet0-интерфейса на роутере):
(config)> interface CdcEthernet0 ip access-group modem out
Network::Acl: Output "modem" access list added to "CdcEthernet0".
(config)> ip static 172.16.3.0 255.255.255.0 192.168.8.100
Network::StaticNat: Static NAT rule has been added.
(config)> system configuration save
Core::ConfigurationSaver: Saving configuration...
В нашем примере 172.16.x.0 — cеть VPN-туннеля, из которой будут идти запросы до модема, и 192.168.8.100 — WAN IP-адрес CdcEthernet0-интерфейса на роутере (на 3G/4G USB-модеме включен собственный DHCP-сервер и он назначил этот IP-адрес роутеру); данный адрес является шлюзом до сети USB-модема.
Правило ip static будет делать подмену IP-адреса источника (Source IP) при обращении на USB-модем, так как адрес источника будет неизвестен для самого модема и он в свою очередь должен будет ответить по дефолтному маршруту.
В веб-конфигураторе в меню "Переадресация" создайте правило для трансляции адресов:
На SSTP-клиенте в Android настройте VPN-подключение. В частности, нужно обязательно указать маршрут до сети USB-модема:
Проверяем доступ к веб-интерфейсу USB-модема внутри VPN-туннеля:
Также для проверки доступности сервера можно выполнить отправку ICMP-пакетов (пинг) до IP-адреса (например, при помощи программы PingTools Network Utilities).
TIP: Примечание. В некоторых модемах по умолчанию включен механизм "Рандомизация MAC-адресов". В этом случае роутер каждый раз будет получать от USB-модема новый MAC-адрес и IP-адрес. Чтобы это избежать, можно зафиксировать MAC-адрес на интерфейсе модема CdcEthernet0 в настройках роутера. Выполните следующие команды в интерфейсе командной строки (CLI) роутера:
interface CdcEthernet0 mac address aa:bb:cc:dd:ee:ff
system configuration save
Вместо aa:bb:cc:dd:ee:ff укажите последний МАС-адрес на интерфейсе, который можно посмотреть в файле самодиагностики роутера self-test.txt, либо в настройках USB-модема, если это возможно (зависит от ПО модема). Также на модеме в настройках сервера DHCP выделите пул из одного IP- адреса, чтобы он был постоянный.