NetBird на VPS: своя mesh VPN-сеть

Сети и VPN
NetBird на VPS: своя mesh VPN-сеть

NetBird позволяет объединить ноутбуки, серверы и другие устройства в приватную сеть поверх WireGuard, но не заставляет вручную обмениваться ключами и поддерживать конфигурацию каждого пира. На собственном VPS можно разместить управляющий сервер и веб-панель NetBird, создавать группы устройств, выдавать доступ только к нужным портам и подключать новые узлы по одноразовым или ограниченным setup keys. Ниже разберём актуальную combined-установку NetBird на Ubuntu с Docker Compose, проверим соединение между двумя узлами и обязательно настроим резервное копирование.

Оглавление

Когда нужен NetBird, а когда достаточно WireGuard

WireGuard — это VPN-протокол и набор инструментов для создания зашифрованных туннелей. Для двух-трёх устройств ручная схема предельно понятна: сгенерировать пары ключей, добавить секции Peer, назначить внутренние адреса и открыть UDP-порт. Такой вариант подробно разобран в инструкции «Личный VPN на WireGuard».

Сложность появляется при росте сети. Если в ней десять ноутбуков, несколько VPS, домашний NAS и тестовый стенд, ручные конфиги быстро превращаются в отдельную административную задачу. При добавлении или отзыве участника приходится менять настройки, следить за маршрутами и отдельно объяснять, кто к какому серверу может подключаться.

NetBird решает другой поисковый и практический интент. Он использует WireGuard для передачи трафика, но добавляет управляющий слой:

  • регистрацию и инвентаризацию устройств;
  • автоматическое распространение сетевой конфигурации;
  • группы пиров и пользователей;
  • политики доступа по направлению, протоколам и портам;
  • setup keys для подключения серверов без интерактивного входа;
  • маршруты к внешним подсетям;
  • веб-панель и журнал событий;
  • прямые peer-to-peer-соединения там, где это позволяет сеть, и relay-механизм для сложных NAT-сценариев.

NetBird уместен, если нужен безопасный административный доступ к нескольким серверам, единая приватная сеть для небольшой команды или сегментация инфраструктуры без публикации внутренних сервисов в интернет. Если задача — только направить весь трафик одного телефона через один VPS, ручной WireGuard проще и требует меньше компонентов.

Как устроен self-hosted NetBird

В актуальной self-hosted-схеме основные серверные функции объединены в контейнер netbird-server. Он включает management, signal, relay и встроенный STUN. Отдельно работает dashboard, а HTTPS и маршрутизацию запросов в типовой установке обеспечивает Traefik.

Компоненты выполняют разные задачи:

  1. Management хранит сведения об аккаунтах, пирах, группах, политиках, маршрутах и setup keys.
  2. Signal помогает пирам обменяться информацией, необходимой для установления прямого соединения.
  3. STUN помогает определить внешние сетевые адреса и поведение NAT. Встроенный STUN использует UDP-порт 3478.
  4. Relay передаёт трафик, если прямое соединение между пирами установить невозможно.
  5. Dashboard предоставляет интерфейс управления.
  6. Встроенный IdP на базе Dex позволяет начать с локальных пользователей; внешний OIDC-провайдер можно подключить позже.

Управляющий сервер участвует в регистрации и распространении сетевой карты, однако нормальный трафик между устройствами по возможности идёт напрямую. Это не означает, что VPS никогда не передаёт пользовательские данные: при невозможности прямого соединения может использоваться relay. Поэтому серверу всё равно нужны стабильная сеть, наблюдение за диском и регулярные обновления.

По состоянию на 31 июля 2026 года последним стабильным релизом основного репозитория является NetBird v0.76.0. Этот релиз закрывает локальное повышение привилегий в клиентском демоне: версии 0.5.0–0.75.1 позволяли локальному непривилегированному пользователю опасно менять настройки встроенного SSH. Поэтому существующие клиенты следует обновить как минимум до 0.76.0, а команды изменения SSH-настроек после обновления выполнять через sudo или из повышенной консоли Windows. Перед установкой и особенно перед обновлением всегда читайте актуальные release notes.

Требования к VPS, домену и портам

Официальный quickstart NetBird указывает минимальные требования: Linux VM с 1 CPU и 2 ГБ RAM, публичный домен и доступность следующих портов:

