Установка WireGuard Easy на Debian 10

Когда мне в очередной раз потребовался VPN сервер, чтобы зайти на сайт, доступ к которому запрещён в России, я вспомнил про проект WireGuard Easy, на описание которого натыкался в телеграм канале ServerAdmin.ru. Я подумал, что раз у меня есть своя виртуалка с Debian 10, на которой крутится этот сайт, то почему бы не хостить на нём и свой небольшой VPN, тем более что WireGuard работает значительно быстрее OpenVPN и даже с 1 ядром процессора и 1 ГБ оперативной памяти можно без особой нагрузки и вреда для доступности сайта получать скорость свыше 200 Мбит/с, чего более чем достаточно для сёрфинга и потокового видео.

Процесс установки и настройки WireGuard Easy весьма прост, повторить его сможет практический каждый, кто не сильно боится линуксовой консоли. Проект рассчитан на использование Docker и Docker Compose, так что единственное, что нужно поставить на хостовую машину кроме этого софта — это поддержка самого WireGuard в качестве модуля для ядра системы. Если этого не сделать, то контейнер просто не запустится. Для Debian 10 поддержка WireGuard доступна из репозитория backports, использование которого надо добавить в конфигурационный файл /etc/apt/sources.list:

deb http://deb.debian.org/debian buster-backports main

После этого обновляем список пакетов и ставим wireguard:

sudo apt update
sudo apt install wireguard/buster-backports

Compose-файл для запуска WireGuard Easy написан с расчётом на более свежие версии docker и docker-compose, чем Debian 10 предлагает в своих родных репозиториях, так что лучше установить эти компоненты с официального сайта, там всегда предлагается самая свежая стабильная версия:

curl -sSL https://get.docker.com | sh
sudo sh get-docker.sh
sudo usermod -aG docker $(whoami)

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

sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose

Отлично, на самом деле это практически всё, остаётся только скачать compose-файл проекта WireGuard Easy, задать свой пароль и запустить контейнер:

mkdir ~/.wg-easy
cd ~/.wg-easy
wget https://raw.githubusercontent.com/WeeJeWel/wg-easy/master/docker-compose.yml
nano docker-compose.yml

В конфиге надо поправить только два параметра — DNS имя вашего сервера (хотя наверняка можно использовать и просто белый IP адрес) и пароль для входа в админку. Подразумевается, что админка будет висеть открытой для всего интернета, так что пароль лучше сделать понадёжнее. Пример конфига:

version: "3.8"
services:
  wg-easy:
    environment:
      # ⚠️ Required:
      # Change this to your host's public address
      - WG_HOST=example.com

      # Optional:
      - PASSWORD=YourStrongPassword
      # - WG_PORT=51820
      # - WG_DEFAULT_ADDRESS=10.8.0.x
      # - WG_DEFAULT_DNS=1.1.1.1
      # - WG_ALLOWED_IPS=192.168.15.0/24, 10.0.1.0/24

    image: weejewel/wg-easy
    container_name: wg-easy
    volumes:
      - .:/etc/wireguard
    ports:
      - "51820:51820/udp"
      - "51821:51821/tcp"
    restart: unless-stopped
    cap_add:
      - NET_ADMIN
      - SYS_MODULE
    sysctls:
      - net.ipv4.ip_forward=1
      - net.ipv4.conf.all.src_valid_mark=1

Как вы поняли, задать надо переменные WG_HOST и PASSWORD. Сохраняем, запускаем:

docker-compose up -d

Если всё прошло удачно, что на порту 51821 вашего сервера поднимется новый веб-интерфейс, доступный по http, например — http://example.com:51821/. Для входа в админку нужно ввести только пароль, указанный в конфиге.

Здесь вы можете добавить столько клиентов, сколько вам будет нужно. Советую вам давать имена профилям без пробелов и спецсимволов.

Пример добавленный профилей в админке

Для установки профиля на Windows нужно скачать конфигурационный файл и импортировать его в официальный клиент. Для установки на смартфон можно использовать QR-код, который умеет генерить админка и принимать на вход клиент. Дальнейшее использование не отличается от того же OpenVPN или OpenVPN Connect.

Не думаю, что такое решение годится для серьёзного корпоративного применения, но в качестве домашнего «семейного» VPN для редких случаев — решение выглядит очень привлекательно, я результатом полностью доволен.

Похожие записи

3 комментария

  1. Приветсвтую! Прошу у вас помощи. Вышло дополнение позволяющее отключать диаграммы для веб-интерфейса wg-easy. Никак не удается их реализовать. Вы не могли бы помочь и дополнить статью информацией по отлючению графиков?))
    Извянюсь если нагло поступил.

    1. Добрый! Да, конечно можно поставить перез wg-easy прокси-сервер, терминирующий HTTPS. Думаю, пора обновить статью, перейти на Debian 11 и добавить получение сертификата.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *