Powered by ZeroTier. Практическое руководство по строительству виртуальных сетей. Часть 1
Продолжая рассказ о ZeroTier, от теории, изложенной в статье «Интеллектуальный Ethernet-коммутатор для планеты Земля», перехожу к практике, в которой:
- Создадим и настроим частный сетевой контроллер
- Создадим виртуальную сеть
- Настроим и подключим к ней узлы
- Проверим сетевую связность между ними
- Закроем доступ к GUI сетевого контроллера извне
Сетевой контроллер
Как уже было сказано ранее, для создания виртуальных сетей, управления ими, а также подключения узлов, пользователю необходим сетевой контроллер, графический интерфейс (GUI) для которого существует в двух ипостасях:
Варианты ZeroTier GUI
- Один от разработчика ZeroTier, доступного в виде публичного облачного решения, предоставляемого по модели SaaS, с четырьмя планами подписки, в том числе бесплатным, но ограниченным по количеству управляемых устройств и уровню поддержки
- Второй — от независимого разработчика, несколько упрощённого по функционалу, но доступного в качестве приватного open source решения, для использования on-premise или на облачных ресурсах.
В своей практике я пользовался обеими и в результате всё-таки остановился на второй. Причиной чему послужило предостережения разработчика.
«Сетевые контроллеры служат центрами сертификации для виртуальных сетей ZeroTier. Файлы содержащие секретные ключи контроллера должны тщательно охраняться и надежно архивироваться. Их компрометация позволяет неавторизованным злоумышленникам создавать мошеннические конфигурации сетей., а потеря — приводит к потере способности контролировать и управлять сетью, фактически делая её непригодной для использования»
А также, признаки собственной ИБ-параноидальности 🙂
- Даже если придёт Чебурнет — у меня должен оставаться доступ к своему сетевому контроллеру;
- Сетевым контроллером должен пользоваться только я. При необходимости, предоставляя доступ своим доверенным лицам;
- Должна быть возможность ограничения доступа к сетевому контроллеру извне.
- букв получится больше чем планировал
- об этом уже рассказано на GitHub разработчика GUI
- тема статьи о другом
Первоначальная настройка
После создания сервера из указанного шаблона, доступ к Web-GUI контроллера пользователь получает через браузер, обратившись по адресу httрs://:3443
По умолчанию сервер уже содержит предварительно созданный самоподписанный TLS/SSL сертификат. Для меня этого достаточно, так как я закрываю доступ к нему извне. Для тех же, кто желает использовать другие типы сертификатов, есть инструкция по установке на GitHab разработчика GUI.
При первом входе пользователя в систему Login с установленными по умолчанию логину и паролю — admin и password:
Она предлагает изменить пароль по умолчанию на пользовательский
Я поступаю чуть иначе — не меняю пароль у существующего пользователя, а создаю нового — Create User.
Задаю имя нового пользователя — Username:
Задаю новый пароль — Enter new password:
Подтверждаю новый пароль — Re-enter password:
Вводимые символы чувствительны к регистру — будьте внимательны!
Чек-бокс подтверждения смены пароля при следующем входе — Change password on next login: не отмечаю.
Для подтверждения введенных данных жму Set password:
Потом: перелогиниваюсь — Logout / Login, уже под учётными данными нового пользователя:
Далее перехожу во вкладку пользователи — Users и удаляю пользователя admin, кликнув на иконку корзины, которая находится слева от его имени.
В дальнейшем изменить пароль пользователя, можно кликнув либо на его имя, либо на set password.
Создание виртуальной сети
Для создания виртуальной сети пользователю необходимо перейти во вкладку Add network. Из пункта User это можно осуществить через страницу Home — главную страницу Web-GUI, на которой отображён ZeroTier-адрес данного сетевого контроллера и присутствует ссылка на страницу списка сетей, через него созданных.
На странице Add network пользователь назначает имя вновь создаваемой им сети.
При применении вводимых данных — Create Network пользователь попадает на страницу со списком сетей, на которой указаны:
Network name — имя сети в виде ссылки, при переходе по которой можно его изменить
Network ID — идентификатор сети
detail — ссылка на страницу с детальными параметрами сети
easy setup — ссылка на страницу для простой настройки
members — ссылка на страницу управления узлами
Для дальнейшей настройки переходим по ссылке easy setup. На открывшейся странице пользователь задаёт диапазон IPv4 — адресов для создаваемой сети. Сделать это можно автоматически, нажатием кнопки Generate network address или вручную, введя в соответствующее поле сетевую маску сети CIDR.
При подтверждении успешного ввода данных необходимо вернуться на страницу со списком сетей с помощью кнопки Back. На этом основную настройку сети можно считать завершённой.
Подключение узлов сети
-
Для начала на узел, который пользователь желает подключить к сети, необходимо установить сервис ZeroTier One.
Что такое ZeroTier One?
ZeroTier One — работающий на ноутбуках, настольных компьютерах, серверах, виртуальных машинах и контейнерах сервис, который обеспечивает подключения к виртуальной сети через виртуальный сетевой порт, подобно VPN-клиенту.
После установки и запуска службы к виртуальным сетям можно подключиться, используя их 16-значные адреса. Каждая сеть выглядит как виртуальный сетевой порт в системе, который ведет себя так же, как обычный порт Ethernet.
Ссылки на дистрибутивы, а также команды установки можно найти на странице производителя.
zerotier-cli status
200 info ebf416fac1 1.4.6 ONLINE
GUI:
zerotier-cli join
Windows: кликом правой кнопкой мыши на иконке ZeroTier One в системном трее и выбора пункта — Join Network.
MacOS: Запустить приложение ZeroTier One в bar menu, если ещё не запущен. Клик на значке ⏁ и выбор Join Network.
Android/iOS: + (изображение плюса) в приложении
На этой странице оставляем пока всё как есть и по ссылке IP assignment переходим на страницу назначения узлу IP-адреса:
После назначения адреса, по кнопке Back возвращаемся на страницу списка подключенных узлов и задаём название — Member name и отмечаем чек-бокс для авторизации узла в сети — Authorized. Кстати, этот чек-бокс очень удобная вещь для отключения/подключения от сети узла в дальнейшем.
zerotier-cli listnetworks
200 listnetworks
200 listnetworks 2da06088d9f863be My_1st_VLAN be:88:0c:cf:72:a1 OK PRIVATE ethernet_32774 10.10.10.2/24
GUI:
Статус сети должен быть OK
Проверка сетевой связности узлов
Я делаю это с помощью выполнения команды ping на подключённом к сети устройства, которым в данный момент управляю.
На скриншоте Web-GUI контроллера можно увидеть три подключенных к сети узла:
- ZTNCUI — 10.10.10.1 — мой сетевой контроллер с GUI — VDS в одном из ДЦ RuVDS. Для обычной работы нет необходимости добавлять его в сеть, но я сделал это, так как хочу закрыть доступ к веб-интерфейсу извне. Об этом чуть позже.
- MyComp — 10.10.10.2 — мой рабочий компьютер — физический ПК
- Backup — 10.10.10.3 — VDS в другом ДЦ.
ping 10.10.10.1
Pinging 10.10.10.1 with 32 bytes of data:
Reply from 10.10.10.1: bytes=32 time=14ms TTL=64
Reply from 10.10.10.1: bytes=32 time=4ms TTL=64
Reply from 10.10.10.1: bytes=32 time=7ms TTL=64
Reply from 10.10.10.1: bytes=32 time=2ms TTL=64
Ping statistics for 10.10.10.1:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 2ms, Maximum = 14ms, Average = 6ms
ping 10.10.10.3
Pinging 10.10.10.3 with 32 bytes of data:
Reply from 10.10.10.3: bytes=32 time=15ms TTL=64
Reply from 10.10.10.3: bytes=32 time=4ms TTL=64
Reply from 10.10.10.3: bytes=32 time=8ms TTL=64
Reply from 10.10.10.3: bytes=32 time=4ms TTL=64
Ping statistics for 10.10.10.3:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 4ms, Maximum = 15ms, Average = 7ms
Пользователь вправе использовать другие инструменты проверки доступности узлов в сети, как встроенные в ОС, так и такие как NMAP, Advanced IP Scanner и т.д.
Прячем доступ к GUI сетевого контроллера извне.
Вообще, уменьшить вероятность несанкционированного доступа к VDS, на котором находится мой сетевой контроллер, я могу средствами файрвола в личном кабинете RuVDS. Эта тема скорее для отдельной статьи. Поэтому, тут я покажу как обеспечить доступ к GUI контроллера только из сети, которую создал в этой статье.
Для этого необходимо подключившись по SSH к VDS на котором находится контроллер, открыть файл конфигурации с помощью команды:
nano /opt/key-networks/ztncui/.env
В открывшемся файле, после строки «HTTPS_PORT=3443», содержащей адрес порта, по которому открывается GUI, нужно добавить дополнительную строку с адресом, по которому GUI будет открываться — в моём случае это HTTPS_HOST=10.10.10.1.
Далее сохраню файл
и выполняю команду:
systemctl restart ztncui
И всё, теперь GUI моего сетевого контроллера доступен только для узлов сети 10.10.10.0/24.
Вместо заключения
На этом первую часть практического руководства по созданию виртуальных сетей на основе ZeroTier хочу закончить. Жду ваших комментариев.
А пока, чтобы скоротать время до момента публикации следующей части, в которой я расскажу, как объединить виртуальную сеть с физической, как организовать «road warrior» режим и кое-что ещё, предлагаю вам попробовать организовать собственную виртуальную сеть с помощью приватного сетевого контроллера с GUI на основе VDS из маркетплейса на сайте RUVDS. Тем более, что для всех новых клиентов действует бесплатный тестовый период — 3 дня!
P.S. Да! Чуть не забыл! Удалить узел из сети можно командой в CLI этого узла.
zerotier-cli leave
или командой Delete в GUI клиента на узле.
Все в порядке, но.
Этот текст мало кто будет читать и мы можем написать здесь все, что угодно, например.
Вы живете в неведении. Роботы уже вторглись в нашу жизнь и быстро захватывают мир, но мы встали на светлый путь и боремся за выживание человечества. А если серьезно, то.
В целях обеспечения безопасности сайта от кибератак нам необходимо убедиться, что вы человек. Если данная страница выводится вам часто, есть вероятность, что ваш компьютер заражен или вы используете для доступа IP адрес зараженных компьютеров.
Если это ваш частный компьютер и вы пытаетесь зайти на сайт, например, из дома — мы рекомендуем вам проверить ваш компьютер на наличие вирусов.
Если вы пытаетесь зайти на сайт, например, с работы или открытых сетей — вам необходимо обратиться с системному администратору и сообщить, что о возможном заражении компьютеров в вашей сети.
- © 2005-2023, «4PDA». 4PDA® — зарегистрированный товарный знак.
Настройка ZeroTier
ZeroTier One — это программное обеспечение с открытым исходным кодом, которое может устанавливать одноранговое VPN-соединение (P2PVPN) между различными устройствами под управлением различных операционных систем. Он также предоставляет возможности управления сетью, такие как маршрутизация и создание правил брандмауэра.
Введение
Эта статья содержит пошаговые инструкции по настройке и управлению сетевой сетью Zerotier с использованием устройств Teltonika-Networks и другого оборудования.
Настройка сети ZeroTier
Перейдите на https://my.zerotier.com/login и войдите в систему или создайте учетную запись, если вы еще этого не сделали.
Откройте вкладку «Сети» и нажмите кнопку «Create a Network».
Нажмите на вновь созданную сеть, чтобы начать настройку.
Перед настройкой чего-либо еще, вы можете настроить некоторые основные параметры.
1.Скопируйте идентификатор сети; он понадобится вам позже для настройки узла ZeroTier.
2.При желании, установите имя и описание для вашей сети для более удобного управления.
3.Выберите «Private» тип контроля доступа; если вы не хотите, чтобы узлы подключались свободно, без авторизации.
Прокрутите вниз, чтобы найти в разделе «IPv4 Auto-Assign». Выберите один из предоставленных частных диапазонов IP-адресов для вашей сети или нажмите «Дополнительно» и настройте диапазон вручную. В этом примере мы будем использовать выбор 10.147.17. *, Что означает, что наша сеть будет использовать диапазон 10.147.17.0/24.
Последний шаг завершает настройку сети ZeroTier. Однако вы можете изменить настройки в соответствии с вашими требованиями, но сеть будет работать без каких-либо дополнительных настроек.
Следующим шагом является настройка участников (или узлов) для нашей сети ZeroTier.
Конфигурация узла
Узлы или участники Zerotier — это клиенты, которые могут подключаться к сети ZeroTier. Этот раздел содержит информацию о том, как настроить узлы ZeroTier на разных типах компьютеров.
Обратите внимание, что если выбран «Частный» тип управления доступом, узлы будут подключаться к сети только после того, как они будут авторизованы вами из центральной панели ZeroTier Central. Чтобы узнать, как авторизовать узлы, прочитайте раздел «Авторизация узлов» этой статьи.
Устройство Teltonika Networks
Войдите в веб-интерфейс вашего устройства и перейдите на страницу «Сервисы» → «Диспетчер пакетов».
Найдите пакет ZeroTier в списке и установите его.
Перейдите на страницу Сервисы → VPN → ZeroTier и создайте новую конфигурацию ZeroTier.
1.Введите пользовательское имя для конфигурации.
2.Нажмите «Добавить».
3.Нажмите кнопку «Изменить» рядом с вновь созданной конфигурацией.
Завершите настройку.
1.Включите конфигурацию.
2.Вставьте идентификатор сети ZeroTier в поле «Сети».
3.Нажмите «Сохранить и применить».
Чтобы проверить состояние соединения, перейдите на страницу Services → CLI и войдите в систему.
Проверьте состояние соединения с помощью этой команды:
zerotier-cli info
Проверьте IP-адрес интерфейса ZeroTier с помощью этой команды (заменив на идентификатор сети ZeroTier):
zerotier-cli get ip
Устройство Windows
Загрузите и установите ZeroTier для Windows со страницы https://www.zerotier.com/download/.
Посмотрите на правую часть панели задач Windows и выполните следующие действия:
1.Нажмите «Показать скрытые значки».
2.Щелкните правой кнопкой мыши значок ZeroTier.
3.Нажмите «Присоединиться к сети . »
4.Вставьте идентификатор сети ZeroTier.
5.Нажмите «Присоединиться».
Чтобы проверить состояние подключения, нажмите «Показать скрытые значки» еще раз и нажмите «Показать сети . »
Android / устройство Apple iOS
Откройте «Google Play Store» или «App Store» в зависимости от вашего мобильного устройства.
Найдите приложение ZeroTier One и установите его.
Откройте приложение и настройте его следующим образом.
1.Нажмите на символ плюс.
2.Введите идентификатор сети ZeroTier.
3.Нажмите «Добавить сеть».
4.Включите соединение с этой сетью, переместив ползунок рядом с ней.
5.Во всплывающем окне «Запрос на подключение» нажмите «ОК», чтобы подтвердить подключение.
6..После того, как вы авторизовали нового участника (ваш телефон), индикация состояния в нижней части экрана должна измениться на «Онлайн».
Узел авторизации
Когда для Access Control установлено значение «Private», вам придется вручную утверждать новые узлы с панели мониторинга ZeroTier, прежде чем они смогут стать участниками сети.
Для этого просто прокрутите вниз до раздела «Участники» и:
Поставьте галочки рядом с узлами, которые вы хотите авторизовать.
Кроме того, вы можете добавить имена и описания для ваших узлов, чтобы было легче различать их.
Доступ к частной сети
Если вы настроили ZeroTier в соответствии с этими инструкциями, ваша топология может выглядеть примерно так:
Для этого примера маршрутизации предположим, что мы хотим предоставить доступ к сети 192.168.1.0/24 за устройством Teltonika другим вашим узлам ZeroTier. Есть несколько способов сделать это.
ZeroTier маршрутизация
Зайдите в ZeroTier Central и найдите поле «Управляемые маршруты» в разделе «Дополнительно».
Добавьте следующий маршрут.
1.Укажите 192.168.1.0/24 в качестве пункта назначения.
2.Укажите 10.147.17.23 (устройство Teltonika ZeroTier IP) в поле «через».
3.Нажмите «Отправить».
Подобная конфигурация сделает всю сеть 192.168.1.0/24 доступной для других узлов ZeroTier через IP-адрес ZeroTier устройства Teltonika. Чтобы вместо этого настроить маршрут к одному IP-адресу, вы можете указать адрес с помощью / 32 сетевой маски:
Перенаправление порта
Войдите в веб-интерфейс вашего устройства Teltonika и перейдите на страницу Сеть → Брандмауэр → Переадресация портов.
Найдите раздел «Добавить переадресацию нового порта» и добавьте следующее правило:
1.Введите произвольное имя для правила.
2.Выберите ноль в качестве внешней зоны.
3.Введите номер внешнего порта для прослушивания входящих соединений.
4.Выберите lan в качестве внутренней зоны.
5.Введите IP-адрес устройства в локальной сети.
6.Введите номер порта прослушивания устройства.
7.Нажмите «Добавить».
Поскольку эта конфигурация касается порта 80, HTTP-порт по умолчанию, его настройка таким образом исключит доступ WebUI к устройству Teltonika через сеть ZeroTier. Чтобы сохранить этот доступ, рассмотрите возможность использования другого внешнего порта:
Настройка локальной сети через ZeroTier
Если вам нужно поднять локальную сеть, чтобы поиграть по ней с другом или забрать какие-то большие файлы (например, фильмы), вы можете сделать это на минимальном тарифе RUVDS.
Понадобится буквально 5 минут на все, включая подключение. Мы будем использовать софт ZeroTier Network Controller, который есть у нас в маркетплейсе.
1. Сначала надо заказать сервер с Zero Tier. Выберите его в шаблонах при создании сервера.
2. Через пару минут сервер будет готов к использованию и у вас появится его IP-адрес.
3. Теперь нам надо попасть в админку созданного Zero Tier сервера. Введите в браузере httрs://:3443
4. При первом входе пользователя в систему Login с установленными по умолчанию логину и паролю — admin и password:
5. Для создания виртуальной сети пользователю необходимо перейти во вкладку Add network. Из пункта User это можно осуществить через страницу Home — главную страницу Web-GUI, на которой отображён ZeroTier-адрес данного сетевого контроллера и присутствует ссылка на страницу списка сетей, через него созданных.
6. На странице Add network пользователь назначьте имя вновь создаваемой сети.
7. Теперь надо перейти во вкладку Easy Setup и нажать на Generate network address
8. Теперь вам нужно скачать ZeroTier на устройство, с которого вы будете подключаться через VPN.
9. Устанавливаем ZeroTier.
10. Дальше нажимаем на значок в верхнем правом углу, нажимаем на Join Network.
11. Вводим Network ID созданной сети. Взять его можно в админке, во вкладке Networks.
12. Подключаемся, нажав на Join.
13. Теперь осталось добавить пользователя и устройство. Переходим на вкладку Networks, затем members.
14. Вводим ник для устройства и ставим галочку, нажимаем Resfresh.
15. Все готово! Теперь у вас есть собственная локальная сеть.