Перейти к содержанию

WireGuard

Информация

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

Начало работы после развертывания Wireguard

После оплаты заказа на указанную при регистрации электронную почту придет уведомление о готовности сервера к работе. В нем будет указан IP-адрес VPS, а также логин и пароль для подключения. Управление оборудованием клиенты нашей компании осуществляют в панели управления серверами и APIInvapi.

Данные для авторизации, которые можно найти или во вкладке Info >> Tags панели управления сервером или в присланном e-mail:

  • Ссылка для доступа к панели управления Wireguard с веб-интерфейсом: в теге webpanel. Точная ссылка вида https://{Server_ID_from_Invapi}.hostkey.in приходит в письме, отправляемом при сдаче сервера и продублирована в строке wgui dashboard раздела General information сервера.
  • Логин: root;
  • Пароль: приходит в письме на вашу электронную почту при сдаче сервера. Совпадает с паролем root сервера.

Внимание

Сервис доступен только с паролем root, заданным автоматически при его разворачивании. Смена пароля root в операционной системе не меняет пароль в панели Wireguard-UI. Если вы захотите поменять пароль в панели, воспользуйтесь этой инструкцией.

Примечание

Если при входе в веб-панель Wireguard-UI у вас показывает надпись login successful но не происходит входа в систему, подключитесь к серверу через SSH или HTML консоль от root и перезапустите контейнер docker командой

docker restart wireguard-ui

Использование сервера Wireguard

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

Создание нового пользователя:

Откройте панель управления сервером WireGuard по ссылке из раздела Данные для подключения; В левом меню выберите Wireguard Clients; В правом верхнем углу нажмите кнопку New Client:

Заполните обязательное поле Name. Остальные поля не изменяйте без необходимости: - IP Allocation - заполняется автоматически; - Allowed IPs - заполняется автоматически. 0.0.0.0/0 означает, что при подключении к серверу виртуальной частной сети доступ ко всем сетевым ресурсам будет идти через него; - В пункте Preshared Key можете проставить знак "-". Это отключит дополнительное шифрование, которое требуется для устойчивости при взломе, но в данный момент развития технологий не является востребованным:

  • Нажмите кнопку Submit;
  • Нажмите кнопку Apply config в правом верхнем углу (рядом с кнопкой New Client).

Внимание

Необходимо завершать любые изменения профиля пользователя, используя кнопку Apply config. Без нажатия этой кнопки подключение к виртуальной частной сети не будет работать.

Внимание

При установке WireGuard на сервер под управлением Ubuntu необходимо учитывать особенности работы этой панели. Для корректной работы WireGuard требуется включенный брандмауэр (firewall). Если отключить встроенный firewall в Ubuntu, то клиенты сервиса Wireguard не смогут получить доступ в интернет.

Клиент создан, и сервер ждет подключения.

Подключение к серверу виртуальной частной сети Wireguard

Mac/Windows

  • Установите клиент WireGuard на ваше устройство;
  • Откройте панель управления сервером WireGuard по ссылке из раздела Данные для подключения;
  • В левом меню выберите Wireguard Clients;
  • Найдите нужного клиента;
  • Скачайте конфигурационный файл для этого клиента, нажав на кнопку Download:

  • Запустите на своем устройстве клиент WireGuard;
  • Нажмите на кнопку Импорт туннелей из файлов и выберите скачанный конфигурационный файл. Появится новое соединение с заданным вами ранее именем пользователя, статус подключения будет Отключен.
  • Нажмите кнопку Подключить, статус изменится на Подключен.

Внимание

В некоторых случаях для корректной работы сервиса может понадобиться перезагрузка локального устройства.

IOS и Android

  • Установите приложение WireGuard из Google Play Market для Android или из AppStore для IOS;
  • Откройте панель управления сервером WireGuard по ссылке из раздела Данные для подключения;
  • В левом меню выберите Wireguard Clients. Найдите нужного клиента. Откройте QR-код этого клиента, нажав на кнопку QR code:

  • Откройте приложение WireGuard на телефоне;
  • Нажмите кнопку Добавить туннель. Выберите опцию Сканировать QR-код;
  • Отсканируйте QR-код. Дайте название подключению;
  • Разрешите приложению изменение настроек виртуальной частной сети, следуя подсказкам телефона;
  • Для подключения к серверу Wireguard установите переключатель во включенное состояние.

