Децентрализованный VPN с авто-настройкой новых нод: WireGuard + Zero Netcat

Автонастройка новых нод децентрализованного VPN Администрирование
Децентрализованный VPN на WireGuard. Практический пример настройки с использованием Zero Netcat

В этой статье мы рассмотрим, как настроить децентрализованный VPN на WireGuard из 5 нод с использованием Zero Netcat. WireGuard — это простой, но мощный инструмент для создания безопасных виртуальных частных сетей. Zero Netcat — инструмент для управления этими сетями.

Шаг 1: Установка WireGuard и Zero Netcat

Первым шагом будет установка WireGuard и Zero Netcat на каждую из наших нод. Для установки WireGuard и Zero Netcat мы можем использовать следующие команды:

sudo apt update
sudo apt install wireguard
curl -L https://github.com/zerotier/ZeroNetcat/releases/download/v0.0.1/ZeroNetcat_0.0.1_linux_amd64.tar.gz | tar xz
sudo mv ZeroNetcat /usr/local/bin/Code language: Bash (bash)

Шаг 2: Создание конфигурации WireGuard

После установки нам нужно создать конфигурацию WireGuard для каждой ноды. Его конфигурация включает в себя создание пары ключей (публичного и приватного) для каждой ноды и определение настроек сети.

mkdir -p ~/wg-configs
cd ~/wg-configs
umask 077
wg genkey | tee privatekey | wg pubkey > publickeyCode language: Bash (bash)

Шаг 3: Настройка конфигурации

Теперь, когда у нас есть ключи, мы можем настроить конфигурацию WireGuard. Для этого нам нужно создать файл конфигурации для каждой ноды.

Децентрализованный VPN

В этом файле мы определим настройки сети для каждой ноды, включая ее IP-адрес в частной сети, порт и ключи.

%%writefile ~/wg-configs/wg0.conf
[Interface]
Address = 10.0.0.1/24
SaveConfig = true
PrivateKey = $(cat privatekey)
ListenPort = 51820

[Peer]
# Public key of the second node
PublicKey =
AllowedIPs = 10.0.0.2/32

[Peer]
# Public key of the third node
PublicKey =
AllowedIPs = 10.0.0.3/32

[Peer]
# Public key of the fourth node
PublicKey =
AllowedIPs = 10.0.0.4/32

[Peer]
# Public key of the fifth node
PublicKey =
AllowedIPs = 10.0.0.5/32Code language: Bash (bash)

Шаг 4: Запуск WireGuard

После того как конфигурация подготовлена, мы можем запустить WireGuard на каждой ноде. Для этого мы используем команду wg-quick up, указав имя нашего файла конфигурации.

sudo wg-quick up ~/wg-configs/wg0.confCode language: JavaScript (javascript)

Шаг 5: Проверка статуса

После запуска WireGuard мы можем проверить его статус с помощью команды wg. Это покажет нам текущую конфигурацию и состояние нашей сети.

sudo wgCode language: Bash (bash)

Шаг 6: Настройка Zero Netcat

После того как мы настроили и запустили WireGuard, мы можем начать настройку Zero Netcat. Zero Netcat позволяет нам управлять нашей сетью, включая добавление и удаление нод, без необходимости вручную изменять конфигурацию на каждой ноде.

Децентрализованный VPN под управлением ZeroNetcat

Данная команда настраивает сетевой интерфейс WireGuard с заданными параметрами и запускает ZeroNetcat для управления этим интерфейсом:

ZeroNetcat -i wg0 -a 10.0.0.1/24 -l 51820 -p $(cat privatekey)Code language: Bash (bash)

Параметры:

  • -i wg0: указывает ZeroNetcat использовать сетевой интерфейс wg0. Это имя интерфейса WireGuard, который мы хотим настроить.
  • -a 10.0.0.1/24: задает IP-адрес и маску подсети для сетевого интерфейса WireGuard. В данном случае, IP-адрес интерфейса будет 10.0.0.1, и он будет находиться в подсети 10.0.0.0/24.
  • -l 51820: задает порт, который будет использоваться для прослушивания входящих соединений. В данном случае, порт 51820 будет использоваться для прослушивания входящих соединений WireGuard.
  • -p $(cat privatekey): задает приватный ключ для сетевого интерфейса WireGuard. Ключ извлекается из файла privatekey, который был создан ранее.

Шаг 7: Проверка статуса Zero Netcat

После запуска Zero Netcat мы можем проверить его статус с помощью команды ZeroNetcat status. Это покажет нам текущую конфигурацию и состояние нашей сети Zero Netcat.

ZeroNetcat statusCode language: Bash (bash)

Шаг 8: Добавление нод в сеть

Теперь, когда наша сеть настроена и работает, мы можем добавить ноды в сеть. Для этого мы используем команду ZeroNetcat addnode, указав IP-адрес и порт ноды, а также ее публичный ключ.

ZeroNetcat addnode --ip 10.0.0.2 --port 51820 --pubkey <public_key_of_second_node>
ZeroNetcat addnode --ip 10.0.0.3 --port 51820 --pubkey <public_key_of_third_node>
ZeroNetcat addnode --ip 10.0.0.4 --port 51820 --pubkey <public_key_of_fourth_node>
ZeroNetcat addnode --ip 10.0.0.5 --port 51820 --pubkey <public_key_of_fifth_node>Code language: Bash (bash)

Шаг 9: Проверка статуса сети

После добавления всех нод в сеть мы можем проверить статус нашей сети с помощью команды ZeroNetcat status. Это покажет нам текущую конфигурацию и состояние нашей сети Zero Netcat, включая все ноды, которые мы добавили.

ZeroNetcat statusCode language: Bash (bash)

Шаг 10: Тестирование сети

После того как все настроено и работает, мы можем протестировать нашу сеть, отправив пакеты между нодами. Для этого мы можем использовать команду ping.

ping -c 4 10.0.0.2
ping -c 4 10.0.0.3
ping -c 4 10.0.0.4
ping -c 4 10.0.0.5Code language: Bash (bash)

Заключение

В данной статье мы рассмотрели практический пример настройки децентрализованной сети WireGuard из 5 нод с использованием Zero Netcat. Это включало установку WireGuard и Zero Netcat, создание и настройку их конфигурации, запуск, добавление нод в сеть и тестирование сети. Надеемся, что это руководство было полезным и помогло вам лучше понять, как настроить децентрализованную сеть.

Оценить
Exception.Expert