Свой VPN – свои правила. Нахаляву. Или как сказать уверенное НЕТ цензуре. Часть 1.

Опять не открывается любимый порносайт? А все потому, что Жарову с Горелкиным не понравились очередные порно актеры,...

Свой VPN – свои правила. Нахаляву. Или как сказать уверенное НЕТ цензуре. Часть 1.

Опять не открывается любимый порносайт? А все потому, что Жарову с Горелкиным не понравились очередные порно актеры, может быть? Бывает. А еще бывает, что не открывается сайт с фильмами или музычкой. Или просто сайт газеты или журнала. В нашей стране может быть всё. Это цензура. И если ты не хочешь, чтобы “дядя” решал за тебя что хорошо, а что плохо цензуру можно обходить. Делается это просто – с помощью VPN. Который в РФ пока что разрешен.

Хочется напомнить, что:

Статья 19 Всеобщей декларации прав человека гласит:
Каждый человек имеет право на свободу убеждений и на свободное выражение их; это право включает свободу беспрепятственно придерживаться своих убеждений и свободу искать, получать и распространять информацию и идеи любыми средствами и независимо от государственных границ

Никаких платных серверов. В этот раз всё своими руками. Полностью нахаляву.

В этой статье я расскажу тебе как поднять свой собственный VPN абсолютно бесплатно, да еще и в облаках с возможностью смены стран. Для темных делишек он не подойдёт – тебе понадобится номер телефона и рабочая карта. Но для обхода цензуры такая мера – в самый раз. Более того, зачастую, через VPN все работает немного быстрее, так как РКН должным образом не может настроить DPI, а через VPN траффик минует близорукое око наших властей.

Дело в том, что гиганты облачного сервиса – Microsoft Azure, Amazon AWS предоставляют возможность абсолютно бесплатно попробовать их сервисы. Скажу сразу, все эти сервисы действительно великолепны и очень удобны для реализации проектов любых размеров. Мы же, восспользовавшись пробным периодом, просто поднимем VPN сервер.

Поднимать можно все что угодно – выбор ОС огромен. Но про это всё вы можете и без меня почитать на просторах интернета. Я же просто расскажу, как регистрироваться в сервисах и настраивать простейший, но очень мощный VPN под названием WireGuard.

WireGuard, идеален для пользователя. Все низкоуровневые решения приняты в спецификации, поэтому процесс подготовки типичной VPN инфраструктуры занимает всего несколько минут. Нафакапить в конфигурации практически невозможно.

Но начнем с регистрации в облачных гигантах.

Для работы с SSH нам понадобится полный набор PuTTY, так что лучше скачать сразу MSI-пакет с инсталлятором, который всё установит и создаст новую группу в главном меню.

Microsoft Azure

Многие совершенно незаслуженно обходят Azure стороной. И совершенно зря. По сравнению с AWS все намного проще. Проверок и всяческого контроля намного меньше. Регистрация – вообще в два шага. На Azure я поднял VPN за 15 минут. И вот как я это сделал.

Мои скриншоты будут на английском совершенно не случайно. В случае, если вы указываете другую страну при регистрации, даже если ваша карта и телефон – русские, при возникновении спорной ситуации с органами, доблестным сотрудникам будет куда сложнее получить образ вашего диска, так как им как минимум придется доказывать, что вы – русский человек и все эти данные будут проверятся месяцами.

Для начала вам нужен Microsoft ID. Это обычная учетка Microsoft. Учетка от Skype или Hotmail или других сервисов MS – подойдёт. Если ее нет идем на https://account.microsoft.com/

Дальше заходим на https://azure.microsoft.com/ и выбираем Start Free.

Видим следующее. Майкрософт дарит нам 200 баксов и год халявы. Все, что нужно сделать – это заполнить форму и подтвердить платежное средство. Деньги будут списаны только для проверки того, что карта рабочая. Также смской будет проверен номер телефона. Я указал страну Словакия, использовал карту Киви и номер Теле2, все прошло без проблем.

Проходим регистрацию и попадаем в такое меню

Это просто справка. Можно почитать, а можно переходить сразу к делу. В верхней части экрана нажимаем Home и видим следующее:

Нажимаем Create Virtual Machine. То есть создаем свою виртуалку. Больше здесь нам пока трогать ничего не надо.

В этом меню мы называем группу виртуальных машин, выбираем страну и конфигурацию. В пробной версии доступны не все страны. Я рекомендую выбирать Северную Европу.

Называем наш инстанс. Выбираем ОС Ubuntu 19.04. Ниже видим Change type. Нажимаем туда. Для нас подойдет самая дешевая конфигурация, но поскольку нам дают 200 долларов на год, то можно выбрать что нибудь и подороже. Ведь кроме VPN машину всегда можно использовать и для других экспериментов. Кодить на ней, например или тестить что-то.

Выбрав подходящую виртуалку возвращаемся в предидущее меню.

Осталось лишь задать логин и пароль для новой машины и установить правила firewall. Откройте SSH и смело жмите Review & Create.

Дальше последует выбор диска – выбирайте SSD, можете взять место побольше, но под VPN на много не потребуется.

Далее последует настройка сетевых интерфейсов.

Установите все, как на изображении.

Далее так же.

После этого начнется создание вашей виртуальной машины.

По завершении вы увидите такое изображение.

Ваша виртуальная машина готова! Нажимаем Go to Resource.

Еще одним важным шагом будет настройка Firewall, чтобы он пропускал наш трафик. Нажимаем Networking.

Это меню настройки Firewall, наша задача полностью отключить его, чтобы ничего не мешало циркуляции пакетов. Нажимаем Add Inbound Rule и создаем правило как на следующей иллюстрации.

Сохраняем правило. Возвращаемся в предидущее меню. Теперь все готово к подключению и настройке WireGuard.

Открываем Putty и прописываем туда IP нашей машины. Так же было бы не лишним его сохранить. Нажимаем Connect и в открывшимся окне вводим ваш логин и пароль, указанный ранее. Все готово. Переходим к концу статьи.

Amazon AWS

1. Регистрация аккаунта AWS

Для регистрации бесплатного аккунта AWS требуется реальный номер телефона и платежеспособная кредитная карта Visa или Mastercard. Рекомендую воспользоваться виртуальными картами которые бесплатно предоставляет Яндекс.Деньги или Qiwi кошелек. Для проверки валидности карты, при регистрации списывается 1$ который в дальнейшем возвращается.

Необходимо открыть браузер и перейти по адресу: https://aws.amazon.com/ru/
Нажать на кнопку “Регистрация”

Стартовая страница AWS Amazon

Заполнить данные и нажать на кнопку “Продолжить”

Регистрации аккаунта AWS Amazon

Заполнить контактные сведения.

Указание контактных данных при регистрации аккаунта AWS Amazon

Номер карты, срок окончания и имя держателя карты.

Указание платежных данных при регистрации аккаунта AWS Amazon

На этом этапе идет подтверждение номера телефона и непосредственное списание 1$ с платежной карты. На экране компьютера отображается 4х значный код, и на указанный телефон поступает звонок из Amazon. Во время звонка необходимо набрать код, указанный на экране.

Подтверждение аккаунта AWS Amazon

Выбираем — Базовый план (бесплатный)

Выбор тарифного плана AWS Amazon
Вход в консоль управления AWS Amazon
Консоль управления AWS Amazon

Прежде чем выбирать датацентр, рекомендуется протестировать через https://speedtest.net скорость доступа к ближайшим датацентрам, в моей локации такие результаты:

Лучшие результаты по скорости показывает датацентр в Лондоне. Поэтому я выбрал его для дальнейшей настройки.

2. Создание инстанса AWS

Переход на страницу запуска инстанса
Запуск пошагового мастера создания инстанса
Выбор типа операционной стистемы

