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

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

Он нацелен на то, чтобы быть быстрым, более простым, экономным и функциональным, чем IPsec, и он должен быть более производительным, чем OpenVPN.

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

Он представляет собой чрезвычайно простой, но мощный интерфейс, который призван быть простым, простым в настройке и развертывании, как и SSH.

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

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

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

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

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

Node 1 : itsecforu-appserver1: 		10.20.20.4
Node 2 : itsecforu-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
или
# modprobe wireguard
Затем сгенерируйте открытый и закрытый ключи в кодировке base64, используя утилиту wg на обоих узлах, как показано далее.
---------- на Node 1 ---------- 
$ umask 077
$ wg genkey >private_appserver1

---------- на Node 2 ----------
$ umask 077
$ wg genkey >private_dbserver1
$ wg pubkey < private_dbserver1
Затем вам нужно создать сетевой интерфейс (например, wg0) для wiregaurd на узлах, как показано ниже.
Затем назначьте IP-адреса новому созданному сетевому интерфейсу (для этого руководства мы будем использовать сеть 192.168.10.0/24).
---------- на Node 1 ---------- 
$ sudo ip link add dev wg0 type wireguard
$ sudo ip addr add 192.168.10.1/24 dev wg0

---------- на 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 и откройте интерфейс, как показано ниже:

---------- на Node 1 ---------- 
$ sudo wg set wg0 private-key ./private_appserver1
$ sudo ip link set wg0 up

---------- на Node 2 ----------
$ sudo wg set wg0 private-key ./private_dbserver1
$ sudo ip link set wg0 up

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

Затем создайте свой VPN-туннель wireguard следующим образом.

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

----------  на Node1 (используя IPs и открытый ключ Node 2) ---------- 
$ sudo wg
$ sudo wg set wg0 peer MDaeWgZVULXP4gvOj4UmN7bW/uniQeBionqJyzEzSC0= allowed-ips 192.168.10.0/24  endpoint  10.20.20.3:54371

----------  на Node2 (используя IPs и открытый ключ Node Node 1) ----------
$ sudo wg
$ sudo wg set wg0 peer 6yNLmpkbfsL2ijx7z996ZHl2bNFz9Psp9V6BhoHjvmk= allowed-ips 192.168.10.0/24 endpoint  10.20.20.4:42930

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

После создания VPN-туннеля Wireguard отправьте эхо-запрос на противоположный узел, используя адрес сетевого интерфейса Wireguard.

Затем снова запустите утилиту wg, чтобы подтвердить рукопожатие между узлами, как показано далее:

---------- На Node 1 ----------
$ ping 192.168.10.2
$ sudo wg

---------- На Node 2 ----------
$ ping 192.168.10.1
$ sudo wg

Вот и все!

WireGuard — это современное, безопасное, простое, но мощное и простое в настройке решение VPN на будущее.

Он находится в стадии интенсивного развития, поэтому работа продолжается.

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

 

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *