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

В статье будет рассмотрена установка и настройка Wireguard VPN. Можно использовать для установки соединения между клиентом (например телефон) и сервером, например для работы во внутренней сети, рабочих целей, настраивать будем на собственном сервере Linux.

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

Арендуем сервер

Можно арендавать небольшой VPS сервер на KVM, так как OpenVZ НЕ ПОДДЕРЖИВАЕТСЯ.
Я использовал для тестов следующий сервер:
- 1 vCPU
- 8GB RAM
- 20GB Storage
- 100 Mbit/s - безлимитный трафик
- Debian 11

Подключение к серверу по SSH

Для настройки, нам нужно подключиться по SSH к серверу. Для этого берём данные который прислал нам хостинг провайдер в письме или указал в личном кабинете. Нам нужен ip-адрес и пароль.

Чтобы подключиться по SSH, я буду использовать mRemoteNG, но можно и любую другую программу по типу PuTTY. Указываем ip-адрес, пользователь - root (если иного не указал провайдер), протокол SSH version 2, порт стандартный 22.

При подключении выйдет уведомление, можно нажать как “Да” так и “Нет”. “Отмена” - сбросит соединение.

Устанавливаем Wireguard и создаём клиента

Вначале проверим обновления:

apt-get update

И произведём установку обновлений:

apt-get upgrade

Далее установим серверную часть Wireguard, с помощью автоматического скрипта “Angristan WireGuard install script”:

curl -O https://raw.githubusercontent.com/angristan/wireguard-install/master/wireguard-install.sh
#Если выходит ошибка - "bash: curl: command not found", то устанавливаем curl
apt-get install curl

#Снова пробуем
curl -O https://raw.githubusercontent.com/angristan/wireguard-install/master/wireguard-install.sh

#Далее выдаём права на исполнение скрипту
chmod +x wireguard-install.sh

#И запускаем его
./wireguard-install.sh

Скрипт запустит установку и предварительно попросит проверить данные, такие как ip-адрес сервера, название интерфейсов, внутренний адрес Wireguard и порт, а также DNS сервер. Всё можно оставить по умолчанию, DNS сервера можно указать любые - по умолчанию предлагает DNS сервера Adguard.

Выполнение скрипта и запрос на проверку данных.

Далее скрипт установит все необходимые пакеты, настроит их и последнее это запросит название для клиента, я для примера назвал его “test”:

Далее нас ещё раз спросят про ip-адрес но уже для клиента, можно оставить по умолчанию просто нажав enter.

Всё, Wireguard создал для нас конфиг клиента “test”, и вывел в консоли в виде qr кода конфиг а также сохранил его в виде файла на сервере. Qr можно отсканировать с помощью приложения Wireguard на телефоне, а конфиг скинуть на любое устройство где планируется использвать данный VPN.

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

Для добавления ещё одного клиента, просто запускаем повторно скрипт, выбираем первую опцию, указываем название клиента и получаем ещё одну конфигурацию:

Защита сервера

Это общие рекомендации и минимальные действия для защиты, которые рекомендуется настраивать на любом вашем сервере.

- Сменнить стандартный порт SSH, на свободный. Руководство по изменению порта будет тут.
- Установить iptables и настроить fail2ban.