Как установить и настроить свой личный VPN
Если вы много путешествуете, то наверняка используете бесплатные общественные Wi-Fi точки доступа в сеть, чтобы проверить, как там ваши дела на Forex, долить сеточки и закрыть прибыльные сделки. Иногда сделать это в другой стране невозможно. Те же Google, Facebook, Youtube, а также многие другие популярные сервисы в некоторых странах просто заблокированы, например, в Китае. Вообще, многие интернет-сайты цензурируются рядом правительств, и больше всего в странах с «железным занавесом» не любят Google, с помощью которого можно найти практически любую информацию. Кстати, в самом Google не стесняются и подобную информацию не скрывают, давая возможность узнать, правительства каких стран блокируют доступ к их сайту или запрашивают информацию о пользователях. Узнать эту информацию можно на официальной страничке Google под названием «Отчет о доступности сервисов и данных». Помимо недоступности сервисов в некоторых странах, в путешествиях вообще есть определенная проблема с нормальным доступом в Интернет. Не всегда удается купить местную SIM-карту, поэтому приходится подключаться к Wi-Fi сетям в отелях, аэропортах и кафе. Фактически мы ничего не знаем об этих сетях: кем они были созданы, насколько надежны, и не «слушает» ли кто-либо сейчас наш трафик.
Чтобы ваши личные данные, такие как пароли и логины от терминалов и кошельков, утекли в карманы не очень добросовестных людей (вместе с вашими деньгами), не обязательно выезжать за границу. Вы всегда можете для этого просто подключиться к бесплатной точке доступа в любимой кафешке, в метро, электричке или в любом другом месте. Вы понятия не имеете, насколько безопасны эти сети, и, вполне возможно, прямо сейчас весь ваш трафик прослушивается злоумышленниками, которые сидят за соседним столиком. Более того, находиться непосредственно рядом не обязательно, достаточно сделать довольно нехитрые настройки общественной Wi-Fi сети, чтобы получать нужные данные «с доставкой на дом». Отсюда простое правило – всегда, когда вы подключаетесь к общественной сети, вы должны понимать, что все данные, с которыми вы работаете в рамках этой сессии, отныне тоже достояние общественности, в том числе и ваши счета, кошельки и личные переписки с фоточками котиков. Еще одно неудобство – реклама. Дело в том, что эффективная реклама – это таргетированная и персонализированная реклама. Рекламные сети, арендующие площади на страницах сайтов, собирают о нас необходимую им информацию: пол, возраст, страна и адрес проживания, личные интересы и хобби, профессиональные интересы и навыки, сексуальные предпочтения и пр. Так уж сложилось, что рекламные сети знают о вас больше, чем самые близкие ваши родственники. Кроме того, не стоит забывать и о правительстве, которое в последние годы старается взять интернет под свой контроль, ограничивая нашу свободу в сети. Законодательство обязывает интернет-провайдеров записывать весь трафик пользователей и хранить какое-то время на своих серверах (в России это система СОРМ). К этому архиву могут получить неограниченный доступ спецслужбы и с легкостью использовать эту информацию против пользователей. На сегодняшний день уже имеется немало прецедентов, когда люди за какой-то неосторожный комментарий в любимом виртуальном вконтактике отправлялись во вполне реальную тюрьму на не менее реальный срок. Ну и, конечно же, Роскомнадзор, который блокирует не только неугодные правительству сайты, но и вместе с ними вообще любые, какие попадутся на пути. А теперь, кстати, еще и VPN-сервисы. Как видите, абсолютно никому, кроме вас самих, не выгодна ваша анонимность. Даже наоборот – гораздо удобнее знать о том, что вы думаете и чем живете, чтобы показать вам в нужный момент правильный баннер, залезая в ваш кошелек, ну или просто посадить, если вас что-то не устраивает.
Как решить эту проблему?

Если вы дочитали до этого места, то наверняка понимаете, что просто необходимо принять какие-то меры для обеспечения своей безопасности. Хотя многие могут возразить, что им нечего скрывать и они спят спокойно. Таким людям предлагаю просто выложить в комментариях к статье логины и пароли от кошельков и онлайн- кабинетов. А остальным я расскажу, что такое VPN и как он может вам помочь. В основном его используют для смены IP-адреса и своей страны, чтобы обойти различные блокировки сайтов на работе и дома. Кроме этого, VPN-соединение помогает зашифровать трафик и таким образом обеспечивает безопасность передаваемых данных. Прежде чем продолжить, я хочу подчеркнуть, что VPN не даст вам полной анонимности в сети. Но при этом он поможет вам:
- избавиться от слежения со стороны интернет-провайдеров и рекламных сетей;
- исключить модификацию трафика;
- обойти ограничения на посещение сайтов;
- зашифровать весь свой трафик.
Немного об анонимности в сети

Ваш трафик с использованием VPN по-прежнему может быть перехвачен – от этого практически нет спасения! Но он будет зашифрован, а расшифровка перехваченных данных – сложное и дорогостоящее занятие, которое вряд ли стоит того, что у вас имеется на счете в банке. Если вы хотите стать анонимным в сети, используйте VPN+Tor для сокрытия самого факта использования Tor. Но это, скорее всего, вам не понадобится, если только вы не совершаете какие-либо противозаконные действия. Поэтому учить вас полной анонимности в сети я не имею морального права, а VPN защитит вас от большинства угроз.
Кроме того, никакие программные и технические средства не защитят вашу анонимность, если вы сами не будете соблюдать осторожность. Если есть возможность не сообщать о себе истинные данные – не сообщайте. И не используйте социальные сети и мессенджеры, сотрудничающие со спецслужбами.
Для того, чтобы собирать о вас информацию, нужно как-то выделить лично вас на фоне других пользователей. Для этого формируется так называемый «отпечаток» или «fingerprint». Отпечаток браузера представляет собой уникальный слепок с настроек вашего браузера и компьютера. Отпечатки браузера – это альтернатива cookies с рядом преимуществ.
Существует множество сайтов, позволяющих увидеть, по каким данным вас можно идентифицировать, например:
Теперь давайте разберемся, что же вообще такое VPN и как он работает.
Что такое VPN?

