MeshCentral — это удобный и мощный инструмент для удалённого управления компьютерами и серверами, позволяющий легко управлять устройствами прямо через веб-интерфейс. Однако для полноценного использования инструмента в локальной сети и вне её часто возникает необходимость обеспечить безопасный доступ к серверу из Интернета. Именно для этого мы будем использовать Nginx Proxy Manager в роли обратного прокси-сервера, который обеспечит удобное и безопасное подключение к нашему серверу MeshCentral из любого места. 

MeshCentral — это мощная платформа с открытым исходным кодом для удалённого управления компьютерами и устройствами через веб-интерфейс. Система позволяет администраторам контролировать и мониторить устройства из единой консоли, обеспечивая полный спектр функций для управления IT-инфраструктурой.

Nginx Proxy Manager — это веб-приложение с графическим интерфейсом для управления обратными прокси-серверами на базе Nginx

Содержание:
  1. Настройка Nginx Proxy Manager
  2. Настройка MeshCentral
Предварительные требования
1. Настройка Nginx Proxy Manager

Переходим в панель управления Nginx Proxy Manager:

1. Создаём новый прокси-хост для доменного имени, по которому будет доступен MeshCentral:

1.1. На вкладке "Details" указываем доменное имя, по которому будет доступен MeshCentral

1.2. Указываем протокол, ip адрес машины с MeshCentral и порт на котором он работает

1.3. На вкладке "Custom locations" указываем расположение "/", протокол, ip адрес машины с MeshCentral и порт на котором он работает и дополнительные настройки:

Код дополнительных настроек:


# Inform MeshCentral about the real host, port and protocol
proxy_set_header X-Forwarded-Host $host:$server_port;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
 # Дополнительные настройки
proxy_send_timeout 330s;
proxy_read_timeout 330s;
proxy_connect_timeout 330s;

1.4. На вкладке "SSL" задаем параметры генерации сертификата Let’s Encrypt:

1.5. Сохраняем изменения.

2. Настройка MeshCentral

2.1. Подключаемся к серверу MeshCentral и приводим конфигурационный файл meshcentral-config-schema.json к виду:


{
  // Схема JSON-файла конфигурации MeshCentral
  "$schema": "https://raw.githubusercontent.com/Ylianst/MeshCentral/master/meshcentral-config-schema.json",

  // Основные настройки сервера MeshCentral
  "settings": {
    // Имя домена сертификата SSL/TLS
    "cert": "доменное имя",

    // Основной порт HTTPS 
    "port": 4430,

    // Альтернативный порт для виртуального хоста (можете использовать 443, если ваш хост поддерживает виртуализацию)
    "aliasPort": 443,

    // Порт для перенаправления HTTP-запросов на HTTPS
    "redirPort": 800,

    // Внешний адрес для разгрузки TLS-загрузок (например, балансировщика нагрузки)
    "TLSOffload": "ip-адрес обратного прокси-сервера",

    // Отключаем автоматическое обновление серверной части (лучше отключить, если управляете обновлениями вручную)
    "SelfUpdate": false,

    // Запрещаем включение фреймов для предотвращения XSS-атак
    "AllowFraming": false,

    // Включаем поддержку WebRTC для улучшенной производительности удалённых подключений
    "WebRTC": true,

    // Настройки базы данных PostgreSQL
    "postgres": {
      // Хост базы данных (локально или удалённо)
      "host": "localhost",

      // Пользователь базы данных
      "user": "пользователь базы данных",

      // Порт базы данных (стандартный для PostgreSQL)
      "port": 5432,

      // Пароль пользователя базы данных
      "password": "пароль пользователя базы данных",

      // Название базы данных
      "database": "meshcentral_db"
    }
  },

  // Настройка областей видимости (доменов) сервиса
  "domains": {
    // Главная область («»), используемая по умолчанию
    "": {
      // Заголовок главной области
      "title": "Remote Control",

      // Дополнительный заголовок
      "title2": "дополнительный заголовок",

      // Полный адрес сайта с сертификатом
      "certUrl": "https://адрес сайта с сертификатом",

      // Информация в подвале страницы
      "footer": "Support"
    }
  },

  // Настройки SMTP для отправки писем (используются для регистрации, восстановления паролей и уведомлений)
  "smtp": {
    // Сервер SMTP
    "host": "сервер SMTP",

    // Порт SMTP (обычно 465 для защищённой доставки)
    "port": 465,

    // Адрес отправителя писем
    "from": "адрес отправителя писем",

    // Авторизация на SMTP-сервере
    "user": "адрес отправителя писем",

    // Пароль аккаунта для авторизации
    "pass": " пароль аккаунта для авторизации",

    // Включаем шифрование TLS для защиты соединений
    "tls": true
  }
}

2.2. Сохраняем изменения и перезапускаем MeshCentral.

Теперь MeshCentral будет доступен по нашему адресу на порту 443 через обратный прокси-сервер.