Wireguard VPN с веб-интерфейсом без мучений
Всем привет.
Это еще один пост про VPN на своем сервере. Сегодня мы установим Wireguard VPN с удобным веб-интерфейсом, позволяющим создавать конфиги для друзей через браузер. Я сам пользуюсь таким решением и еще 20 моих знакомых.
Основные проблемы с VPN возникают во время поиска достойного провайдера VPS, которому можно заплатить российской картой. Выбирайте какой нравится, мне понравился TimeWeb, в котором всё уже готово. Правда я видел в комментариях его ругали, поэтому как вариант использовать Firstbyte. Он стоит 300р и чуть геморройнее регистрация, но там можно указать левую почту и рандомный телефон, взяв всё из генератора личностей.
Далее будет 2 шага: аренда сервера и создание клиентов для себя и друзей.
Аренда сервера
Переходим к аренде сервера. Выбирайте любого понравившегося провайдера. Если у вас есть иностранная карта, могу порекомендовать mvps.net, у них есть готовое VPN решение.
Заходите на сайт и регистрируетесь
Выбирайте в меню слева раздел Облачные серверы > Создать > Маркетплейсы > VPN > Wireguard-GUI
Регион выбирайте какой хотите, я выбрал Польшу.
Отключайте бэкап в разделе Дополнительные услуги
Оплачиваете. Я заплатил за месяц, вышло 188 руб. По умолчанию, карта оплаты привязывается на будущее — ее можно отвязать в разделе финансы.
Ждем письма на почту с данными для подключения к VPN.
Создание клиентов
Установка сервера закончена, осталось подключить клиенты — телефоны и компьютеры. Их может быть сколько угодно, у нас неограниченный трафик. Установите Wireguard на устройства.
Перейдите по ссылке в письме
Авторизуйтесь по паролю из того же письма
Нажмите кнопку New Client и укажите произвольное название. Я использую систему Страна-имя-клиент, чтобы не путаться в людях. Для примера создадим для подруги Алины конфиг для телефона Pol-Alina-Mobile.
У каждого конфига есть кнопка скачать и QR-код. Нажмите на кнопку QR-кода и он появится на экране.
Откройте Wireguard на телефоне и нажмите кнопку плюса
Отсканируйте созданный в веб-интерфейсе QR-код и вуаля, всё готово. Наш впн работает. Проверить это можно на любом сервисе вроде 2ip:
Подобным образом надо создать конфиги для всех устройств.
Заключение
Это раздел для продвинутых. Тут будут необязательные настройки и мои рассуждения.
Зачем это всё?
Бесплатный сыр бывает только в мышеловке. Если вы используете бесплатный VPN, то спросите себя — на чем он зарабатывает? Бесплатные VPN сервисы продают ваши данные рекламодателям. Вы вообще ничего не знаете о том, что делают с вашим трафиком и никак этим не управляете. В дополнение, правительство стремится заблокировать популярные VPN сервисы.
Свой VPN сервер гарантирует вам не только стабильный канал, но и уменьшенную вероятность блокировки. Я пишу уменьшенную вероятность, но не гарантированную защиту — так как правительство постоянно создает новые методы противодействию обходу блокировок.
Wireguard — довольно популярный протокол и его легко обнаружить. Как защитить свой сервис от блокировки мы рассмотрим в следующих статьях.
Вопросы безопасности
Считается, что иметь сервер с выделенным IP-адресом и авторизацией по паролю небезопасно. Но пароль, который генерирует хостер достаточно хорош. Вы можете убедиться сами — например, для взлома пароля zYq6FV3j понадобится тысяча лет. В общем, это можно выкинуть из головы, если не хотите заморачиваться.
Но в идеале всё-таки аутентификацию по паролю отключить и оставить только по ключу. Ключ — по сути своей, это просто длинный пароль, который хранится у нас на компьютере.
Для настройки авторизации по ключу:
Откройте Powershell и выполните команду ssh-keygen. Нажмите Enter 3 раза
Система сохранит файл ключа в папке C:\Users\Ваше_Имя_пользователя\.ssh/. Откройте эту папку и найдите в ней файл id_rsa.pub.
Откройте файл текстовым редактором и скопируйте содержимое
Вернитесь на сайт хостера и выберите свой сервер в разделе Облачные серверы
Перейдите в раздел Доступ
В поле SSH-ключи нажмите кнопку Изменить и вставьте скопированный ключ
Ключ добавлен. Вернитесь на шаг назад и активируйте созданный ключ.
Подробная инструкция про ключи есть на сайте таймвеба.Готово, теперь можно авторизоваться на сервере без пароля. Осталось отключить аутентификацию по паролю. Для примера я буду использовать адрес сервера 111.111.111.11
Зайдите на сервер по SSH: ssh root@111.111.111.111
Откройте файл конфига SSH nano /etc/ssh/sshd_config
Найдите строчку PasswordAuthentication Yes и вместо Yes напишите No. Сохраните изменения, нажав Ctrl+X. На серверах таймвеба есть дополнительный файл с этой директивой, там тоже нужно отключить: mv /etc/ssh/sshd_config.d/50-cloud-init.conf ~
Перезапустите службу SSH systemctl restart ssh
Готово, теперь сервер в безопасности и авторизоваться по паролю не получится.
UPD: Обновления
По умолчанию, автоматические обновления (unattended upgrades) системы уже включены. Проверить их можно командой systemctl status unattended-upgrades --no-pager -l
Можно еще создать пользователя чтобы не сидеть под рутом..:)
Если появились вопросы — пишите в комментариях, буду рад помочь. Подписывайтесь на мой телеграм-канал — в нем я публикую статьи и рассказываю всякий айтишный кринж.
Лига Сисадминов
1.5K постов17.7K подписчиков
Правила сообщества
Мы здесь рады любым постам связанным с рабочими буднями специалистов нашей сферы деятельности.