Представьте себе подземный тоннель со множеством въездов и выездов, внутри которого есть куча развязок. Никто извне не знает, где окажутся автомобили, въезжающие в него. Никто извне не знает, что происходит в тоннеле.
Скорее всего, у вас дома есть Wi-Fi роутер. Подключённые к нему устройства могут обмениваться данными даже без интернета. Получается, у вас есть своя частная сеть, но чтобы подключиться к ней, нужно физически быть в пределах досягаемости сигнала роутера.
VPN – это виртуальная частная сеть (аббревиатура от virtual private network). Это зашифрованный туннель между двумя устройствами, позволяющий получить доступ к любому сайту и онлайн-сервису конфиденциально и безопасно.

С помощью вашего обычного Интернет-соединения между вашим устройством и VPN-сервером устанавливается специальное соединение – VPN-туннель. Все передаваемые и получаемые данные в этом соединении шифруются. С этого момента вся ваша сетевая активность осуществляется через данный туннель, а не через основной канал провайдера, и вы пользуетесь Интернетом как бы с самого VPN-сервера, а не с вашего устройства.
VPN-туннель представляет собой сквозное подключение, установленное между двумя устройствами – как правило, между VPN-сервером и вашим устройством. Туннелирование трафика позволяет встроить его в стандартные пакеты TCP/IP и безопасно передавать их через Интернет. Так как ваши данные зашифрованы, то ни хакеры, ни правительство, ни даже интернет-провайдеры не получат к ним доступ, пока вы подключены к VPN-серверу.
Для вашего провайдера, администратора Wi-Fi сети или же злоумышленников, которые сканируют трафик в Wi-Fi сетях, вся ваша сетевая активность выглядит как одно-единственное соединение к одному-единственному IP-адресу. Это всё, что им доступно. Что именно происходит внутри этого соединения, они не смогут узнать, поскольку просто не смогут проникнуть «внутрь» этого соединения.
Да, можно взломать сам VPN-сервер и получить доступ к вашему трафику уже на нем, но очевидно, что никто не будет этим заниматься. К тому же взломать хорошо защищенный VPN-сервер – тот еще челлендж.

Тем не менее, не все VPN-серверы одинаково полезны. Например, компания, в которой вы работаете, может использовать виртуальную частную сеть для удалённых сотрудников. С помощью VPN они подключаются к рабочей сети. При этом их компьютеры, смартфоны или планшеты виртуально переносятся в офис и подключаются к сети изнутри. Для входа в виртуальную частную сеть нужно знать адрес VPN-сервера, логин и пароль.
Использовать VPN довольно просто. Обычно компания поднимает VPN-сервер где-то на локальном компьютере, сервере или в дата-центре, а подключение к нему происходит с помощью VPN-клиента на пользовательском устройстве.
Сейчас встроенные VPN-клиенты есть во всех актуальных операционных системах, в том числе в Android, iOS, Windows, macOS и Linux.
Пуская сотрудников в рабочую среду только через VPN и по учётным записям, работодатель всегда будет знать, кто и что делал и делает. Более того, владелец VPN может мониторить и контролировать вообще весь трафик, который идёт между сервером и пользователем. Сотрудники много сидят во «ВКонтакте»? Можно закрыть доступ к этому сервису. Василий Анатольевич половину рабочего дня проводит за рассматриванием котиков? Анна Петровна с обеда и до вечера сидит на сайте tlap.com? Вся активность автоматически записывается в логи и станет железным аргументом для вашего увольнения.
Тем не менее, когда вы сидите под рабочим VPN из вашего уютного дома и пишете очередной пост о граале на форуме, ваш провайдер, в отличие от работодателя, об этом не догадывается. Для него – вы въехали в тот самый тоннель и, возможно, куда-то выехали, а может, и нет. Так работает VPN-сервер.
Готовые VPN-серверы в сети

В интернете есть целая куча VPN-сервисов, от бесплатных до очень даже платных. Средняя цена нормального VPN-сервиса колеблется в пределах 300-500 рублей в месяц. За эти деньги вы получаете туннель за границу, чаще всего есть возможность выбрать страну, куда будет уходить ваш трафик. Плюс вы получите еще несколько фич, полезность которых, по правде сказать, высосана из пальца. Кроме этого, вам придется доверять выбранному VPN-провайдеру. Строго говоря, у вас есть две альтернативы – купить готовый VPN-сервер (или использовать бесплатный) или же поднять свой собственный.
- ограничены в скорости;
- нестабильность бесплатных (иногда и платных тоже) серверов (то работает нормально, то тормозит);
- ограничения трафика (до нескольких Гигабайт в месяц);
- ограничения периода бесплатного пользования;
- периодически нужно искать другие сервисы;
- передаваемые данные не будут в безопасности, совсем не стоит надеяться на анонимность. Тут как с вашим работодателем – владелец сервера будет в курсе всего, что у вас происходит, и остается только надеяться на его порядочность (я бы не стал). Более того, некоторые VPN-сервисы изначально были созданы именно для того, чтобы воровать ваши данные, и по факту это является их основной деятельностью и выгодой;
- не всегда есть нужная страна или город;
- заезженные IP-адреса (используются сотнями клиентов);
- бывает просто обман без возврата денег, например, трафик не безлимитный, некоторые серверы не работают или слишком медленные.
Кроме того, платные инструменты могут в любой момент исчезнуть: закон о запрете анонимайзеров и VPN давно приняли, правда, пока еще не применяли.
Преимущества своего личного VPN