НазначениеПротоколПорт
Получение сертификата и редирект на HTTPSTCP80
Панель, API, gRPC, relay через HTTPSTCP443
Встроенный STUNUDP3478

Также нужны Docker с Compose plugin версии 2 или новее, curl и jq. Домен, например netbird.example.com, должен иметь A-запись, указывающую на публичный IPv4 сервера.

Для этой схемы нужен обычный VPS с выделенным IPv4. NAT VPS Cheap-Host имеет общий IPv4 и выделенный диапазон нестандартных портов. Это удобно для ботов, тестовых окружений и сервисов, которые допускают адрес с портом, но официальный self-hosted quickstart NetBird ожидает стандартные TCP 80/443 и UDP 3478. Попытка адаптировать всю схему под NAT потребует дополнительного внешнего прокси и отдельного решения для UDP, усложнит диагностику и будет уже другой архитектурой. Для первой и предсказуемой установки такой путь не рекомендуется.

Перед заказом сервера полезно пройти чек-лист выбора VPS и убедиться, что домен можно направить на выделенный адрес.

Подготовка Ubuntu и DNS

В примерах используется Ubuntu 24.04 LTS. Подключитесь к серверу по SSH, создайте обычного пользователя с sudo и установите обновления. Базовые действия после выдачи сервера собраны в статье «Первые 10 шагов после покупки VPS».

Проверьте версию системы:

cat /etc/os-release
uname -r

Обновите индексы пакетов и установленные пакеты:

sudo apt update
sudo apt upgrade

Команда может обновить ядро или системные библиотеки. Если система сообщает о необходимости перезагрузки, выполните её до развёртывания контейнеров:

test -f /var/run/reboot-required && cat /var/run/reboot-required

Создайте у DNS-провайдера A-запись:

netbird.example.com.  A  203.0.113.10

Замените тестовые значения собственным доменом и IPv4. Проверьте резолвинг с локального компьютера и с VPS:

getent ahostsv4 netbird.example.com

В ответе должен присутствовать адрес VPS. Не запускайте получение TLS-сертификата, пока публичный DNS указывает на другой сервер: это приводит к ошибкам проверки домена и может исчерпать лимиты повторных запросов центра сертификации.

Настройте файрвол, не закрывая текущую SSH-сессию. Сначала узнайте фактический SSH-порт. Если используется стандартный 22-й порт:

sudo ufw allow 22/tcp
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw allow 3478/udp
sudo ufw enable
sudo ufw status numbered

Если SSH перенесён, разрешите реальный порт до включения UFW. В противном случае можно потерять доступ к серверу. Для дополнительной проверки откройте вторую SSH-сессию и только после успешного входа закрывайте первую.

Установка Docker Engine

Если Docker уже установлен из официального репозитория, проверьте версии:

sudo docker version
sudo docker compose version

Для новой production-установки Docker рекомендует использовать официальный APT-репозиторий, а convenience script оставлять для тестовых и разработческих сред. Сначала удалите конфликтующие пакеты, если они присутствуют:

sudo apt remove docker.io docker-compose docker-compose-v2 docker-doc \
  docker-buildx podman-docker containerd runc

Удаление пакетов не должно автоматически удалять /var/lib/docker, но на уже работающем сервере сначала проверьте, нет ли важных контейнеров и томов. Не выполняйте очистку каталогов Docker вслепую.

Добавьте официальный ключ и репозиторий:

sudo apt update
sudo apt install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg \
  -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc

sudo tee /etc/apt/sources.list.d/docker.sources > /dev/null <<EOF
Types: deb
URIs: https://download.docker.com/linux/ubuntu
Suites: $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}")
Components: stable
Architectures: $(dpkg --print-architecture)
Signed-By: /etc/apt/keyrings/docker.asc
EOF

sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io \
  docker-buildx-plugin docker-compose-plugin

Проверьте службу и тестовый контейнер:

sudo systemctl status docker --no-pager
sudo docker run --rm hello-world
sudo docker compose version

Не добавляйте произвольных пользователей в группу docker только ради удобства. Доступ к Docker daemon фактически позволяет получить привилегии уровня root. В этой инструкции административные команды запускаются через sudo.

