
Продължавайки разказа за ZeroTier, от теорията, изложена в статията «Интелигентен Ethernet комутатор за планетата Земя», преминавам към практиката, в която:
- Ще създадем и настроим частен мрежови контролер
- Ще създадем виртуална мрежа
- Ще настроим и свържем към нея възли
- Ще проверим мрежовата свързаност между тях
- Ще затворим достъпа до GUI на мрежовия контролер извън
Мрежови контролер
Както вече беше споменато, за създаване на виртуални мрежи, управление на тях и свързване на възли, потребителят се нуждае от мрежови контролер, графичен интерфейс (GUI), който съществува в две версии:
Опции на ZeroTier GUI
- Един от разработчика ZeroTier, достъпен като публично облачно решение, предоставяно по модела SaaS, с четири плана за абонамент, включително безплатен, но ограничен в количество на управляемите устройства и нивото на поддръжка
- Вторият — от независим разработчик, малко опростен по функционалност, но достъпен като частно open source решение, за използване on-premise или на облачни ресурси.
В своята практика съм ползвал и двете и в крайна сметка избрах втората. Причината за това бяха предупрежденията на разработчика.
«Мрежовите контролери служат като центрове за сертификация за виртуалните мрежи ZeroTier. Файловете, съдържащи секретните ключове на контролера, трябва да се съхраняват внимателно и надеждно да се архивират. Компрометирането им позволява на неупълномощени злонамерени лица да създават измамни конфигурации на мрежи, а загубата им води до загуба на способността за контрол и управление на мрежата, фактически я прави неизползваема»
И също, признаци на собствена ИБ-параноидност 🙂
- Дори и да дойде Чебурнет — трябва да имам достъп до своя мрежови контролер;
- Мрежовият контролер трябва да се ползва само от мен. При необходимост, предоставяйки достъп на доверени лица;
- Трябва да има възможност за ограничаване на достъпа до мрежовия контролер извън.
Не виждам смисъл да се спирам отделно на това как да разверна мрежов контролер и GUI за него на физически или виртуални ресурси on-premise. И за това има 3 причини:
- буквите ще се окажат повече отколкото планирах
- за това вече разказано на GitHab разработчика GUI
- темата на статията е различна
Следователно, избирайки пътя на по-малкото съпротивление, ще използвам в това изложение мрежов контролер с GUI, базиран на VDS, създадено от шаблон, любезно разработен от моите колеги от ProHoster.
Първоначална настройка
След създаването сървър от посочения шаблон, достъпът до Web-GUI на контролера потребителят получава чрез браузъра, като отиде на адрес httрs://:3443

По подразбиране сървър вече съдържа предварително създаден самоподписан TLS/SSL сертификат. За мен това е достатъчно, тъй като затварям достъпа до него отвън. За тези, които искат да използват други типове сертификати, има инструкция за инсталиране на GitHab разработчика GUI.
При първото влизане на потребителя в системата Вход с зададени по подразбиране логин и парола — админ и парола:

Тя предлага да промени паролата по подразбиране на потребителска

Постъпвам малко по-различно — не променям паролата на съществуващия потребител, а създавам нов — Създай потребител.
Задавам име на новия потребител — Потребителско име:
Задавам нова парола — Въведете новата парола:
Потвърдете новата парола — Въведете отново паролата:
Въведените символи са чувствителни към регистъра — бъдете внимателни!
Чек-бокс за потвърждение на смяната на паролата при следващо влизане — Промяна на паролата при следващо влизане: не отбелязвам.
За потвърждение на въведените данни натискам Задайте парола:

После: преизлизам — Изход / Вход, вече с данните на новия потребител:

След това преминавам в таба потребители — Потребители и изтривам потребителя админ, като кликна на иконата на кошницата, която се намира вляво от името му.

По-късно промените паролата на потребителя, може да кликнете или на неговото име, или на задайте парола.
Създаване на виртуална мрежа
За да създадете виртуална мрежа, потребителят трябва да премине в таба Добави мрежа. От точка User това може да се извърши през страницата Начало — главната страница на Web-GUI, на която е показан ZeroTier адресът на този мрежов контролер и има връзка към страницата със списъка на мрежи, създадени чрез него.

