Powered by ZeroTier. Практичний посібник з будівництва віртуальних мереж. Частина 1

Powered by ZeroTier. Практичний посібник з будівництва віртуальних мереж. Частина 1
Продовжуючи розповідь про ZeroTier, від теорії, викладеної у статтіІнтелектуальний Ethernet комутатор для планети Земля», переходжу до практики, в якій:

  • Створимо та налаштуємо приватний мережевий контролер
  • Створимо віртуальну мережу
  • Налаштуємо та підключимо до неї вузли
  • Перевіримо мережеву зв'язок між ними
  • Закриємо доступ до GUI мережевого контролера ззовні

Сетевой контролер

Як вже було сказано раніше, для створення віртуальних мереж, керування ними, а також підключення вузлів, користувачеві необхідний мережевий контролер, графічний інтерфейс (GUI) для якого існує у двох іпостасях:

Варіанти ZeroTier GUI

  • Один від розробника ZeroTier, доступного у вигляді публічного хмарного рішення, що надається за моделлю SaaS, з чотирма планами передплати, у тому числі безкоштовним, але обмеженим за кількістю керованих пристроїв та рівнем підтримки
  • Другий — від незалежного розробника, дещо спрощеного за функціоналом, але доступного як приватного open source рішення для використання on-premise або на хмарних ресурсах.

У своїй практиці я користувався обома і в результаті все-таки зупинився на другому. Причиною цього стало застереження розробника.

«Мережеві контролери служать центрами сертифікації для віртуальних мереж ZeroTier. Файли, що містять секретні ключі контролера, повинні ретельно охоронятися і надійно архівуватися. Їх компрометація дозволяє неавторизованим зловмисникам створювати шахрайські зміни мереж., а втрата - призводить до втрати здатності контролювати і керувати мережею, фактично роблячи її непридатною для використання»

Посилання на документацію

А також ознаки власної ІБ-параноїдальності 🙂 

  • Навіть якщо прийде Чебурнет — маю залишатися доступ до свого мережевого контролера;
  • Мережевим контролером повинен скористатися тільки я. За потреби, надаючи доступ своїм довіреним особам;
  • Має бути можливість обмеження доступу до мережного контролера ззовні.

Окремо зупинятися на тому, як розгорнути мережевий контролер та GUI для нього на on-premise фізичних чи віртуальних ресурсах, у цій статті я не бачу особливого сенсу. І тому також є 3 причини: 

  • літер вийде більше ніж планував
  • про це вже розказано на GitHab розробника GUI
  • тема статті про інше

Тому, вибравши шлях меншого опору, використовуватиму в даній розповіді мережевий контролер з GUI на основі VDS, створеного із шаблону, люб'язно розробленого моїми колегами з RuVDS

Початкове налаштування

Після створення сервера із вказаного шаблону, доступ до Web-GUI контролера користувач отримує через браузер, звернувшись за адресою http:// :3443

Powered by ZeroTier. Практичний посібник з будівництва віртуальних мереж. Частина 1
За промовчанням сервер вже містить попередньо створений сертифікат TLS/SSL. Для мене цього достатньо, тому що я закриваю доступ до нього ззовні. Для тих, хто бажає використовувати інші типи сертифікатів, є Інструкція із встановлення на GitHab розробника GUI.

При першому вході користувача до системи Увійти із встановленими за умовчанням логіну та паролю адмін и пароль:

Powered by ZeroTier. Практичний посібник з будівництва віртуальних мереж. Частина 1
Вона пропонує змінити пароль за замовчуванням на користувальницький

Powered by ZeroTier. Практичний посібник з будівництва віртуальних мереж. Частина 1
Я роблю трохи інакше — не змінюю пароль у існуючого користувача, а створюю нового. Створити користувача.

Задаю ім'я нового користувача ім'я користувача:
Задаю новий пароль - Введіть новий пароль
Підтверджую новий пароль. Повторно введіть пароль:

Символи, що вводяться, чутливі до регістру — будьте уважні!

Чек-бокс підтвердження зміни пароля при наступному вході Change password on next login: не наголошую. 

Для підтвердження введених даних тисню Встановити пароль:

