рекомендации

среда, 1 сентября 2021 г.

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

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

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

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

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

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

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

В этом руководстве наши настройки (имя хоста и общедоступный 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, как показано ниже.

Одноранговый узел (открытый ключ), разрешенные IP-адреса (маска сети/подсети) и конечная точка (общедоступный 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

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

После создания туннеля Wireguard VPN выполните эхо-запрос к противоположному узлу, используя адрес сетевого интерфейса 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.

Комментариев нет:

Отправить комментарий