На страницата Добави мрежа потребителят задава името на новосъздадената мрежа.

При прилагане на въведените данни — Създай мрежа потребителят попада на страницата със списък на мрежите, в която са посочени:
Име на мрежата — името на мрежата като връзка, при преминаване по която може да го промени
Идентификатор на мрежата — идентификатор на мрежата
детайл — връзка към страницата с детайлни параметри на мрежата
лесна настройка — линк към страницата за лесна настройка
членове — линк към страницата за управление на възлите

За допълнителни настройки преминете по линка лесна настройка. На отворената страница потребителят задава диапазон от IPv4 адреси за създаваната мрежа. Това може да се направи автоматично, с натискане на бутона Generate network address или ръчно, като въведе в съответното поле мрежовата маска на мрежата CIDR.

При потвърждаване на успешното въвеждане на данни е необходимо да се върнете на страницата със списъка на мрежите чрез бутона Back. На това основната настройка на мрежата може да се счита за завършена.
Свързване на възли в мрежата
- На първо място, на възела, който потребителят желае да свърже с мрежата, трябва да се инсталира услугата ZeroTier One.Какво е ZeroTier One?ZeroTier One — услуга, работеща на лаптопи, настолни компютри, сървъри, виртуални машини и контейнери, която осигурява свързаност с виртуална мрежа чрез виртуален мрежов порт, подобно на VPN клиент. След инсталиране и стартиране на услугата, може да се свържете с виртуалните мрежи, използвайки техните 16-значни адреси. Всяка мрежа изглежда като виртуален мрежов порт в системата, който се държи така, както обикновен Ethernet порт.
Линкове към дистрибуции, както и команди за инсталиране могат да бъдат намерени на страницата на производителя. Управлявайте инсталираната услуга чрез терминал на командния ред (CLI) с права на администратор/рут. В Windows/MacOS също чрез графичен интерфейс. В Android/iOS само чрез GUI. - Проверка на успешността на инсталацията на услугата:CLI:
zerotier-cli statusРезултат:
200 info ebf416fac1 1.4.6 ONLINE
GUI:Самият факт, че приложението работи и наличието на ред с Node ID с адреса на възела.
- Свързване на възела към мрежата:CLI:
zerotier-cli joinРезултат:
200 join OKGUI:
Windows: с десен клик върху иконата ZeroTier One в системния трей и избор на опцията — Join Network.

MacOS: Стартирайте приложението ZeroTier One в менюто на лентата, ако още не е стартирано. Кликнете на иконата ⏁ и изберете Join Network.Android/iOS: + (снимка на плюса) в приложението

В появилото се поле въведете зададения в GUI адрес на мрежовия контролер Идентификатор на мрежата, и натиснете Join / Add Network. - Назначаване на IP-адрес на възела
Сега се връщаме към мрежовия контролер и на страницата със списъка на мрежите, преминете по линка членове. Ако на екрана сте видели картинка, подобна на тази — значи вашият мрежов контролер е получил искане за потвърждение на свързването с мрежата от свързвания възел.
На тази страница оставяме всичко както е и по линка Присвояване на IP преминаваме на страницата за присвояване на узлу IP-адрес:
След присвояването на адреса, с бутона Назад се връщаме на страницата със списъка на свързаните узли и задаваме име — Име на члена и отбелязваме чек-бокса за авторизация на узла в мрежата — Авторизиран. Между другото, този чек-бокс е много удобен за изключване/включване на узла в мрежата впоследствие.
Запазваме промените с бутона Обнови. - Проверка на статусa на свързването на узла с мрежата:
За проверка на статусa на свързването на самия узел изпълняваме:
CLI:zerotier-cli listnetworksРезултат:
200 списък мрежи
200 списък мрежи 2da06088d9f863be My_1st_VLAN be:88:0c:cf:72:a1 OK PRIVATE ethernet_32774 10.10.10.2/24
GUI:Статусът на мрежата трябва да е OK
За свързване на останалите узли повтаряме операциите 1-5 за всеки от тях.
Проверка на мрежовата свързаност на узлите
Правя това чрез изпълнение на командата ping на устройството, свързано в мрежата, над което в момента управлявам.