Powered by ZeroTier. Практичний посібник з будівництва віртуальних мереж. Частина 1
Потім: перелогінююсь Вийти / Увійти, вже під обліковими даними нового користувача:

Powered by ZeroTier. Практичний посібник з будівництва віртуальних мереж. Частина 1
Далі переходжу у вкладку користувачі користувачів та видаляю користувача адмін, клацнувши на значок кошика, що знаходиться ліворуч від його імені.

Powered by ZeroTier. Практичний посібник з будівництва віртуальних мереж. Частина 1
Надалі змінити пароль користувача можна клікнувши або на його ім'я, або на set password.

Створення віртуальної мережі

Для створення віртуальної мережі необхідно перейти у вкладку Додати мережу. З пункту користувач це можна здійснити через сторінку Головна — головну сторінку Web-GUI, на якій відображено ZeroTier-адресу даного мережевого контролера і є посилання на сторінку списку мереж, через нього створених.

Powered by ZeroTier. Практичний посібник з будівництва віртуальних мереж. Частина 1
На сторінці Додати мережу користувач призначає ім'я новоствореної ним мережі.

Powered by ZeroTier. Практичний посібник з будівництва віртуальних мереж. Частина 1
При застосуванні даних, що вводяться - Створити мережу Користувач потрапляє на сторінку зі списком мереж, на якій вказано: 

Назва мережі — ім'я мережі у вигляді посилання, при переході через яке можна його змінити 
Ідентифікатор мережі - Ідентифікатор мережі
деталь — Посилання на сторінку з детальними параметрами мережі
легке налаштування — Посилання на сторінку для простого налаштування
членів - Посилання на сторінку управління вузлами

Powered by ZeroTier. Практичний посібник з будівництва віртуальних мереж. Частина 1
Для подальшого налаштування переходимо за посиланням легке налаштування. На сторінці, що відкриється, користувач задає діапазон IPv4 - адрес для створюваної мережі. Зробити це можна автоматично, натиснувши кнопку Generate network address або вручну, ввівши у відповідне поле мережну маску мережі CIDR.

Powered by ZeroTier. Практичний посібник з будівництва віртуальних мереж. Частина 1
При підтвердженні успішного введення даних необхідно повернутись на сторінку зі списком мереж за допомогою кнопки Back. На цьому основне налаштування мережі можна вважати завершеним.