Есть ещё один сетевой нюанс: опубликованные Docker-порты могут обходить часть правил UFW. Не считайте ufw status единственным доказательством закрытого порта. Публикуйте только нужные порты, проверяйте фактическое прослушивание через ss, а расширенную фильтрацию контейнерного трафика настраивайте через цепочку DOCKER-USER по официальной документации Docker.

Установка self-hosted NetBird

Создайте отдельный каталог и перейдите в него:

sudo install -d -o "$USER" -g "$USER" /opt/netbird
cd /opt/netbird

Официальный quickstart предлагает передать загруженный скрипт сразу в bash. Для сервера безопаснее сначала сохранить файл и посмотреть его содержимое:

curl -fL \
  https://github.com/netbirdio/netbird/releases/latest/download/getting-started.sh \
  -o getting-started.sh
less getting-started.sh

Убедитесь, что URL ведёт в официальный репозиторий netbirdio/netbird, а скрипт не был заменён HTML-страницей ошибки:

file getting-started.sh
head -n 5 getting-started.sh

После проверки запустите установщик:

bash getting-started.sh

Скрипт запросит домен и предложит reverse proxy. Для отдельного чистого VPS проще выбрать вариант 0 — встроенный Traefik с автоматическим TLS. Если на сервере уже работает Nginx, Caddy или другой proxy на 80/443, не запускайте второй сервис на тех же портах. Используйте соответствующий вариант установщика и внимательно примените сгенерированный шаблон.

Установщик создаёт как минимум:

  • docker-compose.yml — сервисы, сети, тома и публикацию портов;
  • config.yaml — unified-конфигурацию NetBird server;
  • dashboard.env — endpoints и настройки аутентификации панели;
  • proxy.env — если включён дополнительный NetBird Proxy.

Эти файлы содержат настройки и секреты. Ограничьте доступ к каталогу:

sudo chown -R "$USER":"$USER" /opt/netbird
chmod 700 /opt/netbird
chmod 600 /opt/netbird/config.yaml /opt/netbird/dashboard.env

Не публикуйте конфиги в Git и не отправляйте их в тикеты без удаления секретов. Особое значение имеет server.store.encryptionKey: он шифрует setup keys, API-токены и другие чувствительные данные в базе. Потеря ключа делает зашифрованные значения невосстановимыми.

Проверьте созданную конфигурацию до дальнейших изменений:

cd /opt/netbird
sudo docker compose config --quiet
sudo docker compose ps

Посмотрите, какие порты слушает хост:

sudo ss -lntup | grep -E ':(80|443|3478)\b'

Ожидаются TCP 80/443 и UDP 3478. Не публикуйте внутренние порты dashboard или management наружу без необходимости.

Первый вход и защита панели

Откройте в браузере:

https://netbird.example.com/setup

Сразу создайте первого владельца аккаунта. Страница /setup доступна только до появления первого пользователя, после чего запросы перенаправляются на обычный вход. Не оставляйте свежую установку без владельца дольше необходимого.

Используйте уникальный длинный пароль, сохранённый в менеджере паролей. После входа проверьте домен сертификата и отсутствие предупреждений TLS. Затем изучите разделы Peers, Access Control, Setup Keys и Activity.

Встроенное локальное управление пользователями удобно для начала. Для команды с централизованными учётными записями можно подключить внешний OIDC-провайдер. Это отдельная задача: неправильные issuer URL, redirect URI или client secret способны заблокировать вход. Сохраняйте рабочую административную сессию и резервную копию перед изменением аутентификации.

Подключение первого устройства

Клиенты есть для Linux, Windows, macOS, Android и iOS. Точный способ установки лучше брать из раздела Add peer собственной панели: он соответствует management URL вашего экземпляра.

На Linux после установки клиента можно пройти браузерную аутентификацию:

sudo netbird up --management-url https://netbird.example.com

Для headless-сервера удобнее setup key. В панели создайте ключ с понятным именем, ограниченным числом использований и сроком действия. По возможности сразу назначьте ему целевую группу. Затем на подключаемом сервере выполните:

sudo netbird up \
  --management-url https://netbird.example.com \
  --setup-key 'ВРЕМЕННЫЙ_SETUP_KEY'

