Поиск по сайту:

WireGuard — быстрый, современный и безопасный VPN-туннель для Linux


WireGuard — это современная, безопасная, кроссплатформенная и универсальная реализация VPN, использующая современную криптографию. Он стремится быть быстрым, простым, компактным и более функциональным, чем IPsec, и более производительным, чем OpenVPN.

Он предназначен для использования в различных обстоятельствах и может быть развернут на встроенных интерфейсах, полностью загруженных магистральных маршрутизаторах и суперкомпьютерах; и работает в операционных системах Linux, Windows, macOS, BSD, iOS и Android.

Рекомендуется к прочтению: 13 лучших VPN-сервисов с пожизненной подпиской

Он представляет собой чрезвычайно простой, но мощный интерфейс, который должен быть таким же простым в настройке и развертывании, как и SSH. Его ключевые особенности включают простой сетевой интерфейс, маршрутизацию криптоключей, встроенный роуминг и поддержку контейнеров.

Обратите внимание, что на момент написания статьи он находится в стадии активной разработки: некоторые его части работают над выпуском стабильной версии 1.0, тогда как другие уже существуют (работают нормально).

В этой статье вы узнаете, как установить и настроить WireGuard в Linux для создания VPN-туннеля между двумя хостами Linux.

Тестовая среда

В этом руководстве наша настройка (имя хоста и общедоступный IP-адрес) выглядит следующим образом:

Node 1 : tecmint-appserver1: 		10.20.20.4
Node 2 : tecmint-dbserver1: 		10.20.20.3

Как установить WireGuard в дистрибутивах Linux

Войдите в оба своих узла и установите WireGuard, используя следующую команду, соответствующую вашим дистрибутивам Linux, следующим образом.

Установите WireGuard в RHEL 8.

sudo yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
sudo subscription-manager repos --enable codeready-builder-for-rhel-8-$(arch)-rpms
sudo yum copr enable jdoss/wireguard
sudo yum install wireguard-dkms wireguard-tools

Установите WireGuard в CentOS 8

sudo yum install epel-release
sudo yum config-manager --set-enabled PowerTools
sudo yum copr enable jdoss/wireguard
sudo yum install wireguard-dkms wireguard-tools

Установите WireGuard в RHEL/CentOS 7.

sudo yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
sudo curl -o /etc/yum.repos.d/jdoss-wireguard-epel-7.repo https://copr.fedorainfracloud.org/coprs/jdoss/wireguard/repo/epel-7/jdoss-wireguard-epel-7.repo
sudo yum install wireguard-dkms wireguard-tools

Установите WireGuard в Fedora

sudo dnf install wireguard-tools

Установите WireGuard в Debian

echo "deb http://deb.debian.org/debian/ unstable main" > /etc/apt/sources.list.d/unstable.list
printf 'Package: *\nPin: release a=unstable\nPin-Priority: 90\n' > /etc/apt/preferences.d/limit-unstable
apt update
apt install wireguard

Установите WireGuard в Ubuntu

sudo add-apt-repository ppa:wireguard/wireguard
sudo apt-get update
sudo apt-get install wireguard

Установите WireGuard в OpenSUSE

sudo zypper addrepo -f obs://network:vpn:wireguard wireguard
sudo zypper install wireguard-kmp-default wireguard-tools

Настройка VPN-туннеля WireGuard между двумя хостами Linux

Когда установка wireguard будет завершена на обоих узлах, вы можете перезагрузить свои узлы или добавить модуль Wireguard из ядра Linux, используя следующую команду на обоих узлах.

sudo modprobe wireguard
OR
modprobe wireguard

Затем сгенерируйте открытый и закрытый ключи в кодировке Base64 с помощью утилиты wg на обоих узлах, как показано.

---------- On Node 1 ---------- 
umask 077
wg genkey >private_appserver1

---------- On Node 2 ----------
umask 077
wg genkey >private_dbserver1
wg pubkey < private_dbserver1

Затем вам необходимо создать сетевой интерфейс (например, wg0) для Wiregaurd на узлах, как показано ниже. Затем назначьте IP-адреса новому созданному сетевому интерфейсу (в этом руководстве мы будем использовать сеть 192.168.10.0/24).

---------- On Node 1 ---------- 
sudo ip link add dev wg0 type wireguard
sudo ip addr add 192.168.10.1/24 dev wg0

---------- On Node 2 ----------
sudo ip link add dev wg0 type wireguard
sudo ip addr add 192.168.10.2/24 dev wg0

Чтобы просмотреть подключенные сетевые интерфейсы на узлах и их IP-адреса, используйте следующую IP-команду.

ip ad

Затем назначьте закрытый ключ для каждого узла сетевому интерфейсу wg0 и откройте интерфейс, как показано.

---------- On Node 1 ---------- 
sudo wg set wg0 private-key ./private_appserver1
sudo ip link set wg0 up

---------- On Node 2 ----------
sudo wg set wg0 private-key ./private_dbserver1
sudo ip link set wg0 up

Теперь, когда обе ссылки активны, каждая из которых связана с закрытыми ключами, запустите утилиту wg без каких-либо аргументов, чтобы получить конфигурацию интерфейсов WireGuard на узлах. Затем создайте VPN-туннель Wireguard следующим образом.

Одноранговый узел (открытый ключ), allowed-ips (маска сети/подсети) и конечная точка (публичный IP-адрес:порт) относятся к противоположному узлу. .

----------  On Node1 (Use the IPs and Public Key of Node 2) ---------- 
sudo wg
sudo wg set wg0 peer MDaeWgZVULXP4gvOj4UmN7bW/uniQeBionqJyzEzSC0= allowed-ips 192.168.10.0/24  endpoint  10.20.20.3:54371

----------  On Node2 (Use the IPs and Public Key of Node 1) ----------
sudo wg
sudo wg set wg0 peer 6yNLmpkbfsL2ijx7z996ZHl2bNFz9Psp9V6BhoHjvmk= allowed-ips 192.168.10.0/24 endpoint  10.20.20.4:42930

Тестирование VPN-туннеля WireGuard между системами Linux

После создания VPN-туннеля Wireguard выполните проверку связи с противоположным узлом, используя адрес сетевого интерфейса Wireguard. Затем еще раз запустите утилиту wg, чтобы подтвердить рукопожатие между узлами, как показано.

---------- On Node 1 ----------
ping 192.168.10.2
sudo wg

---------- On Node 2 ----------
ping 192.168.10.1
sudo wg

На этом всё! WireGuard — это современное, безопасное, простое, но мощное и легко настраиваемое VPN-решение будущего. Он находится в стадии интенсивного развития, поэтому работа продолжается. Вы можете получить дополнительную информацию, особенно о его внутренней работе и других параметрах конфигурации, на домашней странице WireGuard.