По умолчанию выбран инстанс t2.micro, он нам и нужен, просто нажимаем кнопку Next: Configure Instance Detalis

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

В дальнейшем мы подключим к нашему инстансу постоянный публичный IP, поэтому на этом этапе мы отключаем автоназначение публичного IP, и нажимаем кнопку Next: Add Storage

Настройка параметров инстанса

Указываем размер “жесткого диска”. Для наших целей достаточно 16 гигабайт, и нажимаем кнопку Next: Add Tags

Подключение хранилища

Если бы мы создавали несколько инстансов, то их можно было бы группировать по тегам, для облегчения администрирования. В данном случае эта фукнциональность излишняя, сразу нажимаем кнопку Next: Configure Security Gorup

Настройка тегов

На этом этапе мы настраиваем брандмауэр, открывая нужные порты. Набор открытых портов называется “Группа безопасности” (Security Group). Мы должны создать новую группу безопасности, дать ей имя, описание, добавить порт UDP (Custom UDP Rule), в поле Rort Range необходимо назначить номер порта, из диапазона динамических портов 49152—65535. В данном случае я выбрал номер порта 54321.

Открытие портов

После заполнения необходимых данных, нажимаем на кнопку Review and Launch

На данной странице идет обзор всех настроек нашего инстанса, проверяем все ли настройки в порядке, и нажимаем кнопку Launch

Обзор всех настроек инстанса

Дальше выходит диалоговое окно, предлагающее либо создать, либо добавить существующий SSH ключ, с помощью которого мы в дальнейшем будет удаленно подключатся к нашему инстансу. Мы выбираем опцию “Create a new key pair” чтобы создать новый ключ. Задаем его имя, и нажимаем кнопку Download Key Pair, чтобы скачать созданные ключи. Сохраните их в надежное место на диске локального компьютера. После того как скачали — нажимаете кнопку Launch Instances

Создание ключей доступа

Здесь показан, этап сохранения созданных ключей из предыдущего шага. После того, как мы нажали кнопку Download Key Pair, ключ сохраняется в виде файла сертификата с расширением *.pem. В данном случае я дал ему имя wireguard-awskey.pem

Сохранение ключей доступа

Далее мы видим сообщение об успешном запуске только что созданного нами инстанса. Мы можем перейти к списку наших инстансов нажав на кнопку View instances

Обзор результатов создания инстанса

Дальше нам необходимо создать постоянный внешний IP адрес, через который мы и будем подключатся к нашему VPN серверу. Для этого в навигационной панели в левой части экрана необходимо выбрать пункт Elastic IPs из категории NETWORK & SECTURITY и нажать кнопку Allocate new address

Запуск создания внешнего IP

На следующем шаге нам необходима чтобы была включена опция Amazon pool (включена по умолчанию), и нажимаем на кнопку Allocate

Настройка создания внешнего IP

На следующем экране отобразится полученный нами внешний IP адрес. Рекомендуется его запомнить, а лучше даже записать. он нам еще не раз пригодиться в процессе дальнейшей настройки и использования VPN сервера. В данном руководстве в качестве примера я использую IP адрес 4.3.2.1. Как записали адрес, нажимаем на кнопку Close

Обзор результатов создания внешнего IP адреса

Далее нам открывается список наших постоянных публичных IP адресов (elastics IP).

Список внешних IP адресов

В этом списке мы выбираем полученный нами IP адрес, и нажимаем правую кнопку мыши, чтобы вызвать выпадающее меню. В нем выбираем пункт Associate address, чтобы назначить его ранее созданному нами инстансу.

Назначение внешнего IP инстансу

На следующем шаге выбираем из выпадающего списка наш инстанс, и нажимаем кнопку Associate

Настройка назначения внешнего IP

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

Обзор результатов назначения внешнего IP

Теперь мы можем подключиться к нашему вновь созданному инстансу из вне, со своего компьютера по SSH.