Підключення вузлів мережі

  1. Спочатку на вузол, який користувач бажає підключити до мережі, необхідно встановити сервіс ZeroTier One.

    Що таке ZeroTier One?Нульовий рівень один — сервіс, що працює на ноутбуках, настільних комп'ютерах, серверах, віртуальних машинах і контейнерах, який забезпечує підключення до віртуальної мережі через віртуальний мережевий порт, подібно до VPN-клієнта. 

    Після встановлення та запуску служби до віртуальних мереж можна підключитися за допомогою їх 16-значних адрес. Кожна мережа виглядає як віртуальний мережевий порт у системі, який поводиться так само, як звичайний порт Ethernet.
    Посилання на дистрибутиви, а також команди установки можна знайти на сторінці виробника.

    Керувати встановленим сервісом можна через термінал командного рядка (CLI) з правами адміну/руту. У Windows/MacOS ще за допомогою графічного інтерфейсу. В Android/iOS тільки за допомогою GUI.

  2. Перевірка успішності встановлення сервісу:

    CLI:

    zerotier-cli status

    Результат: 

    200 info ebf416fac1 1.4.6 ONLINE
    Графічний інтерфейс користувача:

    Сам факт його роботи програми та наявність у ньому рядка з Node ID з адресою вузла.

  3. Підключення вузла до мережі:

    CLI:

    zerotier-cli join <Network ID>

    Результат: 

    200 join OK

    Графічний інтерфейс користувача:

    Windows: правою кнопкою миші на значок Нульовий рівень один у системному треї та вибору пункту Приєднатися до мережі.

    Powered by ZeroTier. Практичний посібник з будівництва віртуальних мереж. Частина 1
    MacOS: Запустити програму Нульовий рівень один bar menu, якщо ще не запущений. Клік на значку ⏁ та вибір Приєднатися до мережі.

    Android/iOS: + (зображення плюса) у додатку

    Powered by ZeroTier. Практичний посібник з будівництва віртуальних мереж. Частина 1
    У полі, що з'явилося, введіть вказаний в GUI мережевого контролера Ідентифікатор мережі, і тиснете Join/Add Network.

  4. Призначення вузлу IP-адреси
    Тепер повертаємося до мережного контролера і на сторінці зі списком мереж перейти за посиланням членів. Якщо на екрані ви побачили картинку аналогічною до цієї — значить ваш мережевий контролер отримав запит на підтвердження підключення до мережі від вузла, що підключається.

    Powered by ZeroTier. Практичний посібник з будівництва віртуальних мереж. Частина 1
    На цій сторінці залишаємо поки що все як є і за посиланням Призначення IP переходимо на сторінку призначення вузлу IP-адреси:

    Powered by ZeroTier. Практичний посібник з будівництва віртуальних мереж. Частина 1
    Після призначення адреси за кнопкою назад повертаємось на сторінку списку підключених вузлів і задаємо назву — Member name і відзначаємо чек-бокс для авторизації вузла в мережі Уповноважений. До речі, цей чек-бокс дуже зручна для відключення/підключення від мережі вузла надалі.

    Powered by ZeroTier. Практичний посібник з будівництва віртуальних мереж. Частина 1
    Зберігаємо зміни за допомогою кнопки оновлення.

  5. Перевірка статусу підключення вузла до мережі:
    Для перевірки статусу підключення на вузлі виконуємо:
    CLI:

    zerotier-cli listnetworks

    Результат:

    200 listnetworks <nwid> <name> <mac> <status> <type> <dev> <ZT assigned ips>
    200 listnetworks 2da06088d9f863be My_1st_VLAN be:88:0c:cf:72:a1 OK PRIVATE ethernet_32774 10.10.10.2/24

    Графічний інтерфейс користувача:

    Статус мережі має бути OK

    Для підключення решти вузлів повторюємо операції 1-5 для кожного з них.

Перевірка мережної зв'язності вузлів

Я роблю це за допомогою виконання команди ping на підключеному до мережі пристрої, яким зараз керую.

Powered by ZeroTier. Практичний посібник з будівництва віртуальних мереж. Частина 1
На скріншоті Web-GUI контролера можна побачити три підключені до мережі вузли:

  1. ZTNCUI - 10.10.10.1 - Мій мережевий контролер з GUI - VDS в одному з ДЦ RuVDS. Для звичайної роботи немає необхідності додавати його до мережі, але я зробив це, тому що хочу закрити доступ до веб-інтерфейсу ззовні. Про це трохи згодом. 
  2. MyComp - 10.10.10.2 - Мій робочий комп'ютер - фізичний ПК
  3. 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. 

Далі збережу файл

Сtrl+C
Y
Enter 

та виконую команду:

systemctl restart ztncui

І все тепер GUI мого мережевого контролера доступний тільки для вузлів мережі 10.10.10.0.24.

Замість висновку 

На цьому першу частину практичного посібника зі створення віртуальних мереж на основі ZeroTier хочу закінчити. Чекаю на ваші коментарі. 

А поки що, щоб скоротити час до моменту публікації наступної частини, в якій я розповім, як поєднати віртуальну мережу з фізичною, як організувати «road warrior» режим і дещо ще, пропоную вам спробувати організувати власну віртуальну мережу за допомогою приватного мережевого контролера GUI на основі VDS з маркетплейсу на сайті RUVDS. Тим більше, що для всіх нових клієнтів діє безкоштовний тестовий період – 3 дні!

PS Так! Мало не забув! Видалити вузол з мережі можна командою CLI цього вузла.

zerotier-cli leave <Network ID>

200 leave OK

або командою Delete у GUI клієнта на вузлі.

-> Вступ. Теоретична частина. Інтелектуальний Ethernet комутатор для планети Земля
-> Практичний посібник з будівництва віртуальних мереж. Частина 1
-> Практичний посібник з будівництва віртуальних мереж. Частина 2

Powered by ZeroTier. Практичний посібник з будівництва віртуальних мереж. Частина 1

Джерело: habr.com

Додати коментар або відгук