06.06.2023

Как установить WireGuard VPN на сервере Ubuntu

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

В этой настройке WireGuard vpn используется Ubuntu 20.04.

Установка WireGuard Server на Ubuntu Linux

Войдите по SSH на Linux сервер, после входа в систему проверьте, обновлена ли машина, выполнив следующую команду:

sudo apt-get update && sudo apt-get upgrade

Теперь установите WireGuard, выполнив следующую команду:

sudo apt-get install wireguard

Настройка 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!