March 26, 2022

Поднимаем свой VPN Wireguard. Руководство для совсем маленьких.

Всем привет!

Первая статья на вполне актуальную тему на сегодняшний день. Теперь VPN требуется каждому уважающему себя "маглу". Но вместо того чтобы приобретать платные VPN или пользоваться бесплатными, мы будем ставить свой VPN. Почему свой VPN лучше, спросишь ты? Всё просто: безопаснее и быстрее! Вдобавок существует вероятность того, что все централизованные VPN могут отвалиться и шо ты будешь без них делать? Правильно! Побежишь читать этот гайд!

Я только перебрался на teletype с Medium-a, давненько ничего не писал и изначально не хотел писать эту статью потому что вроде бы уже есть материал. Но есть пару нюансов: весь материал, гайды не совсем понятны для чайников, которые только узнали, что такое вообще VPN. Какие-то гайды уже перестали быть актуальными, а какие-то напичканы ошибками либо нюансами о которых тебе никто не говорит.

Поэтому я решился взять всё на себя, рассказать тебе, провести за ручку и рассказать всё простым, доступным языком, как здесь всё работает. Крч, всё как обычно, объясняю на пальцах!

Чтобы ты понимал, я дилетант в этом деле поэтому не кидайся в меня кирпичами, если что-то не так. Я сам, точно также, ставил и разбирался в этом по гайдам других людей, изучал работу командной строки и поэтому, если всё получилось у меня, то получиться и тебя!

Подготовка

Для полного набора тебе необходимы: Putty для Windows или Терминал для MAC OS(Я очень надеюсь, что ты знаешь, где их искать...хотя бы это сделай, пожалуйста, без моей помощи), FileZilla(По ссылке указана версия для MAC OS, но чуть ниже вы можете выбрать клиент для своей операционки. Скачать можно тут) и свой VPS(Virtual Private Server), крч сервак тебе еще нужен, но его мы поставим чуть позже. Ну и сам Wireguard, который скачать ты сможешь тут. Версия для Андройд, IOS.

Что у тебя есть на данный момент? Проверяй:

  • Терминал или Putty(для Windows)
  • FileZilla
  • Wireguard
  • Музончик для настроения

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

После нашей спец.подготовки, пора бросать вперед десантные войска! Погнали брать сервак на Digital Ocean. Ты можете брать любого другого хостера, но я себе сервер беру там.

По этой ссылке ты получишь 100$ на 2 месяца аренды сервера. Если зарегаешься по ней, то сделаешь всем приятно!

После того, как ты зарегался у тебя будет вот такие чудеса перед глазами. В правом верхнем углу у тебя уже должно быть 100$. Но мы идем дальше. Просто повторяй за мной без лишних вопросов и всё.

Создаем новый проект.

Пишем название проекта в поле "Name your project". Можешь назвать его "VPN", название не будет ни на что влиять. И в поле "Tell us what it's for" выбирай Machine learning / AI / Data processing.

После этого будет неинтересное окно, в нем ничего писать не надо, внизу нажмите на синюю кнопку skip.

Топаем дальше.

Далее создаем Droplet. Нажимай Create и и выбирай Droplet.

Выбираем Ubuntu версия 20.04. И идем ниже.

Выбираем Basic, Regular with SSD и тарифный план 5$ в месяц с почасовой оплатой. Тут, возможно, тебе нужна пояснительная бригада. Обрадую тебя, она уже здесь! Почему за 5$ тариф? И как он работает? Объясняю:

От того, что ты выберешь тариф с большей мощностью ничего не изменится, работать ничего лучше не будет. И да, почасовая оплата - это значит, что ты можешь попользоваться серваком 2-3 часа и отдать за него после этого условные 5 рублей, но за месяц использования эта сумма составит 5$. Вроде пояснил:D

Спускаемся дальше вниз!

Выбираем регион нашего сервера. Именно IP адрес одного из этих городов мы будем регулярно использовать при подключении через VPN. Можете выбрать какой угодно, я обычно, выбираю London, Frankfurt или Toronto.

Листаем вниз до до того, как увидим это:

Вот тут выбор только за тобой, мой юный падаван. Выбирай любой способ подключения к серверу, будь это ssh ключ или пароль. Поясняю - это то, что у тебя будет запрашивать сервер, когда ты к нему будешь подключаться через командную строку. Безопаснее, конечно, ssh ключ, но ты можешь выбрать способ подключения и через пароль. Никто тебе этого не запрещает.

Если выбираешь пароль, то просто придумай и запиши пароль и иди за мной дальше сквозь раздел "Как создать и добавить SSH key на Digital Ocean"! Но если ты выбрал SSH ключ, то как говориться - СПЕШЛ ФОР Ю.

Я лично, сейчас буду использовать пароль.

Как создать и добавить SSH key на Digital Ocean

Ну чтож, если ты захотел выбрать такой путь, то жми New SSH keys.

А теперь погнали с тобой в терминал(командная строка).

Пишем команды:

ssh-keygen

У тебя сгенерировался ключ, далее он просит тебя его назвать. Ты его называешь. Я назвал sshkey. После чего он тебя просит придумать парольную фразу. Напиши пароль, если он тебе нужен и повтори его(рекомендуется), но если он тебе не нужен, то просто жми Enter. И смотрим, что у нас с тобой должно получиться:

Далее тебе нужно найти этот ключ. Можешь найти файл sshkey.pub в ручную в папках и открыть в текстовом редакторе. А можешь прописать несколько команд.

ls

В ОФ инструкции на Digital Ocean пишут, что файл обычно скрывается в /Users/User_name/.ssh/id_rsa. На случай, если ты не сможешь найти файл, который назвал с окончанием .pub

Смотрим нужный нам файл(после команды ls ты увидишь много файлов и папок, крч всё содержимое), есть ли он у нас. Находим файл.

cat sshkey.pub

Открываем его.

Ты увидишь кучу непонятных символов, именно все эти символы тебе надо скопировать. Прям абсолютно все, начиная от ssh-rsa и до конца.

Идешь со всей скопированной писаниной на Digital Ocean.

Вставляешь это сюда, придумываешь название и жмешь add SSH key.

Молодец! Ты добавил SSH key!

Заканчиваем создание Droplet-а

После того, как сделали пароль или ssh ключ и добавили на Digital Ocean, мы листаем вниз и переходим к самому заключающему моменту.

Придумываем hostname. Пиши, что угодно, это имя будет просто отображаться в командной строке(терминале), когда подключишься к серверу. Нажимаем Create Project.

Droplet будет загружаться. Подожди, это займет секунд 10-40.

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

Установка Wireguaurd

Вообще существует несколько способов установки WireGuard. Но разберу я самый простой, как по мне, из этих способов.

Переходим в терминал(командная строка) и подключаемся к серверу:

Для MAC 0S

shh root@<ip адрес сервера>

Пишем команду и вставляем IP адрес сервера с Digital Ocean без треугольных скобок.

У нас спросят хотим ли мы продолжить подключение. Пишем yes. После чего у нас запросят пароль, который мы вписывали на Digital Ocean при создании Droplet. Вписывай пароль и не забывай, что пароль не отображается , так что не пугайся если ничего не видишь!

Для Windows

Открываем Putty

Заполняем все поля - ip address сервера, port - по умолчанию 22, соединение SSH и жмакаем кнопку Open.

После подключения к серверу все дальнейшие команды будут одинаковы для Putty и для терминала.

Обновляем систему:

sudo apt update && apt upgrade -y

После этого у тебя всё зашевелиться, будет обновляться. Подожди чуток.

Устанавливаем docker

sudo apt install docker-compose

Опять же все строки будут бегать, подожди чуток. Он у тебя спросит желаешь ли ты продолжить. Пиши Y. После того, как всё установиться, копируй и вставляй следующую команду:

git clone https://github.com/IAmStoxe/wirehole.git

И самая последняя команда:

cd wirehole && docker-compose up

Ты увидишь следующее:

Если ты получил подобные чудеса и QR code, то уже можешь подключить свой телефон собственному VPN серверу WireGuard, наведя камеру на QR code в приложении WireGuard, и закрыть консоль. Но кроме подключения одного телефона больше ты ничего не сможешь подрубить. Поэтому я покажу, как подвязать это дело к телефону, но если ты хочешь поставить VPN на несколько устройств, в том числе компьютеру, то смотри дальше.

Подключение VPN на телефоне.

Скачиваем приложение на телефон(Андройд, IOS).

Открываем.

Нажимай на синий кружок с белым плюсом.

Выбирай сканировать QR -код и сканируй код, который у нас вышел в терминале.

Придумываем название для нашего vpn и вписываем.

Подключаемся!

Всё, теперь мы подключили VPN на телефоне. Чтоб его убрать нужно еще раз нажать на ползунок.

Подключение других устройств

Ну вот мы и добрались до самого вкусного! Если ты решил не ограничиваться подключением одного устройства, то это для тебя.

Снова подключайся к серверу(как это сделать я уже писал в начале раздела "Установка WireGuard" ).

И вставляй следующую команду:

sudo nano /root/wirehole/docker-compose.yml

Далее пролистай СТРЕЛОЧКАМИ ВНИЗ до строчки PEERS и вставляй туда цифру сколько устройств ты хочешь подключить к VPN.

После чего сохрани изменения и выйди: CTRL+S и CTRL+X.

Рестартани VPN на сервере для применения новых настроек командами:

cd wirehole
docker-compose up

После чего ты увидишь QR коды - сколько пиров ты выбрал столько и QR кодов.

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

Подключение VPN для компьютеров.

Вот мы и добрались до финальной части нашего гайда!

Заходим в ранее скачанную и установленную программу FileZilla и жмем на менеджер сайтов. Оболочка на Windows может отличаться, но разницы не будет особо никакой. Всё тоже самое.

Выбираем:

1) Новый сайт и называй его как хочешь(Можешь назвать "VPN").

2)Далее заполняем строки. В поле "Протокол" выбирай SFTP. В поле "Хост" указывай ip адрес своего сервера. "Тип входа" выбирай Запросить пароль. В "поле пользователя" пиши root.

3)После заполнения нажми кнопку "соединиться".

После этого появится окно для входа. В нем будет 2 поля - Пользователь и пароль. Пользователь - root. Пароль - тот, что от сервера.

После подключения выбирай папку wirehole.

Далее заходим в папку wireguard.

Выбирай все peer-ы, которые ты выбрал, нажимай правую кнопку мыши и нажимай скачать.

Все скачанные папки должны у тебя отобразиться в левой части FileZilla.

Если ты зайдешь в каждую peer папку, то найдешь там 2 файла. peer.conf и peer.png. С помощью peer.conf мы будем дальше подключаться к VPN, а peer.png хранит в себе тот самый QR code для подключения.

Переходим к самому подключению VPN. Заходи в ранее скачанный и установленный WireGuard. Жми на кнопку по середине - "Импорт туннелей из файла". Кнопку сложно не заметить:D

Рыщем в поисках папки нужного нам peer-а(peer1, peer2 и тд). И находим внутри папки файл peer.conf. Выбираем его и жмем Импорт.

Нажимаем кнопку Подключен.

Вот и всё!

Ты только что поставил и подключил свой VPN через сервер. Можешь зайти проверить свой IP адрес на https://myip.ru/.

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

У меня на этом всё! Всем спасибо! Надеюсь этот гайд был полезен для тебя! Если есть какие-то недочеты или поправки, то смело пиши. Подправим!

Пользуйся на здоровье!