На сторонних сервисах личная анонимность низкая: владельцы VPN-сервера могут собирать о вас совершенно любую информацию – от паролей к учеткам в соцсетях до любимых роликов в pornhub.
На своем сервере все будет намного лучше, деанонимизировать вас могут только спецслужбы тех стран, от которых зависит хостинг вашего сервера (ну и вы сами, по глупости).
Скорость.
На сторонних платных сервисах скорость, как правило, высокая, ведь вам предоставляют приватные серверы, слабо нагруженные.
На своем сервере скорость не хуже, ведь сервер ваш, и канал занимаете только вы.
Анонимность для сайтов и рекламодателей.
На сторонних сервисах анонимность высокая, так как сервер настроен профессионалами.
На своем сервере при правильной настройке тоже все будет хорошо.
Личная анонимность.
Но, как я уже говорил, не стоит воспринимать VPN как панацею от всего и вся. Не стоит также думать, что с использованием VPN вы сможете начать заниматься хакерской деятельностью, ломать сети и воровать кредитные карточки.
Во-первых, такая деятельность в принципе незаконна и неоднозначна с моральной точки зрения. Во-вторых, вас очень быстро обнаружат, обратившись к хостеру, у которого размещен VPN-сервер, и последний быстро сольет все ваши реальные данные правоохранительным органам. В-третьих, для таких вещей используются совсем другие инструменты и подходы.
Поэтому я хотел бы, чтобы вы поняли: VPN – это не для хакерства, это для защиты от злоумышленников и тоталитаризма государства, которое посягает на ваши конфиденциальные данные, ваши мысли, ценности и свободы.
Недостатки своего VPN

Конечно, даже у своего VPN есть недостатки:
- Некоторые сайты начнут загружаться на языке страны, в которой располагается ваш VPN-сервер. Однако это легко исправить. Поскольку чаще всего мы приходим на какие-либо сайты через поиск в Google, достаточно один раз настроить его выдачу, и с этого момента вы будете направляться на сайты с нужной вам локализацией. Всегда можно выбрать локализацию на самом сайте;
- То же самое касается и рекламы. Ее существенная часть начнет отображаться для страны, в которой находится ваш VPN-сервер;
- Некоторые российские сервисы блокируют доступ с нероссийских IP-адресов, поэтому VPN при их использовании придется на время отключать;
- Снизится скорость загрузки сайтов. По замерам это действительно так, но на практике падение скорости для обычного пользования Интернетом настолько незначительно и неощутимо, что данным недостатком можно пренебречь.
Чем VPN отличается от прокси?

Наверняка многие не раз использовали прокси, например, чтобы посидеть в Telegram. В чем отличие прокси от VPN-сервера?
Когда вы подключаетесь к прокси-серверу, тот становится своего рода посредником между вашим устройством и Интернетом. Весь ваш интернет-трафик проходит через прокси-сервер и, как следствие, получает его IP-адрес.

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

Выбирать страну для своего VPN-сервера стоит по следующим критериям:
- кратчайшее расстояние до вас – это обеспечит меньший пинг и потери в скорости соединения;
- минимальное количество запретов на свободу Интернета, доступность любых популярных сервисов;
- наименьшая политическая напряженность между вашей страной и страной, где будет находиться VPN-сервер. В этом случае ваш трафик теперь уже с VPN-сервера, скорее всего, не будут читать спецслужбы другого государства. Но здесь палка о двух концах. Например, многие российские пользователи предпочитают располагать VPN-сервер в Великобритании именно из-за высокой напряженности между странами, ведь в случае чего, последняя ни за что не сдаст трафик российским спецслужбам. Поэтому данный подход также может быть оправданным.
Для российских пользователей в целом подойдет любая страна Евросоюза, однако практика показывает, что лучшим решением является Германия: отличные пинг и стабильность канала, незначительные потери в скорости и хорошая доступность любых мировых ресурсов.
Если исходить из принципа максимальной защищенности трафика именно от российских спецслужб, то все же лучшим решением будет сервер в Великобритании. На практике же лондонские серверы не всегда хорошо показывают себя с точки зрения стабильности: случаются отвалы, так себе пинг и меньшая, по сравнению с Германией, скорость.
Безусловно, вы можете поднять VPN-сервер и в своей стране, но в этом случае утрачиваются многие (почти все) преимущества. Создавая VPN-сервер в своей стране, вы на блюдечке предоставляете весь свой трафик спецслужбам вашей страны, поскольку сервер, расположенный в вашей стране, подчиняется юрисдикции именно вашей страны. И, установив контроль за вашим трафиком, пусть не у провайдера, а у самого хостера, где работает ваш VPN-сервер, спецслужбы при желании легко достанут вас там. И, конечно, по-прежнему не будут доступны заблокированные ресурсы. Поэтому смысла в таком решении практически нет.
Выбираем хостинг для своего VPN-сервера

Чтобы развернуть свой VPN, нам нужно иметь сервер. Поэтому для начала нам требуется выбрать хороший виртуальный сервер (VPS).
VPS (Virtual Private Server) или VDS (Virtual Dedicated Server) – это хостинг-услуга, где пользователю предоставляется виртуальный выделенный сервер с максимальными привилегиями. VDS или VPS эмулирует работу реального физического сервера: на одном физическом сервере может быть запущено множество виртуальных серверов, каждый из которых имеет определенный процессор, объем памяти, некоторый объем жесткого диска, root-доступ, собственные IP-адреса, порты, а также на нем возможна установка своих операционных систем и программного обеспечения. Обычно в качестве виртуального сервера используются операционные системы Linux.
Вам нужно знать, что VPS-серверы бывают нескольких видов: OpenVZ, Xen и KVM. Для работы VPN-сервера нужен KVM. Тип сервера обычно указан в тарифах хостинга. OpenVZ и Xen тоже иногда подходят, но нужно писать в техподдержку хостинга и спрашивать, подключён ли модуль TUN, и если нет, то могут ли они включить его. Не помешает также спросить, будет ли работать VPN как таковой (даже на KVM) – некоторые компании прикрывают эту возможность (уж не знаю, для чего).
Чтобы выбрать именно то, что нам нужно, давайте определим требования:
- Поддержка TUN/TAP. Некоторые хостеры эту технологию не предоставляют вообще, некоторые включают по запросу, некоторые сразу;
- Цена. Слишком дорогой брать не стоит, но это на ваше усмотрение;
- Страна. Чем ближе к вам дата-центр хостера, тем меньше будет пинг. Но смотрите, чтобы он не попадал под юрисдикцию российских спецслужб и никак от них не зависел. В идеале, как я уже писал выше – Великобритания или Германия;
- Размер жесткого диска и скорость его работы не столь важны. Для VPN места потребуется настолько мало, что этим параметром можно пренебречь;
- Оперативной памяти не меньше 512 МБ;
- Сетевой трафик должен быть либо не ограничен, либо иметь такое ограничение, в которое мы не упремся. Скорость должна быть не менее 100 Мб/сек.
Поднимать свой VPN-сервер мы будем на основе операционной системы Linux Debian, а не Linux Ubuntu, которая считается более популярной.

Не стоит выбирать Ubuntu из-за нестабильности и требовательности к ресурсам, если не хотите получить проблемы с работой сервера. К тому же Ubuntu изначально создавалась именно как пользовательская система, а не серверная. Debian же надежен и стабилен как топор.
При настройке услуги хостер может просить указать доменное имя и DNS. Нам это в данном случае не важно, поэтому можете писать все, что угодно.
При регистрации и оплате хостер может запросить некоторые ваши данные: ФИО, е-mail, телефон, адрес, Zip code и т. п. Все это можете придумать сами, но смотрите по своему IP. Также могут запросить фото паспорта, банковской карты, с которой проводится оплата (естественно, с закрашенными начальными цифрами номера и закрашенным CVC-кодом), и прочее. Это нормальная ситуация – они хотят убедиться, что вы не мошенник и не пользуетесь чужой картой. Могут и не запросить. Тут как повезёт.
После оплаты и верификации вы получите на свою электронную почту письмо с IP-адресом вашего VPS (Main IP), логином (Username), паролем (Root Password) для входа по SSH. Также должна быть ссылка на панель управления сервером и логин-пароль для входа в панель. Из панели можно включить/выключить/перезагрузить сервер, сбросить пароль root, посмотреть статистику сервера и прочие базовые вещи.
Из наиболее популярных на сегодняшний день глобальных хостинговых компаний можно выделить следующие:
Мы сегодня будем настраивать Amazon Web Services (AWS) из-за известности бренда, большого количества доступных географических зон для размещения сервера и высокой стабильности. Многие популярные интернет-сервисы работают на базе AWS, арендуя там серверы для своих нужд, например, Facebook.
На мой взгляд, вряд ли сегодня кто-то может глобально конкурировать с Amazon. Компания была пионером в облачных технологиях и, по сути, открыла эту отрасль. Сегодня AWS предоставляет множество решений для облачных вычислений на любой вкус и цвет, но нам с вами нужна обычная виртуальная машина. Ее мы возьмем в одной из разработок AWS – Lightsail.
Lightsail – это упрощенное решение для создания виртуальных серверов, в отличие от своего старшего собрата EC2. Всё завернуто в очень простой интерфейс, в котором разберется даже новичок, поэтому для нашей цели AWS Lightsail подходит лучше всего.
Вообще же, вы можете арендовать сервер у любой компании. Данная инструкция не сильно зависит от площадки и сработает практически у любого хостера.
Использование VPN-сервера на базе AWS Lightsail будет обходиться вам в 3.5 доллара в месяц. За эти деньги вы получаете машину с 512 Мб оперативной памяти. Подобная конфигурация легко справляется с обработкой VPN-трафика 3-4 устройств. Первый месяц у AWS будет и вовсе бесплатным.
Что касается протоколов VPN-соединения, сегодня их существует несколько: PPTP, L2TP, IPSec, OpenVPN, IKEv2. Не думаю, что вам будет интересно про них читать, поэтому опустим эту информацию. Наиболее популярны на сегодняшний день IPsec, IKEv2 и OpenVPN.
Сегодня существуют готовые решения для развертывания своего VPN-сервера на платформе Linux, например, скрипт Algo (для IKEv2) или Streisand (для OpenVPN), которые нужно просто скачать, распаковать и запустить на сервере. Данные скрипты сами установят, настроят все необходимые пакеты и на выходе предоставят работающий VPN-сервер.
Теперь с теоретической частью покончено, и мы можем смело приступать к созданию своего VPN-сервера.
Создание VPN-сервера

После нехитрой регистрации вы сможете перейти в панель управления услугами. Чтобы не искать нужную, просто вбиваем в поиск lightsail:

Как мы уже обсудили, выбираем систему Debian:

Для работы нам понадобится статический ip-адрес, поэтому переходим на вкладку networking и ищем кнопку Create static ip:

Далее привязываем нашу машину и жмем create:

Этот статический ip-адрес появится в настройках, рекомендую его куда-нибудь записать:

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

Кликаем на вкладку SSH keys и скачиваем ключ:

Сохраните ключ в удобном для вас месте, он нужен будет для доступа через ftp-клиент.
Переходим обратно на вкладку connect:

Там мы видим кнопочку connect using SSH, жмем ее. Это браузерная ssh консоль. Сначала нам нужно в консоли получить права root юзера:
Затем обновить систему с помощью этих двух команд:
После нам нужно перезагрузить систему. Не выходя из консоли, это можно сделать командой:
После перезагрузки я предлагаю установить firewall:
apt-get install ufw
Необходимо открыть затребованные порты, такие как SHH port 22, 80, 443 и так далее:
Для включения фаервола запустим:
Состояние правил фаервола:
Теперь установим скрипт openvpn-install.sh
Запустим скрипт openvpn-install.sh для установки и настройки сервера OpenVPN автоматически:

Жмем кнопки, как указано на скриншоте. Порт вы можете указать любой, но не забудьте добавить его в firewall, как мы делали это выше.
Скрипт сгенерирует файл с расширением .ovpn – это настроечный файл для ваших клиентов (устройств, с которых вы будете пользоваться vpn). Он находится в защищенной папке, из которой его трудно достать при помощи ftp клиента. Поэтому скопируем файл в другую папку:

cp /root/имя_вашего_файла /home/admin/
Далее устанавливаем ftp клиент. У меня – filezilla. После установки запускаем. Жмем:

Настройки должны быть, как указаны тут:

Жмем Соединиться и находим папку home/admin/. Копируем оттуда наш файл с настройками куда-то себе.
У Lightsail есть встроенный firewall и нам нужно добавить в него наш порт, который мы указали при настройке VPN.
Переходим в панель управления нашей машиной, на вкладку Networking.



Далее установим OpenVPN клиент, скачать его можно тут.
Клиенты есть под любые операционные системы:

Заходим в клиент после установки и загружаем наш файл настроек:


Для работы на мобильных устройствах точно так же устанавливаем OpenVPN клиент, а затем присылаем себе файл с настройками почтой. Затем открываем этот файл при помощи клиента (открыть с помощью) и импортируем наши настройки.
Заключение

Мы с вами настроили довольно простой VPN-сервер и установили клиенты для работы с ним на различные устройства. При должном упорстве можно было бы еще поработать над безопасностью, но эти улучшения не будут соответствовать приложенным усилиям, а урок растянется в три-четыре раза. VPN, который мы создали сегодня, исправно будет выполнять свою прямую задачу – защищать ваш трафик от злоумышленников как при использовании мобильного интернета, так и общественных и домашних Wi-Fi сетей. Чаще всего виной утечки конфиденциальной информации служат не технические уязвимости, а поведение человека. Всегда помните об этом и не злоупотребляйте использованием личной информации в сети.
С уважением, Дмитрий аkа Silentspec
Tlap.com
Как развернуть свой Wireguard VPN сервер с WEB-интерфейсом за одну команду
WireGuard является одним из наиболее популярных и простых в использовании VPN-решений, предоставляющих безопасное сетевое соединение. Если вы ищете быстрый и простой способ развернуть собственный VPN-сервер WireGuard с WEB-интерфейсом, то Docker-контейнер представляет отличное решение. В этой статье мы рассмотрим, как установить и запустить Docker-контейнер WireGuard с WEB-интерфейсом за одну команду, а также как подключиться к нему с различных устройств.
Сервер
Развертывание WireGuard WEB UI сервера через Docker
Предварительные настройки
Для начала необходимо установить Ansible . Это инструмент автоматизации развертывания приложений на удаленных серверах. Выполните следующую команду для установки Ansible:
sudo apt install ansible
Также чтобы ansible подключатся к удаленному серверу через пароль установите:
sudo apt install sshpass
Далее создайте файл inventory.yml , в котором нужно указать данные для подключения к серверу, например:
--- all: hosts: ИмяСервера1: ansible_host: IP_Адрес ansible_user: Пользователь # SSH порт ansible_port: 22 # Для этого устанавливали sshpass ansible_ssh_pass: Пароль
Замените ИмяСервера , IP_Адрес , Пользователь и Пароль на соответствующие значения для вашего сервера.
Вот та единственная команда
Теперь можно выполнить команду для развертывания WireGuard WEB UI сервера с помощью Docker-контейнера:
ansible-playbook -i ./inventory.yml -l ИмяСервера1 ./script/install_wireguard_server.yml -e PasswordServer=990990
Здесь ИмяСервера — имя вашего сервера, PasswordServer — пароль для WEB-версии WireGuard. После успешного выполнения команды, WEB-версия WireGuard будет доступна по URL: IP_Адрес:51821 . По умолчанию пароль 990990
Клиент
Телефон
Чтобы подключиться к VPN-серверу WireGuard с вашего телефона, выполните следующие шаги:

- Установите приложение WireGuard на свой телефон.
- Отсканируйте QR-код, как показано на скриншоте ниже:
- Нажмите «Добавить» и сохраните настройки VPN.
Linux
Для подключения к VPN-серверу WireGuard на Linux выполните следующие шаги:
Получите файл конфигурации для подключения к VPN-серверу. Выглядит он примерно так:

-
Скопируйте файл конфигурации в папку /etc/wireguard/ с помощью следующей команды:
cp ИмяКонфигурации.conf /etc/wireguard/
sudo wg-quick up ИмяКонфигурации
sudo wg-quick down ИмяКонфигурации
Теперь у вас есть свой собственный WireGuard VPN сервер с WEB-интерфейсом, развернутый с помощью Docker-контейнера. Вы можете подключиться к нему с различных устройств, включая телефоны и компьютеры с Linux. WireGuard предоставляет безопасное и эффективное шифрованное соединение, которое защищает вашу приватность и обеспечивает безопасность передачи данных в интернете.
Как развернуть свой vpn сервер linux
На сегодняшний день технология VPN приобретает все большую популярность. VPN используется обычными пользователями для выхода в Интернет. Использование этого сервиса позволяет обходить региональные блокриовки ресурсов и обезопасить себя от возможного отслеживания извне. При подключении к VPN серверу между компьютером пользователя и сервером создается защищенный туннель, недоступный извне, а точкой выхода в Интернет становится сам VPN сервер. В сети можно найти много как платных так и бесплатных сервисов, предоставляющих услуги VPN, но если по какой-то причине сторонние сервисы вас не устраивают, вы можете настроить VPN сервер самостоятельно.
Чтобы создать собственный VPN, необходимо арендовать подходящий виртуальный сервер. Для создания VPN соединения существует различное программное обеспечение, которое отличается поддерживаемыми операционными системами и используемыми алгоритмами. В статье рассматривается два независимых друг от друга способа реализации VPN сервера. Первый основан на протоколе PPTP, который на сегодняшний день считается устаревшим и небезопасным, но при этом очень прост в настройке. Второй использует современное и безопасное ПО OpenVPN, но требует установки стороннего клиентского приложения и выполнения более сложных настроек.
В тестовой среде в качестве сервера используется виртуальный сервер под управлением операционной системы Ubuntu Server 18.04. Брандмауэр на сервере отключен, так как его настройка не рассматривается в данной статье. Настройка клиентской части описана на примере Windows 10.
Подготовительные операции
Независимо от того, какой из вариантов VPN сервера вы предпочтете, доступ клиентов в Интернет будет реализован штатными средствами операционной системы. Для того, чтобы из внутренней сети открыть доступ в Интернет через внешний интерфейс сервера необходимо разрешить пересылку пакетов между интерфейсами (форвардинг пакетов), и настроить трансляцию адресов.
Для включения форвардинга пакетов откроем файл “/etc/sysctl.conf” и изменим значение параметра “net.ipv4.ip_forward” на 1.

Чтобы изменения применились без перезагрузки сервера, выполним команду
sudo sysctl -p /etc/sysctl.conf
Трансляция адресов настраивается средствами iptables. Предварительно уточним имя внешнего сетевого интерфейса, выполнив команду “ip link show”, оно понадобится на следующем шаге. В нашем случае имя интерфейса “ens3”.

Включаем трансляцию адресов на внешнем интерфейсе для всех узлов локальной сети.
sudo iptables -t nat -A POSTROUTING -o ens3 -j MASQUERADE
Обратите внимание, что в команде необходимо указать реальное имя сетевого интерфейса. На вашем сервере оно может отличаться.
По умолчанию все созданные правила iptables сбрасываются после перезагрузки сервера, для того, чтобы этого избежать, воспользуемся утилитой “iptables-persistent” Устанавливаем пакет.
sudo apt install iptables-persistent
В процессе установки откроется окно конфигурации, в котором система предложит сохранить текущие правила iptables. Так как правила уже настроены, соглашаемся и дважды нажимаем “Yes”. Теперь, после перезагрузки сервера правила будут восстанавливаться автоматически.

1. PPTP сервер
Настройка сервера
sudo apt install pptpd
После завершения установки открываем в любом текстовом редакторе файл “/etc/pptpd.conf” и приводим его к следующему виду.
option /etc/ppp/pptpd-options #путь к файлу с настройками
logwtmp #механизм логирования клиентских подключений
connections 100 #количество одновременных подключений
localip 172.16.0.1 #адрес, который будет шлюзом для клиентов
remoteip 172.16.0.2-200 #диапазон адресов для клиентов
Далее редактируем файл “/etc/ppp/pptpd-options”, большинство параметров уже установлены по умолчанию.
#имя сервиса, потребуется при создании учетных записей для клиентов
name pptpd
#запрещаем устаревшие методы аутентификации
refuse-pap
refuse-chap
refuse-mschap
#разрешаем более надежный метод аутентификации
require-mschap-v2
#включаем шифрование
require-mppe-128
#указываем dns сервера для клиентов, можно указать любые доступные
ms-dns 8.8.8.8
ms-dns 8.8.4.4
proxyarp
nodefaultroute
lock
nobsdcomp
novj
novjccomp
nologfd
На следующем этапе необходимо создать учетную запись для подключения клиентов. Предположим, мы хотим добавить пользователя “vpnuser”, с паролем “1” и разрешить для него динамическую адресацию. Открываем файл “/etc/ppp/chap-secrets” и добавляем в конец строку с параметрами пользователя.
vpnuser pptpd 1 *
Значение “pptpd” это имя сервиса, которое мы указали в файле “pptpd-options”. Вместо символа “*” для каждого клиента можно указать фиксированный ip-адрес. В результате содержимое файла “chap-secrets” будет таким.

Для применения настроек перезагружаем службу pptpd и добавляем её в автозагрузку.
sudo systemctl restart pptpd
sudo systemctl enable pptpd
Настройка сервера завершена.
Настройка клиента
Открываем “Пуск” — “Параметры” — “Сеть и интернет” — “VPN” и нажимаем “Добавить VPN-подключение”

В открывшемся окне вводим параметры подключения и нажимаем “Сохранить”
- Поставщик услуг VPN: “Windows (встроенные)”
- Имя подключения: “vpn_connect” (можно ввести любое)
- Имя или адрес сервера: (указываем внешний ip адрес сервера)
- Тип VPN: “Автоматически”
- Тип данных для входа: “Имя пользователя и пароль”
- Имя пользователя: vpnuser (имя, которое указано в файле “chap-secrets” на сервере)
- Пароль: 1 (так же из файла “chap-secrets”)
После сохранения параметров, в окне VPN появится новое подключение. Щелкаем по нему левой кнопкой мыши и нажимаем “Подключиться”. При успешном соединении с сервером, на значке подключения появится надпись “Подключено”.

В свойствах подключения отображаются внутренние адреса клиента и сервера. В поле “Адрес назначения” указан внешний адрес сервера.

