Найти тему

Настраиваем Wireguard VPN с веб-интерфейсом без мучений

Оглавление

Сегодня мы установим Wireguard VPN с удобным веб-интерфейсом, позволяющим создавать конфиги для друзей через браузер. Я сам пользуюсь таким решением и еще 20 моих знакомых.

Логотип Wireguard
Логотип Wireguard

Основные проблемы с VPN возникают во время поиска достойного провайдера VPS, которому можно заплатить российской картой. Выбирайте какой нравится, мне понравился TimeWeb, в котором всё уже готово. Правда я видел в комментариях его ругали, поэтому как вариант использовать Firstbyte. Он стоит 300р и чуть геморройнее регистрация, но там можно указать левую почту и рандомный телефон, взяв всё из генератора личностей.

Зачем это все?

Бесплатный сыр бывает только в мышеловке. Если вы используете бесплатный VPN, то спросите себя — на чем он зарабатывает? Бесплатные VPN сервисы продают ваши данные рекламодателям. Вы вообще ничего не знаете, что делают с вашим трафиком и никак этим не управляете. В дополнение, правительство стремится заблокировать популярные VPN сервисы.

Свой VPN сервер гарантирует вам не только стабильный канал, но и уменьшенную вероятность блокировки. Я пишу уменьшенную вероятность, но не гарантированную защиту — так как правительство постоянно создает новые методы противодействию обходу блокировок. Wireguard — довольно популярный протокол и его легко обнаружить. Как защитить свой сервис от блокировки мы рассмотрим в следующих статьях.

Всего настройка состоит из 2 шагов: аренды сервера и создания клиентов для себя и друзей.

Аренда сервера

Переходим к аренде сервера. Выбирайте любого понравившегося провайдера. Если у вас есть иностранная карта, могу порекомендовать mvps.net, у них есть готовое VPN решение, хотя и с ограниченным в 2ТБ трафиком. Но я пока не смог истратить это количество. Арендуем сервер у TimeWeb:

Заходите на сайт и зарегистрируетесь. Затем выбирайте в меню слева раздел Облачные серверы > Создать > Маркетплейсы > VPN > Wireguard-GUI

Выбираем образ нашей системы
Выбираем образ нашей системы

Выбираем регион, я выбрал Польшу

Вариантов тут немного
Вариантов тут немного

Отключайте бэкап в разделе Дополнительные услуги

Оплачиваете. Я заплатил за месяц, вышло 188 руб. По умолчанию, карта оплаты привязывается на будущее — ее можно отвязать в разделе финансы.

Ждем письма на почту с данными для подключения к VPN.

Создание клиентов

Установка сервера закончена, осталось подключить клиенты — телефоны и компьютеры. Их может быть сколько угодно, у нас неограниченный трафик. Установите Wireguard на устройства.

Перейдите по ссылке в письме:

Логин и пароль в письме
Логин и пароль в письме

Авторизуйтесь по паролю из того же письма

Вводим пароль из письма
Вводим пароль из письма

Нажмите кнопку New Client и укажите произвольное название. Я использую систему Страна-имя-клиент, чтобы не путаться в людях. Для примера создадим для подруги Алины конфиг для телефона Pol-Alina-Mobile.

Создаем клиент
Создаем клиент

У каждого конфига есть кнопка скачать и QR-код. Нажмите на кнопку QR-кода и он появится на экране.

Откройте Wireguard на телефоне и нажмите кнопку плюса

Отсканируйте созданный в веб-интерфейсе QR-код и вуаля, всё готово. Наш впн работает. Проверить это можно на любом сервисе вроде 2ip:

Проверяем нашу локацию
Проверяем нашу локацию

Подобным образом надо создать конфиги для всех устройств.

Заключение

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

Вопросы безопасности

Считается, что иметь сервер с выделенным IP-адресом и авторизацией по паролю небезопасно. Но пароль, который генерирует хостер достаточно хорош. Вы можете убедиться сами — например, для взлома пароля zYq6FV3j понадобится тысяча лет. В общем, это можно выкинуть из головы, если не хотите заморачиваться.

Но в идеале всё-таки аутентификацию по паролю отключить и оставить только по ключу. Ключ — по сути своей, это просто длинный пароль, который хранится у нас на компьютере. Для настройки авторизации по ключу:

  1. Откройте Powershell и выполните команду ssh-keygen. Нажмите Enter 3 раза
  2. Система сохранит файл ключа в папке C:\Users\Ваше_Имя_пользователя\.ssh/. Откройте эту папку и найдите в ней файл id_rsa.pub.
  3. Откройте файл текстовым редактором и скопируйте содержимое
  4. Вернитесь на сайт хостера и выберите свой сервер в разделе Облачные серверы
  5. Перейдите в раздел Доступ
  6. В поле SSH-ключи нажмите кнопку Изменить и вставьте скопированный ключ
  7. Ключ добавлен. Вернитесь на шаг назад и активируйте созданный ключ. Подробная инструкция про ключи есть на сайте таймвеба
  8. Готово, теперь можно авторизоваться на сервере без пароля. Осталось отключить аутентификацию по паролю. Для примера я буду использовать адрес сервера 111.111.111.11
  9. Зайдите на сервер по SSH: ssh root@111.111.111.111
  10. Откройте файл конфига SSH: nano /etc/ssh/sshd_config
  11. Найдите строчку PasswordAuthentication Yes и вместо Yes напишите No. Сохраните изменения, нажав Ctrl+X. На серверах таймвеба есть дополнительный файл с этой директивой, там тоже нужно отключить: mv /etc/ssh/sshd_config.d/50-cloud-init.conf ~
  12. Перезапустите службу SSH: systemctl restart ssh
  13. Готово, теперь сервер в безопасности и авторизоваться по паролю не получится. Сервер настроен и готов к работе.
не подключилось :(
не подключилось :(

Обновления

По умолчанию, автоматические обновления (unattended upgrades) системы уже включены. Проверить их можно командой systemctl status unattended-upgrades --no-pager -l

Можно еще создать пользователя чтобы не сидеть под рутом..:)

Если появились вопросы — пишите в комментариях, буду рад помочь. Подписывайтесь на мой телеграм-канал — в нем я пишу полезные статьи и рассказываю истории из мира IT.