1. Блог
  2. Мануали

Створюємо VPN-мережу із ZeroTier: покрокове налаштування

Створюємо VPN-мережу із ZeroTier: покрокове налаштування

У цій інструкції ми створимо віртуальну мережу ZeroTier, підключимо до неї сервер, комп’ютер і телефон, а потім відкриємо через один із вузлів доступ до цілої локальної мережі. Як влаштована технологія й чим вона відрізняється від звичайного VPN, розказано в статті Що таке ZeroTier.

Крок 1. Створіть мережу

  1. Зареєструйтеся в панелі ZeroTier Central на сайті zerotier.com.
  2. Натисніть Create A Network. З’явиться мережа з 16-значним ідентифікатором — Network ID.
  3. Відкрийте мережу й задайте зрозумілу назву.
  4. Переконайтеся, що в розділі Access Control обрано режим Private: нові пристрої зможуть обмінюватися даними лише після вашого підтвердження.
  5. У розділі IPv4 Auto-Assign оберіть діапазон адрес, який не перетинається з вашими локальними мережами, наприклад 10.147.17.0/24.

Крок 2. Встановіть клієнт

Linux

curl -s https://install.zerotier.com | sudo bash

Скрипт підключить репозиторій ZeroTier, встановить пакет і запустить службу. Перевірте стан:

sudo zerotier-cli info

У відповіді буде адреса вузла та статус ONLINE.

Windows і macOS

Завантажте інсталятор із сайту zerotier.com. Після встановлення значок ZeroTier з’явиться в області сповіщень (Windows) або в рядку меню (macOS).

Android та iOS

Встановіть застосунок ZeroTier One з магазину застосунків.

Крок 3. Приєднайтеся до мережі

Linux:

sudo zerotier-cli join 1234567890abcdef

Windows і macOS: натисніть на значок ZeroTier, оберіть Join New Network і введіть Network ID.

Телефон: натисніть + у застосунку, введіть Network ID та ввімкніть перемикач мережі.

Крок 4. Авторизуйте пристрої

У панелі керування відкрийте мережу й прокрутіть до розділу Members. Кожен пристрій, що приєднався, з’явиться в списку з адресою вузла.

  1. Позначте прапорець Auth навпроти пристрою.
  2. Задайте ім’я в полі Name, щоб не плутати пристрої.
  3. За потреби призначте постійну адресу в полі Managed IPs.

За кілька секунд вузол отримає адресу. Перевірте в Linux:

sudo zerotier-cli listnetworks
ip -br a | grep zt

Статус мережі має бути OK, а на інтерфейсі zt... — з’явитися адреса з обраного діапазону.

Крок 5. Перевірте зв’язок

З одного пристрою виконайте ping адреси іншого в мережі ZeroTier:

ping 10.147.17.25

Подивіться, як встановлено з’єднання:

sudo zerotier-cli peers

У стовпці з типом з’єднання значення DIRECT означає прямий зв’язок, RELAY — передавання через проміжний сервер. Через ретрансляцію все працює, але повільніше.

Тепер пристрої доступні один одному за адресами ZeroTier: можна підключатися по SSH, відкривати вебінтерфейси й мережеві папки, як в одній локальній мережі.

Крок 6. Доступ до локальної мережі через шлюз

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

Припустімо, локальна мережа — 192.168.1.0/24, шлюзом буде комп’ютер із Linux, його адреса в ZeroTier — 10.147.17.10.

На шлюзі

Увімкніть пересилання пакетів:

echo 'net.ipv4.ip_forward=1' | sudo tee /etc/sysctl.d/99-zerotier.conf
sudo sysctl --system

Дізнайтеся імена інтерфейсів:

ip -br a

Додайте правила NAT, підставивши свої імена інтерфейсів — eth0 для локальної мережі та ztabcdefgh для ZeroTier:

sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
sudo iptables -A FORWARD -i ztabcdefgh -o eth0 -j ACCEPT
sudo iptables -A FORWARD -i eth0 -o ztabcdefgh -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT

Збережіть правила:

sudo apt install iptables-persistent
sudo netfilter-persistent save

У панелі керування

У розділі Managed Routes додайте маршрут:

  • Destination: 192.168.1.0/24
  • Via: 10.147.17.10

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

Крок 7. Обмежте доступ правилами

Типово всі учасники мережі бачать один одного. У розділі Flow Rules можна обмежити трафік. Приклад: дозволити лише SSH, HTTPS і ping, решту заборонити:

drop
  not ethertype ipv4
  and not ethertype arp
  and not ethertype ipv6
;

accept ipprotocol icmp;
accept dport 22 and ipprotocol tcp;
accept dport 443 and ipprotocol tcp;
accept chr tcp_ack;
drop;

Правило accept chr tcp_ack пропускає пакети-відповіді вже встановлених з’єднань. Після зміни натисніть Save Changes — правила застосуються до всіх вузлів за кілька секунд.

Корисні команди

sudo zerotier-cli info                    # адреса та стан вузла
sudo zerotier-cli listnetworks            # мережі й отримані адреси
sudo zerotier-cli peers                   # з'єднання з іншими вузлами
sudo zerotier-cli leave 1234567890abcdef  # покинути мережу
sudo systemctl restart zerotier-one       # перезапустити службу

Якщо щось не працює

  • Статус мережі ACCESS_DENIED. Пристрій не авторизовано — позначте прапорець Auth у панелі.
  • Статус REQUESTING_CONFIGURATION не змінюється. Вузол не може зв’язатися з контролером: перевірте, що вихідний UDP-порт 9993 не заблоковано.
  • З’єднання лише через RELAY. Відкрийте вхідний UDP-порт 9993 у файрволі принаймні на одному з двох пристроїв — на сервері це sudo ufw allow 9993/udp.
  • Немає доступу до локальної мережі за шлюзом. Перевірте пересилання пакетів і правила NAT на шлюзі, а також що маршрут у панелі вказує на правильну адресу.
  • Ping проходить, а служба недоступна. Заважає файрвол на цільовому пристрої або правила потоку.

Видалення пристрою з мережі

Щоб закрити доступ втраченому або непотрібному пристрою, зніміть прапорець Auth у списку учасників і видаліть запис. На самому пристрої виконайте zerotier-cli leave з ідентифікатором мережі.

#zerotier#vpn#мережа#віддалений доступ#linux

Ця стаття іншими мовами:EnglishРусский