3. Подключение к инстансу AWS

SSH — это безопасный протокол удаленного управления компьютерными устройствами.

Для подключения к компьютера с Windows, прежде необходимо скачать и установить программу Putty.3.1.1. Импорт приватного ключа для Putty

После установки Putty, необходимо запустить утилиту PuTTYgen идущую с ней в комплекте, для импорта ключа сертификата в формате PEM, в ормат, пригодный для использования в программе Putty. Для этого в верхнем меню выбираем пункт Conversions->Import Key

Импорт приватного ключа для Putty

Далее, выбираем ключ, который мы ранее сохранили , в нашем случае его имя wireguard-awskey.pem

Выбор ключа AWS в формате PEM

На этом шаге нам необходимо указать комментарий для этого ключа (описание) и задать для безопасности пароль и его подтверждение. Он будет запрашиваться при каждом подключении. Таким образом мы защищаем ключ паролем от не целевого использования. Пароль можно не задавать, но это менее безопасно, в случае, если ключ попадет в чужие руки. После нажимаем кнопку Save private key

Задание параметров импорта ключа

Открывается диалоговое окно сохранения файла, и мы сохраняем наш приватный ключ в виде файла с расширением .ppk, пригодного для использования в программе Putty.
Указываем имя ключа (в нашем случае wireguard-awskey.ppk) и нажимаем кнопку Сохранить.

Сохранение импортированного ключа

Открываем программу Putty, выбираем категорию Session (она открыта по умолчанию) и в поле Host Name вводим публичный IP адрес нашего сервера, который мы получили на шаге 2.2.3. В поле Saved Session вводим произвольное название нашего соединения (в моем случае wireguard-aws-london), и далее нажимаем кнопку Save чтобы сохранить сделанные нами изменения.

Создание соединения

Дальше в категории Connection, выбираем подкатегорию Data и в поле Auto-login username водим имя пользователя ubuntu — это стандартный пользователь инстанса на AWS с Ubuntu.

Настройка автологина пользователя

Затем переходим в подкатегорию Connection/SSH/Auth и рядом с полем Private key file for authentication нажимаем на кнопку Browse… для выбора файла с сертификатом ключа.

Выбор приватного ключа для соединения по SSH

Указываем ключ, импортированный нами ранее на этапе 3.1.1.4, в нашем случае это файл wireguard-awskey.ppk, и нажимаем кнопку Открыть.

Открытие импортированного ключа

Вернувшись на страницу категории Session нажимаем еще раз кнопку Save, для сохранения сделанных ранее нами изменений на предыдущих шагах (3.1.2.2 — 3.1.2.4). И затем нажимаем кнопку Open чтобы открыть созданное и настроенное нами удаленное подключение по SSH.

Сохранение настроек и запуск подключения

На следующем шаге, при первой попытке подключиться, нам выдается предупреждение, у нас не настроено доверие между двумя компьютерами, и спрашивает, доверять ли удаленному компьютеру. Мы нажимем кнопку Да, тем самым добавляя его в список доверенных хостов.

Настройка доверия между хостами

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

Ввод пароля для доступа к ключу

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

Приветственное сообщение об успешном подключении

Инстанс готов. Можно приступать к установке WireGuard.

Настройка WireGuard

Все готово. Мы в наших находимся в терминалах наших машин, осталось их только настроить. Это просто. Набирайте за мной.

sudo apt-get update 
sudo apt-get upgrade 
sudo apt-get install software-properties-common 
sudo add-apt-repository ppa:wireguard/wireguard 
sudo apt-get update 
sudo apt-get install wireguard-dkms linux-headers-$(uname -r)

Для настройки сервера WireGuard воспользуемся открытым решением easy-wg-quick. Этот скрипт автоматически формирует файлы конфигурации и позволяет легко манипулировать настройками. Предварительно надо установить сам wireguard и некоторые дополнительные утилиты.