При установленном соединении внутренний ip-адрес сервера, в нашем случае 172.16.0.1, становится шлюзом по умолчанию для всех исходящих пакетов.

Воспользовавшись любым онлайн-сервисом вы можете убедиться, что внешний IP адрес компьютера теперь совпадает с IP адресом вашего VPN сервера.
2. OpenVPN сервер
Настройка сервера
Выполним повышение прав текущего пользователя, так как для всех дальнейших действий требуется root доступ.
Устанавливаем необходимые пакеты. Пакет “Easy-RSA” нужен для управления ключами шифрования.
apt install openvpn easy-rsa
Создаем символическую ссылку на конфигурационный файл OpenSSL, в противном случае система выдаст ошибку при загрузке переменных.
ln -s /usr/share/easy-rsa/openssl-1.0.0.cnf /usr/share/easy-rsa/openssl.cnf
Переходим в рабочий каталог утилиты easy-rsa, загружаем переменные и очищаем старые конфигурации.
cd /usr/share/easy-rsa/
source ./vars
./clean-all
Приступаем к созданию ключей. Генерируем ключ Диффи-Хеллмана, процесс может занять некоторое время.

Генерируем центр сертификации.
В процессе необходимо ответить на вопросы и ввести информацию о владельце ключа. Вы можете оставить значения по умолчанию, которые указаны в квадратных скобках. Для завершения ввода нажимаем “Enter”.
Генерируем ключи для сервера, в качестве аргумента указываем произвольное название, в нашем случае это “vpn-server”
Как и на предыдущем шаге отвечаем на вопросы или оставляем значения по умолчанию. На завершающем этапе дважды нажимаем “y”.

Генерация ключей сервера завершена, все файлы находятся в папке “/usr/share/easy-rsa/keys”.

Создадим в рабочем каталоге OpenVPN папку “keys” для хранения ключей и скопируем туда необходимые файлы.
mkdir /etc/openvpn/keys
cp ca.crt dh2048.pem vpn-server.key vpn-server.crt /etc/openvpn/keys/
Копируем и распаковываем в каталог “/etc/openvpn/” шаблон конфигурационного файла.
cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz /etc/openvpn/
gzip -d /etc/openvpn/server.conf.gz
Открываем на редактирование файл “/etc/openvpn/server.conf” и убеждаемся в наличии следующих строк, при необходимости корректируем.
#Порт, протокол и интерфейс
port 1194
proto udp
dev tun
#Путь к ключам шифрования
ca /etc/openvpn/keys/ca.crt
cert /etc/openvpn/keys/vpn-server.crt
key /etc/openvpn/keys/vpn-server.key
dh /etc/openvpn/keys/dh2048.pem
#Сетевые параметры
topology subnet
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist /var/log/openvpn/ipp.txt
push «redirect-gateway def1 bypass-dhcp»
push “dhcp-option DNS 8.8.8.8”
push “dhcp-option DNS 8.8.4.4”
#Отключаем дополнительное шифрование
#tls-auth ta.key 0
#Включаем компрессию
compress lz4-v2
push «compress lz4-v2»
#Понижаем привилегии службы OpenVPN после запуска
user nobody
group nogroup
#Включаем сохранение параметров после перезапуска
persist-key
persist-tun
#Перенаправляем логи
log /var/log/openvpn/openvpn.log
Остальные параметры оставляем без изменений.
Перезапускаем службу OpenVPN для применения конфигурации.
systemctl restart openvpn
Настройка сервера завершена!
Настройка клиента
Заходим на официальный сайт проекта “https://openvpn.net”, переходим в раздел “COMUNITY” — “DOWNLOADS”

и скачиваем инсталлятор для своей версии операционной системы. В нашем случае это Windows 10.

Устанавливаем приложение, оставляя все параметры по умолчанию.
На следующем этапе необходимо подготовить на сервере и передать на компьютер клиента следующие файлы:
- публичный и приватный ключи;
- копия ключа центра сертификации;
- шаблон конфигурационного файла.
Подключаемся к серверу, повышаем права,переходим в рабочий каталог утилиты “easy-rsa” и загружаем переменные.
sudo -s
cd /usr/share/easy-rsa/
source ./vars
Генерируем ключевую пару для клиента, в качестве аргумента указываем произвольное имя, в нашем случае “client1”.
Отвечая на вопросы вводим свои данные или просто нажимаем “ENTER”, оставляя значения по умолчанию. После этого дважды нажимаем “y”

Сгенерированные ключи клиента также находятся в папке “/usr/share/easy-rsa/keys/” Для удобства создадим в домашнем каталоге папку “client1” и скопируем в нее все файлы предназначенные для переноса на клиентский компьютер.
cd /usr/share/easy-rsa/keys/
mkdir ~/client1
cp client1.crt client1.key ca.crt ~/client1/
Скопируем в эту же папку шаблон клиентского конфигурационного файла. При копировании меняем расширение файла на “ovpn”.
cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf ~/client1/client.ovpn
Изменим владельца каталога “~/client1/” и всех файлов находящихся в нем, для того, чтобы получить возможность перенести их на клиентский компьютер. В нашем случае сделаем владельцем пользователя “mihail”
chown -R mihail:mihail ~/client1
Переходим на клиентский компьютер и копируем с сервера содержимое папки “~/client1/” любым доступным способом, например с помощью утилиты “PSCP”, которая входит в состав клиента Putty.
PSCP -r mihail@[IP_сервера]:/home/mihail/client1 c:\client1
Файлы ключей “ca.crt”, “client1.crt”, “client1.key” можно хранить в любом месте, в нашем случае это папка “c:\Program Files\OpenVPN\keys”, а конфигурационный файл “client.ovpn” переносим в директорию “c:\Program Files\OpenVPN\config”.
Приступаем к конфигурированию клиента. Открываем в блокноте файл “c:\Program Files\OpenVPN\config\client.ovpn” и отредактируем следующие строки
#Сообщаем, что мы являемся клиентом
client
#Интерфейс и протокол так же как на сервере
dev tun
proto udp
#IP адрес сервера и порт
remote ip_адрес_сервера 1194
#сохранение параметров при перезапусках
persist-key
persist-tun
#Путь к ключам
ca “c:\\Program Files\\OpenVPN\\keys\\ca.cert”
cert “c:\\Program Files\\OpenVPN\\keys\\client1.crt”
key “c:\\Program Files\\OpenVPN\\keys\\client1.key”
#Включаем проверку подлинности сервера
remote-cert-tls server
#Отключаем дополнительное шифрование
#tls-auth ta.key 1
cipher AES-256-CBC
comp-lzo
auth-nocache
verb 3
Остальные параметры оставляем без изменений.
Сохраняем файл и запускаем клиентское приложение “OpenVPN GUI”.

