Установка контроллера ZeroTier на свой сервер с помощью ZTNET
Selfhosted размещение ZeroTier контроллера со встроенной панелью администратора
В комментариях к заметке в Telegram-канале про построение защищенной виртуальной сети подсказали одно из opensource решений для размещения контроллера ZeroTier на собственном сервере с полноценной админкой - ZTNET. Проект развивается уже несколько лет и успел обзавестись расширенной функциональностью по сравнению с базовыми функциями контроллера. Возникновение подобных наработок было лишь вопросом времени, поскольку разработчики ZeroTier не выкладывают в открытый доступ свою панель администратора, но предоставляют исходный код самого контроллера.
🔥 Особенности
Помимо основного назначения - создание и управление виртуальными сетями, система предоставляет целый ряд дополнительных возможностей:
❎ Наличие docker и standalone (под Debian / Ubuntu и FreeBSD) вариантов установки.
❎ Гибкая настройка многопользовательского доступа (роли, группы, организации).
❎ Двухфакторная аутентификация из коробки.
❎ Поддержка OAuth2.
❎ Наличие REST API для интеграции.
❎ Отправка уведомлений по списку событий через Webhook.
❎ Подключение к SMTP серверу для почтовых уведомлений.
❎ Создание организаций со встроенным пользовательским чатом.
❌ BETA версия (на момент публикации v0.7.3).
⚒️ Установка с помощью docker
🔹 Забираем compose файл из репозитория
1
wget -O docker-compose.yml https://raw.githubusercontent.com/sinamics/ztnet/main/docker-compose.yml
✖️ Запускаю на виртуалке ради теста, поэтому домен и https не прикручиваю. Остается лишь сменить адрес в переменной окружения NEXTAUTH_URL сервиса ztnet на ip виртуалки. В документации подсказывают как это сделать с помощью sed
1
sed -i "s|http://localhost:3000|http://$(hostname -I | cut -d' ' -f1):3000|" docker-compose.yml
🔹 Стартуем
1
docker compose up -d
Через 3000 порт доступна веб панель системы.
❗️ Первый зарегистрированный пользователь получает права администратора.
Отмечу аккуратный интерфейс с набором полезных функций по сравнению с некогда популярным решением ztncui. Визуальная составляющая представлена наглядными скриншотами в репозитории, поэтому дублировать не стану.
🔖 Standalone варианты установки описаны в документации - Debian / Ubuntu и FreeBSD.
🌐 Создание собственной планеты
Также в комментариях был затронут вопрос касательно публичного сервера-координатора или “планеты” от разработчиков ZeroTier, который используется zt контроллером по умолчанию. ZTNET позволяет создать собственную планету и перенаправить задачи организации сетевого взаимодействия на нее.
-
Открываем раздел
Контроллер ZT-СОЗДАТЬ PLANET.Endpointsзаполнится адресом хоста, на котором запущена система. Также можно указать адреса дополнительных резервных серверов, на которых развернутzt контроллер. Важный момент -endpointsдолжны быть глобальными, т.е. доступными всем клиентам сети. -
Чтобы контроллер подхватил изменения, необходимо перезапустить сервис
zerotier, например, такdocker restart zerotier. -
Чтобы клиенты смогли использовать созданную планету, скачиваем архив с параметрами -
СКАЧАТЬ КОНФИГ, внутри которого найдем файлplanet, который и нужно передать всем клиентам сети для применения. -
Файл
planetподменяется на стороне клиентского приложенияZeroTier. Инструкция по замене под разные системы здесь.