На екрана на Web-GUI на контролера можете да видите три свързани към мрежата узла:
- ZTNCUI — 10.10.10.1 — моят мрежов контролер с GUI — VDS в един от дата центровете на ProHoster. За нормална работа няма нужда да го добавям в мрежата, но го направих, тъй като искам да затворя достъпа до уеб интерфейса от външната страна. За това малко по-късно.
- MyComp — 10.10.10.2 — моят работен компютър — физически ПК
- Backup — 10.10.10.3 — VDS в друг дата център.
Затова от моя работен компютър проверявам достъпността на другите узли с командите:
ping 10.10.10.1Пингувам 10.10.10.1 с 32 байта данни:
Отговор от 10.10.10.1: байтове=32 време=14мс TTL=64
Отговор от 10.10.10.1: байтове=32 време=4мс TTL=64
Отговор от 10.10.10.1: байтове=32 време=7мс TTL=64
Отговор от 10.10.10.1: байтове=32 време=2мс TTL=64
Статистика за Ping за 10.10.10.1:
Пакети: Изпратени = 4, Получени = 4, Загубени = 0 (0% загуба),
Приблизителни времена за кръгова пътуване в милисекунди:
Минимално = 2ms, Максимално = 14ms, Средно = 6ms
ping 10.10.10.3Пингваме 10.10.10.3 с 32 байта данни:
Отговор от 10.10.10.3: байтове=32 време=15ms TTL=64
Отговор от 10.10.10.3: байтове=32 време=4ms TTL=64
Отговор от 10.10.10.3: байтове=32 време=8ms TTL=64
Отговор от 10.10.10.3: байтове=32 време=4ms TTL=64
Статистика за Ping за 10.10.10.3:
Пакети: Изпратени = 4, Получени = 4, Загубени = 0 (0% загуба),
Приблизителни времена за кръгова пътуване в милисекунди:
Минимално = 4ms, Максимално = 15ms, Средно = 7ms
Потребителят има право да използва други инструменти за проверка достъпността на узлите в мрежата, както вградени в ОС, така и такива като NMAP, Advanced IP Scanner и т.н.
Скриваме достъпа до GUI на мрежовия контролер от външната страна.
Всъщност, да намаля вероятността от неразрешен достъп до VDS, на който се намира моят мрежов контролер, мога чрез фаервола в личния кабинет на ProHoster. Тази тема е по-скоро за отделна статия. Затова, тук ще покажа как да осигурим достъп до GUI на контролера само от мрежата, която създадох в тази статия.
За целта е необходимо, след като се свържа по SSH с VDS, на който се намира контролера, да отворя конфигурационния файл с командата:
nano /opt/key-networks/ztncui/.envВ отворения файл, след реда «HTTPS_PORT=3443», който съдържа адреса на порта, чрез който се отваря GUI, трябва да добавите допълнителен ред с адреса, по който GUI ще се отваря — в моя случай това е HTTPS_HOST=10.10.10.1.
След това ще запазя файла
Ctrl+C
Y
Enter
и изпълнявам командата:
systemctl restart ztncuiИ всичко, сега GUI на моя мрежов контролер е достъпен само за възли от мрежата 10.10.10.0.24.
Вместо заключение
С това искам да завърша първата част на практическото ръководство за изграждане на виртуални мрежи на основата на ZeroTier. Очаквам вашите коментари.
А междувременно, за да оползотворя времето до публикуването на следващата част, в която ще разкажа как да свържете виртуалната мрежа с физическата, как да организирате режим «road warrior» и още нещо, ви предлагам да опитате да организирате собствена виртуална мрежа с помощта на частен мрежов контролер с GUI на основата на VDS от маркетплейса на сайта ProHoster. Освен това, за всички нови клиенти важи безплатен тестов период — 3 дни!
P.S. Да! Почти забравих! Изтриването на възел от мрежата може да стане с команда в CLI на този възел.
zerotier-cli leave200 leave OK
или с командата Delete в GUI клиента на възела.
-> Въведение. Теоретична част. Интелигентен Ethernet комутатор за планетата Земя
-> Практическо ръководство за изграждане на виртуални мрежи. Част 1
-> Практическо ръководство за изграждане на виртуални мрежи. Част 2
Източник: habr.com