sudo apt-get install wireguard-tools mawk grep iproute2 qrencode 
wget https://raw.githubusercontent.com/burghardt/easy-wg-quick/master/easy-wg-quick 
chmod +x easy-wg-quick

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

./easy-wg-quick

Чтобы добавить настройки ещё для одного клиента (ноутбука, например), надо ещё раз выполнить эту же команду, указав имя нового профиля:

./easy-wg-quick имя_профиля

Например, для имени профиля win10 будет создан соответствующий файл wgclient_win10.conf. Его содержимое можно просмотреть командой cat, что пригодится при настройке клиента WireGuard в будущем.

cat ./wgclient_win10.conf

После добавления всех нужных профилей осталось лишь добавить сервер WireGuard в автозапуск и включить его:

cp wghub.conf /etc/wireguard/wghub.conf 
systemctl enable wg-quick@wghub
systemctl start wg-quick@wghub

Для просмотра текущих подключений используйте эту команду:  

wg show

Клиенты для Windows, Android, iOS и других ОС можно скачать на сайте WireGuard. С мобильными версиями всё просто — достаточно отсканировать QR-код. Или же, как и для всех остальных клиентов, вручную скопировать настройки из файлов wgclient_*.conf.

Setting up WireGuard on Windows

В случае Windows-клиента в меню левой нижней кнопки надо выбрать Add empty tunnel, вставить в новом окне всё содержимое conf-файла, указать имя профиля (Name). Опционально можно включить функцию kill-switch для блокировки любого трафика вне VPN-подключения. Наконец, надо сохранить (Save) и активировать (Activate) соединение.

WireGuard отлично работает и под Android. В случае с easy-wg-quick достаточно просто сосканировать qr-код из экрана терминала.

Screenshot Image

Также нельзя не отметить поддержку WireGuard в последних моделях роутеров Mikrotik. Мы обязательно расскажем вам как настроить прозрачный роутинг всего, что находится у вас дома с помощью WireGuard и Mikrotik.

В актуальных моделях роутеров Keenetic с прошивкой версии 3.3 или старше также появилась поддержка VPN-подключений WireGuard — нужно установить одноимённый компонент. Чтобы импортировать настройки соединения, нужно сохранить содержимое файла wgclient_*.conf (см. выше) в текстовый документ, а затем в разделе «Другие подключения» загрузить параметры из этого файла. Роутер создаст на их основе новое подключение, которое нужно активировать переключателем в левой части списка.

Для корректной работы надо сделать несколько небольших изменений (кстати, после каждого действия не забывайте нажимать кнопку «Сохранить» в нижней части веб-интерфейса). Во-первых, включить галочку «Использовать для входа в Интернет». Во-вторых, поле «Разрешенные подсети» привести к виду 0.0.0.0/0. В-третьих, в разделе «Приоритеты подключений» перетащить свежесозданное подключение выше всех остальных.

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

Напоследок напомним «народную» мудрость: на VPN надейся, а сам не плошай. Проще говоря, надо всегда соблюдать осторожность и цифровую гигиену. К совсем уж подозрительным сетям и вовсе подключаться не надо, да и про базовые правила забывать не стоит. Их не так уж много: вовремя ставить обновления ОС и ПО, использовать двухфакторную аутентификацию, тщательно выбирать используемые программы, проверять разумность запросов ПО на доступ к различным ресурсам устройства, обзавестись современным антивирусом. Всё это касается и смартфонов, и планшетов, и ноутбуков, и десктопов.

Облака – очень мощные средства для работы. На них можно строить сложнейшие решения. Делать из облачной машины VPN сервер – это стрельба из мухи по воробьям. Но именно поэтому облачные провайдеры снисходительно относятся к такому.

WireGuard в свою очередь это современный очень простой и быстрый VPN сервис, поддерживающий множество современных типов шифрования и набирающий популярность.

Желаем вам удачи в настройке. Берегите себя и ваши данные.

Очень злой админ
Очень злой админ Автор статьи

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