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

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

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

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

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

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

Впоследствие паролата на потребителя може да бъде променена, като кликнете или върху неговото име, или върху задайте парола.
Създаване на виртуална мрежа
За да създаде виртуална мрежа, потребителят трябва да премине в раздела Добави мрежа. От пункта User това може да се извърши чрез страницата Home — основната страница 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 <Network ID>Резултат:
200 join OKGUI:
API, предоставяно от операционната система (full-screen-api.macos-native-full-screen), което позволи унифицирането на вида и поведението на елементите на екрана. с десен клик на иконата ZeroTier One в системната лента и избор на опцията — Join Network.

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

В появилото се поле въведете посоченото в GUI на мрежовия контролер Идентификатор на мрежата, и натиснете Join / Add Network. - Назначаване на IP адрес на възела
Сега се връщаме към мрежовия контролер и на страницата със списъка на мрежите преминаваме по връзката членове. Ако на екрана видите изображение, подобно на това — значи вашият мрежови контролер е получил заявка за потвърждение за свързване към мрежата от свързания възел.
На тази страница оставете всичко както е и по връзката IP assignment преминаваме към страницата за конфигуриране на IP адреса на узла:
След назначаването на адреса, чрез бутона Назад се връщаме на страницата със списъка на свързаните узли и задаваме име — Име на члена и отбелязваме квадратчето за удостоверяване на узла в мрежата — Удостоверен. Между другото, това квадратче е много удобно за изключване/включване на узла в мрежата в бъдеще.
Запазваме промените с бутона Освежи. - Проверка на статуса на свързване на узла към мрежата:
За проверка на статуса на свързването, на самия узел изпълняваме:
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:Статусът на мрежата трябва да е ОК
За свързване на останалите узли повтаряме стъпките 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Изпращам ping до 10.10.10.1 с 32 байта данни:
Отговор от 10.10.10.1: байтове=32 време=14ms TTL=64
Отговор от 10.10.10.1: байтове=32 време=4ms TTL=64
Отговор от 10.10.10.1: байтове=32 време=7ms TTL=64
Отговор от 10.10.10.1: байтове=32 време=2ms TTL=64
Статистика за ping за 10.10.10.1:
Пакети: Изпратени = 4, Получени = 4, Загубени = 0 (0% загуба),
Приблизителни времена за обратен ход в милисекунди:
Минимално = 2ms, Максимално = 14ms, Средно = 6ms
ping 10.10.10.3Изпращане на ping до 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.
След това ще запазя файла
Сtrl+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





