Собственный VPN с управлением через браузер на базе WireGuard

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

Прежде чем перейти к статье, хочу вам представить, экономическую онлайн игру Brave Knights, в которой вы можете играть и зарабатывать. Регистируйтесь, играйте и зарабатывайте!

Задача организовать VPN в Москве или Спб для работы с сервисами не доступными с зарубежных IP и шифрования трафика для доступа к ресурсам компании при использовании публичного WiFi заграницей.

Остро потребность в VPN в России возникла после вынужденного отъезда части сотрудников зарубеж. Необходима возможность управлять пользователями, чтобы легко выдавать доступ сотрудникам.

Из доступных решений мне попался платный сервис от OpenVPN и бесплатное решение Firezone работающее на базе WireGuard.

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

Установка и требования

Для установки использую "чистый" VDS на базе Ubuntu 22 с виртуализацией KVM следующей конфигурации:

  • 1 ядро

  • 512 память

  • 200 мегабит канал

  • безлимитный трафик

  • стоимость 3.25 евро в месяц

Минимальной конфигурации достаточно для десятков пользователей, лимитом будет пропускная способность канала при активном использовании нежели процессор. Лучше иметь несколько мелких VDS, чем один более производительный.

Потребовался домен 3 уровня (можно и второго) в A записи которого прописываю IP нового сервера. На самом сервере ничего не делаю дополнительно, всё сделает скрипт установки Firezone. Он же установит непосредственно и WireGuard.

Для работы скрипта Firezone требуется наличие Docker на сервере, который устанавливаю командой:

apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin

Далее запускаю установку:

bash <(curl -fsSL https://github.com/firezone/firezone/raw/master/scripts/install.sh)

Ввожу email для создания администратора, домен подготовленный выше и выбираю автоматически обновлять SSL сертификат:

Установка Firezone
Установка Firezone

Пароль сгенерируется автоматически после установки:

Firezone установлен
Firezone установлен

Дальше выполняю команду, чтобы при перезагрузке сервера Firezone автоматически стартовал.

docker update --restart always firezone-firezone-1 firezone-postgres-1 firezone-caddy-1

VPN готов к использованию.

Эксплуатация

В первую очередь скачиваю клиенты для устройств с официального сайта WireGuard, в моём случае это iPhone, Macbook и Xiaomi. Windows также поддерживается.

Захожу по домену на страницу авторизации:

Страница авторизации
Страница авторизации

В панели для своего пользователя добавляю устройства. На телефоны получаю конфигурацию по QR-коду, на MacBook через файл.

Конфигурация WireGuard для устройства
Конфигурация WireGuard для устройства

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

Панель управления Firezone
Панель управления Firezone

Личный опыт

У меня VPN на Mac и iPhone включен постоянно, потребление аккумулятора 9%, реконнектов не происходит. С Android есть сложность, что при закрытии всех приложений VPN отключается, возможно это зависит от версии Android и производителя, но в моём случае на Xiaomi постоянно использовать не получается ввиду того что часто закрываю приложения.

Дополнительно есть возможность подключать на роутерах Keenetic, они поддерживает WireGuard нативно, конфигурацию в них загружать через файл, как и на компьютер.

Данное решение можно использовать и для организации VPN серверов в любых локациях. При должной сноровке это занимает не более 10 минут.

Ссылки из статьи

  • Официальное руководство установки Docker на Ubuntu.

  • Официальное руководство установки Firezone.

  • Страница со списком приложений на официальном сайте WireGuard.

Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.
Каким сервисом VPN вы пользуетесь?
0% Публичный платный 0
0% Публичный бесплатный 0
0% Собственный 0
0% Не пользуюсь 0
Никто еще не голосовал. Воздержавшихся нет.
Источник: https://habr.com/ru/post/695982/


Интересные статьи

Интересные статьи

Привет! Меня зовут Андрей Барболин, я Senior Software Engineer в команде Order Management System. Сегодня я расскажу вам, как мы сделали шардированный кэш и под стресс-тестами добились 30 миллионов оп...
Шесть месяцев назад на Habr была написана первая статья по этой теме. В ней описаны процессы, позволившие запустить автотестирование имеющегося web-приложения. Текущая статья описывает доработанный по...
Тому, кто хостит приложение у провайдера наподобие Fly.io (далее — просто Fly), вполне может понадобиться подключиться к серверу, на котором работает это приложение, по SSH. Но Fly — э...
Весной 2020 года я впервые попробовал себя в разработке сайтов бэкенд я писал на питоне а на фронте пришлось использовать js и он вызвал у меня отторжение(тут надо уточни...
Слышали об использовании ES6-модулей в браузере? Собственно — это обычные ES6-модули. Только применяются они в коде, предназначенном для браузеров. Читать дальше →