news
Новый шаблон ОС Windows Server 2022

Как настроить VPN-сервер WireGuard на CentOS

VP
Vasiliy Ponomarenko
26 ноября 2021

WireGuard - это приложение, которое может обеспечить безопасную виртуальную частную сеть (VPN), оно достаточно простое в использовании и настройке. Оно использует надежные криптографические протоколы и алгоритмы для шифрования данных. Разработанное исключительно для ядра Linux, оно может быть развернуто и на Windows, macOS, FreeBSD, iOS, а так же Android.

В нашем случае мы будем использовать CentOS 8.3 для установки WireGuard.

Установка сервера WireGuard на CentOS

Для того, чтобы установить WireGuard сервер войдите на ваш Linux-сервер, после входа добавьте репозитории EPEL и Elrepo для установки модулей ядра и инструментов WireGuard.

sudo dnf install epel-release elrepo-release -y

Теперь установим WireGuard из репозитория epel:

sudo dnf install kmod-wireguard wireguard-tools

Настройка IP-переадресации

Для работы VPN нам нужно включить пересылку пакетов, только тогда мы сможем подключаться через сервер Wireguard, для этого нам нужно отредактировать файл /etc/sysctl.conf:

sudo nano /etc/sysctl.conf

удалите “#” для следующей команды

net.ipv4.ip_forward=1

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

sysctl -p

Отобразится следующее сообщение:

Генерация закрытого и открытого ключей

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

Перед генерацией пары ключей перейдите в каталог

dwg sudo cd /etc/wireguard

Установите разрешение на эту директорию:

umask 077

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

wg genkey | tee private.key | wg pubkey > public.key

Настройка серверной конфигурации

Чтобы начать настройку сервера WireGuard, перейдите в папку /etc/wireguard и создайте файл wg0.conf

sudo nano /etc/wireguard/wg0.conf

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

[Interface]
PrivateKey = <contents-of-server-privatekey>
Address = 10.0.0.1/24
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
ListenPort = 51820
[Peer]
PublicKey = <contents-of-client-publickey>
AllowedIPs = 10.0.0.2/32

Скопируйте закрытый ключ, который мы сгенерировали ранее, и вставьте его в PrivateKey.

Аналогично нужно сгенерировать пару ключей для клиента, скопируйте открытый ключ клиента и вставьте его в PublicKey.

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

sudo cat /etc/wireguard/public.key

sudo cat /etc/wireguard/private.key

Запуск WireGuard и включение его при загрузке

Теперь мы готовы к запуску сервера, для запуска WireGuard мы используем wg-quick и указываем имя нового интерфейса:

wg-quick up wg0

Если конфигурация выполнена идеально, вы увидите следующий экран

чтобы проверить статус работы сервера WireGuard введите:

wg show

Поздравляю, мы успешно подняли сервер WireGuard!

Остались вопросы? Задайте их нашему эксперту и получите квалифицированную помощь