LINUX.ORG.RU

Доступ к сервису за провайдерским NAT

 , ,


0

1

Имеется контроллер с запущенным web-сервером для мониторинга и управления. У контроллера имеется Ethernet интерфейс и статический IP. Необходимо обеспечить доступ в web-серверу из интернета.

Контроллер подключается к интернету через роутер TP-Link MR3020 с OpenWRT + 4G модем Huawei. Других возможностей для выхода в интернет нет.

Сейчас реализована следующая схема:

  1. Имеется VPS с публичным IPv4 и запущенным SSH-сервером;
  2. Создан пользователь tunnel без доступа к шеллу и авторизацией по ключам, «GatewayPorts yes» в sshd_config;
  3. При подаче питания, роутер (MR3020) подключается в сети используя 4G-модем;
  4. После установления соединения, роутер поднимает SSH-туннель для маршрутизации трафика между VPS и контроллером;
  5. На VPS запущен nginx в режиме reverse proxy для обеспечения доступа через HTTPS и авторизации.

В целом, все работает стабильно, но непонятно как такая система будет вести себя при масштабировании. Планируется, что будет порядка 5000 устройств, требующих доступа.

Также, я думал организовать это при помощи Wireguard, но хочется сохранить простоту настройки и конфигов.

Помимо этого, хотелось бы каким-либо образом иметь возможность опозновать подключенные устройства (по MAC?), чтобы небыло необходимости вручную прописывать конфиги в nginx.

Может кто-то уже сталкивался с подобной проблемой и имеет элегантное решение?



Последнее исправление: iizek (всего исправлений: 1)

Дык это. Нужен DHCP-сервер и DNS-сервер с двумя зонами, публичная должна разрешать все запросы типа zhelezka0001.myservice.public в один и тот же публичный айпишник VPSки, а во вторую, внутреннюю, должны регистрироваться при получении адреса от DHCP-сервера все впн-клиенты, т.е. собственно железки, чтобы было типа zhelezka0001.myservice.private. И реверс-проксировать все это богатство с zhelezkaNNNN.myservice.public на zhelezkaNNNN.myservice.private. VPN по вкусу, лишь бы умело с dhcp общаться.

Или нафиг дхцп, налепить 5000 айпишников руками и наслаждаться.

thesis ★★★★★
()

Меняешь ssh на любой vpn (хоть wg, у него конфиги максимально простые) и все будет ок.

Помимо этого, хотелось бы каким-либо образом иметь возможность опозновать подключенные устройства (по MAC?), чтобы небыло необходимости вручную прописывать конфиги в nginx.

Опять-же vpn, ты каждому vpn клиенту выдаешь уникальный ip из серой подсети, по нему и отличать.

Kolins ★★★★★
()
Ответ на: комментарий от thesis

Спасибо, выглядит просто и элегантно. Попробую реализовать.

iizek
() автор топика
Ответ на: комментарий от aol

Круто, попробую в новом проекте. Единственная проблема которую я вижу - у меня роутер на mips, нужно будет заморачиваться со сборкой пакетов.

iizek
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.