Как спроектировать сеть приборов с учётом использования белых списков и других подобных механизмов контроля доступа?

Есть 15 приборов в разных регионах РФ, данные собираются в рамках диспетчеризации инженерных систем. Ранее использовали AnyDesk/Radmin и прочее ПО (лицензии, примерно 200k руб/год). Иногда применяли аппаратные решения: ставили Mikrotik или Кинетик, поднимали SSTP для съёма данных. Связь в большинстве случаев — через мобильную сеть.
  • 28 июня 2026 г. 0:01
Ответы на вопрос 2
Коротко и по делу — сначала про принципы, потом — конкретная архитектура и пошаговый план внедрения с примерами правил. Предполагаю, что у вас 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 (уже знакомо вам)? Хотите пример конфигов?
rustdesk, полностью opensource инфраструктура, как серверная так и клиентская (запускаете внутри российского чебурнета, белые списки не понадобятся). <br/> p.s. по умолчанию там очень много телеметрии собирается их разработчиками, я сильно не изучал но думаю что если разобраться, можно все убрать <br/> <br/> p.p.s. настоятельно рекомендуется сделать правильно <br/> <blockquote>- 15 приборов с различных регионов РФ<br/>
- собираем данные в рамках диспетчеризации инженерных систем</blockquote> точно ли нужен доступ к рабочему столу что бы собирать данные с ваших приборов?
Похожие вопросы