Для подключения к серверу щелкаем правой кнопкой мыши на иконке в трее и выбираем “Подключиться”. При успешном соединении иконка станет зеленого цвета.
С помощью любого онлайн сервиса убеждаемся, что внешний ip адрес клиента изменился и совпадает с IP адресом сервера.
Туториал: Настройка своего VPN сервера
Я один из тех, кто использует VPN и для серфинга, и для работы.Тут нужна и скорость и бесперебойность. За последний год я перепробовал около десятка сервисов которые не могли похвастаться ни тем, ни другим. Ряд из них просто перестал работать, а некоторые и вовсе остановил работу на Российском рынке (например Касперский).
Основная цель
В связи с этим я заинтересовался поднятием своего сервиса на базе Российского хостинга с минимальным количеством приседаний и потраченных рублей.
Введение
Актуальность темы подтвержу цифрами взятыми с GoogleTrends.

Очевидно, что тренд выходит на качество новый уровень интереса. По России, плюс/минус такая-же картина. Интерес к VPN обгоняет даже React.js.

Хотя конечно есть темы и попопулярнее.

Я буду настраивать VPN на базе хостинга TimeWeb так как пользуюсь их сервисом с 2014г. Мне нравится панель, быстрая обратная связь и набор услуг которые они предоставляют
Шаг 1 — поиск подходящего хостинга / создание аккаунта
Так как я зарегистрирован и у меня есть активный «план», то я просто кликаю на кнопку «Вход для клиентов»

Затем кликаем на кнопку VDS/VPS Серверы (слева внизу)

Открывается модальное окно с запросом на регистрацию

После клика на кнопку произойдет два действия — отправится письмо на почту с данными вашего нового аккаунта и переход на страницу панели Cloud

Переходим на новое окно, я сразу переключил на темную тему (хорошо бы и на хабре такую получить). Удаляем облачный сервер который создался автоматически (в моем случае это Honest Maxwing). Иначе когда будете на этапе оплаты, то вам накинут пару десятков тысяч рублей. Я сначала не заметил и потом не сразу понял за что с меня столько хотят взять

Шаг 2 — покупка нужной конфигурации сервера
Жмем кнопку «Создать» -> «Облачный сервер». Переходим на окно конфигурации сервера. Я себе накликал следующие параметры (scalable NVMe, и плюс бэкапы)

Жмем кнопку «Заказать» и оплачиваем

Ура, у нас появился облачный сервер

На почту должно придти письмо с данными доступа

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

Кликаем на новый сервер. Я его назвал VPN. Статистика пока по нулям

Шаг 3 — установка VPN на компьютер
Проходим на Github для того, чтобы скачать amnesia клиент. В моем случае актуальная версия — 2.1.2. Скачиваем нужный дистрибутив и устанавливаем. Вцелом там нужно кликнуть пару раз кнопку «Далее»

Появляется мастер настройки

Кликаем на кнопку «Setup your own server» и вписываем в поля данные которые пришли в последнем письме. Жмем кнопку «Connect»

Нажимаем «Run setup wizard»

Дальше жмем пару раз кнопку «Next» ничего не меняя пока не встретите кнопку «Start configuring»

Операция настройки может занять несколько минут

Как только настройка завершиться вы увидите следующее окно. Теперь нам нужно добавить новый протокол. Жмем на строчку напротив Proto

Тут стоит стрелочка напротив OpenVpn. Снимаем ее и добавляем новый — я добавлю WireGuard. Я его выбрал руководствуясь данной статьей



Протокол установлен и настроен. Возвращаемся на главную

Жмем кнопку «Подключиться»

Давайте сходим куда-нибудь, проверим

Ура, на компе работает
Шаг 4 — установка VPN на телефон
Устанавливаем на телефон приложение WireGuard (Iphone, Android). В моем случае я ставлю на iPhone но там нет разницы. Но прежде чем пойдем «туда», давайте сгенерируем конфиг для настройки VPN. Кликаем опять на строчку наротив Proto и кликаем на протокол WireGuard

Далее кликаем на иконку «Поделиться»

«Share for WireGuard» -> «Generate config»

Все, этот QR код не закрываем. Он нам пригодится для настройки VPN на телефоне.
Идем в магазин приложений, устанавливаем WireGuard -> «Add a tunnel» -> «Add from QR code» -> «Allow» -> называем свое соединение как вам угодно -> включаем VPN и проверяем его. Ура, работает )

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

Заключение
В результате проделанной работы вы настроете VPN который вполне годится как для серфинга, так и для работы
Благодарности
- @a_povalза грамматические правки
- всем кто оставил комментарии
- всем кто проголосовал
Спасибо всем за участие, буду более ответственно подходить к теме и содержимому. Статью оставлю, будет мне напоминанием о том как писать не нужно 🙂
