ГлавнаяОперационные системыLinuxКак настроить Wireguard VPN в Linux

Как настроить Wireguard VPN в Linux

Wireguard — это мощный демон виртуальной частной сети (VPN) с открытым исходным кодом, который может работать как на настольных, так и на мобильных устройствах. Он обеспечивает быструю и легкую альтернативу традиционным решениям VPN, таким как IPsec и OpenVPN. Здесь мы покажем вам, как установить Wireguard и создать простую настройку VPN с использованием трех компьютеров с Linux.

Зачем использовать Wireguard в качестве решения VPN?

Одним из главных преимуществ Wireguard является то, что это быстрый и легкий демон VPN. В отличие от традиционных решений

Зачем использовать Wireguard в качестве решения VPN?

т к снижению задержки и повышению общей пропускной способности всех узлов.

Терминал, показывающий тест iperf3 между двумя узлами Wireguard, демонстрирующий высокую пропускную способность.

Еще одна ключевая особенность Wireguard — это модуль внутри ядра Linux. Это позволяет ему работать, не занимая никаких дополнительных системных ресурсов вашего компьютера, что делает его идеальным выбором для развертывания на устройствах начального уровня и SOC.

Терминал, показывающий Wireguard, загруженный в ядро ​​Linux.

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

Кстати, все еще не уверены в Wireguard? Узнайте как Wireguard сочетается с OpenVPN .

Получение Wireguard

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

Чтобы установить основные инструменты в Ubuntu и Debian, выполните следующую команду:

sudo apt install wireguard wireguard-tools

В Fedora вы можете использовать менеджер пакетов dnf:

sudo dnf install wireguard-tools

Для Arch Linux вы можете запустить pacman, чтобы получить основные инструменты Wireguard:

sudo pacman -S wireguard-tools

Убедитесь, что вы правильно установили инструменты Wireguard, загрузив экран справки:

wg -h
Терминал, показывающий меню справки для инструмента пользовательского пространства Wireguard.<

Настройка сервера Wireguard

Предположение. В этой статье предполагается, что вы

Получение Wireguard

ard в системе Linux с общедоступным IPv4-адресом. Инструкции по-прежнему будут работать на сервере за NAT, но он не сможет найти узлы за пределами своей подсети.

С помощью основного инструментария Wireguard на ваших компьютерах с Linux вы теперь можете настроить серверный узел VPN. Он будет служить интернет-шлюзом для ваших клиентских узлов в сети.

Начните с перехода в каталог конфигурации Wireguard и установите для него разрешения по умолчанию «только root»:

cd /etc/wireguard
sudo umask 077

Примечание. Некоторые системы могут помешать вам войти в папку «/etc/wireguard» как обычный пользователь. Чтобы это исправить, используйте переключиться на пользователя root , используя sudo -s.

Сгенерируйте открытый и закрытый ключи для вашего сервера Wireguard:

sudo sh -c 'wg genkey | tee /etc/wireguard/server-private-key | wg pubkey > /etc/wireguard/server-public-key'

Создайте файл конфигурации вашего сервера с помощью вашего любимого текстового редактора:

sudo nano /etc/wireguard/wg0.conf

Вставьте следующий блок кода в файл конфигурации вашего сервера:

[Interface]
PrivateKey =

Настройка сервера Wireguard

ATE-KEY-HERE
Address = 10.0.0.1/32 ListenPort = 60101 PostUp = iptables -t nat -I POSTROUTING -o NETWORK-INTERFACE-HERE -j MASQUERADE PostDown = iptables -t nat -D POSTROUTING -o NETWORK-INTERFACE-HERE -j MASQUERADE

Откройте новый сеанс терминала, затем распечатайте закрытый ключ Wireguard вашего сервера:

sudo cat /etc/wireguard/server-private-key

Скопируйте закрытый ключ вашего сервера в буфер обмена.

Терминал, показывающий процесс копирования закрытого ключа сервера в Ubuntu.

Замените значение переменной PrivateKeyключом из буфера обмена.

Терминал, показывающий закрытый ключ сервера в конфигурации Wireguard сервера.

Найдите сетевой интерфейс, имеющий доступ к Интернету, с помощью команды ip:

ip route get 8.8.8.8
Терминал с подсветкой названия сетевого интерфейса с доступом в Интернет.

