Коротко и по делу — сначала про принципы, потом — конкретная архитектура и пошаговый план внедрения с примерами правил. Предполагаю, что у вас 15 удалённых объектов с мобильной связью (чаще — NAT, динамические IP), и задача — безопасно собирать телеметрию и иметь возможность удалённого администрирования, минимизируя сторонние лицензии типа AnyDesk.
1) Основные принципы проектирования
- Исходящее соединение вместо входящего. Устройства в мобильной сети обычно за NAT — заставляем их сами устанавливать устойчивое исходящее соединение к центральному серверу (VPN, MQTT over TLS, reverse-tunnel).
- Минимизация открытых портов в Интернет — разрешать только исходящие соединения к заранее известным хостам/портам.
- Аутентификация без паролей (сертификаты/ключи, mTLS, WireGuard-ключи).
- Белые списки (whitelists) как первая линия защиты: на устройстве — разрешать только сервер(ы) централизованной системы; на сервере — разрешать только известные IP/публичные ключи и диапазоны администраторов.
- Сегментация сети: отделить «приборную» сеть от административной/гостевой на каждой площадке.
- Централизованное логирование, мониторинг и управление ключами/сертификатами; резервные каналы/фолловер.
2) Рекомендуемая архитектура (в двух вариантах)
Вариант A — бюджетный, надёжный (рекомендуемый)
- Центральный VPS/VM в надёжном датацентре (можно в РФ, если есть требования).
- На нём — VPN-сервер (WireGuard) + Bastion/Jumphost (SSH) с MFA + сервис сбора данных (MQTT/HTTPS/API).
- На каждом объекте — LTE-роутер (Mikrotik / Keenetic) или небольшой шлюз с клиентом WireGuard, внутри локалка с приборами.
- Устройство устанавливает постоянный WireGuard-пировой туннель к центральному серверу. Администратор подключается к центральному серверу/бастиону и попадает в приватную сеть, откуда доступ к приборам.
- Firewall на роутере/приборе: разрешить исходящие только к IP/порту VPN-сервера; на сервере — разрешить вход только по WireGuard и с админских IP (если есть).
Плюсы: простота, высокая скорость, дешёвая поддержка (VPS + open-source). Подходит для 15 объектов.
Вариант B — без собственного VPN-сервера (SaaS)
- Использовать ZeroTier / Tailscale / Nebula или коммерческий M2M-VPN (облако).
- Плюсы: минимальная настройка NAT traversal, централизованная авторизация.
- Минусы: внешний провайдер, возможные юридические/регуляторные ограничения, платные планы.
3) Конкретные механизмы контроля доступа (whitelists и проч.)
- На устройствах:
- Блокировать все входящие соединения кроме локальных.
- Разрешить исходящие только к IP/портам центрального сервера (VPN, MQTT/HTTPS).
- Разрешать админские подключения только через VPN-интерфейс.
- Использовать iptables/nftables (Linux) или Firewall MikroTik (filter rules).
- На VPN-сервере:
- Аутентификация по ключам (WireGuard) или mTLS (OpenVPN).
- По возможности — bind сервер на фиксированный IP и в провайдерских ACL разрешать только админские IP.
- На центральном приложении:
- TLS с проверкой клиентского сертификата (mTLS) или JWT/ACL.
- Ограничить API-команды по ролям и IP/UID.
- Дополнительно:
- Физическая/логическая сегментация (VLAN) приборов и управления.
- Реестр/база доверенных устройств: при изменении — процедура ревокации ключа.
4) Примеры правил (упрощённо)
A) Разрешить на устройстве только исходящий WireGuard к серверу:
- WireGuard использует UDP 51820 (пример). На роутере/приборе разрешаем исходящий UDP к IP_vpn_server:51820, остальные исходящие порты блокируем (или ограничить правила для приложений).
Пример iptables (очень упрощённо):
iptables -A OUTPUT -d <IP_VPN> -p udp --dport 51820 -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
iptables -A OUTPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -P OUTPUT DROP
B) На сервере — разрешить SSH/админство только из VPN-сети:
- Настроить sshd слушать только на интерфейсе wg0 (или в firewall разрешить вход по ssh только из подсети WireGuard).
C) Mikrotik (логика):
- Выставить фильтр на форварде/вызход, разрешить dst-address=<IP_VPN> dst-port=51820 протокол=udp, drop остальные исходящие к интернету от приборов (которые не должны выходить).
5) Аутентификация и управление ключами/сертификатами
- Каждый объект — отдельный ключ/сертификат. При компрометации — отозвать.
- Хранить бэкап ключей офлайн и использовать систему версионного контроля для конфигов.
- Периодическая ротация ключей (раз в 6–12 месяцев).
- MFA для администраторов, журналирование всех сессий (session recording если нужно).
6) Примеры схем сбора данных
- MQTT over TLS: устройства подключаются к брокеру (mosquitto) с клиентскими сертификатами; брокер накладывает ACL на топики. Плюс хорош для телеметрии.
- HTTP(S) API: устройства POST данных по HTTPS с клиентскими сертификатами или подписанными токенами.
- Протоколы SCADA: использовать VPN + фильтрацию пакетов, чтобы только конкретные серверы видели Modbus/OPC/… протоколы.
7) Админ-доступ (альтернатива AnyDesk)
- Не давать AnyDesk/TeamViewer напрямую в интернет. Если нужна GUI-помощь — организовать:
- RDP/VNC только внутри VPN (администратор подключается к VPN -> подключение RDP к прибору).
- Либо использовать удалённый доступ через JumpHost с протоколом SSH + портфорвардинг.
- Либо коммерция: централизованный RMM/MDM с авторизацией и журналированием.
8) Надёжность и мониторинг
- SLA: хотя бы 1 резервный VPN-сервер/регион.
- Мониторинг доступности (ping/здравиe устройства), alert в Telegram/Email при падении.
- Централизованное логирование (rsyslog/Graylog/ELK) и ротация логов.
9) Пошаговый план внедрения (быстрый)
1. Инвентаризация: перечень устройств, их ОС, доступных роутеров, какие порты нужны для приборов.
2. Выбор центра (VPS / облако) и регистрация домена (при необходимости).
3. Развернуть тестовый WireGuard + MQTT и защитить их (mTLS/ключи).
4. Настроить 1 пилотный объект: установить клиента на Mikrotik/Keenetic/шлюз, настроить firewall whitelist.
5. Проверить доступ из вашей сети к прибору через VPN, мониторинг и логирование.
6. Массовое развёртывание: скрипты конфигурации, резервные ключи, поддержка.
7. Процедуры: ротация ключей, удаление/добавление устройств, аварийный доступ.
10) Стоимость и ресурсы
- VPS + 1 IP — недорого (пару тысяч руб/мес) вместо 200k/год.
- Время инженера на внедрение: пилот 1–2 дня, развёртывание по 15 объектам — несколько дней/неделя в зависимости от удалённости и доступа.
- Аппаратные роутеры (если менять) — единоразово (Mikrotik ~5–15k руб в зависимости от модели).
11) Риски и замечания
- Мобильные операторы иногда дают CGNAT и меняют IP/политику — схема с исходящими туннелями решает это.
- Если юридические требования требуют хранения данных в РФ — выберите сервер в РФ.
- WireGuard простой и быстрый, но нет встроенного механизма «ревока ключа», нужно удалять peer на сервере; OpenVPN сложнее, но поддерживает CRL и mTLS, выбор зависит от ваших предпочтений.
Если хотите — могу:
- Прислать пример конфигураций WireGuard для сервера и клиента.
- Подготовить пример iptables / MikroTik-скрипта под ваш роутер.
- Составить конкретный план деплоя по объектам и оценку стоимости.
Что предпочитаете: WireGuard (более простой и быстрый) или OpenVPN/SSTP (уже знакомо вам)? Хотите пример конфигов?