Не сохраняйте действующий ключ в истории shell, CI-логе или публичном compose-файле. Для автоматизации передавайте секрет через защищённое хранилище, а после регистрации отзывайте одноразовый ключ или сокращайте его права.

Проверьте статус клиента:

sudo netbird status

На Linux адрес интерфейса можно увидеть так:

ip addr show wt0

Повторите подключение на втором устройстве. В панели оба узла должны появиться в списке Peers. Сам факт их появления ещё не доказывает, что политика разрешает нужный трафик, поэтому следующий этап — управление доступом.

Группы и политики минимальных прав

Новый аккаунт NetBird получает группу All и разрешающую политику Default. Она формирует полный mesh: все пиры могут обращаться ко всем по любому протоколу. Для домашней лаборатории это может быть удобно, но для рабочей инфраструктуры слишком широко.

Не удаляйте Default policy до создания и проверки замены, иначе можно временно потерять сетевой доступ. Практичный порядок:

  1. Создайте группы admins, production и staging.
  2. Добавьте администраторские ноутбуки в admins.
  3. Добавьте рабочие серверы в production, тестовые — в staging.
  4. Создайте однонаправленную политику от admins к production.
  5. Разрешите только нужные протоколы и порты, например TCP 22 для SSH.
  6. Проверьте доступ с администраторского устройства.
  7. Создайте остальные необходимые правила.
  8. Только после тестирования отключите или удалите Default policy.

NetBird использует разрешающие политики. Если подходящего разрешения нет, трафик между соответствующими группами не проходит. Порядка и приоритета DENY-правил здесь нет, поэтому слишком широкая ALLOW-политика способна отменить смысл более узкой сегментации.

Не открывайте базы данных «для всей mesh-сети» только потому, что адреса приватные. Для PostgreSQL, Redis или административной панели задавайте конкретную группу-источник, группу-назначение и порт. Приватный адрес снижает поверхность атаки из интернета, но не заменяет аутентификацию самого приложения.

Проверка результата и диагностика

Проверять нужно не только красивый статус в dashboard, но и каждый слой системы.

Состояние контейнеров

cd /opt/netbird
sudo docker compose ps
sudo docker compose logs --tail=200 netbird-server
sudo docker compose logs --tail=200 dashboard

У актуальной combined-установки основной сервис называется netbird-server. В старых руководствах встречаются отдельные контейнеры management, signal, relay и coturn; не копируйте команды для legacy-схемы без сверки собственного docker-compose.yml.

HTTPS и API

curl -fsS https://netbird.example.com/api/health

Если команда возвращает ошибку сертификата, проверьте A-запись, время на сервере, доступность TCP 80/443 и логи Traefik. Не обходите TLS-проверку флагом -k как постоянное решение.

Клиент и маршрут

На каждом пире:

sudo netbird status
ip addr show wt0

Затем проверьте адрес второго пира:

ping -c 4 100.64.0.2

Подставьте адрес из dashboard. Если ICMP запрещён вашей политикой, проверяйте именно разрешённый сервис, например SSH:

nc -vz 100.64.0.2 22

Успешное подключение доказывает сразу три вещи: пиры получили сетевую карту, политика допускает направление и целевой сервис слушает порт. После этого убедитесь, что заведомо запрещённый порт недоступен.

Публичные порты

С внешнего доверенного компьютера проверьте TCP 80/443. UDP нельзя надёжно подтвердить обычным TCP-сканированием; ориентируйтесь на ss, логи и фактическое установление соединений через сложный NAT. Не запускайте сканирование чужих адресов без разрешения.

Резервное копирование и восстановление

NetBird хранит в volume netbird_data аккаунты, пиры, группы, политики, маршруты, setup keys и состояние встроенного IdP. Одного docker-compose.yml для восстановления недостаточно.

Официальная процедура для combined-установки сначала копирует конфигурацию, затем останавливает netbird-server на время согласованного копирования базы:

cd /opt/netbird
install -d -m 700 backup
cp docker-compose.yml dashboard.env config.yaml backup/

sudo docker compose stop netbird-server
sudo docker compose cp -a netbird-server:/var/lib/netbird/ backup/
sudo docker compose start netbird-server