Установите значение флага -oдля переменных PostUpи PostDownдля интерфейса с доступом в Интернет, затем сохраните файл конфигурации.

Терминал, показывающий правильное имя устройства в файле конфигурации сервера Wireguard.

Откройте файл сервера «/etc/sysctl.conf» с помощью вашего любимого текстового редактора:

sudo nano /etc/sysctl.conf

Прокрутите вниз до строки, содержащей net.ipv4.ip_forward=1, затем удалите знак решетки (#) перед ней.

Терминал, показывающий расположение параметра переадресации IPv4 в sysctl.conf.

Обновите новую конфигурацию sysctl, выполнив: sudo sysctl -p.

Терминал, показывающий процесс перезагрузки файла sysctl.conf.

К вашему сведению: Wireguard — не единственное решение VPN, которое можно запустить в Linux. Узнайте как создать свой собственный VPN с помощью OpenVPN .

Настройка и подключение клиента Wireguard

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

Перейдите в каталог конфигурации Wireguard вашей клиентской системы и установите разрешения по умолчанию:

cd /etc/wireguard
sudo umask 077

Сгенерируйте пару ключей Wireguard вашего клиента с помощью следующей команды:

sudo sh -c 'wg genkey | tee /etc/wireguard/client1-private-key | wg pubkey > /etc/wireguard/client1-public-key'

Создайте файл конфигурации Wireguard клиента с помощью вашего любимого текстового редактора:

sudo nano /etc/wireguard/wg0.conf

Вставьте следующий блок кода в файл конфигурации клиента:

[Interface]
PrivateKey = PASTE-YOUR-CLIENT1-PRIVATE-KEY-HERE
Address = 10.0.0.2/32
ListenPort = 60101
 
[Peer]
PublicKey = PASTE-YOUR-SERVER-PUBLIC-KEY-HERE
AllowedIPs = 0.0.0.0/0
Endpoint = PASTE-YOUR-SERVER-IP-ADDRESS-HERE:60101
PersistentKeepalive = 25

Замените переменную PrivateKeyзакрытым ключом вашего клиента.

Терминал, выделяющий закрытый ключ для первого клиента Wireguard.

Откройте сеанс терминала вашего сервера Wireguard, затем распечатайте его открытый ключ:

sudo cat /etc/wireguard/server-public-key

Установите значение переменной PublicKeyкак открытый ключ вашего сервера.

Терминал, выделяющий открытый ключ сервера Wireguard в файле конфигурации второго клиента.

Замените переменную Endpointна IP-адрес вашего сервера Wireguard.

Терминал, выделяющий IP-адрес сервера Wireguard.

Сохраните файл конфигурации, затем используйте команду wg-quickдля запуска клиента Wireguard:

sudo wg-quick up wg0
Терминал, показывающий процесс запуска демона клиента Wireguard.

Примечание. Эта команда отключит сетевое подключение вашего клиента до тех пор, пока вы не запустите сервер Wireguard. Чтобы вернуться в исходную сеть, запустите sudo wg-quick down wg0.

Связывание сервера Wireguard с клиентом

Перейдите в терминальны

Настройка и подключение клиента Wireguard

го файл конфигурации:

sudo nano /etc/wireguard/wg0.conf

Вставьте следующий блок кода после раздела [Interface]:

[Peer]
PublicKey = PASTE-YOUR-CLIENT1-PUBLIC-KEY-HERE
AllowedIPs = 10.0.0.2/32
PersistentKeepalive = 25

Задайте для переменной PublicKeyоткрытый ключ вашего клиента Wireguard.

Терминал, показывающий расположение блока [Peer] и открытый ключ клиента.

Примечание. вы можете получить открытый ключ, запустив sudo cat /etc/wireguard/client1-public-keyна своем клиентском компьютере.

Сохраните файл конфигурации, затем выполните следующую команду, чтобы запустить службу Wireguard на вашем сервере:

sudo wg-quick up wg0

Добавление второго клиента на сервер

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

Чтобы сделать это в Wireguard, вам необходимо создать файл конфигурации для нового VPN-интерфейса на вашем сервере. Самый простой способ сделать это — скопировать текущую конфигурацию сервера и присвоить копии новое имя:

sudo cp /etc/wireguard/wg0.conf /etc/wireguard/wg1.conf

Откройте новый файл конфигурации с помощью любимого текстового редактора:

sudo nano /etc/wireguard/wg1.conf

Задайте для переменной ListenPortзначение 60102. Это предотвратит конфликты портов между VPN-интерфейсами wg0 и wg1.

Терминал, выделяющий измененную переменную ListenPort для второго интерфейса Wireguard.

Перейдите в раздел [Peer]и измените переменную AllowedIPsс «10.0.0.2/32» на «10.0.0.3/32», затем сохраните файл конфигурации.

Терминал, выделяющий измененную переменную AllowedIPs для второго клиента Wireguard.

Настройка второго клиента Wireguard

Войдите на второй компьютер, затем подготовьте каталог конфигурации Wireguard:

cd /etc/wireguard
sudo umask 077

Сгенерируйте новую пару ключей Wireguard с помощью следующей команды:

sudo sh -c 'wg genkey | tee /etc/wireguard/client2-private-key | wg pubkey > /etc/wireguard/client2-public-key'

Создайте новый файл конфигурации с помощью вашего любимого текстового редактора:

sudo nano /etc/wireguard/wg0.conf

Вставьте следующий блок кода в новый файл конфигурации:

[Interface]
PrivateKey = PASTE-YOUR-CLIENT2-PRIVATE-KEY-HERE
Address = 10.0.0.3/32
ListenPort = 60102
 
[Peer]
PublicKey = PASTE-YOUR-SERVER-PUBLIC-KEY-HERE
AllowedIPs = 0.0.0.0/0
Endpoint = PASTE-YOUR-SERVER-IP-ADDRESS-HERE:60102
PersistentKeepalive = 25

Задайте для переменной PrivateKeyз

Связывание сервера Wireguard с клиентом

мените переменную PublicKeyна открытый ключ вашего сервера.

Терминал, выделяющий закрытый ключ второго клиента и открытый ключ сервера Wireguard.

Замените переменную Endpoint IP-адресом вашего сервера, а затем «:60102».

Терминал, выделяющий IP-адрес сервера Wireguard в конфигурации второго клиента.

Сохраните файл конфигурации, затем запустите клиент Wireguard на втором компьютере:

sudo wg-quick up wg0

Привязка второго клиента к серверу Wireguard

Войдите на свой сервер Wireguard, затем откройте конфигурацию интерфейса VPN для второго клиента:

sudo nano /etc/wireguard/wg1.conf

Прокрутите вниз до раздела [Peer], затем замените переменную PublicKeyоткрытым ключом вашего второго клиента.

Терминал, выделяющий открытый ключ второго клиента внутри файла конфигурации сервера wg1.

Сохраните файл конфигурации, затем запустите второй VPN-интерфейс с помощью команды wg-quick:

sudo wg-quick up wg1Добавление второго клиента на серверклиенты Wireguard корректно отображаются на вашем сервере, запустив wg.

Терминал, показывающий два клиентских узла, взаимодействующих с сервером Wireguard.

Тестирование сети Wireguard

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

sudo apt install net-tools curl

В Fedora вам нужно всего лишь установить curl, поскольку она уже поставляется с сетевыми инструментами прямо из коробки:

sudo dnf install curl

Для Arch Linux вы можете использовать pacmanдля установки сетевых инструментов и curl:

sudo pacman -S traceroute curl

Начнем с отслеживания маршрута пакета между двумя клиентами. Ниже показано, как IP-пакет переходит от «10.0.0.2» к «10.0.0.3»:

traceroute 10.0.0.3
Терминал, показывающий успешную команду трассировки маршрута между двумя узлами Wireguard.

Проверьте, может ли какой-либо из ваших узлов получить доступ к общедоступному Интернету, проверив общий IP-адрес:

ping -c 5 8.8.8.8
Терминал, показывающий задержку между сетью Wireguard и внешним сайтом.

Наконец, убедитесь, что ваши узлы используют один и тот же общедоступный IP-адрес с вашим сервером Wireguard:

curl ipinfo.io/ip
Терминал, выделяющий одинаковый внешний IP-адрес на трех узлах Wireguard.
<

Настройка второго клиента Wireguard

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

Изображение предоставлено: Кари Ши через Unsplash и Викисклад . Все изменения и скриншоты Рамсеса Реда.

Привязка второго клиента к серверу Wireguard

Тестирование сети Wireguard

ПОХОЖИЕ СТАТЬИ

Популярные записи