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

Всем привет.

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

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

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

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

Переходим к аренде сервера. Выбирайте любого понравившегося провайдера. Если у вас есть иностранная карта, могу порекомендовать mvps.net, у них есть готовое VPN решение.

  • Заходите на сайт и регистрируетесь

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

  • Регион выбирайте какой хотите, я выбрал Польшу.

Wireguard VPN с веб-интерфейсом без мучений Linux, VPN, Wireguard, Windows, Туториал, Длиннопост
  • Отключайте бэкап в разделе Дополнительные услуги

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

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

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

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

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

Wireguard VPN с веб-интерфейсом без мучений Linux, VPN, Wireguard, Windows, Туториал, Длиннопост
  • Авторизуйтесь по паролю из того же письма

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

Wireguard VPN с веб-интерфейсом без мучений Linux, VPN, Wireguard, Windows, Туториал, Длиннопост
  • У каждого конфига есть кнопка скачать и QR-код. Нажмите на кнопку QR-кода и он появится на экране.

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

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

Wireguard VPN с веб-интерфейсом без мучений Linux, VPN, Wireguard, Windows, Туториал, Длиннопост

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

Заключение

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

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

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

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

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

Считается, что иметь сервер с выделенным 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

    1. Зайдите на сервер по SSH: ssh root@111.111.111.111

    2. Откройте файл конфига SSH nano /etc/ssh/sshd_config

    3. Найдите строчку PasswordAuthentication Yes и вместо Yes напишите No. Сохраните изменения, нажав Ctrl+X. На серверах таймвеба есть дополнительный файл с этой директивой, там тоже нужно отключить: mv /etc/ssh/sshd_config.d/50-cloud-init.conf ~

    4. Перезапустите службу SSH systemctl restart ssh

    5. Готово, теперь сервер в безопасности и авторизоваться по паролю не получится.

Wireguard VPN с веб-интерфейсом без мучений Linux, VPN, Wireguard, Windows, Туториал, Длиннопост

UPD: Обновления

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

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

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

Лига Сисадминов

1.5K постов17.7K подписчиков

Добавить пост

Правила сообщества

Мы здесь рады любым постам связанным с рабочими буднями специалистов нашей сферы деятельности.