Если включён NetBird Proxy, сохраните также proxy.env. При встроенном Traefik учитывайте volume с сертификатами. Для полноценной стратегии копию нужно вывести за пределы самого VPS: авария диска или ошибочное удаление сервера уничтожит и оригинал, и локальный backup/.

Проверьте, что файлы действительно появились:

find backup -maxdepth 2 -type f -printf '%P\n'

Не выводите содержимое секретных файлов в общий терминальный лог. Архив с конфигом и базой необходимо шифровать перед передачей во внешнее хранилище. Восстановление сначала отрепетируйте на отдельном тестовом VPS: непроверенная копия — это только надежда на бэкап.

У остановки netbird-server есть краткое окно недоступности управляющих функций. Выполняйте процедуру в подходящее время и не обещайте «бэкап без простоя», если не развёрнута отдельная отказоустойчивая архитектура с внешней базой.

Безопасное обновление NetBird

Не используйте Watchtower или безусловный docker compose pull по расписанию для критической сетевой инфраструктуры. Автообновление может принести несовместимую конфигурацию в момент, когда нет администратора.

Перед обновлением:

  1. прочитайте release notes основного репозитория и dashboard;
  2. проверьте breaking changes и миграции;
  3. сделайте резервную копию;
  4. сохраните текущие теги образов и вывод docker compose ps;
  5. убедитесь, что есть альтернативный SSH-доступ по публичному IP на случай проблем overlay-сети.

Для текущей combined-схемы официальная последовательность выглядит так:

cd /opt/netbird
sudo docker compose pull netbird-server dashboard
sudo docker compose up -d --force-recreate netbird-server dashboard

Если включён proxy:

sudo docker compose pull proxy
sudo docker compose up -d --force-recreate netbird-server dashboard proxy

После обновления повторите проверки:

sudo docker compose ps
sudo docker compose logs --since=10m netbird-server
curl -fsS https://netbird.example.com/api/health
sudo netbird status

Использование тегов latest упрощает quickstart, но ухудшает воспроизводимость. Для контролируемой эксплуатации можно закрепить проверенные версии образов в compose-файле. Тогда обновление становится явным изменением конфигурации, а откат — возвратом предыдущих тегов вместе с совместимой резервной копией. Перед таким изменением сверяйте рекомендации конкретного релиза.

Какой тариф Cheap-Host выбрать

На дату подготовки материала официальный self-hosted quickstart требует минимум 1 CPU и 2 ГБ RAM. Однако сервер также запускает Docker, dashboard, management, relay, STUN, встроенный IdP и reverse proxy. Кроме памяти важны запас диска под образы, журналы и бэкапы, а также выделенный публичный IPv4 со стандартными портами.

Для описанной установки логично рассматривать обычный VPS Cheap-Host:

  • Start — 6 vCPU, 8 ГБ RAM, 96 ГБ NVMe, выделенный IPv4, 100 Mbit/s, Москва; на момент проверки цена составляет 450 ₽/мес.;
  • Pro — 12 vCPU, 16 ГБ RAM и 128 ГБ NVMe; имеет смысл, если на том же сервере будут дополнительные сервисы или ожидается больше relay-трафика;
  • Ultra — 20 vCPU, 32 ГБ RAM и 192 ГБ NVMe; выбирать только после оценки реальной нагрузки, а не «на всякий случай».

Характеристики перечислены по текущему основному каталогу Cheap-Host. Перед публикацией и заказом их нужно перепроверить: цены и состав тарифов могут измениться.

NAT-линейка начинается с меньшей цены, но использует общий IPv4 и 999 выделенных TCP/UDP-портов плюс SSH. Это не совпадает с требованиями стандартного quickstart к TCP 80/443 и UDP 3478. Поэтому для self-hosted control plane NetBird в этой инструкции NAT VPS не предлагается. Сравнение сетевых моделей доступно на странице NAT VPS.

Размер VPS нельзя выбирать только по числу устройств. Реальная нагрузка зависит от доли прямых соединений, relay-трафика, активности панели, объёма событий и размещённых рядом контейнеров. После запуска наблюдайте за RAM, диском, логами и сетью, а решение о расширении принимайте по фактическим метрикам.

Ограничения решения

