Поднимаем свой VPN Wireguard. Руководство для совсем маленьких.
Первая статья на вполне актуальную тему на сегодняшний день. Теперь VPN требуется каждому уважающему себя "маглу". Но вместо того чтобы приобретать платные VPN или пользоваться бесплатными, мы будем ставить свой VPN. Почему свой VPN лучше, спросишь ты? Всё просто: безопаснее и быстрее! Вдобавок существует вероятность того, что все централизованные VPN могут отвалиться и шо ты будешь без них делать? Правильно! Побежишь читать этот гайд!
Я только перебрался на teletype с Medium-a, давненько ничего не писал и изначально не хотел писать эту статью потому что вроде бы уже есть материал. Но есть пару нюансов: весь материал, гайды не совсем понятны для чайников, которые только узнали, что такое вообще VPN. Какие-то гайды уже перестали быть актуальными, а какие-то напичканы ошибками либо нюансами о которых тебе никто не говорит.
Поэтому я решился взять всё на себя, рассказать тебе, провести за ручку и рассказать всё простым, доступным языком, как здесь всё работает. Крч, всё как обычно, объясняю на пальцах!
Чтобы ты понимал, я дилетант в этом деле поэтому не кидайся в меня кирпичами, если что-то не так. Я сам, точно также, ставил и разбирался в этом по гайдам других людей, изучал работу командной строки и поэтому, если всё получилось у меня, то получиться и тебя!
Подготовка
Для полного набора тебе необходимы: Putty для Windows или Терминал для MAC OS(Я очень надеюсь, что ты знаешь, где их искать...хотя бы это сделай, пожалуйста, без моей помощи), FileZilla(По ссылке указана версия для MAC OS, но чуть ниже вы можете выбрать клиент для своей операционки. Скачать можно тут) и свой VPS(Virtual Private Server), крч сервак тебе еще нужен, но его мы поставим чуть позже. Ну и сам Wireguard, который скачать ты сможешь тут. Версия для Андройд, IOS.
Что у тебя есть на данный момент? Проверяй:
Аренда сервера на 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.
Заканчиваем создание Droplet-а
После того, как сделали пароль или ssh ключ и добавили на Digital Ocean, мы листаем вниз и переходим к самому заключающему моменту.
Придумываем hostname. Пиши, что угодно, это имя будет просто отображаться в командной строке(терминале), когда подключишься к серверу. Нажимаем Create Project.
Droplet будет загружаться. Подожди, это займет секунд 10-40.
Если ты видишь IP адрес, то могу тебя поздравить ты наконец-то создал droplet и можешь подключиться к серверу.
Установка Wireguaurd
Вообще существует несколько способов установки WireGuard. Но разберу я самый простой, как по мне, из этих способов.
Переходим в терминал(командная строка) и подключаемся к серверу:
shh root@<ip адрес сервера>
Пишем команду и вставляем IP адрес сервера с Digital Ocean без треугольных скобок.
У нас спросят хотим ли мы продолжить подключение. Пишем yes. После чего у нас запросят пароль, который мы вписывали на Digital Ocean при создании Droplet. Вписывай пароль и не забывай, что пароль не отображается , так что не пугайся если ничего не видишь!
Заполняем все поля - ip address сервера, port - по умолчанию 22, соединение SSH и жмакаем кнопку Open.
После подключения к серверу все дальнейшие команды будут одинаковы для Putty и для терминала.
sudo apt update && apt upgrade -y
После этого у тебя всё зашевелиться, будет обновляться. Подожди чуток.
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 и провести тест скорости.