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 [email protected]
- Откройте файл конфига 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
- Готово, теперь сервер в безопасности и авторизоваться по паролю не получится. Сервер настроен и готов к работе.
Обновления
По умолчанию, автоматические обновления (unattended upgrades) системы уже включены. Проверить их можно командой systemctl status unattended-upgrades --no-pager -l
Можно еще создать пользователя чтобы не сидеть под рутом..:)
Если появились вопросы — пишите в комментариях, буду рад помочь. Подписывайтесь на мой телеграм-канал — в нем я пишу полезные статьи и рассказываю истории из мира IT.
Меня начинает пугать, то что решение с собственным vpn сервером стали слишком распространены и простые даже для далеких от it людей.
Скоро ркн может активизироваться и начнет банить такие способы как это произошло с популярными vpn-приложениями. Тот же WireGuard к сожалению очень легко банится.
Вперед не РКН, а ресурсы зарубежные забанят, особенно которые "только не РФ, Беларусь и Северная Корея". Меня Adobe от беты Firefly отключили только за то, что нидерланднский VPN на выделенном сервере какой-то не совсем нидерландский :) был, через который я заходил через Outline. Точнее, что он принадлежит Хосткею. Тут чую также будет. Банят уже не по IP, а по хостерам.
А ты молодец, хорошая статья
Спасибо
"Если у вас есть иностранная карта" то эти танцы с бубном вам не нужны.
А без них не так интересно будет
Мучался в vnc консоли пару месяцев, потом разобрался как использовать ssh, чтобы можно было копировать публичные ключи а не переписывать на глаз. Через полгода увидел открытый порт с пробросом на 80 и установленный nginx, перешел и афигел - все это время у меня был установлен веб-интерфейс wireguard. Единственное, чтобы применились изменения в конфигах, приходится подрубаться к серверу и вручную перезапускать wg
вот бы ещё такое же решение, только для SSTP, и желательно упакованное в докер
А зачем он с российским IP?
Волк преодолевает тысячи миль только ради мяса
?
отставать