Linux

Скачайте конфигурационный файл и выполните команду:

sudo nmcli connection import type wineguard file "FILE_NAME.conf"

Использование сервера Wireguard в качестве HTTP-proxy

Сервер с установленным WireGuard можно использовать в качестве HTTP-proxy сервера для всех популярных браузеров. Вы можете воспользоваться стандартными настройками браузера для установки соединения через HTTP-proxy или дополнительными средствами управления HTTP-proxy в браузерах, например, SwitchyOmega, ProxMate, Proxy-Switcher и другими.

В данной инструкции разберем установку и использование SwitchyOmega.

Для установки и использования SwitchyOmega следует выполнить следующий алгоритм действий:

  1. Установить расширение SwitchyOmega для браузера Google Chrome или Mozilla Firefox.

  2. Создать профиль прокси-сервера в SwitchyOmega:

    • Открыть браузер и нажать на иконку SwitchyOmega в правом верхнем углу окна браузера в меню расширений;
    • Выбрать New Profile в меню;
    • Ввести название профиля в поле Название профиля;
    • Выбрать тип прокси-сервера в меню Protocol - HTTP;
    • Ввести внутренний адрес сервера Wireguard 10.252.1.1 и его порт 3128 в соответствующие поля;

    Примечание

    Для использования HTTP-proxy изначально требуется подключиться к серверу виртуальной частной сети.

    • Нажать кнопку Сохранить.
  3. Включить профиль прокси-сервера в SwitchyOmega.

    • Нажать на иконку SwitchyOmega в правом верхнем углу окна браузера;
    • Выбрать созданный ранее профиль прокси-сервера в меню;
    • Профиль прокси-сервера должен стать активным, и его название должно появиться вверху списка в меню SwitchyOmega.

Пример настроек в Google Chrome:

Проверка работоспособности виртуальной частной сети

Для проверки подключения к серверу можно ввести в поисковой строке браузера запрос What is my IP или посетить сайт whatismyipaddress.com. При успешном подключении к сервису будет указан IP-адрес и регион:

Смена пароля в панели Wireguard-UI

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

  • Подключитесь к серверу через SSH или HTML консоль;

  • Отредактируйте конфигурационный файл /data/wgui/users/root.json:

        {
        "username": "admin",
        "password": "you_password",
        "password_hash": "",
        "admin": true
        }
    
    - перезапустите контейнер командой

    docker restart wireguard-ui
    

Особенности сборки

  • Возможна установка на семейство RHEL 8+.
  • Время на установку 15-20 минут вместе с OS.
  • Контейниризованная установка WGUI + SSL в зоне hostkey.in
  • Установленное ПО:
    • Docker CE;
    • Docker Compose.
  • Использованные контейнеры:
    • ngoduykhanh/wireguard-ui:latest;
    • jonasal/nginx-certbot:latest.
  • Путь до compose: - /root/wgui.
  • Путь до примонтированных директорий: - /data.
  • Для кастомизации установки необходимо внести правки в /root/wgui/compose.yml после перезапустить compose через команды
docker compose -f /root/wgui/compose.yml down && docker compose -f /root/wgui/compose.yml up -d

Заказ WireGuard с помощью API

curl -s "https://invapi.hostkey.ru/eq.php" -X POST \
--data "action=order_instance" \
--data "token=" \
--data "deploy_period=" \
--data "deploy_notify=" \
--data "email=" \
--data "pin=" \
--data "id=" \
--data "os_id=" \
--data "root_pass=" \
--data "hostname=" \
--data "ssh_key=" \
--data "post_install_callback=" \
--data "post_install_script=" \
--data "reinstall_key=" \
--data "os_name=" \
--data "imitate_deploy=" \
--data "imitate_error=0" \
--data "own_os=" \
--data "jenkins_task=" \
--data "traffic_plan=" \
--data "invoice_relid=" \
--data "preset=" \
--data "location_name=" \