Self-hosted NetBird даёт контроль над управляющей инфраструктурой, но добавляет ответственность:

  • панель, TLS, база и резервные копии теперь обслуживаются вами;
  • ошибка DNS или reverse proxy может нарушить регистрацию и управление пирами;
  • потеря encryptionKey и базы приводит к потере важных секретов и конфигурации;
  • доступность relay зависит от вашего VPS и сети;
  • обновления требуют чтения release notes и проверки миграций;
  • один VPS остаётся единой точкой отказа управляющего слоя;
  • SQLite по умолчанию подходит для небольших установок, но не предназначен для нескольких одновременно пишущих management-инстансов;
  • mesh VPN не исправляет уязвимости приложений и не отменяет SSH-ключи, MFA, обновления ОС и принцип минимальных прав.

Если простой облачный control plane допустим по требованиям проекта, управляемая версия NetBird снизит эксплуатационную нагрузку. Self-hosting оправдан, когда важны собственный домен, контроль над конфигурацией и данными управления либо необходимость встроить сеть в свою инфраструктуру.

FAQ

NetBird — это замена WireGuard?

Нет. NetBird использует WireGuard как транспорт и добавляет управление пирами, идентификацию пользователей, маршруты, группы и политики. Для пары устройств ручной WireGuard может быть проще; для растущей сети NetBird уменьшает объём ручной конфигурации.

Можно ли установить self-hosted NetBird на NAT VPS?

Теоретически нестандартную архитектуру можно построить с дополнительными внешними компонентами. Но официальный quickstart требует доступные TCP 80/443 и UDP 3478, а NAT VPS Cheap-Host выдаёт общий IPv4 и диапазон портов. Для инструкции без лишних точек отказа нужен обычный VPS с выделенным IPv4.

Обязательно ли использовать внешний сервис авторизации?

Нет. Актуальная self-hosted-установка поддерживает локальных пользователей через встроенный IdP на базе Dex. Внешний OIDC-провайдер можно подключить, если нужна централизованная идентификация или корпоративный SSO.

Можно ли закрыть SSH-порт сервера после подключения к mesh-сети?

Можно ограничить публичный SSH после того, как приватный доступ проверен, но нельзя оставлять единственный непроверенный путь администрирования. Сначала протестируйте NetBird с другого устройства, настройте политики и предусмотрите аварийную консоль провайдера. Ошибка control plane не должна навсегда отрезать вас от VPS.

Почему пиры видны, но не соединяются?

Проверьте netbird status, группы и access policies, доступность UDP 3478, DNS и логи netbird-server. После удаления Default policy трафик разрешают только созданные ALLOW-правила. Для диагностики тестируйте конкретный разрешённый протокол и порт.

Что обязательно включить в бэкап?

Минимум docker-compose.yml, config.yaml, dashboard.env и /var/lib/netbird из контейнера netbird-server. При включённых дополнительных компонентах сохраните их env-файлы и данные. Копию храните за пределами VPS и защищайте шифрованием.

Нужно ли автоматически обновлять контейнеры?

Для управляющей сетевой инфраструктуры безопаснее контролируемое обновление: release notes, бэкап, явное получение образов, пересоздание контейнеров и проверка. Полностью автоматическое обновление без теста повышает риск неожиданной несовместимости.

Итоги

Self-hosted NetBird подходит, когда одной ручной конфигурации WireGuard уже недостаточно: устройств становится больше, появляются разные роли, серверные группы и необходимость разрешать доступ только к конкретным сервисам. На отдельном Ubuntu VPS установка сводится к подготовке домена и портов, установке Docker, запуску официального генератора Compose-конфигурации и созданию первого владельца.

Главная работа начинается после запуска: заменить разрешающую Default policy, ограничить setup keys, сохранить encryption key и базу, проверить запрещённые направления и выстроить контролируемое обновление. Именно эти шаги превращают удобную mesh-сеть в управляемый инфраструктурный сервис.

Для стандартной схемы нужен выделенный IPv4 и публичные TCP 80/443 с UDP 3478, поэтому выбирайте обычный VPS Cheap-Host, а не NAT-линейку. Перед заказом сверьте актуальные тарифы, направьте домен на сервер и оставьте резервный способ SSH-доступа. После установки подключите два тестовых пира, проверьте разрешённый и запрещённый трафик — и только затем переносите в сеть рабочие серверы.

Источники

Читайте также