Vpn как создать сеть: Создаем свой VPN-сервер. Пошаговая инструкция — Разработка на vc.ru

Содержание

Создаем свой VPN-сервер. Пошаговая инструкция — Разработка на vc.ru

Данная инструкция позволит вам самостоятельно создать свой собственный VPN-сервер и настроить VPN-соединения на iPhone, iPad и Mac. Вы получите доступ к заблокированным в стране ресурсам, а также скроете ваш трафик от злоумышленников, провайдеров и спецслужб.

{«id»:66942,»type»:»num»,»link»:»https:\/\/vc.ru\/dev\/66942-sozdaem-svoy-vpn-server-poshagovaya-instrukciya»,»gtm»:»»,»prevCount»:null,»count»:171}

{«id»:66942,»type»:1,»typeStr»:»content»,»showTitle»:false,»initialState»:{«isActive»:false},»gtm»:»»}

{«id»:66942,»gtm»:null}

551 172 просмотров

Последнее обновление статьи: 22 марта 2022 года.

Инструкция была обкатана и проверена сотни раз и гарантированно сработает без каких-либо ошибок, если вы будете ей следовать. Актуальна для всех версий macOS, вплоть до macOS Monterey, а также всех версий iOS, вплоть до iOS 15.3+.

Настройка займет от 15 минут времени, в зависимости от скорости вашей работы.

Преамбула

В январе 2019 года я путешествовал по Азии. Находясь в Гуанчжоу, мне не удалось получить доступ к Google, YouTube и ряду других популярных сервисов. Они в принципе не работают на территории Китая и заблокированы правительством.

Помимо этого, в путешествиях вообще всегда есть определенная проблема с безопасным доступом в Интернет. Не всегда удается купить местную SIM-карту, поэтому приходится подключаться к Wi-Fi-сетям отелей, аэропортов и кафе. Фактически, мы ничего не знаем об этих сетях: кем они были созданы и насколько надежны.

То же самое и в родной стране. Если вы беззаботно подключаетесь к Wi-Fi-сети кафе, то у меня для вас плохие новости. Возможно прямо сейчас весь ваш трафик прослушивается злоумышленниками за соседним столиком.

Вывод: всегда, когда мы подключаемся к сети, которая не является нашей собственной, наша сетевая активность находится под перманентной угрозой.

Использование VPN — оптимальное решение двух обозначенных проблем сразу. Мы получаем доступ к заблокированным в стране ресурсам, а по пути еще и защищаем себя от прослушки.

Реализовать VPN можно двумя способами:

  • Воспользоваться коммерческим VPN-сервисом, например, Nord VPN.
  • Создать свой VPN-сервер.

Для меня использование коммерческого VPN было в принципе неприемлемым решением, и по ходу статьи я объясню почему я категорически не рекомендую пользоваться подобными сервисами. А так как я уже имел навык настройки серверов на Linux, я решил поднять собственный VPN-сервер: размять пальцы, прокачать скилл.

Однако, побродив по Интернету, я не нашел ни одной нормально работающей инструкции: все они были либо с ошибками, либо были заточены под слишком специфические кейсы, что не подойдет для обычного пользователя. Поэтому, я решил написать свою.

На мой взгляд, сегодня VPN должен быть у любого пользователя, который более-менее заботится о безопасности своих данных.

Инструкция написана для широкого круга читателей, однако, предполагает хотя бы минимальные знания Linux на уровне начального пользователя, который умеет обращаться с базовыми командами консоли (это правда очень и очень просто!). Настройка займет от 15 минут времени, в зависимости от скорости вашей работы.

К сожалению, Windows и Android в данной статье не рассматриваются, поскольку Windows последний раз я пользовался лет 15 назад, а Android — вообще совокупно 2 часа за всю жизнь, поэтому не представляю, что и как как сегодня все устроено в этих ОС. Не исключаю, что подходы, описанные здесь, сработают и для них. Инструкция в первую очередь создана для пользователей iPhone, iPad и Mac.

Сначала будет немного теории для понимания происходящего, желающие же сразу могут перейти к инструкции.

Немного теории: как работает VPN

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

Для простоты понимания можно представить, что основной канал провайдера — это большая труба, а внутри этой трубы вы прокладываете свою собственную, защищенную, отсекая всем доступ в нее. И через эту трубу попадаете на свой сервер и сидите в Интернете как бы со своего сервера: там, где он физически располагается. That’s all.

Для вашего провайдера, администратора Wi-Fi-сети или же злоумышленников, которые сканируют трафик в Wi-Fi-сетях, вся ваша сетевая активность выглядит как одно единственное соединение к одному единственному IP-адресу — адресу вашего VPN-сервера. Это все, что они видят. Что же именно происходит внутри этой вашей трубы, они не знают и не узнают.

Случаи взлома VPN-туннеля (вашей трубы), при условии, что применяются нормальные алгоритмы шифрования и все настроено корректно, мне не удалось найти. Можно попробовать взломать и сам VPN-сервер и получить доступ к вашему трафику уже на нем, но это так же весьма сложная задача, и при условии нормальной защищенности сервера, стремится к невыполнимой. Никто просто не будет этим заниматься.

Плюсы использования VPN

  • VPN полностью скроет ваш трафик от прослушки при подключении к ненадежным (не лично вашим) Wi-Fi-сетям, и особенно полезен в путешествиях. Ни администратор Wi-Fi-сети, ни злоумышленники, сканирующие трафик, не смогут понять на какие сайты вы ходите, какие данные передаете или получаете.

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

  • VPN позволяет скрыть трафик от интернет-провайдера и, соответственно, от спецслужб. В России уже имеются прецеденты посадки людей в тюрьмы за комментарии в соцсетях, а согласно «закону Яровой» весь ваш трафик и сетевая активность записываются сроком на 1 год. Некоторые считают, что законопослушному гражданину бояться вроде бы нечего, однако, на мой взгляд, это существенное упущение в персональной безопасности. Кто знает, как изменится ваша личная ситуация или ситуация в стране. Вполне возможно, что в один прекрасный день к вам придут и предъявят обвинения за посещение неугодного правительству сайта. В конце концов, зачем вам давать кому-то больше информации о себе, если можно дать меньше? Соответственно, с использованием VPN, будет совершенно невозможно установить характер вашей интернет-деятельности.

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

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

Недостатки VPN

  • Некоторые сайты начнут загружаться на языке страны, в которой располагается VPN-сервер. Однако, это легко исправить. Чаще всего мы приходим на какие-либо сайты через поиск в Google, и достаточно один раз настроить его выдачу на нужные вам языки, и с этого момента вы будете направляться на сайты с нужной вам локализацией. В конце концов, всегда можно выбрать другой язык на самом сайте.

  • Вы увидите рекламу для страны, в которой расположен ваш VPN-сервер. Какие-то площадки уже научились понимать, что на самом деле вы русскоговорящий пользователь и находитесь совсем не в Германии, однако, YouTube, например, по-прежнему этого не умеет и шпарит видео-рекламу на немецком даже при принудительной установке страны в настройках. Иногда это даже интересно: можно посмотреть какие продукты и услуги сейчас актуальны в других странах.
  • Некоторые сервисы, например, Амедиатека или Авито блокируют доступ с нероссийских IP-адресов, поэтому VPN при их использовании придется на время отключать. Опять же, для Амедиатеки есть хак: достаточно выключить VPN, запустить видео в сервисе и сразу же включить VPN обратно. Видео будет проигрываться дальше.
  • Снизится скорость загрузки сайтов. По замерам это действительно так, однако, на практике падение скорости для обычного пользователя настолько незначительно и усредняется (ведь какие-то ресурсы наоборот начнут загружаться быстрее), что данным недостатком в целом можно пренебречь.

  • В играх, критичных к пингу, а ля CS:GO, VPN придется выключать.

О коммерческих VPN-сервисах: NordVPN, ExpressVPN, Cyberghost, и почему не стоит их использовать

В настоящее время существуют так называемые коммерческие VPN-сервисы — компании, которые предоставляют вам свои VPN-сервера за определенную месячную плату. Например, NordVPN, ExpressVPN, CyberGhost и прочие.

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

Кроме того, вы получите большие пинги и существенные просадки в скорости. Ведь на одном VPN-сервере располагаются тысячи таких же клиентов, как и вы.

Таким образом, использование коммерческих VPN-сервисов «для всех» абсурдно само по себе. Лучше уж тогда вообще не использовать никакой VPN, чем сливать свои данные неизвестно кому.

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

В целом: не делайте этого.

В какой стране поднять свой VPN-сервер

Выбирайте страну для размещения VPN-сервера исходя из следующих критериев:

  • Кратчайшее расстояние до вас: это обеспечит наименьший пинг и просадки по скорости.
  • Минимальное количество запретов на свободу Интернета, доступность любых популярных мировых сервисов в этой стране.
  • Наименьшая политическая напряженность между вашей страной и страной VPN-сервера. В этом случае ваш трафик теперь уже с VPN-сервера не будут читать спецслужбы другого государства. Наверное 🙂 Но здесь палка о двух концах. Например, многие российские пользователи предпочитают располагать VPN-сервер в Великобритании именно из-за высокой напряженности между странами, ведь в случае чего, последняя ни за что не сдаст ваш трафик российским спецслужбам. Поэтому, данный подход также может быть оправданным.

Для российских пользователей в целом подходит любая страна Евросоюза, однако, практика показывает, что лучшим решением является Германия: минимальный пинг, высокая скорость и великолепная доступность любых мировых ресурсов.

Выбираем хостера и инструменты

Выбираем хостера

Внимание!

С 8 марта Amazon Web Services (AWS) закрыл регистрацию аккаунтов из России. Услуги же прочих зарубежных хостеров невозможно оплатить из-за неработающих карт Visa/MasterCard.

Рекомендую попробовать хостера VDSina.ru по моей партнерской ссылке, у них есть серверы в Нидерландах. Данная инструкция не зависит от хостера и сработает на любой площадке, просто делайте все по образу и подобию.

Для того, чтобы создать свой VPN-сервер, нам нужно арендовать виртуальный сервер (Virtual Private Server) у одного из хостинг-провайдеров. На него мы установим Linux и затем настроим его.

Наиболее популярные хостинговые компании сегодня:

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

Сегодня AWS предоставляет множество решений для облачных вычислений на любой вкус и цвет, но нам с вами нужна обычная виртуальная машина. Ее мы возьмем в одной из разработок AWS — Lightsail.

Lightsail — это упрощенное решение для создания виртуальных серверов, в отличие от своего старшего собрата EC2. Все завернуто в очень простой интерфейс, в котором разберется даже новичок. И для нашей столь нетребовательной к вычислительным ресурсам задаче как VPN-сервер, AWS Lightsail подходит лучше всего.

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

Сколько стоит

Использование VPN-сервера на базе AWS Lightsail будет обходиться вам в $3,5/мес.. За эти деньги вы получаете машину с 512 Мб оперативной памяти. Подобная конфигурация легко справляется с обработкой VPN-трафика с трех устройств, даже если вы нагружаете их по самые помидоры. В комплекте идет 1TB трафика в месяц, сверх нормы — за деньги. Первые три месяца у AWS будут бесплатными.

Почему Debian, а не Ubuntu

Поднимать VPN-сервер мы будем на основе операционной системы Linux Debian, а не Ubuntu, которая довольно часто фигурирует в подобных инструкциях.

Лично я не люблю Ubuntu с самого ее появления из-за какой-то умозрительной нестабильности и общей аляповатости. К тому же, Ubuntu изначально создавалась именно как пользовательская система, а не серверная. Debian же надежен и стабилен как слон. В моей компании мы используем Debian во всех интернет-проектах последние 11 лет и никогда не имели с ним никаких проблем, получая великолепные быстродействие и надежность. С Ubuntu же вечно что-то происходит.

Протоколы VPN-соединения: почему IPsec IKEv2, а не Open VPN

Сегодня существуют разные протоколы VPN-соединения, их детальный разбор выходит за рамки этой статьи. Среди них наиболее популярны IPsec IKEv2 и OpenVPN.

Оба хороши и надежны, но мы будем использовать IKEv2, поскольку у OpenVPN, на мой взгляд, имеется огромный недостаток, который перекрывает его прочие достоинства.

OpenVPN требует установки своего приложения, которое всегда должно быть запущено на устройствах, что, во-первых, неудобно в использовании, а во-вторых, дополнительно жрет процессор и как следствие быстрее расходует батарею iPhone, iPad и, в меньшей степени, Mac.

IKEv2 же вшит в iOS и macOS и является для этих ОС нативным, не требуя установки никакого дополнительного ПО. Так же, считается, что IKEv2 гораздо быстрее и безопасней, чем OpenVPN.

В качестве серверной части мы будем использовать strongSwan — популярный VPN-сервер для Linux.

Готовые скрипты для развертывания VPN-сервера: Algo, Streisand и почему не стоит их использовать

Сегодня существуют готовые решения для развертывания своего VPN-сервера на платформе Linux, например, скрипт Algo (для IKEv2) или Streisand (для OpenVPN), которые нужно просто скачать, распаковать и запустить на сервере. Данные скрипты сами установят и настроят все необходимые пакеты и на выходе предоставят для вас работающий VPN-сервер.

Streisand нам не подходит в принципе, поскольку заточен под OpenVPN. Что же касается Algo, то пробежавшись по диагонали, я увидел, что данный скрипт устанавливает много лишних пакетов, без которых вполне можно обойтись, а также каких-то подозрительных пакетов, неизвестно кем созданных и кем проверенных. Кроме того, Algo устанавливается только на Ubuntu, что нам, опять же, не подходит.

Таким образом, мы будем создавать свой VPN-сервер, используя следующие технологии:

  • AWS Lightsail в качестве виртуального сервера
  • IKEv2 как протокол VPN
  • Linux Debian в качестве серверной ОС
  • strongSwan в качестве VPN-сервера
  • никаких готовых скриптов, всё настроим руками.

Итак, с теоретической частью покончено, приступаем к созданию своего VPN-сервера.

Инструкция по созданию собственного VPN-сервера на базе Linux Debian

Внимание!

С 8 марта Amazon Web Services (AWS) закрыл регистрацию аккаунтов из России. Услуги же прочих зарубежных хостеров невозможно оплатить из-за неработающих карт Visa/MasterCard.

Рекомендую попробовать хостера VDSina.ru по моей партнерской ссылке, у них есть серверы в Нидерландах. Данная инструкция не зависит от хостера и сработает на любой площадке, просто делайте все по образу и подобию.

Регистрируемся в Amazon AWS и подключаемся к серверу

Процесс регистрации в AWS очень прост и вы пройдете его самостоятельно. После регистрации перейдите в Lightsail, выберите гео-зону в которой вы хотите поднять свой VPN-сервер. Создайте новый инстанс, выберите «OS Only» и операционную систему Debian самой высокой версии:

Нам подойдет простейшая машина с 512 Мб оперативной памяти:

Чтобы закрепить за сервером статический IP-адрес и он не менялся после каждой перезагрузки, перейдем в «Networking» и выделим себе Static IP. Назначим его на созданный нами инстанс:

Осталось скачать уже созданный самим Lightsail дефолтный приватный ключ для доступа по SSH. Он находится в разделе «Account > SSH keys»:

Открываем Terminal в macOS.

В первую очередь, чтобы избежать кое-какой известной проблемы терминала с локалью, зайдем в настройки Терминала, перейдем в Profiles и снимем галочку с “Set locale environment variables on startup”:

Закроем терминал с помощью Cmd+Q и запустим его снова.

Ограничим права нашему скачанному с Lightsail ключу, иначе macOS не позволит его использовать. Исхожу из того, что ключ вы скачали через Safari в папку Downloads. Если нет — подставьте свой путь до папки с ключем.

cd ~/Downloads/ chmod 600 YOUR_DOWNLOADED_KEY.pem

Совет: введите несколько первых символов имени файла ключа и нажмите Tab, терминал подставит остальное автоматически.

И подключимся к нашей Lightsail-машине, вписав вместо YOUR_LIGHTSAIL_IP ее внешний статический IP-адрес, который мы создали в разделе Static IP, а вместо YOURD_DOWNLOADED_KEY имя вашего ключа:

ssh -i YOUR_DOWNLOADED_KEY.pem [email protected]_LIGHTSAIL_IP

… Are you sure you want to continue connecting (yes/no/[fingerprint])?

Напишем “Yes” и нажмем Enter.

Нас приветствует радостная надпись, мы подключились:

Все манипуляции будем осуществлять из-под пользователя root. Поехали:

Обновим индекс пакетов в репозиториях, возможно, есть обновления:

А затем установим эти обновления:

Установим strongSwan

apt-get install strongswan

И набор стандартных плагинов:

apt-get install libstrongswan-standard-plugins

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

Создаем сертификаты доступа

Мы будем использовать самозаверенные сертификаты, поскольку VPN-сервером планируем пользоваться только мы. Для того чтобы создать сертификаты, нам потребуется пакет strongswan-pki. Установим его:

apt-get install strongswan-pki

Теперь нам нужно создать корневой сертификат, он же “CA” (Certificate Authority), который выпустит нам все остальные сертификаты. Создадим его в файле ca.pem.

В следующих двух блоках вместо YOUR_SERVER_IP подставляйте внешний IP-адрес машины в AWS Lightsail. Команды вводятся одна за другой:

cd /etc/ipsec.d ipsec pki —gen —type rsa —size 4096 —outform pem > private/ca.pem ipsec pki —self —ca —lifetime 3650 —in private/ca.pem \ —type rsa —digest sha256 \ —dn «CN=YOUR_SERVER_IP» \ —outform pem > cacerts/ca.pem

Далее создадим сертификат для самого VPN-сервера в файле debian.pem:

ipsec pki —gen —type rsa —size 4096 —outform pem > private/debian.pem ipsec pki —pub —in private/debian.pem —type rsa | ipsec pki —issue —lifetime 3650 —digest sha256 \ —cacert cacerts/ca.pem —cakey private/ca.pem \ —dn «CN=YOUR_SERVER_IP» \ —san YOUR_SERVER_IP \ —flag serverAuth —outform pem > certs/debian.pem

И сертификат для самих устройств в файле me.pem. В следующем блоке ничего (в том числе в “CN=me”) менять не нужно:

ipsec pki —gen —type rsa —size 4096 —outform pem > private/me.pem ipsec pki —pub —in private/me.pem —type rsa | ipsec pki —issue —lifetime 3650 —digest sha256 \ —cacert cacerts/ca.pem —cakey private/ca.pem \ —dn «CN=me» —san me \ —flag clientAuth \ —outform pem > certs/me.pem

Для надежности удалим файл ca.pem, он нам больше не потребуется:

rm /etc/ipsec.d/private/ca.pem

Создание сертификатов завершено.

Настроим strongSwan

Очистим дефолтный конфиг strongSwan командой:

И создадим свой в текстовом редакторе nano:

Вставьте в него данный текст, заменив YOUR_SERVER_IP на внешний IP-адрес машины в AWS Lightsail. Больше в конфиге ничего менять не нужно.

config setup uniqueids=never charondebug=»ike 2, knl 2, cfg 2, net 2, esp 2, dmn 2, mgr 2″ conn %default keyexchange=ikev2 ike=aes128gcm16-sha2_256-prfsha256-ecp256! esp=aes128gcm16-sha2_256-ecp256! fragmentation=yes rekey=no compress=yes dpdaction=clear left=%any leftauth=pubkey leftsourceip=YOUR_SERVER_IP leftid=YOUR_SERVER_IP leftcert=debian.pem leftsendcert=always leftsubnet=0.0.0.0/0 right=%any rightauth=pubkey rightsourceip=10.10.10.0/24 rightdns=8.8.8.8,8.8.4.4 conn ikev2-pubkey auto=add

Внимание! strongSwan требователен к отступам в конфиге, поэтому убедитесь, что параметры каждого раздела конфига отбиты через Tab, как это показано на примере, или хотя бы через пробел, иначе strongSwan не запустится.

Сохраним файл с помощью Ctrl+X и пойдем дальше.

Добавим в файл ipsec.secrets, который является хранилищем ссылок на сертификаты и ключи аутентификации, указатель на наш сертификат сервера:

Вставим в этот файл последней строкой указатель на наш сертификат сервера (да, прям вот так, начиная с двоеточия):

На этом настройка Strongswan завершена, можно рестартнуть службу:

Если все хорошо, то сервер запустится:

… Starting strongSwan 5.7.2 IPsec [starter]…

Если упадет в ошибку, то можно посмотреть, что именно произошло, почитав логи. Команда выведет 50 последних строк лога:

tail -n 50 > /var/log/syslog

Настроим сетевые параметры ядра

Теперь нам необходимо внести некоторые изменения в файл /etc/sysctl.conf:

Через Ctrl+W найдем в файле следующие переменные и внесем в них изменения:

#Раскомментируем (уберем решетку перед параметром) данный параметр, чтобы включить переадресацию пакетов net.ipv4.ip_forward=1 #Раскомментируем данный параметр, чтобы предотвратить MITM-атаки net.ipv4.conf.all.accept_redirects = 0 #Раскомментируем данный параметр, чтобы запретить отправку ICMP-редиректов net.ipv4.conf.all.send_redirects = 0 #В любом месте файла на новой строке добавьте этот параметр, запретив поиск PMTU net.ipv4.ip_no_pmtu_disc = 1

Сохраним файл через Ctrl+X и подгрузим новые значения:

Настройка сетевых параметров завершена.

Настроим iptables

iptables — это утилита, которая управляет встроенным в Linux файрволом netfilter. Для того, чтобы сохранить правила iptables в файле и подгружать их при каждом запуске системы, установим пакет iptables-persistent:

apt-get install iptables-persistent

После установки нас спросят, сохранить ли текущие правила IPv4 и IPv6. Ответим «Нет», так как у нас новая система, и нечего сохранять.

Перейдем к формированию правил iptables. На всякий пожарный, очистим все цепочки:

iptables -P INPUT ACCEPT iptables -P FORWARD ACCEPT iptables -F iptables -Z

Разрешим соединения по SSH на 22 порту, чтобы не потерять доступ к машине:

iptables -A INPUT -m state —state ESTABLISHED,RELATED -j ACCEPT iptables -A INPUT -p tcp —dport 22 -j ACCEPT

Разрешим соединения на loopback-интерфейсе:

iptables -A INPUT -i lo -j ACCEPT

Теперь разрешим входящие соединения на UDP-портах 500 и 4500:

iptables -A INPUT -p udp —dport 500 -j ACCEPT iptables -A INPUT -p udp —dport 4500 -j ACCEPT

Разрешим переадресацию ESP-трафика:

iptables -A FORWARD —match policy —pol ipsec —dir in —proto esp -s 10.10.10.0/24 -j ACCEPT iptables -A FORWARD —match policy —pol ipsec —dir out —proto esp -d 10.10.10.0/24 -j ACCEPT

Настроим маскирование трафика, так как наш VPN-сервер, по сути, выступает как шлюз между Интернетом и VPN-клиентами:

iptables -t nat -A POSTROUTING -s 10.10.10.0/24 -o eth0 -m policy —pol ipsec —dir out -j ACCEPT iptables -t nat -A POSTROUTING -s 10.10.10.0/24 -o eth0 -j MASQUERADE

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

iptables -t mangle -A FORWARD —match policy —pol ipsec —dir in -s 10.10.10.0/24 -o eth0 -p tcp -m tcp —tcp-flags SYN,RST SYN -m tcpmss —mss 1361:1536 -j TCPMSS —set-mss 1360

Запретим все прочие соединения к серверу:

iptables -A INPUT -j DROP iptables -A FORWARD -j DROP

Сохраним правила, чтобы они загружались после каждой перезагрузки:

netfilter-persistent save netfilter-persistent reload

Настройка iptables завершена.

Перезагрузим машину:

И посмотрим работают ли правила iptables:

[email protected] X.XX.XX:/home/admin# iptables -S -P INPUT ACCEPT -P FORWARD ACCEPT -P OUTPUT ACCEPT -A INPUT -m state —state RELATED,ESTABLISHED -j ACCEPT -A INPUT -p tcp -m tcp —dport 22 -j ACCEPT -A INPUT -i lo -j ACCEPT -A INPUT -p udp -m udp —dport 500 -j ACCEPT -A INPUT -p udp -m udp —dport 4500 -j ACCEPT -A INPUT -j DROP -A FORWARD -s 10.10.10.0/24 -m policy —dir in —pol ipsec —proto esp -j ACCEPT -A FORWARD -d 10.10.10.0/24 -m policy —dir out —pol ipsec —proto esp -j ACCEPT -A FORWARD -j DROP

Да, всё работает.

Работает ли strongSwan:

[email protected]:/home/admin# ipsec statusall Status of IKE charon daemon (strongSwan 5.7.2, Linux 4.19.0-14-amd64, x86_64): uptime: 71 seconds, since Mar 05 23:22:16 2022 …

Да, всё работает.

Разрешаем соединения в файрволе Lightsail

AWS Lightsail использует также и свой файрвол для защиты виртуальных машин. Если в нем не разрешить соединения на UDP-портах 500 и 4500, к VPN-серверу нельзя будет подключиться. Выберем наш инстанс в Lightsail, перейдем в «Networking», добавим эти порты и по пути удалим ненужный нам 80-й порт:

Удалите 80-й порт так же и в разделе IPv6 firewall, ниже по странице.

Настройка файрвола Lightsail завершена.

Создаем .mobileconfig для iPhone, iPad и Mac

Мы будем использовать один и тот же VPN-профайл .mobileconfig для всех наших устройств.

Конфиг, который мы сделаем, устроен таким образом, чтобы инициировать соединение “On Demand”. Это означает, что при попытке любой службы или приложения выйти в Интернет, VPN-соединение будет всегда устанавливаться принудительно и автоматически. Таким образом, удастся избежать ситуации, когда вы забыли установить VPN-соединение, например, после перезагрузки девайса, а трафик в итоге пошел через провайдера, что нам совсем не нужно.

Скачаем скрипт, который сгенерирует для нас данный конфиг:

wget https://gist.githubusercontent.com/borisovonline/955b7c583c049464c878bbe43329a521/raw/b2d9dba73da633fcfcca6a03d877517c5b2d9485/mobileconfig.sh

Для того, чтобы скрипт отработал, нам потребуется пакет zsh, установим его:

Отредактируем название сервера по вкусу, а также пропишем внешний IP-адрес машины Lightsail:

SERVER=»AWS Frankfurt» FQDN=»YOUR_LIGHTSAIL_IP»

Запустим скрипт и на выходе получим готовый файл iphone.mobileconfig:

chmod u+x mobileconfig.sh ./mobileconfig.sh > iphone.mobileconfig

Заберите этот файл с сервера, подключившись по SFTP, например, с помощью Cyberduck. Для подключения используйте тот же ключ от Lightsail, внешний IP-адрес сервера и имя пользователя admin.

Отправьте скачанный файл iphone.mobileconfig на все ваши устройства через Airdrop. Подтвердите на устройствах установку конфигурации.

В macOS профайл устанавливается из System Preferences > Profiles. В iOS он появится в Settings > Profile Downloaded:

Готово! Соединения с VPN-сервером установятся автоматически.

Если захочется временно отключить VPN, чтобы получить доступ, например, к Авито, в macOS зайдите в System Preferences > Network, выберите VPN-соединение и снимите галочку “Connect on Demand”, нажмите Apply.

В iOS: Settings > General > VPN & Device Management > VPN > нажмите на иконку “i” у установленной VPN конфигурации и выключите тумблер “Connect On Demand”. Чтобы вернуться обратно к автоматическому принудительному установлению соединений, соответственно, верните эти галки/тумблеры обратно:

Кстати, в macOS так же стоит поставить галку “Show VPN status in menu bar”. Будет удобно быстро чекать активно ли сейчас VPN-соединение.

Приберемся за собой:

rm mobileconfig.sh rm iphone.mobileconfig

Если соединения VPN успешно установились, но нет интернета

Скорее всего, ваш хостер переименовал обычно принятый дефолтным сетевой интерфейс eth0 во что-то другое по своему усмотрению (это нормально). И созданные нами правила роутинга iptables просто не могут отработать, поскольку обращаются к интерфейсу, которого нет.

Выполните команду ip addr или ifconfig, чтобы отобразить ваши сетевые интерфейсы:

И если вместо eth0 вы увидите что-то типа ens3, enp0s5 и т.п, как на скриншоте выше, то просто замените через

nano /etc/iptables/rules.v4

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

-A POSTROUTING -s 10.10.10.0/24 -o eth0 -m policy —dir out —pol ipsec -j ACCEPT -A POSTROUTING -s 10.10.10.0/24 -o eth0 -j MASQUERADE -A FORWARD -s 10.10.10.0/24 -o eth0 -p tcp -m policy —dir in —pol ipsec -m tcp —tcp-flags SYN,RST SYN -m tcpmss —mss 1361:1536 -j TCPMSS —set-mss 1360

на ваше название интерфейса. Перезагрузите сервер. Интернет заработает.

Прокачаем безопасность SSH (необязательный пункт)

Наш VPN-сервер уже работает и неплохо защищен, однако, я предлагаю еще чуток прокачать безопасность SSH, не вдаваясь в дебри.

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

Вы можете выбрать любой порт по вкусу, начиная с 1024, однако, я рекомендую поискать такой порт, который не был замечен в использовании вирусами, троянами, а также не используется какими-либо известными сервисами, программным обеспечением или производителями оборудования. Найдите себе такой «чистый» порт на SpeedGuide или adminsubnet.

В нашем примере мы будем использовать порт 45323.

Внимание! Не перезапускайте службы SSH и iptables и не перезагружайте машину, пока не пройдете данный раздел до конца, иначе вы потеряете доступ к машине!

Добавим новый 45323 TCP-порт в Lightsail:

Теперь настроим сам SSH:

nano /etc/ssh/sshd_config

#Раскомментируем и пропишем новый порт Port 45323 #Раскомментируем и запретим попытки соединения с пустым паролем PermitEmptyPasswords no #Раскомментируем и настроим автоматический разрыв соединения при бездействии через 360 секунд. Это будет полезно, если вы забыли, что у вас на экране осталась активная сессия и отошли от компьютера. Сервер автоматически разорвет SSH-соединение через 6 минут. ClientAliveInterval 360 ClientAliveCountMax 0

Теперь обновим информацию в правилах iptables и заменим старый порт SSH на новый:

nano /etc/iptables/rules.v4

Заменим «22» в строке

-A INPUT -p tcp -m tcp —dport 22 -j ACCEPT

-A INPUT -p tcp -m tcp —dport 45323 -j ACCEPT

Сохраним файл через Ctrl+X и перезапустим машину:

После перезагрузки сервера проверьте соединение по SSH, добавив флаг «-p» и новый порт:

ssh -i YOUR_DOWNLOADED_KEY.pem [email protected]_LIGHTSAIL_IP -p 45323

Всё должно работать.

Не забудьте удалить старый порт 22 в настройках файрвола Lightsail.

Заключение

Итак, мы с нуля настроили свой собственный защищенный VPN-сервер и получили VPN-конфигурации для всех наших устройств. Теперь весь наш трафик зашифрован и недоступен ни провайдеру, ни администратору Wi-Fi-сети, ни злоумышленникам, которые раньше могли его прослушивать. Теперь мы можем свободно подключаться к любым Wi-Fi сетям, не опасаясь за собственные данные. Кроме того, теперь нам доступны любые заблокированные в стране ресурсы.

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

Бывает и так, что для определенной страны какой-либо ресурс недоступен по техническим причинам, в то время как из другой он работает корректно. В этом случае достаточно просто подключиться к другому VPN-серверу.

Делитесь инструкцией с друзьями, распространяйте в соцсетях.

Если вы нашли какие-либо ошибки в статье, пожалуйста, сообщите об этом.

Дополнительные материалы к статье, которые могут быть интересны:

Создаем свой VPN-сервер. Пошаговая инструкция — Разработка на vc.ru

Данная инструкция позволит вам самостоятельно создать свой собственный VPN-сервер и настроить VPN-соединения на iPhone, iPad и Mac. Вы получите доступ к заблокированным в стране ресурсам, а также скроете ваш трафик от злоумышленников, провайдеров и спецслужб.

{«id»:66942,»type»:»num»,»link»:»https:\/\/vc.ru\/dev\/66942-sozdaem-svoy-vpn-server-poshagovaya-instrukciya»,»gtm»:»»,»prevCount»:null,»count»:171}

{«id»:66942,»type»:1,»typeStr»:»content»,»showTitle»:false,»initialState»:{«isActive»:false},»gtm»:»»}

{«id»:66942,»gtm»:null}

551 173 просмотров

Последнее обновление статьи: 22 марта 2022 года.

Инструкция была обкатана и проверена сотни раз и гарантированно сработает без каких-либо ошибок, если вы будете ей следовать. Актуальна для всех версий macOS, вплоть до macOS Monterey, а также всех версий iOS, вплоть до iOS 15.3+.

Настройка займет от 15 минут времени, в зависимости от скорости вашей работы.

Преамбула

В январе 2019 года я путешествовал по Азии. Находясь в Гуанчжоу, мне не удалось получить доступ к Google, YouTube и ряду других популярных сервисов. Они в принципе не работают на территории Китая и заблокированы правительством.

Помимо этого, в путешествиях вообще всегда есть определенная проблема с безопасным доступом в Интернет. Не всегда удается купить местную SIM-карту, поэтому приходится подключаться к Wi-Fi-сетям отелей, аэропортов и кафе. Фактически, мы ничего не знаем об этих сетях: кем они были созданы и насколько надежны.

То же самое и в родной стране. Если вы беззаботно подключаетесь к Wi-Fi-сети кафе, то у меня для вас плохие новости. Возможно прямо сейчас весь ваш трафик прослушивается злоумышленниками за соседним столиком.

Вывод: всегда, когда мы подключаемся к сети, которая не является нашей собственной, наша сетевая активность находится под перманентной угрозой.

Использование VPN — оптимальное решение двух обозначенных проблем сразу. Мы получаем доступ к заблокированным в стране ресурсам, а по пути еще и защищаем себя от прослушки.

Реализовать VPN можно двумя способами:

  • Воспользоваться коммерческим VPN-сервисом, например, Nord VPN.
  • Создать свой VPN-сервер.

Для меня использование коммерческого VPN было в принципе неприемлемым решением, и по ходу статьи я объясню почему я категорически не рекомендую пользоваться подобными сервисами. А так как я уже имел навык настройки серверов на Linux, я решил поднять собственный VPN-сервер: размять пальцы, прокачать скилл.

Однако, побродив по Интернету, я не нашел ни одной нормально работающей инструкции: все они были либо с ошибками, либо были заточены под слишком специфические кейсы, что не подойдет для обычного пользователя. Поэтому, я решил написать свою.

На мой взгляд, сегодня VPN должен быть у любого пользователя, который более-менее заботится о безопасности своих данных.

Инструкция написана для широкого круга читателей, однако, предполагает хотя бы минимальные знания Linux на уровне начального пользователя, который умеет обращаться с базовыми командами консоли (это правда очень и очень просто!). Настройка займет от 15 минут времени, в зависимости от скорости вашей работы.

К сожалению, Windows и Android в данной статье не рассматриваются, поскольку Windows последний раз я пользовался лет 15 назад, а Android — вообще совокупно 2 часа за всю жизнь, поэтому не представляю, что и как как сегодня все устроено в этих ОС. Не исключаю, что подходы, описанные здесь, сработают и для них. Инструкция в первую очередь создана для пользователей iPhone, iPad и Mac.

Сначала будет немного теории для понимания происходящего, желающие же сразу могут перейти к инструкции.

Немного теории: как работает VPN

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

Для простоты понимания можно представить, что основной канал провайдера — это большая труба, а внутри этой трубы вы прокладываете свою собственную, защищенную, отсекая всем доступ в нее. И через эту трубу попадаете на свой сервер и сидите в Интернете как бы со своего сервера: там, где он физически располагается. That’s all.

Для вашего провайдера, администратора Wi-Fi-сети или же злоумышленников, которые сканируют трафик в Wi-Fi-сетях, вся ваша сетевая активность выглядит как одно единственное соединение к одному единственному IP-адресу — адресу вашего VPN-сервера. Это все, что они видят. Что же именно происходит внутри этой вашей трубы, они не знают и не узнают.

Случаи взлома VPN-туннеля (вашей трубы), при условии, что применяются нормальные алгоритмы шифрования и все настроено корректно, мне не удалось найти. Можно попробовать взломать и сам VPN-сервер и получить доступ к вашему трафику уже на нем, но это так же весьма сложная задача, и при условии нормальной защищенности сервера, стремится к невыполнимой. Никто просто не будет этим заниматься.

Плюсы использования VPN

  • VPN полностью скроет ваш трафик от прослушки при подключении к ненадежным (не лично вашим) Wi-Fi-сетям, и особенно полезен в путешествиях. Ни администратор Wi-Fi-сети, ни злоумышленники, сканирующие трафик, не смогут понять на какие сайты вы ходите, какие данные передаете или получаете.

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

  • VPN позволяет скрыть трафик от интернет-провайдера и, соответственно, от спецслужб. В России уже имеются прецеденты посадки людей в тюрьмы за комментарии в соцсетях, а согласно «закону Яровой» весь ваш трафик и сетевая активность записываются сроком на 1 год. Некоторые считают, что законопослушному гражданину бояться вроде бы нечего, однако, на мой взгляд, это существенное упущение в персональной безопасности. Кто знает, как изменится ваша личная ситуация или ситуация в стране. Вполне возможно, что в один прекрасный день к вам придут и предъявят обвинения за посещение неугодного правительству сайта. В конце концов, зачем вам давать кому-то больше информации о себе, если можно дать меньше? Соответственно, с использованием VPN, будет совершенно невозможно установить характер вашей интернет-деятельности.

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

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

Недостатки VPN

  • Некоторые сайты начнут загружаться на языке страны, в которой располагается VPN-сервер. Однако, это легко исправить. Чаще всего мы приходим на какие-либо сайты через поиск в Google, и достаточно один раз настроить его выдачу на нужные вам языки, и с этого момента вы будете направляться на сайты с нужной вам локализацией. В конце концов, всегда можно выбрать другой язык на самом сайте.

  • Вы увидите рекламу для страны, в которой расположен ваш VPN-сервер. Какие-то площадки уже научились понимать, что на самом деле вы русскоговорящий пользователь и находитесь совсем не в Германии, однако, YouTube, например, по-прежнему этого не умеет и шпарит видео-рекламу на немецком даже при принудительной установке страны в настройках. Иногда это даже интересно: можно посмотреть какие продукты и услуги сейчас актуальны в других странах.
  • Некоторые сервисы, например, Амедиатека или Авито блокируют доступ с нероссийских IP-адресов, поэтому VPN при их использовании придется на время отключать. Опять же, для Амедиатеки есть хак: достаточно выключить VPN, запустить видео в сервисе и сразу же включить VPN обратно. Видео будет проигрываться дальше.
  • Снизится скорость загрузки сайтов. По замерам это действительно так, однако, на практике падение скорости для обычного пользователя настолько незначительно и усредняется (ведь какие-то ресурсы наоборот начнут загружаться быстрее), что данным недостатком в целом можно пренебречь.

  • В играх, критичных к пингу, а ля CS:GO, VPN придется выключать.

О коммерческих VPN-сервисах: NordVPN, ExpressVPN, Cyberghost, и почему не стоит их использовать

В настоящее время существуют так называемые коммерческие VPN-сервисы — компании, которые предоставляют вам свои VPN-сервера за определенную месячную плату. Например, NordVPN, ExpressVPN, CyberGhost и прочие.

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

Кроме того, вы получите большие пинги и существенные просадки в скорости. Ведь на одном VPN-сервере располагаются тысячи таких же клиентов, как и вы.

Таким образом, использование коммерческих VPN-сервисов «для всех» абсурдно само по себе. Лучше уж тогда вообще не использовать никакой VPN, чем сливать свои данные неизвестно кому.

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

В целом: не делайте этого.

В какой стране поднять свой VPN-сервер

Выбирайте страну для размещения VPN-сервера исходя из следующих критериев:

  • Кратчайшее расстояние до вас: это обеспечит наименьший пинг и просадки по скорости.
  • Минимальное количество запретов на свободу Интернета, доступность любых популярных мировых сервисов в этой стране.
  • Наименьшая политическая напряженность между вашей страной и страной VPN-сервера. В этом случае ваш трафик теперь уже с VPN-сервера не будут читать спецслужбы другого государства. Наверное 🙂 Но здесь палка о двух концах. Например, многие российские пользователи предпочитают располагать VPN-сервер в Великобритании именно из-за высокой напряженности между странами, ведь в случае чего, последняя ни за что не сдаст ваш трафик российским спецслужбам. Поэтому, данный подход также может быть оправданным.

Для российских пользователей в целом подходит любая страна Евросоюза, однако, практика показывает, что лучшим решением является Германия: минимальный пинг, высокая скорость и великолепная доступность любых мировых ресурсов.

Выбираем хостера и инструменты

Выбираем хостера

Внимание!

С 8 марта Amazon Web Services (AWS) закрыл регистрацию аккаунтов из России. Услуги же прочих зарубежных хостеров невозможно оплатить из-за неработающих карт Visa/MasterCard.

Рекомендую попробовать хостера VDSina.ru по моей партнерской ссылке, у них есть серверы в Нидерландах. Данная инструкция не зависит от хостера и сработает на любой площадке, просто делайте все по образу и подобию.

Для того, чтобы создать свой VPN-сервер, нам нужно арендовать виртуальный сервер (Virtual Private Server) у одного из хостинг-провайдеров. На него мы установим Linux и затем настроим его.

Наиболее популярные хостинговые компании сегодня:

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

Сегодня AWS предоставляет множество решений для облачных вычислений на любой вкус и цвет, но нам с вами нужна обычная виртуальная машина. Ее мы возьмем в одной из разработок AWS — Lightsail.

Lightsail — это упрощенное решение для создания виртуальных серверов, в отличие от своего старшего собрата EC2. Все завернуто в очень простой интерфейс, в котором разберется даже новичок. И для нашей столь нетребовательной к вычислительным ресурсам задаче как VPN-сервер, AWS Lightsail подходит лучше всего.

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

Сколько стоит

Использование VPN-сервера на базе AWS Lightsail будет обходиться вам в $3,5/мес.. За эти деньги вы получаете машину с 512 Мб оперативной памяти. Подобная конфигурация легко справляется с обработкой VPN-трафика с трех устройств, даже если вы нагружаете их по самые помидоры. В комплекте идет 1TB трафика в месяц, сверх нормы — за деньги. Первые три месяца у AWS будут бесплатными.

Почему Debian, а не Ubuntu

Поднимать VPN-сервер мы будем на основе операционной системы Linux Debian, а не Ubuntu, которая довольно часто фигурирует в подобных инструкциях.

Лично я не люблю Ubuntu с самого ее появления из-за какой-то умозрительной нестабильности и общей аляповатости. К тому же, Ubuntu изначально создавалась именно как пользовательская система, а не серверная. Debian же надежен и стабилен как слон. В моей компании мы используем Debian во всех интернет-проектах последние 11 лет и никогда не имели с ним никаких проблем, получая великолепные быстродействие и надежность. С Ubuntu же вечно что-то происходит.

Протоколы VPN-соединения: почему IPsec IKEv2, а не Open VPN

Сегодня существуют разные протоколы VPN-соединения, их детальный разбор выходит за рамки этой статьи. Среди них наиболее популярны IPsec IKEv2 и OpenVPN.

Оба хороши и надежны, но мы будем использовать IKEv2, поскольку у OpenVPN, на мой взгляд, имеется огромный недостаток, который перекрывает его прочие достоинства.

OpenVPN требует установки своего приложения, которое всегда должно быть запущено на устройствах, что, во-первых, неудобно в использовании, а во-вторых, дополнительно жрет процессор и как следствие быстрее расходует батарею iPhone, iPad и, в меньшей степени, Mac.

IKEv2 же вшит в iOS и macOS и является для этих ОС нативным, не требуя установки никакого дополнительного ПО. Так же, считается, что IKEv2 гораздо быстрее и безопасней, чем OpenVPN.

В качестве серверной части мы будем использовать strongSwan — популярный VPN-сервер для Linux.

Готовые скрипты для развертывания VPN-сервера: Algo, Streisand и почему не стоит их использовать

Сегодня существуют готовые решения для развертывания своего VPN-сервера на платформе Linux, например, скрипт Algo (для IKEv2) или Streisand (для OpenVPN), которые нужно просто скачать, распаковать и запустить на сервере. Данные скрипты сами установят и настроят все необходимые пакеты и на выходе предоставят для вас работающий VPN-сервер.

Streisand нам не подходит в принципе, поскольку заточен под OpenVPN. Что же касается Algo, то пробежавшись по диагонали, я увидел, что данный скрипт устанавливает много лишних пакетов, без которых вполне можно обойтись, а также каких-то подозрительных пакетов, неизвестно кем созданных и кем проверенных. Кроме того, Algo устанавливается только на Ubuntu, что нам, опять же, не подходит.

Таким образом, мы будем создавать свой VPN-сервер, используя следующие технологии:

  • AWS Lightsail в качестве виртуального сервера
  • IKEv2 как протокол VPN
  • Linux Debian в качестве серверной ОС
  • strongSwan в качестве VPN-сервера
  • никаких готовых скриптов, всё настроим руками.

Итак, с теоретической частью покончено, приступаем к созданию своего VPN-сервера.

Инструкция по созданию собственного VPN-сервера на базе Linux Debian

Внимание!

С 8 марта Amazon Web Services (AWS) закрыл регистрацию аккаунтов из России. Услуги же прочих зарубежных хостеров невозможно оплатить из-за неработающих карт Visa/MasterCard.

Рекомендую попробовать хостера VDSina.ru по моей партнерской ссылке, у них есть серверы в Нидерландах. Данная инструкция не зависит от хостера и сработает на любой площадке, просто делайте все по образу и подобию.

Регистрируемся в Amazon AWS и подключаемся к серверу

Процесс регистрации в AWS очень прост и вы пройдете его самостоятельно. После регистрации перейдите в Lightsail, выберите гео-зону в которой вы хотите поднять свой VPN-сервер. Создайте новый инстанс, выберите «OS Only» и операционную систему Debian самой высокой версии:

Нам подойдет простейшая машина с 512 Мб оперативной памяти:

Чтобы закрепить за сервером статический IP-адрес и он не менялся после каждой перезагрузки, перейдем в «Networking» и выделим себе Static IP. Назначим его на созданный нами инстанс:

Осталось скачать уже созданный самим Lightsail дефолтный приватный ключ для доступа по SSH. Он находится в разделе «Account > SSH keys»:

Открываем Terminal в macOS.

В первую очередь, чтобы избежать кое-какой известной проблемы терминала с локалью, зайдем в настройки Терминала, перейдем в Profiles и снимем галочку с “Set locale environment variables on startup”:

Закроем терминал с помощью Cmd+Q и запустим его снова.

Ограничим права нашему скачанному с Lightsail ключу, иначе macOS не позволит его использовать. Исхожу из того, что ключ вы скачали через Safari в папку Downloads. Если нет — подставьте свой путь до папки с ключем.

cd ~/Downloads/ chmod 600 YOUR_DOWNLOADED_KEY.pem

Совет: введите несколько первых символов имени файла ключа и нажмите Tab, терминал подставит остальное автоматически.

И подключимся к нашей Lightsail-машине, вписав вместо YOUR_LIGHTSAIL_IP ее внешний статический IP-адрес, который мы создали в разделе Static IP, а вместо YOURD_DOWNLOADED_KEY имя вашего ключа:

ssh -i YOUR_DOWNLOADED_KEY.pem [email protected]_LIGHTSAIL_IP

… Are you sure you want to continue connecting (yes/no/[fingerprint])?

Напишем “Yes” и нажмем Enter.

Нас приветствует радостная надпись, мы подключились:

Все манипуляции будем осуществлять из-под пользователя root. Поехали:

Обновим индекс пакетов в репозиториях, возможно, есть обновления:

А затем установим эти обновления:

Установим strongSwan

apt-get install strongswan

И набор стандартных плагинов:

apt-get install libstrongswan-standard-plugins

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

Создаем сертификаты доступа

Мы будем использовать самозаверенные сертификаты, поскольку VPN-сервером планируем пользоваться только мы. Для того чтобы создать сертификаты, нам потребуется пакет strongswan-pki. Установим его:

apt-get install strongswan-pki

Теперь нам нужно создать корневой сертификат, он же “CA” (Certificate Authority), который выпустит нам все остальные сертификаты. Создадим его в файле ca.pem.

В следующих двух блоках вместо YOUR_SERVER_IP подставляйте внешний IP-адрес машины в AWS Lightsail. Команды вводятся одна за другой:

cd /etc/ipsec.d ipsec pki —gen —type rsa —size 4096 —outform pem > private/ca.pem ipsec pki —self —ca —lifetime 3650 —in private/ca.pem \ —type rsa —digest sha256 \ —dn «CN=YOUR_SERVER_IP» \ —outform pem > cacerts/ca.pem

Далее создадим сертификат для самого VPN-сервера в файле debian.pem:

ipsec pki —gen —type rsa —size 4096 —outform pem > private/debian.pem ipsec pki —pub —in private/debian.pem —type rsa | ipsec pki —issue —lifetime 3650 —digest sha256 \ —cacert cacerts/ca.pem —cakey private/ca.pem \ —dn «CN=YOUR_SERVER_IP» \ —san YOUR_SERVER_IP \ —flag serverAuth —outform pem > certs/debian.pem

И сертификат для самих устройств в файле me.pem. В следующем блоке ничего (в том числе в “CN=me”) менять не нужно:

ipsec pki —gen —type rsa —size 4096 —outform pem > private/me.pem ipsec pki —pub —in private/me.pem —type rsa | ipsec pki —issue —lifetime 3650 —digest sha256 \ —cacert cacerts/ca.pem —cakey private/ca.pem \ —dn «CN=me» —san me \ —flag clientAuth \ —outform pem > certs/me.pem

Для надежности удалим файл ca.pem, он нам больше не потребуется:

rm /etc/ipsec.d/private/ca.pem

Создание сертификатов завершено.

Настроим strongSwan

Очистим дефолтный конфиг strongSwan командой:

И создадим свой в текстовом редакторе nano:

Вставьте в него данный текст, заменив YOUR_SERVER_IP на внешний IP-адрес машины в AWS Lightsail. Больше в конфиге ничего менять не нужно.

config setup uniqueids=never charondebug=»ike 2, knl 2, cfg 2, net 2, esp 2, dmn 2, mgr 2″ conn %default keyexchange=ikev2 ike=aes128gcm16-sha2_256-prfsha256-ecp256! esp=aes128gcm16-sha2_256-ecp256! fragmentation=yes rekey=no compress=yes dpdaction=clear left=%any leftauth=pubkey leftsourceip=YOUR_SERVER_IP leftid=YOUR_SERVER_IP leftcert=debian.pem leftsendcert=always leftsubnet=0.0.0.0/0 right=%any rightauth=pubkey rightsourceip=10.10.10.0/24 rightdns=8.8.8.8,8.8.4.4 conn ikev2-pubkey auto=add

Внимание! strongSwan требователен к отступам в конфиге, поэтому убедитесь, что параметры каждого раздела конфига отбиты через Tab, как это показано на примере, или хотя бы через пробел, иначе strongSwan не запустится.

Сохраним файл с помощью Ctrl+X и пойдем дальше.

Добавим в файл ipsec.secrets, который является хранилищем ссылок на сертификаты и ключи аутентификации, указатель на наш сертификат сервера:

Вставим в этот файл последней строкой указатель на наш сертификат сервера (да, прям вот так, начиная с двоеточия):

На этом настройка Strongswan завершена, можно рестартнуть службу:

Если все хорошо, то сервер запустится:

… Starting strongSwan 5.7.2 IPsec [starter]…

Если упадет в ошибку, то можно посмотреть, что именно произошло, почитав логи. Команда выведет 50 последних строк лога:

tail -n 50 > /var/log/syslog

Настроим сетевые параметры ядра

Теперь нам необходимо внести некоторые изменения в файл /etc/sysctl.conf:

Через Ctrl+W найдем в файле следующие переменные и внесем в них изменения:

#Раскомментируем (уберем решетку перед параметром) данный параметр, чтобы включить переадресацию пакетов net.ipv4.ip_forward=1 #Раскомментируем данный параметр, чтобы предотвратить MITM-атаки net.ipv4.conf.all.accept_redirects = 0 #Раскомментируем данный параметр, чтобы запретить отправку ICMP-редиректов net.ipv4.conf.all.send_redirects = 0 #В любом месте файла на новой строке добавьте этот параметр, запретив поиск PMTU net.ipv4.ip_no_pmtu_disc = 1

Сохраним файл через Ctrl+X и подгрузим новые значения:

Настройка сетевых параметров завершена.

Настроим iptables

iptables — это утилита, которая управляет встроенным в Linux файрволом netfilter. Для того, чтобы сохранить правила iptables в файле и подгружать их при каждом запуске системы, установим пакет iptables-persistent:

apt-get install iptables-persistent

После установки нас спросят, сохранить ли текущие правила IPv4 и IPv6. Ответим «Нет», так как у нас новая система, и нечего сохранять.

Перейдем к формированию правил iptables. На всякий пожарный, очистим все цепочки:

iptables -P INPUT ACCEPT iptables -P FORWARD ACCEPT iptables -F iptables -Z

Разрешим соединения по SSH на 22 порту, чтобы не потерять доступ к машине:

iptables -A INPUT -m state —state ESTABLISHED,RELATED -j ACCEPT iptables -A INPUT -p tcp —dport 22 -j ACCEPT

Разрешим соединения на loopback-интерфейсе:

iptables -A INPUT -i lo -j ACCEPT

Теперь разрешим входящие соединения на UDP-портах 500 и 4500:

iptables -A INPUT -p udp —dport 500 -j ACCEPT iptables -A INPUT -p udp —dport 4500 -j ACCEPT

Разрешим переадресацию ESP-трафика:

iptables -A FORWARD —match policy —pol ipsec —dir in —proto esp -s 10.10.10.0/24 -j ACCEPT iptables -A FORWARD —match policy —pol ipsec —dir out —proto esp -d 10.10.10.0/24 -j ACCEPT

Настроим маскирование трафика, так как наш VPN-сервер, по сути, выступает как шлюз между Интернетом и VPN-клиентами:

iptables -t nat -A POSTROUTING -s 10.10.10.0/24 -o eth0 -m policy —pol ipsec —dir out -j ACCEPT iptables -t nat -A POSTROUTING -s 10.10.10.0/24 -o eth0 -j MASQUERADE

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

iptables -t mangle -A FORWARD —match policy —pol ipsec —dir in -s 10.10.10.0/24 -o eth0 -p tcp -m tcp —tcp-flags SYN,RST SYN -m tcpmss —mss 1361:1536 -j TCPMSS —set-mss 1360

Запретим все прочие соединения к серверу:

iptables -A INPUT -j DROP iptables -A FORWARD -j DROP

Сохраним правила, чтобы они загружались после каждой перезагрузки:

netfilter-persistent save netfilter-persistent reload

Настройка iptables завершена.

Перезагрузим машину:

И посмотрим работают ли правила iptables:

[email protected] X.XX.XX:/home/admin# iptables -S -P INPUT ACCEPT -P FORWARD ACCEPT -P OUTPUT ACCEPT -A INPUT -m state —state RELATED,ESTABLISHED -j ACCEPT -A INPUT -p tcp -m tcp —dport 22 -j ACCEPT -A INPUT -i lo -j ACCEPT -A INPUT -p udp -m udp —dport 500 -j ACCEPT -A INPUT -p udp -m udp —dport 4500 -j ACCEPT -A INPUT -j DROP -A FORWARD -s 10.10.10.0/24 -m policy —dir in —pol ipsec —proto esp -j ACCEPT -A FORWARD -d 10.10.10.0/24 -m policy —dir out —pol ipsec —proto esp -j ACCEPT -A FORWARD -j DROP

Да, всё работает.

Работает ли strongSwan:

[email protected]:/home/admin# ipsec statusall Status of IKE charon daemon (strongSwan 5.7.2, Linux 4.19.0-14-amd64, x86_64): uptime: 71 seconds, since Mar 05 23:22:16 2022 …

Да, всё работает.

Разрешаем соединения в файрволе Lightsail

AWS Lightsail использует также и свой файрвол для защиты виртуальных машин. Если в нем не разрешить соединения на UDP-портах 500 и 4500, к VPN-серверу нельзя будет подключиться. Выберем наш инстанс в Lightsail, перейдем в «Networking», добавим эти порты и по пути удалим ненужный нам 80-й порт:

Удалите 80-й порт так же и в разделе IPv6 firewall, ниже по странице.

Настройка файрвола Lightsail завершена.

Создаем .mobileconfig для iPhone, iPad и Mac

Мы будем использовать один и тот же VPN-профайл .mobileconfig для всех наших устройств.

Конфиг, который мы сделаем, устроен таким образом, чтобы инициировать соединение “On Demand”. Это означает, что при попытке любой службы или приложения выйти в Интернет, VPN-соединение будет всегда устанавливаться принудительно и автоматически. Таким образом, удастся избежать ситуации, когда вы забыли установить VPN-соединение, например, после перезагрузки девайса, а трафик в итоге пошел через провайдера, что нам совсем не нужно.

Скачаем скрипт, который сгенерирует для нас данный конфиг:

wget https://gist.githubusercontent.com/borisovonline/955b7c583c049464c878bbe43329a521/raw/b2d9dba73da633fcfcca6a03d877517c5b2d9485/mobileconfig.sh

Для того, чтобы скрипт отработал, нам потребуется пакет zsh, установим его:

Отредактируем название сервера по вкусу, а также пропишем внешний IP-адрес машины Lightsail:

SERVER=»AWS Frankfurt» FQDN=»YOUR_LIGHTSAIL_IP»

Запустим скрипт и на выходе получим готовый файл iphone.mobileconfig:

chmod u+x mobileconfig.sh ./mobileconfig.sh > iphone.mobileconfig

Заберите этот файл с сервера, подключившись по SFTP, например, с помощью Cyberduck. Для подключения используйте тот же ключ от Lightsail, внешний IP-адрес сервера и имя пользователя admin.

Отправьте скачанный файл iphone.mobileconfig на все ваши устройства через Airdrop. Подтвердите на устройствах установку конфигурации.

В macOS профайл устанавливается из System Preferences > Profiles. В iOS он появится в Settings > Profile Downloaded:

Готово! Соединения с VPN-сервером установятся автоматически.

Если захочется временно отключить VPN, чтобы получить доступ, например, к Авито, в macOS зайдите в System Preferences > Network, выберите VPN-соединение и снимите галочку “Connect on Demand”, нажмите Apply.

В iOS: Settings > General > VPN & Device Management > VPN > нажмите на иконку “i” у установленной VPN конфигурации и выключите тумблер “Connect On Demand”. Чтобы вернуться обратно к автоматическому принудительному установлению соединений, соответственно, верните эти галки/тумблеры обратно:

Кстати, в macOS так же стоит поставить галку “Show VPN status in menu bar”. Будет удобно быстро чекать активно ли сейчас VPN-соединение.

Приберемся за собой:

rm mobileconfig.sh rm iphone.mobileconfig

Если соединения VPN успешно установились, но нет интернета

Скорее всего, ваш хостер переименовал обычно принятый дефолтным сетевой интерфейс eth0 во что-то другое по своему усмотрению (это нормально). И созданные нами правила роутинга iptables просто не могут отработать, поскольку обращаются к интерфейсу, которого нет.

Выполните команду ip addr или ifconfig, чтобы отобразить ваши сетевые интерфейсы:

И если вместо eth0 вы увидите что-то типа ens3, enp0s5 и т.п, как на скриншоте выше, то просто замените через

nano /etc/iptables/rules.v4

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

-A POSTROUTING -s 10.10.10.0/24 -o eth0 -m policy —dir out —pol ipsec -j ACCEPT -A POSTROUTING -s 10.10.10.0/24 -o eth0 -j MASQUERADE -A FORWARD -s 10.10.10.0/24 -o eth0 -p tcp -m policy —dir in —pol ipsec -m tcp —tcp-flags SYN,RST SYN -m tcpmss —mss 1361:1536 -j TCPMSS —set-mss 1360

на ваше название интерфейса. Перезагрузите сервер. Интернет заработает.

Прокачаем безопасность SSH (необязательный пункт)

Наш VPN-сервер уже работает и неплохо защищен, однако, я предлагаю еще чуток прокачать безопасность SSH, не вдаваясь в дебри.

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

Вы можете выбрать любой порт по вкусу, начиная с 1024, однако, я рекомендую поискать такой порт, который не был замечен в использовании вирусами, троянами, а также не используется какими-либо известными сервисами, программным обеспечением или производителями оборудования. Найдите себе такой «чистый» порт на SpeedGuide или adminsubnet.

В нашем примере мы будем использовать порт 45323.

Внимание! Не перезапускайте службы SSH и iptables и не перезагружайте машину, пока не пройдете данный раздел до конца, иначе вы потеряете доступ к машине!

Добавим новый 45323 TCP-порт в Lightsail:

Теперь настроим сам SSH:

nano /etc/ssh/sshd_config

#Раскомментируем и пропишем новый порт Port 45323 #Раскомментируем и запретим попытки соединения с пустым паролем PermitEmptyPasswords no #Раскомментируем и настроим автоматический разрыв соединения при бездействии через 360 секунд. Это будет полезно, если вы забыли, что у вас на экране осталась активная сессия и отошли от компьютера. Сервер автоматически разорвет SSH-соединение через 6 минут. ClientAliveInterval 360 ClientAliveCountMax 0

Теперь обновим информацию в правилах iptables и заменим старый порт SSH на новый:

nano /etc/iptables/rules.v4

Заменим «22» в строке

-A INPUT -p tcp -m tcp —dport 22 -j ACCEPT

-A INPUT -p tcp -m tcp —dport 45323 -j ACCEPT

Сохраним файл через Ctrl+X и перезапустим машину:

После перезагрузки сервера проверьте соединение по SSH, добавив флаг «-p» и новый порт:

ssh -i YOUR_DOWNLOADED_KEY.pem [email protected]_LIGHTSAIL_IP -p 45323

Всё должно работать.

Не забудьте удалить старый порт 22 в настройках файрвола Lightsail.

Заключение

Итак, мы с нуля настроили свой собственный защищенный VPN-сервер и получили VPN-конфигурации для всех наших устройств. Теперь весь наш трафик зашифрован и недоступен ни провайдеру, ни администратору Wi-Fi-сети, ни злоумышленникам, которые раньше могли его прослушивать. Теперь мы можем свободно подключаться к любым Wi-Fi сетям, не опасаясь за собственные данные. Кроме того, теперь нам доступны любые заблокированные в стране ресурсы.

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

Бывает и так, что для определенной страны какой-либо ресурс недоступен по техническим причинам, в то время как из другой он работает корректно. В этом случае достаточно просто подключиться к другому VPN-серверу.

Делитесь инструкцией с друзьями, распространяйте в соцсетях.

Если вы нашли какие-либо ошибки в статье, пожалуйста, сообщите об этом.

Дополнительные материалы к статье, которые могут быть интересны:

Создаем свой VPN-сервер. Пошаговая инструкция — Разработка на vc.ru

Данная инструкция позволит вам самостоятельно создать свой собственный VPN-сервер и настроить VPN-соединения на iPhone, iPad и Mac. Вы получите доступ к заблокированным в стране ресурсам, а также скроете ваш трафик от злоумышленников, провайдеров и спецслужб.

{«id»:66942,»type»:»num»,»link»:»https:\/\/vc.ru\/dev\/66942-sozdaem-svoy-vpn-server-poshagovaya-instrukciya»,»gtm»:»»,»prevCount»:null,»count»:171}

{«id»:66942,»type»:1,»typeStr»:»content»,»showTitle»:false,»initialState»:{«isActive»:false},»gtm»:»»}

{«id»:66942,»gtm»:null}

551 173 просмотров

Последнее обновление статьи: 22 марта 2022 года.

Инструкция была обкатана и проверена сотни раз и гарантированно сработает без каких-либо ошибок, если вы будете ей следовать. Актуальна для всех версий macOS, вплоть до macOS Monterey, а также всех версий iOS, вплоть до iOS 15.3+.

Настройка займет от 15 минут времени, в зависимости от скорости вашей работы.

Преамбула

В январе 2019 года я путешествовал по Азии. Находясь в Гуанчжоу, мне не удалось получить доступ к Google, YouTube и ряду других популярных сервисов. Они в принципе не работают на территории Китая и заблокированы правительством.

Помимо этого, в путешествиях вообще всегда есть определенная проблема с безопасным доступом в Интернет. Не всегда удается купить местную SIM-карту, поэтому приходится подключаться к Wi-Fi-сетям отелей, аэропортов и кафе. Фактически, мы ничего не знаем об этих сетях: кем они были созданы и насколько надежны.

То же самое и в родной стране. Если вы беззаботно подключаетесь к Wi-Fi-сети кафе, то у меня для вас плохие новости. Возможно прямо сейчас весь ваш трафик прослушивается злоумышленниками за соседним столиком.

Вывод: всегда, когда мы подключаемся к сети, которая не является нашей собственной, наша сетевая активность находится под перманентной угрозой.

Использование VPN — оптимальное решение двух обозначенных проблем сразу. Мы получаем доступ к заблокированным в стране ресурсам, а по пути еще и защищаем себя от прослушки.

Реализовать VPN можно двумя способами:

  • Воспользоваться коммерческим VPN-сервисом, например, Nord VPN.
  • Создать свой VPN-сервер.

Для меня использование коммерческого VPN было в принципе неприемлемым решением, и по ходу статьи я объясню почему я категорически не рекомендую пользоваться подобными сервисами. А так как я уже имел навык настройки серверов на Linux, я решил поднять собственный VPN-сервер: размять пальцы, прокачать скилл.

Однако, побродив по Интернету, я не нашел ни одной нормально работающей инструкции: все они были либо с ошибками, либо были заточены под слишком специфические кейсы, что не подойдет для обычного пользователя. Поэтому, я решил написать свою.

На мой взгляд, сегодня VPN должен быть у любого пользователя, который более-менее заботится о безопасности своих данных.

Инструкция написана для широкого круга читателей, однако, предполагает хотя бы минимальные знания Linux на уровне начального пользователя, который умеет обращаться с базовыми командами консоли (это правда очень и очень просто!). Настройка займет от 15 минут времени, в зависимости от скорости вашей работы.

К сожалению, Windows и Android в данной статье не рассматриваются, поскольку Windows последний раз я пользовался лет 15 назад, а Android — вообще совокупно 2 часа за всю жизнь, поэтому не представляю, что и как как сегодня все устроено в этих ОС. Не исключаю, что подходы, описанные здесь, сработают и для них. Инструкция в первую очередь создана для пользователей iPhone, iPad и Mac.

Сначала будет немного теории для понимания происходящего, желающие же сразу могут перейти к инструкции.

Немного теории: как работает VPN

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

Для простоты понимания можно представить, что основной канал провайдера — это большая труба, а внутри этой трубы вы прокладываете свою собственную, защищенную, отсекая всем доступ в нее. И через эту трубу попадаете на свой сервер и сидите в Интернете как бы со своего сервера: там, где он физически располагается. That’s all.

Для вашего провайдера, администратора Wi-Fi-сети или же злоумышленников, которые сканируют трафик в Wi-Fi-сетях, вся ваша сетевая активность выглядит как одно единственное соединение к одному единственному IP-адресу — адресу вашего VPN-сервера. Это все, что они видят. Что же именно происходит внутри этой вашей трубы, они не знают и не узнают.

Случаи взлома VPN-туннеля (вашей трубы), при условии, что применяются нормальные алгоритмы шифрования и все настроено корректно, мне не удалось найти. Можно попробовать взломать и сам VPN-сервер и получить доступ к вашему трафику уже на нем, но это так же весьма сложная задача, и при условии нормальной защищенности сервера, стремится к невыполнимой. Никто просто не будет этим заниматься.

Плюсы использования VPN

  • VPN полностью скроет ваш трафик от прослушки при подключении к ненадежным (не лично вашим) Wi-Fi-сетям, и особенно полезен в путешествиях. Ни администратор Wi-Fi-сети, ни злоумышленники, сканирующие трафик, не смогут понять на какие сайты вы ходите, какие данные передаете или получаете.

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

  • VPN позволяет скрыть трафик от интернет-провайдера и, соответственно, от спецслужб. В России уже имеются прецеденты посадки людей в тюрьмы за комментарии в соцсетях, а согласно «закону Яровой» весь ваш трафик и сетевая активность записываются сроком на 1 год. Некоторые считают, что законопослушному гражданину бояться вроде бы нечего, однако, на мой взгляд, это существенное упущение в персональной безопасности. Кто знает, как изменится ваша личная ситуация или ситуация в стране. Вполне возможно, что в один прекрасный день к вам придут и предъявят обвинения за посещение неугодного правительству сайта. В конце концов, зачем вам давать кому-то больше информации о себе, если можно дать меньше? Соответственно, с использованием VPN, будет совершенно невозможно установить характер вашей интернет-деятельности.

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

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

Недостатки VPN

  • Некоторые сайты начнут загружаться на языке страны, в которой располагается VPN-сервер. Однако, это легко исправить. Чаще всего мы приходим на какие-либо сайты через поиск в Google, и достаточно один раз настроить его выдачу на нужные вам языки, и с этого момента вы будете направляться на сайты с нужной вам локализацией. В конце концов, всегда можно выбрать другой язык на самом сайте.

  • Вы увидите рекламу для страны, в которой расположен ваш VPN-сервер. Какие-то площадки уже научились понимать, что на самом деле вы русскоговорящий пользователь и находитесь совсем не в Германии, однако, YouTube, например, по-прежнему этого не умеет и шпарит видео-рекламу на немецком даже при принудительной установке страны в настройках. Иногда это даже интересно: можно посмотреть какие продукты и услуги сейчас актуальны в других странах.
  • Некоторые сервисы, например, Амедиатека или Авито блокируют доступ с нероссийских IP-адресов, поэтому VPN при их использовании придется на время отключать. Опять же, для Амедиатеки есть хак: достаточно выключить VPN, запустить видео в сервисе и сразу же включить VPN обратно. Видео будет проигрываться дальше.
  • Снизится скорость загрузки сайтов. По замерам это действительно так, однако, на практике падение скорости для обычного пользователя настолько незначительно и усредняется (ведь какие-то ресурсы наоборот начнут загружаться быстрее), что данным недостатком в целом можно пренебречь.

  • В играх, критичных к пингу, а ля CS:GO, VPN придется выключать.

О коммерческих VPN-сервисах: NordVPN, ExpressVPN, Cyberghost, и почему не стоит их использовать

В настоящее время существуют так называемые коммерческие VPN-сервисы — компании, которые предоставляют вам свои VPN-сервера за определенную месячную плату. Например, NordVPN, ExpressVPN, CyberGhost и прочие.

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

Кроме того, вы получите большие пинги и существенные просадки в скорости. Ведь на одном VPN-сервере располагаются тысячи таких же клиентов, как и вы.

Таким образом, использование коммерческих VPN-сервисов «для всех» абсурдно само по себе. Лучше уж тогда вообще не использовать никакой VPN, чем сливать свои данные неизвестно кому.

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

В целом: не делайте этого.

В какой стране поднять свой VPN-сервер

Выбирайте страну для размещения VPN-сервера исходя из следующих критериев:

  • Кратчайшее расстояние до вас: это обеспечит наименьший пинг и просадки по скорости.
  • Минимальное количество запретов на свободу Интернета, доступность любых популярных мировых сервисов в этой стране.
  • Наименьшая политическая напряженность между вашей страной и страной VPN-сервера. В этом случае ваш трафик теперь уже с VPN-сервера не будут читать спецслужбы другого государства. Наверное 🙂 Но здесь палка о двух концах. Например, многие российские пользователи предпочитают располагать VPN-сервер в Великобритании именно из-за высокой напряженности между странами, ведь в случае чего, последняя ни за что не сдаст ваш трафик российским спецслужбам. Поэтому, данный подход также может быть оправданным.

Для российских пользователей в целом подходит любая страна Евросоюза, однако, практика показывает, что лучшим решением является Германия: минимальный пинг, высокая скорость и великолепная доступность любых мировых ресурсов.

Выбираем хостера и инструменты

Выбираем хостера

Внимание!

С 8 марта Amazon Web Services (AWS) закрыл регистрацию аккаунтов из России. Услуги же прочих зарубежных хостеров невозможно оплатить из-за неработающих карт Visa/MasterCard.

Рекомендую попробовать хостера VDSina.ru по моей партнерской ссылке, у них есть серверы в Нидерландах. Данная инструкция не зависит от хостера и сработает на любой площадке, просто делайте все по образу и подобию.

Для того, чтобы создать свой VPN-сервер, нам нужно арендовать виртуальный сервер (Virtual Private Server) у одного из хостинг-провайдеров. На него мы установим Linux и затем настроим его.

Наиболее популярные хостинговые компании сегодня:

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

Сегодня AWS предоставляет множество решений для облачных вычислений на любой вкус и цвет, но нам с вами нужна обычная виртуальная машина. Ее мы возьмем в одной из разработок AWS — Lightsail.

Lightsail — это упрощенное решение для создания виртуальных серверов, в отличие от своего старшего собрата EC2. Все завернуто в очень простой интерфейс, в котором разберется даже новичок. И для нашей столь нетребовательной к вычислительным ресурсам задаче как VPN-сервер, AWS Lightsail подходит лучше всего.

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

Сколько стоит

Использование VPN-сервера на базе AWS Lightsail будет обходиться вам в $3,5/мес.. За эти деньги вы получаете машину с 512 Мб оперативной памяти. Подобная конфигурация легко справляется с обработкой VPN-трафика с трех устройств, даже если вы нагружаете их по самые помидоры. В комплекте идет 1TB трафика в месяц, сверх нормы — за деньги. Первые три месяца у AWS будут бесплатными.

Почему Debian, а не Ubuntu

Поднимать VPN-сервер мы будем на основе операционной системы Linux Debian, а не Ubuntu, которая довольно часто фигурирует в подобных инструкциях.

Лично я не люблю Ubuntu с самого ее появления из-за какой-то умозрительной нестабильности и общей аляповатости. К тому же, Ubuntu изначально создавалась именно как пользовательская система, а не серверная. Debian же надежен и стабилен как слон. В моей компании мы используем Debian во всех интернет-проектах последние 11 лет и никогда не имели с ним никаких проблем, получая великолепные быстродействие и надежность. С Ubuntu же вечно что-то происходит.

Протоколы VPN-соединения: почему IPsec IKEv2, а не Open VPN

Сегодня существуют разные протоколы VPN-соединения, их детальный разбор выходит за рамки этой статьи. Среди них наиболее популярны IPsec IKEv2 и OpenVPN.

Оба хороши и надежны, но мы будем использовать IKEv2, поскольку у OpenVPN, на мой взгляд, имеется огромный недостаток, который перекрывает его прочие достоинства.

OpenVPN требует установки своего приложения, которое всегда должно быть запущено на устройствах, что, во-первых, неудобно в использовании, а во-вторых, дополнительно жрет процессор и как следствие быстрее расходует батарею iPhone, iPad и, в меньшей степени, Mac.

IKEv2 же вшит в iOS и macOS и является для этих ОС нативным, не требуя установки никакого дополнительного ПО. Так же, считается, что IKEv2 гораздо быстрее и безопасней, чем OpenVPN.

В качестве серверной части мы будем использовать strongSwan — популярный VPN-сервер для Linux.

Готовые скрипты для развертывания VPN-сервера: Algo, Streisand и почему не стоит их использовать

Сегодня существуют готовые решения для развертывания своего VPN-сервера на платформе Linux, например, скрипт Algo (для IKEv2) или Streisand (для OpenVPN), которые нужно просто скачать, распаковать и запустить на сервере. Данные скрипты сами установят и настроят все необходимые пакеты и на выходе предоставят для вас работающий VPN-сервер.

Streisand нам не подходит в принципе, поскольку заточен под OpenVPN. Что же касается Algo, то пробежавшись по диагонали, я увидел, что данный скрипт устанавливает много лишних пакетов, без которых вполне можно обойтись, а также каких-то подозрительных пакетов, неизвестно кем созданных и кем проверенных. Кроме того, Algo устанавливается только на Ubuntu, что нам, опять же, не подходит.

Таким образом, мы будем создавать свой VPN-сервер, используя следующие технологии:

  • AWS Lightsail в качестве виртуального сервера
  • IKEv2 как протокол VPN
  • Linux Debian в качестве серверной ОС
  • strongSwan в качестве VPN-сервера
  • никаких готовых скриптов, всё настроим руками.

Итак, с теоретической частью покончено, приступаем к созданию своего VPN-сервера.

Инструкция по созданию собственного VPN-сервера на базе Linux Debian

Внимание!

С 8 марта Amazon Web Services (AWS) закрыл регистрацию аккаунтов из России. Услуги же прочих зарубежных хостеров невозможно оплатить из-за неработающих карт Visa/MasterCard.

Рекомендую попробовать хостера VDSina.ru по моей партнерской ссылке, у них есть серверы в Нидерландах. Данная инструкция не зависит от хостера и сработает на любой площадке, просто делайте все по образу и подобию.

Регистрируемся в Amazon AWS и подключаемся к серверу

Процесс регистрации в AWS очень прост и вы пройдете его самостоятельно. После регистрации перейдите в Lightsail, выберите гео-зону в которой вы хотите поднять свой VPN-сервер. Создайте новый инстанс, выберите «OS Only» и операционную систему Debian самой высокой версии:

Нам подойдет простейшая машина с 512 Мб оперативной памяти:

Чтобы закрепить за сервером статический IP-адрес и он не менялся после каждой перезагрузки, перейдем в «Networking» и выделим себе Static IP. Назначим его на созданный нами инстанс:

Осталось скачать уже созданный самим Lightsail дефолтный приватный ключ для доступа по SSH. Он находится в разделе «Account > SSH keys»:

Открываем Terminal в macOS.

В первую очередь, чтобы избежать кое-какой известной проблемы терминала с локалью, зайдем в настройки Терминала, перейдем в Profiles и снимем галочку с “Set locale environment variables on startup”:

Закроем терминал с помощью Cmd+Q и запустим его снова.

Ограничим права нашему скачанному с Lightsail ключу, иначе macOS не позволит его использовать. Исхожу из того, что ключ вы скачали через Safari в папку Downloads. Если нет — подставьте свой путь до папки с ключем.

cd ~/Downloads/ chmod 600 YOUR_DOWNLOADED_KEY.pem

Совет: введите несколько первых символов имени файла ключа и нажмите Tab, терминал подставит остальное автоматически.

И подключимся к нашей Lightsail-машине, вписав вместо YOUR_LIGHTSAIL_IP ее внешний статический IP-адрес, который мы создали в разделе Static IP, а вместо YOURD_DOWNLOADED_KEY имя вашего ключа:

ssh -i YOUR_DOWNLOADED_KEY.pem [email protected]_LIGHTSAIL_IP

… Are you sure you want to continue connecting (yes/no/[fingerprint])?

Напишем “Yes” и нажмем Enter.

Нас приветствует радостная надпись, мы подключились:

Все манипуляции будем осуществлять из-под пользователя root. Поехали:

Обновим индекс пакетов в репозиториях, возможно, есть обновления:

А затем установим эти обновления:

Установим strongSwan

apt-get install strongswan

И набор стандартных плагинов:

apt-get install libstrongswan-standard-plugins

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

Создаем сертификаты доступа

Мы будем использовать самозаверенные сертификаты, поскольку VPN-сервером планируем пользоваться только мы. Для того чтобы создать сертификаты, нам потребуется пакет strongswan-pki. Установим его:

apt-get install strongswan-pki

Теперь нам нужно создать корневой сертификат, он же “CA” (Certificate Authority), который выпустит нам все остальные сертификаты. Создадим его в файле ca.pem.

В следующих двух блоках вместо YOUR_SERVER_IP подставляйте внешний IP-адрес машины в AWS Lightsail. Команды вводятся одна за другой:

cd /etc/ipsec.d ipsec pki —gen —type rsa —size 4096 —outform pem > private/ca.pem ipsec pki —self —ca —lifetime 3650 —in private/ca.pem \ —type rsa —digest sha256 \ —dn «CN=YOUR_SERVER_IP» \ —outform pem > cacerts/ca.pem

Далее создадим сертификат для самого VPN-сервера в файле debian.pem:

ipsec pki —gen —type rsa —size 4096 —outform pem > private/debian.pem ipsec pki —pub —in private/debian.pem —type rsa | ipsec pki —issue —lifetime 3650 —digest sha256 \ —cacert cacerts/ca.pem —cakey private/ca.pem \ —dn «CN=YOUR_SERVER_IP» \ —san YOUR_SERVER_IP \ —flag serverAuth —outform pem > certs/debian.pem

И сертификат для самих устройств в файле me.pem. В следующем блоке ничего (в том числе в “CN=me”) менять не нужно:

ipsec pki —gen —type rsa —size 4096 —outform pem > private/me.pem ipsec pki —pub —in private/me.pem —type rsa | ipsec pki —issue —lifetime 3650 —digest sha256 \ —cacert cacerts/ca.pem —cakey private/ca.pem \ —dn «CN=me» —san me \ —flag clientAuth \ —outform pem > certs/me.pem

Для надежности удалим файл ca.pem, он нам больше не потребуется:

rm /etc/ipsec.d/private/ca.pem

Создание сертификатов завершено.

Настроим strongSwan

Очистим дефолтный конфиг strongSwan командой:

И создадим свой в текстовом редакторе nano:

Вставьте в него данный текст, заменив YOUR_SERVER_IP на внешний IP-адрес машины в AWS Lightsail. Больше в конфиге ничего менять не нужно.

config setup uniqueids=never charondebug=»ike 2, knl 2, cfg 2, net 2, esp 2, dmn 2, mgr 2″ conn %default keyexchange=ikev2 ike=aes128gcm16-sha2_256-prfsha256-ecp256! esp=aes128gcm16-sha2_256-ecp256! fragmentation=yes rekey=no compress=yes dpdaction=clear left=%any leftauth=pubkey leftsourceip=YOUR_SERVER_IP leftid=YOUR_SERVER_IP leftcert=debian.pem leftsendcert=always leftsubnet=0.0.0.0/0 right=%any rightauth=pubkey rightsourceip=10.10.10.0/24 rightdns=8.8.8.8,8.8.4.4 conn ikev2-pubkey auto=add

Внимание! strongSwan требователен к отступам в конфиге, поэтому убедитесь, что параметры каждого раздела конфига отбиты через Tab, как это показано на примере, или хотя бы через пробел, иначе strongSwan не запустится.

Сохраним файл с помощью Ctrl+X и пойдем дальше.

Добавим в файл ipsec.secrets, который является хранилищем ссылок на сертификаты и ключи аутентификации, указатель на наш сертификат сервера:

Вставим в этот файл последней строкой указатель на наш сертификат сервера (да, прям вот так, начиная с двоеточия):

На этом настройка Strongswan завершена, можно рестартнуть службу:

Если все хорошо, то сервер запустится:

… Starting strongSwan 5.7.2 IPsec [starter]…

Если упадет в ошибку, то можно посмотреть, что именно произошло, почитав логи. Команда выведет 50 последних строк лога:

tail -n 50 > /var/log/syslog

Настроим сетевые параметры ядра

Теперь нам необходимо внести некоторые изменения в файл /etc/sysctl.conf:

Через Ctrl+W найдем в файле следующие переменные и внесем в них изменения:

#Раскомментируем (уберем решетку перед параметром) данный параметр, чтобы включить переадресацию пакетов net.ipv4.ip_forward=1 #Раскомментируем данный параметр, чтобы предотвратить MITM-атаки net.ipv4.conf.all.accept_redirects = 0 #Раскомментируем данный параметр, чтобы запретить отправку ICMP-редиректов net.ipv4.conf.all.send_redirects = 0 #В любом месте файла на новой строке добавьте этот параметр, запретив поиск PMTU net.ipv4.ip_no_pmtu_disc = 1

Сохраним файл через Ctrl+X и подгрузим новые значения:

Настройка сетевых параметров завершена.

Настроим iptables

iptables — это утилита, которая управляет встроенным в Linux файрволом netfilter. Для того, чтобы сохранить правила iptables в файле и подгружать их при каждом запуске системы, установим пакет iptables-persistent:

apt-get install iptables-persistent

После установки нас спросят, сохранить ли текущие правила IPv4 и IPv6. Ответим «Нет», так как у нас новая система, и нечего сохранять.

Перейдем к формированию правил iptables. На всякий пожарный, очистим все цепочки:

iptables -P INPUT ACCEPT iptables -P FORWARD ACCEPT iptables -F iptables -Z

Разрешим соединения по SSH на 22 порту, чтобы не потерять доступ к машине:

iptables -A INPUT -m state —state ESTABLISHED,RELATED -j ACCEPT iptables -A INPUT -p tcp —dport 22 -j ACCEPT

Разрешим соединения на loopback-интерфейсе:

iptables -A INPUT -i lo -j ACCEPT

Теперь разрешим входящие соединения на UDP-портах 500 и 4500:

iptables -A INPUT -p udp —dport 500 -j ACCEPT iptables -A INPUT -p udp —dport 4500 -j ACCEPT

Разрешим переадресацию ESP-трафика:

iptables -A FORWARD —match policy —pol ipsec —dir in —proto esp -s 10.10.10.0/24 -j ACCEPT iptables -A FORWARD —match policy —pol ipsec —dir out —proto esp -d 10.10.10.0/24 -j ACCEPT

Настроим маскирование трафика, так как наш VPN-сервер, по сути, выступает как шлюз между Интернетом и VPN-клиентами:

iptables -t nat -A POSTROUTING -s 10.10.10.0/24 -o eth0 -m policy —pol ipsec —dir out -j ACCEPT iptables -t nat -A POSTROUTING -s 10.10.10.0/24 -o eth0 -j MASQUERADE

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

iptables -t mangle -A FORWARD —match policy —pol ipsec —dir in -s 10.10.10.0/24 -o eth0 -p tcp -m tcp —tcp-flags SYN,RST SYN -m tcpmss —mss 1361:1536 -j TCPMSS —set-mss 1360

Запретим все прочие соединения к серверу:

iptables -A INPUT -j DROP iptables -A FORWARD -j DROP

Сохраним правила, чтобы они загружались после каждой перезагрузки:

netfilter-persistent save netfilter-persistent reload

Настройка iptables завершена.

Перезагрузим машину:

И посмотрим работают ли правила iptables:

[email protected] X.XX.XX:/home/admin# iptables -S -P INPUT ACCEPT -P FORWARD ACCEPT -P OUTPUT ACCEPT -A INPUT -m state —state RELATED,ESTABLISHED -j ACCEPT -A INPUT -p tcp -m tcp —dport 22 -j ACCEPT -A INPUT -i lo -j ACCEPT -A INPUT -p udp -m udp —dport 500 -j ACCEPT -A INPUT -p udp -m udp —dport 4500 -j ACCEPT -A INPUT -j DROP -A FORWARD -s 10.10.10.0/24 -m policy —dir in —pol ipsec —proto esp -j ACCEPT -A FORWARD -d 10.10.10.0/24 -m policy —dir out —pol ipsec —proto esp -j ACCEPT -A FORWARD -j DROP

Да, всё работает.

Работает ли strongSwan:

[email protected]:/home/admin# ipsec statusall Status of IKE charon daemon (strongSwan 5.7.2, Linux 4.19.0-14-amd64, x86_64): uptime: 71 seconds, since Mar 05 23:22:16 2022 …

Да, всё работает.

Разрешаем соединения в файрволе Lightsail

AWS Lightsail использует также и свой файрвол для защиты виртуальных машин. Если в нем не разрешить соединения на UDP-портах 500 и 4500, к VPN-серверу нельзя будет подключиться. Выберем наш инстанс в Lightsail, перейдем в «Networking», добавим эти порты и по пути удалим ненужный нам 80-й порт:

Удалите 80-й порт так же и в разделе IPv6 firewall, ниже по странице.

Настройка файрвола Lightsail завершена.

Создаем .mobileconfig для iPhone, iPad и Mac

Мы будем использовать один и тот же VPN-профайл .mobileconfig для всех наших устройств.

Конфиг, который мы сделаем, устроен таким образом, чтобы инициировать соединение “On Demand”. Это означает, что при попытке любой службы или приложения выйти в Интернет, VPN-соединение будет всегда устанавливаться принудительно и автоматически. Таким образом, удастся избежать ситуации, когда вы забыли установить VPN-соединение, например, после перезагрузки девайса, а трафик в итоге пошел через провайдера, что нам совсем не нужно.

Скачаем скрипт, который сгенерирует для нас данный конфиг:

wget https://gist.githubusercontent.com/borisovonline/955b7c583c049464c878bbe43329a521/raw/b2d9dba73da633fcfcca6a03d877517c5b2d9485/mobileconfig.sh

Для того, чтобы скрипт отработал, нам потребуется пакет zsh, установим его:

Отредактируем название сервера по вкусу, а также пропишем внешний IP-адрес машины Lightsail:

SERVER=»AWS Frankfurt» FQDN=»YOUR_LIGHTSAIL_IP»

Запустим скрипт и на выходе получим готовый файл iphone.mobileconfig:

chmod u+x mobileconfig.sh ./mobileconfig.sh > iphone.mobileconfig

Заберите этот файл с сервера, подключившись по SFTP, например, с помощью Cyberduck. Для подключения используйте тот же ключ от Lightsail, внешний IP-адрес сервера и имя пользователя admin.

Отправьте скачанный файл iphone.mobileconfig на все ваши устройства через Airdrop. Подтвердите на устройствах установку конфигурации.

В macOS профайл устанавливается из System Preferences > Profiles. В iOS он появится в Settings > Profile Downloaded:

Готово! Соединения с VPN-сервером установятся автоматически.

Если захочется временно отключить VPN, чтобы получить доступ, например, к Авито, в macOS зайдите в System Preferences > Network, выберите VPN-соединение и снимите галочку “Connect on Demand”, нажмите Apply.

В iOS: Settings > General > VPN & Device Management > VPN > нажмите на иконку “i” у установленной VPN конфигурации и выключите тумблер “Connect On Demand”. Чтобы вернуться обратно к автоматическому принудительному установлению соединений, соответственно, верните эти галки/тумблеры обратно:

Кстати, в macOS так же стоит поставить галку “Show VPN status in menu bar”. Будет удобно быстро чекать активно ли сейчас VPN-соединение.

Приберемся за собой:

rm mobileconfig.sh rm iphone.mobileconfig

Если соединения VPN успешно установились, но нет интернета

Скорее всего, ваш хостер переименовал обычно принятый дефолтным сетевой интерфейс eth0 во что-то другое по своему усмотрению (это нормально). И созданные нами правила роутинга iptables просто не могут отработать, поскольку обращаются к интерфейсу, которого нет.

Выполните команду ip addr или ifconfig, чтобы отобразить ваши сетевые интерфейсы:

И если вместо eth0 вы увидите что-то типа ens3, enp0s5 и т.п, как на скриншоте выше, то просто замените через

nano /etc/iptables/rules.v4

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

-A POSTROUTING -s 10.10.10.0/24 -o eth0 -m policy —dir out —pol ipsec -j ACCEPT -A POSTROUTING -s 10.10.10.0/24 -o eth0 -j MASQUERADE -A FORWARD -s 10.10.10.0/24 -o eth0 -p tcp -m policy —dir in —pol ipsec -m tcp —tcp-flags SYN,RST SYN -m tcpmss —mss 1361:1536 -j TCPMSS —set-mss 1360

на ваше название интерфейса. Перезагрузите сервер. Интернет заработает.

Прокачаем безопасность SSH (необязательный пункт)

Наш VPN-сервер уже работает и неплохо защищен, однако, я предлагаю еще чуток прокачать безопасность SSH, не вдаваясь в дебри.

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

Вы можете выбрать любой порт по вкусу, начиная с 1024, однако, я рекомендую поискать такой порт, который не был замечен в использовании вирусами, троянами, а также не используется какими-либо известными сервисами, программным обеспечением или производителями оборудования. Найдите себе такой «чистый» порт на SpeedGuide или adminsubnet.

В нашем примере мы будем использовать порт 45323.

Внимание! Не перезапускайте службы SSH и iptables и не перезагружайте машину, пока не пройдете данный раздел до конца, иначе вы потеряете доступ к машине!

Добавим новый 45323 TCP-порт в Lightsail:

Теперь настроим сам SSH:

nano /etc/ssh/sshd_config

#Раскомментируем и пропишем новый порт Port 45323 #Раскомментируем и запретим попытки соединения с пустым паролем PermitEmptyPasswords no #Раскомментируем и настроим автоматический разрыв соединения при бездействии через 360 секунд. Это будет полезно, если вы забыли, что у вас на экране осталась активная сессия и отошли от компьютера. Сервер автоматически разорвет SSH-соединение через 6 минут. ClientAliveInterval 360 ClientAliveCountMax 0

Теперь обновим информацию в правилах iptables и заменим старый порт SSH на новый:

nano /etc/iptables/rules.v4

Заменим «22» в строке

-A INPUT -p tcp -m tcp —dport 22 -j ACCEPT

-A INPUT -p tcp -m tcp —dport 45323 -j ACCEPT

Сохраним файл через Ctrl+X и перезапустим машину:

После перезагрузки сервера проверьте соединение по SSH, добавив флаг «-p» и новый порт:

ssh -i YOUR_DOWNLOADED_KEY.pem [email protected]_LIGHTSAIL_IP -p 45323

Всё должно работать.

Не забудьте удалить старый порт 22 в настройках файрвола Lightsail.

Заключение

Итак, мы с нуля настроили свой собственный защищенный VPN-сервер и получили VPN-конфигурации для всех наших устройств. Теперь весь наш трафик зашифрован и недоступен ни провайдеру, ни администратору Wi-Fi-сети, ни злоумышленникам, которые раньше могли его прослушивать. Теперь мы можем свободно подключаться к любым Wi-Fi сетям, не опасаясь за собственные данные. Кроме того, теперь нам доступны любые заблокированные в стране ресурсы.

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

Бывает и так, что для определенной страны какой-либо ресурс недоступен по техническим причинам, в то время как из другой он работает корректно. В этом случае достаточно просто подключиться к другому VPN-серверу.

Делитесь инструкцией с друзьями, распространяйте в соцсетях.

Если вы нашли какие-либо ошибки в статье, пожалуйста, сообщите об этом.

Дополнительные материалы к статье, которые могут быть интересны:

Создаем свой VPN-сервер. Пошаговая инструкция — Разработка на vc.ru

Данная инструкция позволит вам самостоятельно создать свой собственный VPN-сервер и настроить VPN-соединения на iPhone, iPad и Mac. Вы получите доступ к заблокированным в стране ресурсам, а также скроете ваш трафик от злоумышленников, провайдеров и спецслужб.

{«id»:66942,»type»:»num»,»link»:»https:\/\/vc.ru\/dev\/66942-sozdaem-svoy-vpn-server-poshagovaya-instrukciya»,»gtm»:»»,»prevCount»:null,»count»:171}

{«id»:66942,»type»:1,»typeStr»:»content»,»showTitle»:false,»initialState»:{«isActive»:false},»gtm»:»»}

{«id»:66942,»gtm»:null}

551 173 просмотров

Последнее обновление статьи: 22 марта 2022 года.

Инструкция была обкатана и проверена сотни раз и гарантированно сработает без каких-либо ошибок, если вы будете ей следовать. Актуальна для всех версий macOS, вплоть до macOS Monterey, а также всех версий iOS, вплоть до iOS 15.3+.

Настройка займет от 15 минут времени, в зависимости от скорости вашей работы.

Преамбула

В январе 2019 года я путешествовал по Азии. Находясь в Гуанчжоу, мне не удалось получить доступ к Google, YouTube и ряду других популярных сервисов. Они в принципе не работают на территории Китая и заблокированы правительством.

Помимо этого, в путешествиях вообще всегда есть определенная проблема с безопасным доступом в Интернет. Не всегда удается купить местную SIM-карту, поэтому приходится подключаться к Wi-Fi-сетям отелей, аэропортов и кафе. Фактически, мы ничего не знаем об этих сетях: кем они были созданы и насколько надежны.

То же самое и в родной стране. Если вы беззаботно подключаетесь к Wi-Fi-сети кафе, то у меня для вас плохие новости. Возможно прямо сейчас весь ваш трафик прослушивается злоумышленниками за соседним столиком.

Вывод: всегда, когда мы подключаемся к сети, которая не является нашей собственной, наша сетевая активность находится под перманентной угрозой.

Использование VPN — оптимальное решение двух обозначенных проблем сразу. Мы получаем доступ к заблокированным в стране ресурсам, а по пути еще и защищаем себя от прослушки.

Реализовать VPN можно двумя способами:

  • Воспользоваться коммерческим VPN-сервисом, например, Nord VPN.
  • Создать свой VPN-сервер.

Для меня использование коммерческого VPN было в принципе неприемлемым решением, и по ходу статьи я объясню почему я категорически не рекомендую пользоваться подобными сервисами. А так как я уже имел навык настройки серверов на Linux, я решил поднять собственный VPN-сервер: размять пальцы, прокачать скилл.

Однако, побродив по Интернету, я не нашел ни одной нормально работающей инструкции: все они были либо с ошибками, либо были заточены под слишком специфические кейсы, что не подойдет для обычного пользователя. Поэтому, я решил написать свою.

На мой взгляд, сегодня VPN должен быть у любого пользователя, который более-менее заботится о безопасности своих данных.

Инструкция написана для широкого круга читателей, однако, предполагает хотя бы минимальные знания Linux на уровне начального пользователя, который умеет обращаться с базовыми командами консоли (это правда очень и очень просто!). Настройка займет от 15 минут времени, в зависимости от скорости вашей работы.

К сожалению, Windows и Android в данной статье не рассматриваются, поскольку Windows последний раз я пользовался лет 15 назад, а Android — вообще совокупно 2 часа за всю жизнь, поэтому не представляю, что и как как сегодня все устроено в этих ОС. Не исключаю, что подходы, описанные здесь, сработают и для них. Инструкция в первую очередь создана для пользователей iPhone, iPad и Mac.

Сначала будет немного теории для понимания происходящего, желающие же сразу могут перейти к инструкции.

Немного теории: как работает VPN

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

Для простоты понимания можно представить, что основной канал провайдера — это большая труба, а внутри этой трубы вы прокладываете свою собственную, защищенную, отсекая всем доступ в нее. И через эту трубу попадаете на свой сервер и сидите в Интернете как бы со своего сервера: там, где он физически располагается. That’s all.

Для вашего провайдера, администратора Wi-Fi-сети или же злоумышленников, которые сканируют трафик в Wi-Fi-сетях, вся ваша сетевая активность выглядит как одно единственное соединение к одному единственному IP-адресу — адресу вашего VPN-сервера. Это все, что они видят. Что же именно происходит внутри этой вашей трубы, они не знают и не узнают.

Случаи взлома VPN-туннеля (вашей трубы), при условии, что применяются нормальные алгоритмы шифрования и все настроено корректно, мне не удалось найти. Можно попробовать взломать и сам VPN-сервер и получить доступ к вашему трафику уже на нем, но это так же весьма сложная задача, и при условии нормальной защищенности сервера, стремится к невыполнимой. Никто просто не будет этим заниматься.

Плюсы использования VPN

  • VPN полностью скроет ваш трафик от прослушки при подключении к ненадежным (не лично вашим) Wi-Fi-сетям, и особенно полезен в путешествиях. Ни администратор Wi-Fi-сети, ни злоумышленники, сканирующие трафик, не смогут понять на какие сайты вы ходите, какие данные передаете или получаете.

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

  • VPN позволяет скрыть трафик от интернет-провайдера и, соответственно, от спецслужб. В России уже имеются прецеденты посадки людей в тюрьмы за комментарии в соцсетях, а согласно «закону Яровой» весь ваш трафик и сетевая активность записываются сроком на 1 год. Некоторые считают, что законопослушному гражданину бояться вроде бы нечего, однако, на мой взгляд, это существенное упущение в персональной безопасности. Кто знает, как изменится ваша личная ситуация или ситуация в стране. Вполне возможно, что в один прекрасный день к вам придут и предъявят обвинения за посещение неугодного правительству сайта. В конце концов, зачем вам давать кому-то больше информации о себе, если можно дать меньше? Соответственно, с использованием VPN, будет совершенно невозможно установить характер вашей интернет-деятельности.

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

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

Недостатки VPN

  • Некоторые сайты начнут загружаться на языке страны, в которой располагается VPN-сервер. Однако, это легко исправить. Чаще всего мы приходим на какие-либо сайты через поиск в Google, и достаточно один раз настроить его выдачу на нужные вам языки, и с этого момента вы будете направляться на сайты с нужной вам локализацией. В конце концов, всегда можно выбрать другой язык на самом сайте.

  • Вы увидите рекламу для страны, в которой расположен ваш VPN-сервер. Какие-то площадки уже научились понимать, что на самом деле вы русскоговорящий пользователь и находитесь совсем не в Германии, однако, YouTube, например, по-прежнему этого не умеет и шпарит видео-рекламу на немецком даже при принудительной установке страны в настройках. Иногда это даже интересно: можно посмотреть какие продукты и услуги сейчас актуальны в других странах.
  • Некоторые сервисы, например, Амедиатека или Авито блокируют доступ с нероссийских IP-адресов, поэтому VPN при их использовании придется на время отключать. Опять же, для Амедиатеки есть хак: достаточно выключить VPN, запустить видео в сервисе и сразу же включить VPN обратно. Видео будет проигрываться дальше.
  • Снизится скорость загрузки сайтов. По замерам это действительно так, однако, на практике падение скорости для обычного пользователя настолько незначительно и усредняется (ведь какие-то ресурсы наоборот начнут загружаться быстрее), что данным недостатком в целом можно пренебречь.

  • В играх, критичных к пингу, а ля CS:GO, VPN придется выключать.

О коммерческих VPN-сервисах: NordVPN, ExpressVPN, Cyberghost, и почему не стоит их использовать

В настоящее время существуют так называемые коммерческие VPN-сервисы — компании, которые предоставляют вам свои VPN-сервера за определенную месячную плату. Например, NordVPN, ExpressVPN, CyberGhost и прочие.

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

Кроме того, вы получите большие пинги и существенные просадки в скорости. Ведь на одном VPN-сервере располагаются тысячи таких же клиентов, как и вы.

Таким образом, использование коммерческих VPN-сервисов «для всех» абсурдно само по себе. Лучше уж тогда вообще не использовать никакой VPN, чем сливать свои данные неизвестно кому.

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

В целом: не делайте этого.

В какой стране поднять свой VPN-сервер

Выбирайте страну для размещения VPN-сервера исходя из следующих критериев:

  • Кратчайшее расстояние до вас: это обеспечит наименьший пинг и просадки по скорости.
  • Минимальное количество запретов на свободу Интернета, доступность любых популярных мировых сервисов в этой стране.
  • Наименьшая политическая напряженность между вашей страной и страной VPN-сервера. В этом случае ваш трафик теперь уже с VPN-сервера не будут читать спецслужбы другого государства. Наверное 🙂 Но здесь палка о двух концах. Например, многие российские пользователи предпочитают располагать VPN-сервер в Великобритании именно из-за высокой напряженности между странами, ведь в случае чего, последняя ни за что не сдаст ваш трафик российским спецслужбам. Поэтому, данный подход также может быть оправданным.

Для российских пользователей в целом подходит любая страна Евросоюза, однако, практика показывает, что лучшим решением является Германия: минимальный пинг, высокая скорость и великолепная доступность любых мировых ресурсов.

Выбираем хостера и инструменты

Выбираем хостера

Внимание!

С 8 марта Amazon Web Services (AWS) закрыл регистрацию аккаунтов из России. Услуги же прочих зарубежных хостеров невозможно оплатить из-за неработающих карт Visa/MasterCard.

Рекомендую попробовать хостера VDSina.ru по моей партнерской ссылке, у них есть серверы в Нидерландах. Данная инструкция не зависит от хостера и сработает на любой площадке, просто делайте все по образу и подобию.

Для того, чтобы создать свой VPN-сервер, нам нужно арендовать виртуальный сервер (Virtual Private Server) у одного из хостинг-провайдеров. На него мы установим Linux и затем настроим его.

Наиболее популярные хостинговые компании сегодня:

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

Сегодня AWS предоставляет множество решений для облачных вычислений на любой вкус и цвет, но нам с вами нужна обычная виртуальная машина. Ее мы возьмем в одной из разработок AWS — Lightsail.

Lightsail — это упрощенное решение для создания виртуальных серверов, в отличие от своего старшего собрата EC2. Все завернуто в очень простой интерфейс, в котором разберется даже новичок. И для нашей столь нетребовательной к вычислительным ресурсам задаче как VPN-сервер, AWS Lightsail подходит лучше всего.

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

Сколько стоит

Использование VPN-сервера на базе AWS Lightsail будет обходиться вам в $3,5/мес.. За эти деньги вы получаете машину с 512 Мб оперативной памяти. Подобная конфигурация легко справляется с обработкой VPN-трафика с трех устройств, даже если вы нагружаете их по самые помидоры. В комплекте идет 1TB трафика в месяц, сверх нормы — за деньги. Первые три месяца у AWS будут бесплатными.

Почему Debian, а не Ubuntu

Поднимать VPN-сервер мы будем на основе операционной системы Linux Debian, а не Ubuntu, которая довольно часто фигурирует в подобных инструкциях.

Лично я не люблю Ubuntu с самого ее появления из-за какой-то умозрительной нестабильности и общей аляповатости. К тому же, Ubuntu изначально создавалась именно как пользовательская система, а не серверная. Debian же надежен и стабилен как слон. В моей компании мы используем Debian во всех интернет-проектах последние 11 лет и никогда не имели с ним никаких проблем, получая великолепные быстродействие и надежность. С Ubuntu же вечно что-то происходит.

Протоколы VPN-соединения: почему IPsec IKEv2, а не Open VPN

Сегодня существуют разные протоколы VPN-соединения, их детальный разбор выходит за рамки этой статьи. Среди них наиболее популярны IPsec IKEv2 и OpenVPN.

Оба хороши и надежны, но мы будем использовать IKEv2, поскольку у OpenVPN, на мой взгляд, имеется огромный недостаток, который перекрывает его прочие достоинства.

OpenVPN требует установки своего приложения, которое всегда должно быть запущено на устройствах, что, во-первых, неудобно в использовании, а во-вторых, дополнительно жрет процессор и как следствие быстрее расходует батарею iPhone, iPad и, в меньшей степени, Mac.

IKEv2 же вшит в iOS и macOS и является для этих ОС нативным, не требуя установки никакого дополнительного ПО. Так же, считается, что IKEv2 гораздо быстрее и безопасней, чем OpenVPN.

В качестве серверной части мы будем использовать strongSwan — популярный VPN-сервер для Linux.

Готовые скрипты для развертывания VPN-сервера: Algo, Streisand и почему не стоит их использовать

Сегодня существуют готовые решения для развертывания своего VPN-сервера на платформе Linux, например, скрипт Algo (для IKEv2) или Streisand (для OpenVPN), которые нужно просто скачать, распаковать и запустить на сервере. Данные скрипты сами установят и настроят все необходимые пакеты и на выходе предоставят для вас работающий VPN-сервер.

Streisand нам не подходит в принципе, поскольку заточен под OpenVPN. Что же касается Algo, то пробежавшись по диагонали, я увидел, что данный скрипт устанавливает много лишних пакетов, без которых вполне можно обойтись, а также каких-то подозрительных пакетов, неизвестно кем созданных и кем проверенных. Кроме того, Algo устанавливается только на Ubuntu, что нам, опять же, не подходит.

Таким образом, мы будем создавать свой VPN-сервер, используя следующие технологии:

  • AWS Lightsail в качестве виртуального сервера
  • IKEv2 как протокол VPN
  • Linux Debian в качестве серверной ОС
  • strongSwan в качестве VPN-сервера
  • никаких готовых скриптов, всё настроим руками.

Итак, с теоретической частью покончено, приступаем к созданию своего VPN-сервера.

Инструкция по созданию собственного VPN-сервера на базе Linux Debian

Внимание!

С 8 марта Amazon Web Services (AWS) закрыл регистрацию аккаунтов из России. Услуги же прочих зарубежных хостеров невозможно оплатить из-за неработающих карт Visa/MasterCard.

Рекомендую попробовать хостера VDSina.ru по моей партнерской ссылке, у них есть серверы в Нидерландах. Данная инструкция не зависит от хостера и сработает на любой площадке, просто делайте все по образу и подобию.

Регистрируемся в Amazon AWS и подключаемся к серверу

Процесс регистрации в AWS очень прост и вы пройдете его самостоятельно. После регистрации перейдите в Lightsail, выберите гео-зону в которой вы хотите поднять свой VPN-сервер. Создайте новый инстанс, выберите «OS Only» и операционную систему Debian самой высокой версии:

Нам подойдет простейшая машина с 512 Мб оперативной памяти:

Чтобы закрепить за сервером статический IP-адрес и он не менялся после каждой перезагрузки, перейдем в «Networking» и выделим себе Static IP. Назначим его на созданный нами инстанс:

Осталось скачать уже созданный самим Lightsail дефолтный приватный ключ для доступа по SSH. Он находится в разделе «Account > SSH keys»:

Открываем Terminal в macOS.

В первую очередь, чтобы избежать кое-какой известной проблемы терминала с локалью, зайдем в настройки Терминала, перейдем в Profiles и снимем галочку с “Set locale environment variables on startup”:

Закроем терминал с помощью Cmd+Q и запустим его снова.

Ограничим права нашему скачанному с Lightsail ключу, иначе macOS не позволит его использовать. Исхожу из того, что ключ вы скачали через Safari в папку Downloads. Если нет — подставьте свой путь до папки с ключем.

cd ~/Downloads/ chmod 600 YOUR_DOWNLOADED_KEY.pem

Совет: введите несколько первых символов имени файла ключа и нажмите Tab, терминал подставит остальное автоматически.

И подключимся к нашей Lightsail-машине, вписав вместо YOUR_LIGHTSAIL_IP ее внешний статический IP-адрес, который мы создали в разделе Static IP, а вместо YOURD_DOWNLOADED_KEY имя вашего ключа:

ssh -i YOUR_DOWNLOADED_KEY.pem [email protected]_LIGHTSAIL_IP

… Are you sure you want to continue connecting (yes/no/[fingerprint])?

Напишем “Yes” и нажмем Enter.

Нас приветствует радостная надпись, мы подключились:

Все манипуляции будем осуществлять из-под пользователя root. Поехали:

Обновим индекс пакетов в репозиториях, возможно, есть обновления:

А затем установим эти обновления:

Установим strongSwan

apt-get install strongswan

И набор стандартных плагинов:

apt-get install libstrongswan-standard-plugins

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

Создаем сертификаты доступа

Мы будем использовать самозаверенные сертификаты, поскольку VPN-сервером планируем пользоваться только мы. Для того чтобы создать сертификаты, нам потребуется пакет strongswan-pki. Установим его:

apt-get install strongswan-pki

Теперь нам нужно создать корневой сертификат, он же “CA” (Certificate Authority), который выпустит нам все остальные сертификаты. Создадим его в файле ca.pem.

В следующих двух блоках вместо YOUR_SERVER_IP подставляйте внешний IP-адрес машины в AWS Lightsail. Команды вводятся одна за другой:

cd /etc/ipsec.d ipsec pki —gen —type rsa —size 4096 —outform pem > private/ca.pem ipsec pki —self —ca —lifetime 3650 —in private/ca.pem \ —type rsa —digest sha256 \ —dn «CN=YOUR_SERVER_IP» \ —outform pem > cacerts/ca.pem

Далее создадим сертификат для самого VPN-сервера в файле debian.pem:

ipsec pki —gen —type rsa —size 4096 —outform pem > private/debian.pem ipsec pki —pub —in private/debian.pem —type rsa | ipsec pki —issue —lifetime 3650 —digest sha256 \ —cacert cacerts/ca.pem —cakey private/ca.pem \ —dn «CN=YOUR_SERVER_IP» \ —san YOUR_SERVER_IP \ —flag serverAuth —outform pem > certs/debian.pem

И сертификат для самих устройств в файле me.pem. В следующем блоке ничего (в том числе в “CN=me”) менять не нужно:

ipsec pki —gen —type rsa —size 4096 —outform pem > private/me.pem ipsec pki —pub —in private/me.pem —type rsa | ipsec pki —issue —lifetime 3650 —digest sha256 \ —cacert cacerts/ca.pem —cakey private/ca.pem \ —dn «CN=me» —san me \ —flag clientAuth \ —outform pem > certs/me.pem

Для надежности удалим файл ca.pem, он нам больше не потребуется:

rm /etc/ipsec.d/private/ca.pem

Создание сертификатов завершено.

Настроим strongSwan

Очистим дефолтный конфиг strongSwan командой:

И создадим свой в текстовом редакторе nano:

Вставьте в него данный текст, заменив YOUR_SERVER_IP на внешний IP-адрес машины в AWS Lightsail. Больше в конфиге ничего менять не нужно.

config setup uniqueids=never charondebug=»ike 2, knl 2, cfg 2, net 2, esp 2, dmn 2, mgr 2″ conn %default keyexchange=ikev2 ike=aes128gcm16-sha2_256-prfsha256-ecp256! esp=aes128gcm16-sha2_256-ecp256! fragmentation=yes rekey=no compress=yes dpdaction=clear left=%any leftauth=pubkey leftsourceip=YOUR_SERVER_IP leftid=YOUR_SERVER_IP leftcert=debian.pem leftsendcert=always leftsubnet=0.0.0.0/0 right=%any rightauth=pubkey rightsourceip=10.10.10.0/24 rightdns=8.8.8.8,8.8.4.4 conn ikev2-pubkey auto=add

Внимание! strongSwan требователен к отступам в конфиге, поэтому убедитесь, что параметры каждого раздела конфига отбиты через Tab, как это показано на примере, или хотя бы через пробел, иначе strongSwan не запустится.

Сохраним файл с помощью Ctrl+X и пойдем дальше.

Добавим в файл ipsec.secrets, который является хранилищем ссылок на сертификаты и ключи аутентификации, указатель на наш сертификат сервера:

Вставим в этот файл последней строкой указатель на наш сертификат сервера (да, прям вот так, начиная с двоеточия):

На этом настройка Strongswan завершена, можно рестартнуть службу:

Если все хорошо, то сервер запустится:

… Starting strongSwan 5.7.2 IPsec [starter]…

Если упадет в ошибку, то можно посмотреть, что именно произошло, почитав логи. Команда выведет 50 последних строк лога:

tail -n 50 > /var/log/syslog

Настроим сетевые параметры ядра

Теперь нам необходимо внести некоторые изменения в файл /etc/sysctl.conf:

Через Ctrl+W найдем в файле следующие переменные и внесем в них изменения:

#Раскомментируем (уберем решетку перед параметром) данный параметр, чтобы включить переадресацию пакетов net.ipv4.ip_forward=1 #Раскомментируем данный параметр, чтобы предотвратить MITM-атаки net.ipv4.conf.all.accept_redirects = 0 #Раскомментируем данный параметр, чтобы запретить отправку ICMP-редиректов net.ipv4.conf.all.send_redirects = 0 #В любом месте файла на новой строке добавьте этот параметр, запретив поиск PMTU net.ipv4.ip_no_pmtu_disc = 1

Сохраним файл через Ctrl+X и подгрузим новые значения:

Настройка сетевых параметров завершена.

Настроим iptables

iptables — это утилита, которая управляет встроенным в Linux файрволом netfilter. Для того, чтобы сохранить правила iptables в файле и подгружать их при каждом запуске системы, установим пакет iptables-persistent:

apt-get install iptables-persistent

После установки нас спросят, сохранить ли текущие правила IPv4 и IPv6. Ответим «Нет», так как у нас новая система, и нечего сохранять.

Перейдем к формированию правил iptables. На всякий пожарный, очистим все цепочки:

iptables -P INPUT ACCEPT iptables -P FORWARD ACCEPT iptables -F iptables -Z

Разрешим соединения по SSH на 22 порту, чтобы не потерять доступ к машине:

iptables -A INPUT -m state —state ESTABLISHED,RELATED -j ACCEPT iptables -A INPUT -p tcp —dport 22 -j ACCEPT

Разрешим соединения на loopback-интерфейсе:

iptables -A INPUT -i lo -j ACCEPT

Теперь разрешим входящие соединения на UDP-портах 500 и 4500:

iptables -A INPUT -p udp —dport 500 -j ACCEPT iptables -A INPUT -p udp —dport 4500 -j ACCEPT

Разрешим переадресацию ESP-трафика:

iptables -A FORWARD —match policy —pol ipsec —dir in —proto esp -s 10.10.10.0/24 -j ACCEPT iptables -A FORWARD —match policy —pol ipsec —dir out —proto esp -d 10.10.10.0/24 -j ACCEPT

Настроим маскирование трафика, так как наш VPN-сервер, по сути, выступает как шлюз между Интернетом и VPN-клиентами:

iptables -t nat -A POSTROUTING -s 10.10.10.0/24 -o eth0 -m policy —pol ipsec —dir out -j ACCEPT iptables -t nat -A POSTROUTING -s 10.10.10.0/24 -o eth0 -j MASQUERADE

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

iptables -t mangle -A FORWARD —match policy —pol ipsec —dir in -s 10.10.10.0/24 -o eth0 -p tcp -m tcp —tcp-flags SYN,RST SYN -m tcpmss —mss 1361:1536 -j TCPMSS —set-mss 1360

Запретим все прочие соединения к серверу:

iptables -A INPUT -j DROP iptables -A FORWARD -j DROP

Сохраним правила, чтобы они загружались после каждой перезагрузки:

netfilter-persistent save netfilter-persistent reload

Настройка iptables завершена.

Перезагрузим машину:

И посмотрим работают ли правила iptables:

[email protected] X.XX.XX:/home/admin# iptables -S -P INPUT ACCEPT -P FORWARD ACCEPT -P OUTPUT ACCEPT -A INPUT -m state —state RELATED,ESTABLISHED -j ACCEPT -A INPUT -p tcp -m tcp —dport 22 -j ACCEPT -A INPUT -i lo -j ACCEPT -A INPUT -p udp -m udp —dport 500 -j ACCEPT -A INPUT -p udp -m udp —dport 4500 -j ACCEPT -A INPUT -j DROP -A FORWARD -s 10.10.10.0/24 -m policy —dir in —pol ipsec —proto esp -j ACCEPT -A FORWARD -d 10.10.10.0/24 -m policy —dir out —pol ipsec —proto esp -j ACCEPT -A FORWARD -j DROP

Да, всё работает.

Работает ли strongSwan:

[email protected]:/home/admin# ipsec statusall Status of IKE charon daemon (strongSwan 5.7.2, Linux 4.19.0-14-amd64, x86_64): uptime: 71 seconds, since Mar 05 23:22:16 2022 …

Да, всё работает.

Разрешаем соединения в файрволе Lightsail

AWS Lightsail использует также и свой файрвол для защиты виртуальных машин. Если в нем не разрешить соединения на UDP-портах 500 и 4500, к VPN-серверу нельзя будет подключиться. Выберем наш инстанс в Lightsail, перейдем в «Networking», добавим эти порты и по пути удалим ненужный нам 80-й порт:

Удалите 80-й порт так же и в разделе IPv6 firewall, ниже по странице.

Настройка файрвола Lightsail завершена.

Создаем .mobileconfig для iPhone, iPad и Mac

Мы будем использовать один и тот же VPN-профайл .mobileconfig для всех наших устройств.

Конфиг, который мы сделаем, устроен таким образом, чтобы инициировать соединение “On Demand”. Это означает, что при попытке любой службы или приложения выйти в Интернет, VPN-соединение будет всегда устанавливаться принудительно и автоматически. Таким образом, удастся избежать ситуации, когда вы забыли установить VPN-соединение, например, после перезагрузки девайса, а трафик в итоге пошел через провайдера, что нам совсем не нужно.

Скачаем скрипт, который сгенерирует для нас данный конфиг:

wget https://gist.githubusercontent.com/borisovonline/955b7c583c049464c878bbe43329a521/raw/b2d9dba73da633fcfcca6a03d877517c5b2d9485/mobileconfig.sh

Для того, чтобы скрипт отработал, нам потребуется пакет zsh, установим его:

Отредактируем название сервера по вкусу, а также пропишем внешний IP-адрес машины Lightsail:

SERVER=»AWS Frankfurt» FQDN=»YOUR_LIGHTSAIL_IP»

Запустим скрипт и на выходе получим готовый файл iphone.mobileconfig:

chmod u+x mobileconfig.sh ./mobileconfig.sh > iphone.mobileconfig

Заберите этот файл с сервера, подключившись по SFTP, например, с помощью Cyberduck. Для подключения используйте тот же ключ от Lightsail, внешний IP-адрес сервера и имя пользователя admin.

Отправьте скачанный файл iphone.mobileconfig на все ваши устройства через Airdrop. Подтвердите на устройствах установку конфигурации.

В macOS профайл устанавливается из System Preferences > Profiles. В iOS он появится в Settings > Profile Downloaded:

Готово! Соединения с VPN-сервером установятся автоматически.

Если захочется временно отключить VPN, чтобы получить доступ, например, к Авито, в macOS зайдите в System Preferences > Network, выберите VPN-соединение и снимите галочку “Connect on Demand”, нажмите Apply.

В iOS: Settings > General > VPN & Device Management > VPN > нажмите на иконку “i” у установленной VPN конфигурации и выключите тумблер “Connect On Demand”. Чтобы вернуться обратно к автоматическому принудительному установлению соединений, соответственно, верните эти галки/тумблеры обратно:

Кстати, в macOS так же стоит поставить галку “Show VPN status in menu bar”. Будет удобно быстро чекать активно ли сейчас VPN-соединение.

Приберемся за собой:

rm mobileconfig.sh rm iphone.mobileconfig

Если соединения VPN успешно установились, но нет интернета

Скорее всего, ваш хостер переименовал обычно принятый дефолтным сетевой интерфейс eth0 во что-то другое по своему усмотрению (это нормально). И созданные нами правила роутинга iptables просто не могут отработать, поскольку обращаются к интерфейсу, которого нет.

Выполните команду ip addr или ifconfig, чтобы отобразить ваши сетевые интерфейсы:

И если вместо eth0 вы увидите что-то типа ens3, enp0s5 и т.п, как на скриншоте выше, то просто замените через

nano /etc/iptables/rules.v4

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

-A POSTROUTING -s 10.10.10.0/24 -o eth0 -m policy —dir out —pol ipsec -j ACCEPT -A POSTROUTING -s 10.10.10.0/24 -o eth0 -j MASQUERADE -A FORWARD -s 10.10.10.0/24 -o eth0 -p tcp -m policy —dir in —pol ipsec -m tcp —tcp-flags SYN,RST SYN -m tcpmss —mss 1361:1536 -j TCPMSS —set-mss 1360

на ваше название интерфейса. Перезагрузите сервер. Интернет заработает.

Прокачаем безопасность SSH (необязательный пункт)

Наш VPN-сервер уже работает и неплохо защищен, однако, я предлагаю еще чуток прокачать безопасность SSH, не вдаваясь в дебри.

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

Вы можете выбрать любой порт по вкусу, начиная с 1024, однако, я рекомендую поискать такой порт, который не был замечен в использовании вирусами, троянами, а также не используется какими-либо известными сервисами, программным обеспечением или производителями оборудования. Найдите себе такой «чистый» порт на SpeedGuide или adminsubnet.

В нашем примере мы будем использовать порт 45323.

Внимание! Не перезапускайте службы SSH и iptables и не перезагружайте машину, пока не пройдете данный раздел до конца, иначе вы потеряете доступ к машине!

Добавим новый 45323 TCP-порт в Lightsail:

Теперь настроим сам SSH:

nano /etc/ssh/sshd_config

#Раскомментируем и пропишем новый порт Port 45323 #Раскомментируем и запретим попытки соединения с пустым паролем PermitEmptyPasswords no #Раскомментируем и настроим автоматический разрыв соединения при бездействии через 360 секунд. Это будет полезно, если вы забыли, что у вас на экране осталась активная сессия и отошли от компьютера. Сервер автоматически разорвет SSH-соединение через 6 минут. ClientAliveInterval 360 ClientAliveCountMax 0

Теперь обновим информацию в правилах iptables и заменим старый порт SSH на новый:

nano /etc/iptables/rules.v4

Заменим «22» в строке

-A INPUT -p tcp -m tcp —dport 22 -j ACCEPT

-A INPUT -p tcp -m tcp —dport 45323 -j ACCEPT

Сохраним файл через Ctrl+X и перезапустим машину:

После перезагрузки сервера проверьте соединение по SSH, добавив флаг «-p» и новый порт:

ssh -i YOUR_DOWNLOADED_KEY.pem [email protected]_LIGHTSAIL_IP -p 45323

Всё должно работать.

Не забудьте удалить старый порт 22 в настройках файрвола Lightsail.

Заключение

Итак, мы с нуля настроили свой собственный защищенный VPN-сервер и получили VPN-конфигурации для всех наших устройств. Теперь весь наш трафик зашифрован и недоступен ни провайдеру, ни администратору Wi-Fi-сети, ни злоумышленникам, которые раньше могли его прослушивать. Теперь мы можем свободно подключаться к любым Wi-Fi сетям, не опасаясь за собственные данные. Кроме того, теперь нам доступны любые заблокированные в стране ресурсы.

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

Бывает и так, что для определенной страны какой-либо ресурс недоступен по техническим причинам, в то время как из другой он работает корректно. В этом случае достаточно просто подключиться к другому VPN-серверу.

Делитесь инструкцией с друзьями, распространяйте в соцсетях.

Если вы нашли какие-либо ошибки в статье, пожалуйста, сообщите об этом.

Дополнительные материалы к статье, которые могут быть интересны:

Как настроить свой собственный VPN-сервер

Читайте, как настроить VPN-сервер на своём ПК, с использованием специального оборудования или стандартными способами Windows. VPN (англ. Virtual Private Network ) – виртуальная частная сеть – это собирательное общее название технологии, которая обеспечивает возможность одного или нескольких сетевых соединений (логических сетей) поверх другой сети (как вариант – Интернет).

Содержание

VPN очень полезны, не зависимо от того, где вы их используете: путешествуете ли вы по миру, работает ли вы в офисе или подключены к публичной точке доступа Wi-Fi в кафе в своем родном городе. Только вам необязательно использовать платную услугу VPN – вы можете разместить свой собственный VPN-сервер на дому.

Перейти к просмотру

Как создать VPN сервер на компьютере с Windows и подключится к нему с другого ПК 💻↔️🖥️

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

Перейти к просмотру

Как настроить OpenVPN соединение 2 офисов (конфиг сервера и клиента), сетевые папки Windows 💻↔️🖥️

Для чего нужен VPN?

Домашний VPN предоставляет вам зашифрованный туннель – соединение, позволяющее вам использовать открытые публичные сети Wi-Fi для создания подключения к нужной VPN –сети. Вы можете пользоваться VPN с любых устройств на разных операционных системах: Android, iOS, ChromeOS, Windows, Linux или macOS; можете получить доступ к различным сервисам конкретной страны, даже находясь за ее пределами. VPN обеспечит безопасный доступ к вашей домашней сети из любого места. Вы даже можете открыть доступ к сети своим родственникам, друзьям или коллегам, разрешая им использовать сервера, размещенные в вашей домашней сети. Например, это позволит вам обмениваться данными, делиться фото и видео файлами, документами, проектами, иметь возможность постоянно общаться и быть на связи. Также вы можете играть в компьютерные игры, предназначенные для локальной сети, – хотя есть и более простые способы настройки временной сети для игр с друзьями.

Перейти к просмотру

Как обойти блокировку сайтов Вконтакте, Одноклассники, Yandex провайдерами в России или Украине 🌐💻

VPN-сеть также полезна для подключения к различным услугам во время поездок. Например, вы можете использовать Netflix или другие сервисы для получения потокового видео во время поездок, воспользоваться любой библиотекой или каталогом фильмов и записей.

Использование маршрутизатора с возможностями VPN

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

Используйте маршрутизатор, поддерживающий DD-WRT или другую стороннюю прошивку

Пользовательская прошивка маршрутизатора – это, в основном, новая операционная система, которую вы можете использовать на своем маршрутизаторе взамен имеющейся стандартной операционной системы маршрутизатора. DD-WRT является самой популярной прошивкой, но также хорошо работает и другие операционные системы, например OpenWrt.

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

Обязательно выбирайте маршрутизатор со встроенной поддержкой сторонних производителей операционных систем. Выполните установку пользовательской прошивки маршрутизатора и включите VPN-сервер.

Создайте свой собственный выделенный VPN-сервер

Вы также можете просто использовать программное обеспечение для настройки VPN-сервера на одном из своих компьютеров.

Приложение Apple Server (также как и Windows) предлагает встроенный способ размещения VPN-сервера. Тем не менее, это не самые мощные и безопасные варианты. И они могут быть слишком требовательны, чтобы настроить VPN-сервер и заставить его работать правильно.

Вы также можете установить сторонний VPN-сервер, такой как OpenVPN. VPN-серверы доступны для каждой операционной системы, от Windows до Mac и Linux. Вам просто нужно перенаправить соответствующие порты с вашего маршрутизатора на компьютер, на котором запущено серверное программное обеспечение.

Существует также возможность переоборудования собственного выделенного устройства в VPN-сервер. Вы можете взять одноплатный компьютер Raspberry Pi (малинка) и установить программное обеспечение сервера OpenVPN, превратив его в легкий, маломощный VPN-сервер. Вы даже можете установить на него другое серверное программное обеспечение и использовать его в качестве многоцелевого сервера.

Где еще можно разместить собственный VPN-сервер

Есть еще один вариант, который находится посередине между размещением VPN-сервера на вашем собственном оборудовании и оплатой услуг VPN-провайдера, который предоставляет вам VPN-сервис и удобное приложение.

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

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

При настройке VPN дома вы, вероятно, захотите настроить динамический DNS на своем маршрутизаторе. Динамический DNS всегда отслеживает изменения вашего IP-адреса и связывает его с актуальным, на данный момент, IP-адресом вашего компьютера. Это даст вам простую возможность всегда получать доступ к своей VPN, даже если IP-адрес вашего домашнего интернет-соединения изменился.

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

Перейти к просмотру

Как подключиться к удаленному рабочему столу Windows в локальной сети, через Интернет 💻 🌐 💻

Как создать и настроить свой VPN-сервер

Выбираем хостинг

Для настройки VPN нужен VPS — виртуальный частный сервер. Вы можете выбрать любого хостинг‑провайдера, главное, чтобы выполнялись следующие условия:

  • Сервер находится в стране, достаточно близкой к вашему реальному местоположению.
  • Оперативной памяти (RAM) должно быть не меньше 512 МБ.
  • Скорость сетевого интерфейса — 100 МБ/сек и выше.
  • Сетевой трафик — 512 ГБ и выше или неограниченный.

Количество выделенного места на жёстком диске и тип накопителя не имеет значения. Найти подходящее решение можно за 3–4 доллара в месяц. Вот несколько самых популярных VPS‑провайдеров:

При покупке сервера выбирайте KVM. OpenVZ и Xen тоже подойдут, если у них подключён TUN — об этом нужно спросить в технической службе хостинг‑провайдера.

С KVM никаких дополнительных манипуляций производить не придётся, хотя некоторые хостинг‑провайдеры и на нём могут ограничить возможность создания VPN. Уточнить это можно также в службе поддержки.

При настройке сервера в пункте «Имя хоста» можно вписать любое значение: например, test.test. Префиксы NS1 и NS2 тоже не важны: пишем ns1.test и ns2.test.

Операционная система — CentOS 8 64 bit или любой другой дистрибутив, принципиальных отличий в настройке нет. Сетевой трафик оставьте 512 ГБ или выберите дополнительный объём, если боитесь, что имеющегося не хватит. Локация — чем ближе, тем лучше. Нидерланды подойдут.

После оплаты на почту придёт письмо со всеми необходимыми данными для настройки VPN. Вы приобрели место на сервере другой страны, осталось перенаправить на него весь трафик.

Настраиваем VPN

Для подключения к серверу и отправки команд мы будем использовать программу Putty. Мне ссылка на неё пришла в письме с регистрационными данными для хостинга. Скачать программу можно здесь. Putty и её аналоги есть и на macOS, настройки будут идентичными.

Запустите Putty. На вкладке Session в поле Host Name введите IP‑адрес, который пришёл в письме, и нажмите Open.

При появлении окна с предупреждением об опасности нажмите «Да». После этого запустится консоль, через которую вы будете отправлять команды серверу. Для начала нужно залогиниться — данные для авторизации также есть в письме от хостера. Логин будет root, его напечатайте руками. Пароль скопируйте в буфер обмена. Для вставки пароля в консоль щёлкните правой кнопкой и нажмите Enter. Пароль не отобразится в консоли, но если вы авторизовались, то увидите информацию о системе или номер сервера.


Между вводом логина и пароля не должно пройти много времени. Если появилось сообщение об ошибке, перезапустите Putty и попробуйте ещё раз.

Для настройки VPN я использовал готовый скрипт OpenVPN road warrior. Этот способ не гарантирует полную анонимность, так что при совершении противозаконных действий пользователя легко найти. Но для стандартных нужд его достаточно. Если все VPN‑сервисы перестанут работать, это подключение продолжит функционировать, пока я плачу за хостинг.

Чтобы использовать скрипт, вставьте в консоль строчку wget https://git.io/vpn -O openvpn‑install.sh && bash openvpn‑install.sh.

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

  1. IP‑адрес должен совпадать с IP‑адресом, который вы получили в письме от хостера.
  2. Протокол оставьте по умолчанию UDP.
  3. Port:1194 — согласитесь.
  4. Какой DNS использовать — выберите Google. Сотрите 1, напишите 3 и нажмите Enter.
  5. Client name — укажите имя пользователя. Можно оставить client.
  6. Press any key — ещё раз нажмите Enter и дождитесь окончания настройки.

После завершения настройки необходимо создать файл, через который вы будете подключаться к VPN. Введите команду cat ~/client.ovpn.

В консоли появится содержимое файла. Прокрутите экран наверх к команде cat ~/client.ovpn и выделите всё, что появилось ниже, кроме последней строчки. Выделение должно закончиться на . Для копирования фрагмента нажмите Ctrl + V.

Запустите «Блокнот», вставьте скопированный фрагмент и сохраните файл на рабочем столе с именем client.ovpn.

Откройте меню «Файл», выберите «Сохранить как», установите тип «Все файлы» и введите имя с расширением — client.ovpn.

Подключаемся к серверу

Для подключения с помощью созданного файла нужен клиент OpenVPN. Версию для компьютера можно скачать здесь. Загрузите и установите программу, но не запускайте. Щёлкните правой кнопкой по файлу client.ovpn и выберите пункт Start OpenVPN.

Появится окно консоли с инициализацией соединения. Если подключение прошло успешно, внизу будет статус Initialization Sequence Completed. В процессе соединения может появиться окно выбора сети, нажмите на общественную сеть.

Чтобы убедиться, что подключение установлено верно, проверьте IP‑адрес. Он должен совпадать с тем, который хостер написал в письме. Чтобы перестать направлять запросы на сервер в другой стране, закройте окно OpenVPN.

У OpenVPN есть также клиенты для мобильных устройств.

Для установки подключения перенесите в память телефона файл client.ovpn. Запустите приложение и выберите пункт OVPN Profile. Укажите путь к файлу и передвиньте ползунок в положение «Включён».

Наверху появится значок подключения через VPN. Чтобы убедиться в том, что трафик перенаправляется через сервер в другой стране, откройте в мобильном браузере любой сервис проверки IP‑адреса.

Читайте также 🧐

Как настроить локальную сеть через VPN

Локальная сеть формата VPN относится к выделенным линиям для связи между компьютерами. Она представляет выделенную на базе обычного Интернет соединения линию. Обратите внимание, что создавать такие «туннели» внутри основной линии способен только роутер.

Создание сети через VPN нужно тогда, когда сотрудникам компании необходимо иметь надежный удаленный доступ к корпоративной сети даже тогда, когда они находятся вне офиса,  то есть в командировке,из дома,с мобильных устройств. Такую услугу предоставляют многие провайдеры, которые предоставляют услуги населению и разнообразным организациям.Они обеспечивают всем своим клиентам качественный доступ к сети через VPN.Соединение через VPN уникально еще и потому, что позволяет создать эффективную связь между отдельными филиалами с минимальными затратами усилий.

Между VPN и Интернет-соединением заключаются в следующем: в первом случае вся передаваемая информация зашифрована и передается по отдельному каналу, а во втором ничем не защищено. Шифрование производится посредством нескольких видов туннельных протоколов. За уровень защиты отвечает именно взятый за основу протокол.

Наиболее часто используется для настройки VPN через роутер протокол PPtP. Он позволяет безопасно получать не только доступ к корпоративным сетям, но и для других целей. Доступ в VPN сеть через Интернет обеспечивает создание PPtP-сервера на маршрутизаторе, аккаунты конкретных пользователей и добавить исключения в фаервол роутера. Иначе неизбежны проблемы с получением доступа.

Доступ через VPN совсем несложно настроить, прибегнув к услугам таких сетевых устройств, как маршрутизаторы. У разных моделей алгоритмы могут несколько различаться, но общая схема примерно одинакова. Рассмотрим последовательность шагов алгоритма данной операции через популярный Wifi роутер MikroTik.

Настройка VPN через MikroTik стартует с этапа включения сервера непосредственно на роутере. Зайдите в его меню и зайдите в раздел PPP.На вкладке Interface найдите кнопку PPTP сервер. В открывшемся окне необходимо поставить галочку возле слова Enabled.Внизу, у слов chapиpapее надо снять.

Далее для настройки через VPN по протоколу PPPtPнужно создать учетные записи для будущих  пользователей. В разделе PPP перейдите в вкладку Secrets.  В открывшемся окне нажмите красный «+».Теперь можно заполнять информацию по первому пользователю. В поле Nameукажите логин, в Password– пароль. Именно их будут использовать,чтобы подключиться к туннельному соединению.

Потом среди доступных в поле «Service»вариантов выберите именно тип протокола PPtP. В расположенном ниже поле LocalAddress впишите IP-адрес маршрутизатора, выступающего в качестве сервера.В поле RemoteAddress указывается IP-адрес конкретно вводимого пользователя сети. Затем охраняем изменения, нажав ОК.

До того, как произвести подключение  через VPN, очень внимательно пропишите исключения для фаервола.В меню управления вашего роутера зайдите в раздел IP и в выпадающем списке выберитеFirewall.

Откроется окно.В нем нужна самая первая вкладка с названием FilterRules. Для добавления нового правила нажимаем кнопку «+».Вcего в описании будет строка Chain.Выберите input, а в строке Protocol укажите tcp.Чуть ниже расположено поле Dst. Port. В нем укажите 1723 порт для туннеля VPN. В этом же окне на вкладке Action есть выпадающее меню. Выберете в списке accept. Это означает, что вами разрешен трафик через VPN.

Далее не забудьте разрешить протокол GRE. Делается это так:

  • создайте новое правило,
  • в поле Protocol нужно выберите gre;
  • разрешите трафик во вкладке Action.

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

В результате этих действий сервер PPtP для VPN доступа буде запущен. Если у вас остались еще вопросы о том, как подключить через VPN пользователей по протоколу PPtP, PPPoE, IPSec или любому другому, вы можете обратиться за консультацией к специалистам нашего интернет-магазина.

Создание классической VPN с использованием статической маршрутизации  | Облако Google

Предупреждение: Некоторые функции Classic VPN считается устаревшим 31 марта 2022 г. Дополнительные сведения см. Классический VPN частично устарел.

На этой странице описывается, как использовать статическую маршрутизацию для создания классической VPN. шлюз и один туннель. Этот туннель либо основан на политике, либо на основе маршрута. туннель.

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

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

Дополнительные сведения о Cloud VPN см. в следующих ресурсах:

Опции маршрутизации

Когда вы используете Google Cloud Console для создания туннеля на основе политик , Классический VPN выполняет следующие задачи:

  • Устанавливает селектор локального трафика туннеля на диапазон IP-адресов, который вы уточнить.
  • Устанавливает переключатель удаленного трафика туннеля на диапазоны IP-адресов, вы указываете в поле Диапазоны IP-адресов удаленной сети .
  • Для каждого диапазона в Диапазоны IP-адресов удаленной сети , Google Cloud создает настраиваемый статический маршрут, назначением (префиксом) которого является CIDR диапазона, и чей следующий прыжок — туннель.

После создания туннеля Classic VPN на основе политик Диапазоны IP-адресов, введенные вами в поле Диапазоны IP-адресов удаленной сети отображаются как Объявленные диапазоны IP-адресов на странице сведений о VPN-туннеле.

Когда вы используете Cloud Console для создания туннеля на основе маршрута , Классический VPN выполняет следующие задачи:

  • Устанавливает селекторы локального и удаленного трафика туннеля на любой IP-адрес ( 0.0.0.0/0 ).
  • Для каждого диапазона из диапазонов IP-адресов удаленной сети Google Cloud создает настраиваемый статический маршрут, назначением (префиксом) которого является CIDR диапазона, а следующий прыжок — туннель.
Важно: Селекторы трафика нельзя изменить после того, как туннель созданный.Если в будущем потребуется изменить селекторы трафика, необходимо удалить и заново создайте туннель.

При использовании интерфейса командной строки Google Cloud для создания либо туннеля на основе политик, либо туннеля на основе маршрута селекторы трафика для туннеля определяются таким же образом. Однако, поскольку создание пользовательских статических маршрутов выполняется с помощью отдельные команды, у вас больше контроля над этими маршрутами.

Количество CIDR, которое можно указать в селекторе трафика, зависит от версия ИКЕ.

Для получения важной справочной информации см. следующее:

Прежде чем начать

Настройте следующие элементы в Google Cloud, чтобы упростить настройку Облачный VPN:

  1. Войдите в свою учетную запись Google Cloud.Если вы новичок в Гугл Облако, создать учетную запись, чтобы оценить, как наши продукты работают в реальные сценарии. Новые клиенты также получают 300 долларов в виде бесплатных кредитов на запускать, тестировать и развертывать рабочие нагрузки.
  2. В Google Cloud Console на странице выбора проекта выберите или создайте проект Google Cloud.

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

    Перейти к селектору проектов

  3. Убедитесь, что биллинг включен для вашего облачного проекта. Узнайте, как проверьте, включен ли биллинг в проекте.

  4. Установите и инициализируйте интерфейс командной строки Google Cloud.
  5. В Google Cloud Console на странице выбора проекта выберите или создайте проект Google Cloud.

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

    Перейти к селектору проектов

  6. Убедитесь, что биллинг включен для вашего облачного проекта.Узнайте, как проверьте, включен ли биллинг в проекте.

  7. Установите и инициализируйте интерфейс командной строки Google Cloud.
  1. Если вы используете интерфейс командной строки Google Cloud, задайте идентификатор проекта с помощью следующая команда. Инструкции gcloud на этой странице предполагают что вы установили свой идентификатор проекта перед выдачей команд.

        Проект конфигурации gcloud  PROJECT_ID 
         
  1. Вы также можете просмотреть идентификатор проекта, который уже был установлен выполнив следующую команду:

        список конфигураций gcloud --format='text(core.project)'
         
Разрешения, необходимые для этой задачи

Для выполнения этой задачи вам должны быть предоставлены следующие разрешения. или следующие роли IAM.

Разрешения

  • вычисл.targetVpnGateways.get
  • вычисление.targetVpnGateways.list
  • вычисление.targetVpnGateways.create
  • вычисление.targetVpnGateways.delete
  • вычисление.targetVpnGateways.get
  • вычисление.targetVpnGateways.list
  • вычисление.targetVpnGateways.use
  • вычисление.targetVpnGateways.setLabels

Роли

  • ролей/вычислений.сетевой администратор
Важно: Для создания классического VPN-шлюза требуется внешний правила переадресации, которые вы создаете в интерфейсе командной строки Google Cloud или в Облачная консоль. Убедитесь, что условие управления идентификацией и доступом (IAM) не позволяет субъектам создавать только внутренние правила переадресации. Если такой условие существует, создание классического VPN-шлюза завершается с ошибкой ошибка разрешений. Для получения дополнительной информации см. Условия IAM для правил переадресации.

Создание пользовательской сети и подсети VPC

Перед созданием классического VPN-шлюза и туннеля создать сеть виртуального частного облака (VPC) и как минимум одну подсеть в регион, в котором находится шлюз Classic VPN:

Создание шлюза и туннеля

Мастер настройки VPN — единственный вариант консоли для создания Классический VPN-шлюз.Мастер включает в себя все необходимые этапы настройки для создания классического VPN-шлюза, туннели, сеансы BGP и ресурс внешнего шлюза VPN. Однако вы можете выполнить определенные шаги позже, например настроить сеансы BGP.

Примечание: Кнопка Создать VPN-шлюз поддерживает только создание HA VPN-шлюзы.

Консоль

Настройка шлюза

  1. В Google Cloud Console перейдите на страницу VPN .

    Перейти к VPN

  2. Если вы создаете шлюз в первый раз, нажмите Создать VPN-подключение .

  3. Выберите мастер настройки VPN .

  4. Выберите кнопку выбора Classic VPN .

  5. Нажмите Продолжить .

  6. На странице Создать VPN-подключение укажите следующий шлюз настройки:

    • Имя : Имя шлюза VPN. Имя не может быть изменено позже.
    • Описание : При желании добавьте описание.
    • Сеть : Укажите существующую сеть VPC в котором создать VPN-шлюз и туннель.
    • Регион : Шлюзы и туннели Cloud VPN региональные объекты. Выберите облако Google регион, где будет шлюз расположены. Экземпляры и другие ресурсы в разных регионах могут использовать туннель для исходящего трафика в соответствии с порядком маршруты. Для наилучшей производительности найдите шлюз и туннель в одном регионе. как соответствующие ресурсы Google Cloud.
    • IP-адрес : Создайте или выберите существующий региональный внешний Айпи адрес.

Настройка туннелей

  1. Для нового туннеля в разделе Tunnels указать следующее настройки:

    • Имя : Имя туннеля VPN. Имя не может быть изменено позже.
    • Описание : Дополнительно введите описание.
    • IP-адрес удаленного партнера : Укажите внешний IP-адрес одноранговый VPN-шлюз.
    • Версия IKE : выберите соответствующую поддерживаемую версию IKE. одноранговым VPN-шлюзом. IKEv2 предпочтительнее, если он поддерживается одноранговым устройством. Известная проблема: При настройке VPN-туннелей в AWS, используйте протокол шифрования IKEv2 и выберите меньше преобразований устанавливает на стороне AWS; в противном случае туннель Cloud VPN может не удается повторно ввести ключ. Например, выберите комбинацию одной фазы 1. и алгоритмы шифрования фазы 2, алгоритмы целостности и группа DH числа.

      Эта проблема смены ключа вызвана большой ассоциацией безопасности (SA). размер полезной нагрузки для набор наборов преобразований AWS по умолчанию.Этот большой размер полезной нагрузки приводит в IP-фрагментации пакетов IKE на стороне AWS, что Облачный VPN не поддерживает.

    • Предварительно общий ключ IKE : Предоставьте предварительный общий ключ (общий секрет), используемый для аутентификация. Общий ключ для туннеля Cloud VPN должен совпадать с тем, который используется при настройке двойного туннеля на одноранговый VPN-шлюз. Для создания криптографически стойкого общий ключ, следуйте эти направления.

    Для туннелей на основе политик

    1. В разделе Параметры маршрутизации выберите На основе политик .
    2. В поле Диапазоны IP-адресов удаленной сети укажите список, разделенный пробелами. диапазоны IP-адресов, используемые одноранговой сетью. Это удаленный селектор трафика , или правая сторона с точки зрения облачного VPN.

      После создания туннеля Classic VPN на основе политик , диапазоны IP-адресов, которые вы ввели в поле Диапазоны IP-адресов удаленной сети отображаются как Объявленные диапазоны IP-адресов на странице сведений о VPN-туннеле.

    3. В разделе Локальные диапазоны IP-адресов выберите один из следующих методов:

      • Чтобы выбрать существующий диапазон локальных IP-адресов, используйте Локальные подсети меню.
      • Чтобы ввести список диапазонов IP-адресов, разделенных пробелами, используемых в Сеть VPC, используйте поле Local IP ranges . Важные соображения см. Туннели и селекторы трафика на основе политик.

    Для маршрутных туннелей

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

  3. Нажмите Создать .

Примечание. Google Cloud автоматически создает один маршрут для каждого удаленного Диапазон IP-адресов, который вы указываете. Пунктом назначения маршрута является удаленный IP-адрес. диапазоне, его следующий переход настроен на туннель Cloud VPN, а его приоритет 1000 .Вы не можете установить приоритет этого автоматически созданный маршрут, но вы можете удалить и заменить его. Если тебе нужно больший контроль над приоритетом VPN-маршрутов, следуйте вместо этого шаги Gcloud CLI.

gcloud

Чтобы создать шлюз Cloud VPN, выполните следующую команду. последовательность. В командах замените следующее:

  • PROJECT_ID : идентификатор вашего проекта
  • NETWORK : имя вашей сети Google Cloud
  • РЕГИОН : Google Cloud регион, в котором вы создаете шлюз и туннель
  • GW_NAME : имя шлюза
  • GW_IP_NAME : имя используемого внешнего IP-адреса через шлюз
  • Необязательно: --target-vpn-gateway-region — это регион Классический VPN-шлюз для работы.Его значение должно быть таким же, как --region . Если не указано, этот параметр автоматически устанавливается. Этот параметр переопределяет вычисление/регион по умолчанию. значение свойства для этого вызова команды.

Настройка ресурсов шлюза

  1. Создайте целевой объект шлюза VPN:

    gcloud вычислить target-vpn-шлюзы создать  GW_NAME  \
       --сеть=  СЕТЬ  \
       --region=  РЕГИОН  \
       --project=  PROJECT_ID 
     
  2. Зарезервировать региональный внешний (статический) IP-адрес:

    gcloud вычислительные адреса создают  GW_IP_NAME  \
       --region=  РЕГИОН  \
       --project=  PROJECT_ID 
     
  3. Запишите IP-адрес (чтобы вы могли использовать его при настройке одноранговый VPN-шлюз):

    адреса вычислений gcloud описывают  GW_IP_NAME  \
       --region=  РЕГИОН  \
       --project=  PROJECT_ID  \
       --format='сплющенный (адрес)'
     
  4. Создать три правила переадресации; эти правила инструктируют Google Cloud для отправки ESP (IPsec), UDP 500 и UDP 4500 трафик на шлюз:

    правила переадресации вычислений gcloud create fr-  GW_NAME  -esp \
       --load-balancing-scheme=ВНЕШНИЙ \
       --network-tier=ПРЕМИУМ \
       --ip-протокол=ESP \
       --address=  GW_IP_NAME  \
       --target-vpn-gateway=  GW_NAME  \
       --region=  РЕГИОН  \
       --project=  PROJECT_ID 
     
    правила переадресации вычислений gcloud create fr-  GW_NAME  -udp500 \
       --load-balancing-scheme=ВНЕШНИЙ \
       --network-tier=ПРЕМИУМ \
       --ip-протокол=UDP \
       --порты=500 \
       --address=  GW_IP_NAME  \
       --target-vpn-gateway=  GW_NAME  \
       --region=  РЕГИОН  \
       --project=  PROJECT_ID 
     
    правила переадресации вычислений gcloud create fr-  GW_NAME  -udp4500 \
       --load-balancing-scheme=ВНЕШНИЙ \
       --network-tier=ПРЕМИУМ \
       --ip-протокол=UDP \
       --порты=4500 \
       --address=  GW_IP_NAME  \
       --target-vpn-gateway=  GW_NAME  \
       --region=  РЕГИОН  \
       --project=  PROJECT_ID 
     

Создание туннеля Cloud VPN

  1. В командах замените следующее:

    • TUNNEL_NAME : имя туннеля
    • ON_PREM_IP : внешний IP-адрес однорангового узла VPN-шлюз
    • IKE_VERS : 1 для IKEv1 или 2 для IKEv2 Известная проблема: При настройке VPN-туннелей в AWS, используйте протокол шифрования IKEv2 и выберите меньше преобразований устанавливает на стороне AWS; в противном случае туннель Cloud VPN может не удается повторно ввести ключ.Например, выберите комбинацию одной фазы 1. и алгоритмы шифрования фазы 2, алгоритмы целостности и группа DH числа.

      Эта проблема смены ключей вызвана большим размером полезной нагрузки SA для набор наборов преобразований AWS по умолчанию. Этот большой размер полезной нагрузки приводит в IP-фрагментации пакетов IKE на стороне AWS, что Облачный VPN не поддерживает.

    • SHARED_SECRET : ваш предварительный общий ключ (общий секрет). Общий ключ для туннеля Cloud VPN должен совпадать с тем, который используется при настройке двойного туннеля на одноранговый VPN-шлюз.Для создания криптографически стойкого общий ключ, следуйте эти направления.

    Для VPN на основе политик:

    • LOCAL_IP_RANGES : разделенный запятыми список Диапазоны IP-адресов Google Cloud. Например, вы можете предоставить CIDR блок для каждой подсети в сети VPC. Это левая сторона с точки зрения Cloud VPN.
    • REMOTE_IP_RANGES : разделенный запятыми список диапазоны IP-адресов одноранговой сети.Это правая сторона от перспектива Cloud VPN.

    Чтобы настроить VPN-туннель на основе политик, выполните следующую команду:

    gcloud вычислить vpn-туннели создать  TUNNEL_NAME  \
        --peer-address=  ON_PREM_IP  \
        --ike-версия=  IKE_VERS  \
        --shared-secret=  SHARED_SECRET  \
        --local-traffic-selector=  LOCAL_IP_RANGES  \
        --remote-traffic-selector=  REMOTE_IP_RANGES  \
        --target-vpn-gateway=  GW_NAME  \
        --region=  РЕГИОН  \
        --project=  PROJECT_ID 
     

    Для VPN на основе маршрута селекторы локального и удаленного трафика 0.0.0.0/0 , как указано в параметрах маршрутизации и трафике селекторы.

    Чтобы настроить VPN-туннель на основе маршрута, выполните следующую команду:

    gcloud вычислить vpn-туннели создать  TUNNEL_NAME  \
        --peer-address=  ON_PREM_IP  \
        --ike-версия=  IKE_VERS  \
        --shared-secret=  SHARED_SECRET  \
        --local-traffic-selector=0.0.0.0/0 \
        --remote-traffic-selector=0.0.0.0/0 \
        --target-vpn-gateway=  GW_NAME  \
        --region=  РЕГИОН  \
        --project=  PROJECT_ID 
     
  2. Создайте статический маршрут для каждого диапазона удаленных IP-адресов, указанного в --remote-traffic-selector на предыдущем шаге.Повторите это команда для каждого диапазона удаленных IP-адресов. Замените ROUTE_NAME на уникальное имя маршрута и заменить REMOTE_IP_RANGE с соответствующим диапазоном удаленных IP-адресов.

    Вычислительные маршруты gcloud создают  ROUTE_NAME  \
        --destination-range=  REMOTE_IP_RANGE  \
        --next-hop-vpn-tunnel=  ИМЯ_ТУННЕЛЯ  \
        --сеть=  СЕТЬ  \
        --next-hop-vpn-tunnel-region=  РЕГИОН  \
        --project=  PROJECT_ID 
     
    Примечание: Команда gcloud для создания маршрута использует приоритет по умолчанию из 1000 .Если вам нужно создать маршрут с более высоким приоритетом, используйте --флажок приоритета с меньшим номером при создании маршрута . Вы не можете изменить приоритет маршрута после того, как маршрут был созданный; однако вы можете удалить и заменить пользовательский статический маршрут без необходимости повторного создания VPN-туннеля. Для получения подробной информации о том, как маршруты работают в вашей сети VPC, см. Обзор маршрутов и Порядок маршрутов.

Завершение настройки

Прежде чем вы сможете использовать новый шлюз Cloud VPN и связанный с ним VPN туннеля, выполните следующие шаги:

  1. Установите одноранговый VPN-шлюз и настройте соответствующий туннель там.Инструкции см. в следующих разделах:
  2. Настройка правил брандмауэра в Google Cloud и вашей одноранговой сети по мере необходимости.
  3. Проверьте состояние вашего VPN-туннеля и правила переадресации.
  4. Просмотрите маршруты VPN, перейдя в таблицу маршрутизации проекта и отфильтровав Тип следующего перехода: VPN-туннель :

    Перейти к маршрутам

Применение ограничения политики организации, ограничивающего IP-адреса шлюза VPN

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

Чтобы создать политику организации и связать ее с организацией, папкой или проектом, используйте примеры, перечисленные в следующих разделах, и следуйте инструкциям в Использование ограничений.

Требуемые разрешения

Чтобы установить ограничение однорангового IP-адреса на уровне организации или проекта, вы должны сначала предоставлена ​​политика организации Роль администратора ( roles/orgpolicy.policyAdmin ) для вашей организации.

Ограничение подключения с определенных одноранговых IP-адресов

Чтобы разрешить только определенные одноранговые IP-адреса через туннель Cloud VPN, выполните следующие шаги:

  1. Найдите идентификатор своей организации, выполнив следующую команду:
     список организаций gcloud 

    Вывод команды должен выглядеть следующим образом:

          ИДЕНТИФИКАТОР ОТОБРАЖАЕМОГО ИМЯ
          пример-организация 2

    05212

  2. Создайте файл JSON, определяющий вашу политику, как в следующем примере:

         {
           "ограничение": "ограничения/вычисления.ограничитьVpnPeersIPs",
           "список политик": {
             "разрешенные значения": [
               «100.1.1.1»,
             ],
           }
         }
        
  3. Установите политику организации с помощью команды Resource Manager gcloud set-policy , передав файл JSON и используя ORGANIZATION_ID , который вы нашли на предыдущем шаге.

Ограничение подключения с любых одноранговых IP-адресов

Чтобы запретить создание любого нового туннеля Cloud VPN, выполните действия, описанные в этом пример ограничения:

  1. Найдите идентификатор своей организации или идентификатор узла в вашей иерархии ресурсов, где вы хотите установить политику.
  2. Создайте файл JSON, как показано в следующем примере:

        {
          "ограничение": "ограничения/compute.restrictVpnPeersIPs",
          "список политик": {
            "allValues": "ЗАПРЕТИТЬ"
          }
        }
     
  3. Передайте файл JSON, выполнив ту же команду, которую вы использовали бы для ограничения определенных одноранговые IP-адреса.

Что дальше

  • Для использования сценариев высокой доступности и высокой пропускной способности или нескольких сценарии подсети см. Расширенные конфигурации.
  • Чтобы помочь вам решить распространенные проблемы, с которыми вы можете столкнуться при использовании Cloud VPN, см. Устранение неполадок.

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

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

Лучшим решением, позволяющим организациям получать удаленный доступ к файлам, является настройка виртуальной частной сети (VPN).

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

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

5 шагов по настройке VPN

1. Приобретите маршрутизатор, соответствующий вашим потребностям

Убедитесь, что ваш аппаратный маршрутизатор соответствует следующим требованиям:

  • Маршрутизатор должен иметь проводное и беспроводное подключение.
  • Он должен иметь встроенные функции виртуальной частной сети.
  • Он должен поддерживать до 10 рабочих станций.

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

2. Используйте руководство мастера быстрого запуска для настройки

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

3. Выберите параметры безопасности

Важной частью процесса установки является обеспечение высочайшего уровня безопасности. Сила безопасности в вашей сети зависит от самого слабого звена. Большинство организаций ошибочно принимают «легкий для запоминания» пароль по умолчанию, который поставляется вместе с маршрутизатором. Это облегчает проникновение кибер-воров, предоставляя им доступ ко всем вашим данным. В некоторых случаях мастер установки предложит пользователю изменить пароль по умолчанию на надежный пароль.

Существует несколько вариантов настройки типа или уровня беспроводного шифрования или уровня безопасности. Лучше выбрать более надежный и безопасный вариант, поскольку открытые беспроводные сети подвергают сети внешним атакам, ведущим к краже данных. чтобы включить функцию VPN:

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

5. Подключиться

Последним шагом для удаленного доступа к файлам является подключение с домашнего компьютера к офисному через VPN.Вот как это сделать, используя компьютеры Macintosh и Windows.

  • Для Mac: выберите меню Apple > «Системные настройки», а затем нажмите «Сеть». Нажмите «Добавить» (+) в нижней части списка служб сетевого подключения, а затем выберите «VPN» во всплывающем меню «Интерфейс».
  • Для Windows: выберите Панели управления > Сеть и общий доступ > Создать новое подключение, затем выберите VPN и введите IP-адрес.

Для подключения вам потребуется ввести IP-адрес вашего офиса.IP-адрес — это четыре числа, разделенные точками, например: 12.34.56.78. Эти номера идентифицируют компьютеры, подключенные к Интернету.

Решение проблемы динамического IP-адреса

IP-номера могут быть статическими или динамическими.

Статический IP-адрес никогда не меняется. Поэтому, если ваш интернет-провайдер (ISP) назначил вам статический IP-адрес, то ваш офис всегда будет иметь один и тот же адрес. Это позволяет вашему веб-сайту легко ссылаться на ваш офис — веб-сайт может просто использовать IP-адрес.
Однако большинство офисов имеют динамические IP-адреса. Это означает, что каждый раз, когда ваше коммуникационное оборудование сбрасывается, вам назначается новый IP-адрес. Это создает проблему для вашего веб-сайта, поскольку он не будет знать IP-адрес офиса и, следовательно, не сможет подключиться к Sumac в офисе.

Решение 1. Статический IP-адрес

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

Решение 2. Зарегистрируйте собственное имя + динамический DNS

Если вы не можете получить статический IP-адрес по приемлемой цене, другим подходом может быть регистрация доменного имени и динамическое обновление сервера доменных имен (DNS) для этого доменного имени. чтобы указать на ваш офис. DNS — это просто компьютер в Интернете, который отвечает на вопрос: «Какой IP-адрес у этого домена?» Так, например, если вы запросите у DNS адрес google.com, вы, вероятно, получите ответ вроде: 74.125.226.80.
Если ваш сайт называется MyCharity.org, вы можете зарегистрировать доменное имя, например MyCharityOffice.com, и сообщить DNS IP-адрес для этого доменного имени. Обратите внимание, что, поскольку ваш IP-адрес является динамическим, вам нужен DNS, который может обрабатывать регулярные обновления: динамический DNS. Обновления выполняются программой, которую вы запускаете на компьютере в своем офисе; он регулярно проверяет свой IP-адрес и, если есть изменения, информирует об этом Динамический DNS.

Вот несколько примеров службы DNS такого типа: dlinkddns.com, dyndns.com, no-ip.com, zoneedit.com. Некоторые из них бесплатны.

Кстати, часто регистраторы — организации, в которых вы регистрируете свое доменное имя — также могут предоставлять бесплатные услуги динамического DNS.

Решение 3. Используйте бесплатное имя

Это решение очень похоже на решение 2, за исключением того, что вместо регистрации собственного имени (что стоит около 10 долларов в год) вы можете использовать бесплатное имя, предоставленное провайдером динамической DNS. . Например, no-ip.com бесплатно предоставит вам имена, которые вы можете использовать, и предоставит услугу динамического DNS.

Проблема с решениями 2 и 3
Единственная проблема со службами динамического DNS — временные задержки. Существует задержка между моментом, когда вы обновляете свой IP-адрес с помощью динамического DNS, и временем, когда остальная часть Интернета узнает об изменении.

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

Если задержка в 10 минут, в течение которых ваш сайт не будет работать корректно, допустима, то в этом нет ничего страшного.Однако, если необходимо, чтобы ваш веб-сайт работал как можно дольше, это соображение может вынудить вас получить статический IP-адрес, назначенный вашему офису.

Еще один фактор, который следует учитывать, — это частота изменения вашего IP-адреса. Несмотря на то, что теоретически ваш динамический IP-адрес может измениться, на практике часто интернет-провайдер назначает вам номер, и этот номер остается неизменным до тех пор, пока вы не перезагрузите модем. Если это происходит редко, то 10-минутная задержка от DNS не будет иметь значения, так как это происходит очень редко.

Три лучших поставщика услуг VPN в 2020 году

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

Для вашего удобства мы сделали всю работу за вас и составили список лучших поставщиков услуг VPN для офиса.

Ниже приведен список лучших поставщиков услуг VPN для офиса, ранжированных на основе их функций и соотношения цены и качества.Итак, давайте углубимся.

#1 Команды NordVPN


Имея более 35 местоположений серверов, команды NordVPN занимают первое место в нашем списке лучших провайдеров VPN для бизнеса. В основном используется организациями среднего размера. Команды NordVPN известны тем, что обеспечивают дополнительный уровень безопасности для корпоративных пользователей в виде высокоуровневого шифрования, нулевого ведения журнала и аварийного отключения.
Плюсы:

  • Высокозащищенная технология шифрования, обеспечивающая безопасность данных.
  • Удобный интерфейс.

Минусы:

  • Немного замедляет интернет-соединение.

#2 Perimeter 81


Perimeter 81 — это облачный VPN-провайдер с исключительными функциями. Благодаря сетевому сервису с нулевым доверием ваши бизнес-данные всегда надежно защищены, и вы можете подключаться к рабочей сети из дома и получать удаленный доступ к файлам, не опасаясь хакеров.
Плюсы:

  • Три бюджетных плана на выбор.
  • Щедрая 30-дневная гарантия возврата денег.

Минусы:

  • Вам необходимо приобрести план как минимум на 5 пользователей.

#3 Encrypt.me


Encypt.me — одна из немногих бизнес-VPN, которая поддерживает неограниченное количество подключений к устройствам на любом тарифном плане. Кроме того, VPN отлично работает во всех основных операционных системах, гарантируя, что все ваши сотрудники смогут без проблем использовать функции этой исключительной VPN.
Плюсы:

  • Двухнедельная бесплатная пробная версия.
  • Поддерживает неограниченное количество устройств.

Минусы:

  • Сомнительная политика ведения журнала.

Как выбрать VPN для вашей некоммерческой организации

Выбор VPN для подключения к вашей рабочей сети из дома может быть сложным, поскольку на рынке есть много провайдеров VPN, которые утверждают, что они «лучшие».

При выборе VPN для вашей некоммерческой организации вы должны обращать внимание на следующие вещи у поставщика услуг:

1. Особенности VPN

Если вы не разбираетесь в технологиях, все VPN могут выглядеть одинаково для ты.Тем не менее, это не так.

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

Чтобы принять обоснованное решение, очень важно внимательно изучить возможности поставщика услуг VPN, а затем выбрать того, который лучше всего соответствует требованиям вашего бизнеса.

2.Совместимость устройств и возможность подключения

Прежде чем обратиться к поставщику услуг Office VPN, вы должны убедиться, что технология VPN поддерживает операционные системы и платформы, которые использует ваша некоммерческая организация.

Например, некоторые VPN не поддерживают ОС Linux. Итак, если ваша организация работает на ОС Linux или любой другой непопулярной ОС, вы должны сначала посмотреть системные требования.

Также рекомендуется проверить количество устройств, которые могут одновременно подключаться к VPN.Некоторые провайдеры VPN позволяют одновременно подключать только три устройства, в то время как другие могут одновременно обрабатывать до 10 устройств.

3. Расположение серверов

Количество серверов и их расположение — это решающий фактор при выборе подходящего VPN для вашей некоммерческой организации.

В идеале вам следует выбрать Office VPN, предлагающий наибольшее количество серверов почти во всех основных местах. Наличие большего количества серверов в вашем распоряжении позволит вам получить доступ к рабочему серверу из дома, из другого города или даже из другой страны.Это означает, что вы никогда не столкнетесь с проблемой цензуры и геоблокировки даже в путешествии!

4. План оплаты и доступность

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

Хотя виртуальные частные сети, как правило, доступны по цене, цена может быть проблемой, если у вас ограниченный бюджет.К счастью, на рынке есть много провайдеров VPN, и вы найдете их по желаемому бюджету.

P.s Цены на VPN варьируются в зависимости от предлагаемых функций и продолжительности подписки, и вы можете скомпрометировать некоторые функции с бюджетным VPN.

5. Удобный интерфейс и поддержка клиентов

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

Преимущества использования VPN

 

1. Повышенная безопасность данных благодаря шифрованию

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

Независимо от того, хотите ли вы получить удаленный доступ к домашней сети или хотите выполнить какую-либо работу с помощью общедоступного Wi-Fi, вы можете сделать это, не беспокоясь о хакерах!

2. Никаких вредоносных программ/рекламы/фишинга

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

Именно здесь использование VPN может спасти ваш бизнес.
Наличие офисного VPN не только позволяет вам получить доступ к рабочему серверу из дома, но также означает, что вы и ваши сотрудники защищены от атак вредоносных программ, попыток фишинга и нежелательной рекламы!

3. Конфиденциальность в сети

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

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

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

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

Но что, если сотрудник не может получить доступ к этим важным деловым файлам из-за географической блокировки?

Что ж, здесь может пригодиться VPN.
Офисный VPN позволит вам и вашим сотрудникам подключаться к офисным серверам удаленно, как будто вы работаете из офиса!

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

Частично автор: Кармин Тиано, соучредитель и главный операционный директор Manawa Networks. С ним можно связаться по адресу [email protected] или http://www.manawa.net/blog

Как настроить персональный Windows VPN

Настроить собственный VPN без дорогостоящего программного обеспечения

Эрик Гейер

Если вам нужен безопасный доступ к вашей сети вне офиса, вы можете настроить виртуальную частную сеть (VPN ). Вы можете подключиться через Интернет и получить безопасный доступ к общим файлам и ресурсам.Вам не нужно покупать дорогой VPN-сервер, если у вас мало пользователей. Windows фактически предоставляет функциональные возможности VPN-сервера и клиента.

В этом руководстве мы настроим VPN-сервер Windows 7 или Vista и подключимся к Windows XP, Vista или 7. Теперь приступим!

Предотвращение конфликтов IP

Поскольку VPN-подключения связывают сети вместе, вы должны быть осторожны с подсетями и IP-адресами, чтобы не возникало конфликтов. В сети, в которой размещен VPN-сервер, вы должны использовать необычный IP-адрес по умолчанию для маршрутизатора, например 192.168.50.1. Если у вас несколько офисов, назначьте каждому из них свой необычный IP-адрес/подсеть, например 192.168.51.1, 192.168.52.1 и т. д.

фигура 1

Создание входящего VPN-подключения в Windows

Чтобы настроить сервер Windows VPN, вы делаете то, что Microsoft описывает как «создание входящего соединения». Это будет сервер или хост VPN. Среди прочего, вы укажете пользователей, которых хотите подключить. Выполните следующие действия, чтобы создать входящее соединение:

  1. Щелкните правой кнопкой мыши значок сети на панели задач и выберите  Открыть центр управления сетями и общим доступом .
  2. Нажмите Управление сетевыми подключениями (Windows Vista) или Изменить настройки адаптера (Windows 7).
  3. Нажмите клавишу Alt , чтобы отобразить меню «Файл», и нажмите Файл > Новое входящее соединение… .
  4. Выберите, кому вы хотите предоставить доступ к VPN и/или создать собственные учетные записи, нажав  Добавить кого-то . См. пример на рис. 2. Когда вы закончите, нажмите Далее .
  5. Выберите Через Интернет , как показано на экране 3, и нажмите Далее .
  6. Как показано на рис. 4, выберите протоколы, которые вы хотите включить для этого подключения. Скорее всего, вы захотите выбрать Интернет-протокол версии 4 (TCP/IPv4) , чтобы удаленные пользователи получали IP-адрес и могли получать доступ к Интернету и/или сети. Кроме того, если вы хотите, чтобы удаленные пользователи имели доступ к общим файлам и/или принтерам, выберите Общий доступ к файлам и принтерам для сетей Microsoft . Когда вы закончите, нажмите  Разрешить доступ .
  7. В следующем окне нажмите Закрыть .

Теперь вам нужно получить доступ к свойствам только что созданного входящего сетевого подключения и определить диапазон IP-адресов для VPN-клиентов:

  1. В окне Сетевые подключения дважды щелкните Входящие подключения .
  2. Выберите вкладку Сеть и дважды щелкните Интернет-протокол версии 4 (TCP/IPv4) .
  3. Выберите  Укажите IP-адреса  , а затем введите начальный и конечный адреса, которые находятся в пределах диапазона вашей локальной подсети, но не конфликтуют с диапазоном DHCP.Например, если IP-адрес вашего маршрутизатора — 192.168.50.1, вы можете ввести от 192.168.50.50 до 192.168.50.59, как показано на рис. 5, что будет поддерживать 10 клиентов. Если вы хотите, чтобы клиенты могли назначать себе IP-адрес, выберите этот параметр.
  4. Нажмите OK в обоих диалоговых окнах, чтобы сохранить изменения.

Настройка любых сторонних брандмауэров

Windows автоматически разрешает VPN-подключения через брандмауэр Windows при настройке входящего подключения на хост-компьютере.Однако, если на хост-компьютере установлен сторонний брандмауэр, необходимо убедиться, что трафик VPN разрешен. Возможно, вам придется вручную ввести номера портов 47 и 1723.

Настройте свой IP-адрес, динамический DNS и маршрутизатор

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

Начните с входа в веб-панель управления маршрутизатора. Затем перейдите к настройкам сети или DHCP и посмотрите, можете ли вы зарезервировать IP-адрес для ПК, чтобы он всегда получал один и тот же адрес. Это может называться резервированием DHCP или статическим DHCP. Некоторые маршрутизаторы не имеют этой функции. В этом случае вам необходимо вручную назначить ПК статический IP-адрес в настройках TCP/IP сетевого подключения в Windows.

После того, как вы определили IP-адрес, найдите виртуальный сервер или настройки переадресации портов в веб-панели управления маршрутизатора.Затем создайте порт переадресации 1723 на локальный IP-адрес ПК, как показано на экране 6. Не забудьте сохранить изменения!


Рисунок 6.

Если для вашего интернет-соединения используется динамический IP-адрес, а не статический, вам следует зарегистрировать и настроить службу динамического DNS. Это связано с тем, что при настройке удаленных клиентов вы должны ввести IP-адрес в Интернете, где находится хост-компьютер. Это будет проблемой, если IP изменится. Однако вы можете подписаться на бесплатную услугу, например No-IP, и ввести данные своей учетной записи в маршрутизатор, чтобы он обновил имя хоста с вашим IP-адресом.Затем у вас будет имя хоста (например, yourname.no-ip.org) для ввода удаленным клиентам, которое всегда будет указывать на текущий IP-адрес вашего хост-компьютера в Интернете.

Теперь все на стороне сервера должно быть настроено и готово к работе. Далее необходимо настроить клиентов.

Создание исходящих VPN-соединений в Windows

Теперь, когда вы настроили сервер, вам нужно настроить компьютеры, с которых вы хотите подключиться, называемые VPN-клиентами. Вот как это сделать в Windows Vista и 7:

  1. Щелкните правой кнопкой мыши значок сети на панели задач и выберите  Открыть центр управления сетями и общим доступом .
  2. Нажмите Настройка подключения или сети  (Windows Vista) или Настройка нового подключения или сети (Windows 7, как показано ниже).

  1. В мастере выберите Подключиться к рабочему месту и нажмите Далее .
  2. Выберите  Использовать мое подключение к Интернету (VPN) .
  3. Введите IP-адрес или имя хоста в Интернете в поле Интернет-адрес и введите что-нибудь в поле Имя получателя .См. пример на рис. 8 ниже. Вы, вероятно, захотите оставить другие параметры отключенными.

  1. Нажмите  Далее  , чтобы продолжить.
  2. Введите имя пользователя и пароль , которые были выбраны при создании входящего VPN-подключения, и нажмите «Далее», чтобы попытаться подключиться. Он попытается подключиться, используя следующие протоколы: SSTP, PPTP, а затем L2TP.
  3. После подключения нажмите  Закрыть .

Windows может по умолчанию назначить подключение как общедоступную сеть, что ограничивает возможности совместного использования.Поэтому вы, вероятно, захотите изменить это. Если вам не будет предложено сделать это, откройте Центр управления сетями и общим доступом и нажмите Настроить (Windows Vista) или ссылку Общедоступная сеть под именем подключения (Windows 7). Затем во всплывающем окне выберите  Work Network .

Вот как создать исходящее VPN-подключение в Windows XP:

  1. Откройте окно Сетевые подключения и нажмите Создать новое подключение .
  2. Выберите Подключиться к сети на моем рабочем месте и нажмите Далее .
  3. Выберите Подключение к виртуальной частной сети и нажмите Далее .
  4. Введите имя подключения и нажмите Далее .
  5. Выберите Не набирать начальное соединение и нажмите Далее .
  6. Введите IP-адрес или имя хоста в Интернете и нажмите Далее .
  7. Нажмите  Готово .

Ограничение трафика VPN

По умолчанию весь интернет-трафик на VPN-клиенте будет проходить через VPN, а не через локальный Интернет, к которому он подключен. Это здорово, если они используют общедоступное соединение, например, порт в отеле или точку доступа Wi-Fi, так как это обеспечивает конфиденциальность их просмотра. Однако, если они находятся в доверенной сети, например, дома или в удаленном офисе, это может привести к потере пропускной способности. Чтобы ограничить трафик, проходящий через VPN-соединение:

  1. В окне Сетевые подключения щелкните правой кнопкой мыши VPN-подключение и выберите Свойства .
  2. Выберите вкладку Сеть и дважды щелкните Интернет-протокол (TCP/IP).
  3. Нажмите кнопку Дополнительно и снимите флажок Использовать шлюз по умолчанию в удаленной сети (см. рис. 9).

  1. Нажмите  OK  в диалоговых окнах, чтобы сохранить изменения.

Теперь клиент VPN будет использовать локальное подключение к Интернету при просмотре веб-сайтов. Он будет использовать VPN-подключение только тогда, когда сервер или IP-адрес недоступен через Интернет, например, при доступе к общим ресурсам в хост-сети VPN.

Подключение к VPN

В Windows XP вы можете подключаться и отключаться, открыв окно Сетевые подключения и щелкнув правой кнопкой мыши VPN-подключение. В Windows Vista можно щелкнуть значок сети на панели задач, нажать Подключиться к и выбрать подключение. В Windows 7 щелкните значок сети на панели задач и выберите VPN-подключение.

После подключения вы сможете получить доступ к общим ресурсам в сети хоста VPN.Иметь ввиду; вам может потребоваться вручную получить доступ к общим ресурсам (например, ip_address_of_computer или file://имя_компьютера/), а не просматривать в My Network Places или Network.

виртуальных частных сетей (VPN) в UCSD

Последнее обновление: 8 сентября 2021 г. 13:27:49 PDT

Узнайте о службе расширенной виртуальной частной сети (VPN) UCSD, которая позволяет создавать защищенные подключения к сети UCSD из удаленных мест.

Использование VPN во время директив о временной удаленной работе Весна 2020 г.

В ответ на резкое увеличение числа удаленных сотрудников ИТ-служба значительно повысила мощность и производительность службы VPN. Таким образом, вы можете свободно полагаться на VPN в любое время, когда работаете удаленно. При подключении к VPN с использованием группы 2-Step Secured — allthruucsd весь входящий и исходящий трафик вашего домашнего или удаленного компьютера фильтруется от вредоносных программ точно так же, как и любой компьютер в кампусе.Однако VPN не следует использовать, когда вы не работаете, например, когда член семьи использует ваш персональный компьютер. Обратите внимание, что большинство академических и студенческих услуг не требуют входа в VPN. Преподавателям и сотрудникам рекомендуется использовать VPN при выполнении административных функций. Найдите информацию о настройке VPN.

Для этих служб требуется VPN:

  • Общие сетевые диски
  • Cognos/Таблица
  • Удаленный рабочий стол для компьютеров или виртуальных машин
  • Логистический портал
  • TN3270 (IFIS/ISIS)
  • Ресурсы библиотеки (требуется 2-Step Secured — allthruucsd )
  • Промежуточные ссылки для предварительного просмотра веб-сайтов CMS (требуется 2-Step Secured — allthruucsd )
  • Canvas не требует VPN, но рекомендуется при подключении за пределами США.С.
  • AccessLink
  • ТехВики
  • Некоторые приложения для конкретных отделов (iDocs, BAMTRAC, CRIS)


UCSD VPN создает виртуальное частное соединение через общедоступные сети
, используя шифрование и другие проверки безопасности для защиты от перехвата передачи компьютерных данных. Это также помогает обеспечить доступ к сетям кампуса только авторизованным пользователям. С помощью VPN сетевой вычислительный трафик между вашим удаленным компьютером (вне кампуса или беспроводным) и кампусом проходит через одно зашифрованное соединение, и ваш удаленный компьютер имеет IP-адрес UCSD.

Для VPN-соединений требуется двухэтапный вход в систему. Узнайте больше о VPN и двухэтапном входе.

Примечание
Инструкции для пользователей UC San Diego Health and Health Science VPN можно найти по адресу mcvpn.ucsd.edu.

VPN-сервисы

  • AnyConnect — программный VPN-клиент Cisco, предлагающий максимальные возможности и производительность.
  • EasyConnect — веб-портал VPN по адресу https://vpn.ucsd.edu, который обеспечивает безопасный доступ ко многим службам кампуса, ресурсам электронной библиотеки и удаленным рабочим столам без необходимости установки программного клиента.

Подключитесь к VPN UCSD, используя один из следующих вариантов:

  • Клиент VPN AnyConnect — Загрузите клиент для безопасного доступа к услугам UCSD, включая ресурсы библиотеки, используя:
    • Обычная установка:
  • Веб-интерфейс EasyConnect для доступа к службам UCSD (кроме библиотек) — Простой и безопасный доступ к службам UCSD без установки клиента. Пользователи Mac OS X: веб-интерфейс EasyConnect следует использовать только на компьютерах с Mac OS X 10.8 и новее. Старые версии Mac OS X больше не поддерживаются.
    1. Перейти на https://vpn.ucsd.edu
    2. Введите имя пользователя и пароль Active Directory (AD).
    3. Выберите EasyConnect в раскрывающемся меню Группа и нажмите Войти.
    4. Теперь вы можете получить доступ к службам кампуса, щелкнув ссылку из списка, например:
      • Campus Exchange (Outlook Web Access)
      • Статус сети кампуса
      • Семейство ссылок (FinancialLink, TravelLink и т. д.)
      • SysWiki (для системных администраторов кампуса)

      Вы также можете получить доступ к службам, введя URL-адрес в поле «Адрес».

  • iPhone/iTouch/iPad 6.0.x и выше

Следуйте этим инструкциям, чтобы изменить свой пароль AD.

VPN-пулы

  • Служба VPN позволяет создавать пулы для конкретных отделов, которые можно использовать для управления доступом к ресурсам отдела.Обратитесь к персоналу ИТ-поддержки за дополнительной информацией о доступе или использовании пулов для вашего отдела. Если у вас нет персонала ИТ-поддержки, обратитесь в службу поддержки ITS.
  • Чтобы получить доступ к пулу VPN, при входе в VPN введите свое имя пользователя, а затем «@» имя пула. Например, чтобы получить доступ к пулу ITS, введите «[email protected]».

Для получения дополнительной технической информации о службе VPN см. статью о VPN на TechWiki.

Чтобы задать вопросы, запросить услугу или сообщить о проблеме, обратитесь в службу поддержки ITS по телефону (858) 246-4357. Примечание: На этой странице есть удобная ссылка, которую легко запомнить: http://blink.ucsd.edu/go/vpn

Часть 1. Простое руководство по настройке собственной VPN [2021]

Интернет — непростая задача для тех, кто ценит свою конфиденциальность. Люди (законно) обеспокоены своей конфиденциальностью после того, как сенат проголосовал за разрешение интернет-провайдерам (ISP) продавать вашу личную информацию рекламодателям.Хотя защита вашей конфиденциальности имеет решающее значение, для этого не требуется регистрация в службе VPN и туннелирование всей вашей интернет-активности через серверы VPN.

Хватит болтать с меня; давайте продолжим с гидом.

[1] Теоретическое понимание

Раздел (a) – Что такое виртуальная частная сеть (VPN)?

Термин VPN относится к виртуальной частной сети, которая использует Интернет в качестве транспортного механизма, сохраняя при этом данные в VPN «защищенными».

Раздел (b) – Но что такое виртуальная частная сеть (VPN)?

На этот вопрос можно ответить по-разному. Все зависит от того, как настроена ваша сеть. Наиболее частая схема — иметь единую первичную внутреннюю сеть с удаленными узлами, получающими доступ к центральной сети через VPN. Удаленные рабочие места или сотрудники, работающие из дома, являются яркими примерами удаленных узлов. Вы также можете объединить две маленькие (или большие) сети вместе, чтобы создать одну большую сеть.

Раздел (c) — Итак, как работает виртуальная частная сеть (VPN)?

Проще говоря, VPN создается путем создания безопасного туннеля между двумя сетями и маршрутизации IP через него. Вот несколько диаграмм, помогающих наглядно представить это понятие (с использованием маскировки IP-адресов):

Клиентский маршрутизатор — это система Linux, которая служит брандмауэром или шлюзом удаленной сети. Локальный IP-адрес 192.168.12.0 используется удаленной сетью. Информация о локальной маршрутизации на маршрутизаторах была исключена для упрощения схемы (рис. 1).Основная идея заключается в использовании туннеля для передачи трафика для всех частных сетей (10.0.0, 172.16.0.0 и 192.168.0.0).

Это один из способов ведения дел. Иными словами, в то время как удаленная сеть может видеть частную сеть, частная сеть не всегда может видеть удаленную сеть. Вы должны объявить, что маршруты являются двунаправленными, чтобы это произошло.

[2] Предварительные требования

Раздел (a) — Защита от незваных гостей  

Безопасность VPN чрезвычайно важна.Разве не поэтому вы делаете это в первую очередь? При настройке сервера необходимо помнить о нескольких вещах.

  • Запретить пароли — Вы не используете пароли, вы полностью отключаете их. Система аутентификации с открытым ключом SSH должна использоваться для всех аутентификаций на этой рабочей станции. Только те, у кого есть ключи, смогут войти, потому что запомнить двоичный ключ длиной 530 символов очень сложно.
  • Итак, как вы это делаете? Требуется изменение файла /etc/passwd.Второе поле содержит либо хэш пароля, либо «x», указывающий, что система аутентификации должна искать в файле /etc/shadow. Вместо «*» вы изменяете это поле на «*». Это информирует систему аутентификации о том, что пароль не существует и что пароль не должен использоваться.

[3] Мифы против реальности

Раздел (a) — Виртуальная частная сеть (VPN) не делает вас «частным»

Возможно, вы уже знаете, что такое VPN, но на всякий случай не надо, вот ситуация (или напоминание!).Вы увлечены фильмом. В спортивном автомобиле на шоссе преступник пытается скрыться с места преступления. Сверху за автомобилем гонится вертолет. Вертолет теряет след автомобиля, когда достигает туннеля с множеством выходов.

VPN работает так же, как туннель в этой сцене фильма: он соединяет несколько маршрутов и объединяет их в один, и вертолет не может видеть, что происходит внутри. Я уверен, что многие люди рекомендовали вам VPN-сервис.Обычно они говорят вам, что VPN — это фантастика, потому что она позволяет вам получать доступ к контенту с географическим ограничением, обходить Великий китайский брандмауэр и безопасно просматривать Интернет.

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

VPN не защищают вашу конфиденциальность и не обеспечивают анонимность по умолчанию. VPN просто перенаправляют весь ваш интернет-трафик с серверов вашего интернет-провайдера на серверы провайдера VPN.

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

Раздел (b) — Должен ли я использовать VPN, чтобы обезопасить себя в Интернете?

У вас есть немедленный ответ НЕТ. Обоснование этого — многие кафе и мотели не уделяют много времени защите своей инфраструктуры Wi-Fi. Это означает, что пользователь может видеть пользователя другого компьютера в локальной сети, как дома. Кроме того, если хакер присутствует в вашей любимой кофейне, он может отслеживать ваш интернет-трафик, чтобы собирать информацию о вас.

Да, ты. Вы популярны, но опасным образом! Предположим, что все бесплатные VPN-приложения в App Store и Google Play существуют не просто так.Бесплатные VPN, безусловно, являются одними из худших нарушителей. Если это бесплатно, как говорится, вы и есть продукт. То есть они получают от вас прибыль — в частности, ваши конфиденциальные данные. VPN, как и любой бесплатный сервис, часто спонсируются рекламой. Это влечет за собой продажу вашего интернет-трафика тому, кто предложит самую высокую цену, чтобы показывать вам персонализированную рекламу при подключении к VPN. Они будут отслеживать ваше поведение в Интернете, продавать его маркетологам, размещать собственную рекламу на незащищенных страницах или красть вашу личность.Следует избегать бесплатных VPN любой ценой. Другие бесплатные VPN-сервисы обвиняют в размещении рекламы на веб-сайтах, которые вы просматриваете.

Что касается премиальных услуг, вы можете получить конфиденциальность в Интернете за (от 5 до 20 долларов США) в месяц. Но сначала ознакомьтесь с их условиями обслуживания и политикой конфиденциальности. Я сталкивался со многими VPN, которые записывают ваш интернет-трафик, обмениваются данными с государственной полицией и делают другие вещи. Обратите внимание на мелкий шрифт [ Я серьезно! ].

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

На самом деле несколько VPN-компаний заявили, что не ведут никаких журналов, но оказалось, что это неверно.

[4] К делу!

При использовании общедоступной сети Wi-Fi домашняя VPN создает для вас зашифрованный туннель и даже может позволить вам получить доступ к службам, зависящим от страны, из-за пределов страны — все это с вашего Android, iOS или Chromebook.VPN предоставит вам безопасный удаленный доступ к вашей домашней сети. Вы даже можете предоставить доступ другим людям, упростив им доступ к серверам, размещенным в вашей домашней сети.

Вы также можете настроить VPN-сервер на одном из своих персональных компьютеров. Однако вы захотите использовать компьютер или устройство, которое всегда включено, а не настольный ПК, который вы, вероятно, выключите, выходя из дома. В Windows есть встроенные средства для размещения VPN, а в программе Apple Server также есть опция VPN-сервера.

Windows имеет встроенные средства для размещения VPN, а программа Apple Server также имеет опцию VPN-сервера. Однако это не самые мощные (или безопасные) доступные решения, и их может быть сложно настроить и запустить должным образом. В Windows есть встроенные средства для размещения VPN, а в программе Apple Server также есть опция VPN-сервера. Однако это не самые мощные (или безопасные) доступные решения, и их может быть сложно настроить и запустить должным образом.

Можно также установить сторонний VPN-сервер, например OpenVPN.VPN-серверы доступны практически для любой операционной системы, включая Windows, Mac OS X и Linux. Все, что вам нужно сделать сейчас, это перенаправить необходимые порты с вашего маршрутизатора на ПК, на котором будет выполняться серверное программное обеспечение.

Раздел (a) — встроенная VPN в Windows

Хотя эта опция относительно скрыта, Windows может функционировать как VPN-сервер, используя протокол туннелирования точка-точка (PPTP). Вот где его искать и как настроить VPN-сервер.

ПРИМЕЧАНИЕ. – Некоторые пользователи, установившие Windows 10 Creators Update, могут столкнуться с трудностями при настройке VPN-сервера, поскольку служба маршрутизации и удаленного доступа не запускается. Это известная проблема, которую еще предстоит решить с помощью обновлений программного обеспечения.

Способ 1:

Шаг 1 — Чтобы настроить VPN-сервер в Windows, перейдите к Пуск > Настройки > Сетевые подключения .

Шаг 2 – Перейдите на Сеть и Интернет .

Шаг 3 — Перейдите в VPN и нажмите « Добавить VPN-подключение».

Шаг 4 — Перейдите на https://www.vpnbook.com/, нажмите PPTP и скопируйте данные в блокнот/наклейки

Шаг 5 — После нажатия « Добавить VPN-соединение» , вы увидите всплывающее окно, подобное этому:

Вам нужно нажать на провайдера VPN , где вы увидите рисунок (b) и добавить поля, как на рисунке (c)

ПРИМЕЧАНИЕ — подождите, если вы не подключены или если у вас возникли проблемы, возможно, у вас есть проблемы с вашими сетевыми драйверами.

Создание VPN-сервера (продолжение)

Способ 2:

Шаг 1 — Чтобы настроить VPN-сервер в Windows, выберите Пуск > Панель управления > Сетевые подключения . Чтобы сделать это быстро, перейдите в «Пуск», введите « ncpa.cpl », а затем щелкните результат (или просто нажмите Enter).

Шаг 2 — Чтобы открыть полные параметры в окне « Сетевые подключения », используйте клавишу Alt, откройте меню « Файл », а затем выберите параметр « Новое входящее подключение », а затем .

Шаг 3 – Выберите учетные записи пользователей, которые затем смогут подключаться удаленно. Вместо того, чтобы разрешать вход в VPN из вашей основной учетной записи пользователя, вы можете создать новую ограниченную учетную запись пользователя для повышения безопасности. Нажав кнопку « Добавить кого-нибудь », вы можете сделать это. Какую бы учетную запись пользователя вы ни выбрали, убедитесь, что она имеет очень надежный пароль, так как слабый пароль может быть взломан с помощью атаки по словарю.

Нажмите кнопку « Next », когда вы выбрали своего пользователя.

Шаг 4 — Чтобы разрешить VPN-соединения через Интернет, выберите на следующем экране опцию «Через Интернет». Вы, вероятно, просто увидите этот выбор здесь, но если у вас есть оборудование для коммутируемого доступа, вы также можете включить входящие соединения с помощью модема для коммутируемого доступа.

Шаг 5 – Затем можно выбрать сетевые протоколы, которые должны быть включены для входящих соединений. Вы можете снять флажок «Общий доступ к файлам и принтерам для сетей Microsoft», например, если вы не хотите, чтобы кто-либо, подключенный к VPN, имел доступ к общим файлам и принтерам в вашей локальной сети.

Когда все на месте, нажмите кнопку «Разрешить доступ».

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

Теперь ваш VPN-сервер должен быть запущен и готов принимать входящие запросы на подключение. Вернитесь в окно «Сетевые подключения» и уберите пункт «Входящие подключения», если вы хотите отключить VPN-сервер в будущем.

Настройка маршрутизатора

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

Создайте правило переадресации портов, которое передает случайный «внешний порт», например 23243, на «внутренний порт» 1723 на вашем компьютере для оптимальной защиты. Это позволяет вам подключаться к VPN-серверу, используя порт 23243, и защищает вас от вредоносных программ, которые сканируют и пытаются подключиться к VPN-серверам, используя порт по умолчанию.

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

Подключение к VPN-серверу

Вам потребуется общедоступный IP-адрес вашего компьютера (IP-адрес вашей сети в Интернете) или, если вы настроили службу динамического DNS, его динамический DNS-адрес для подключения к VPN-серверу . Для этого следуйте методу 1 , рис. A–C .

Раздел (b) — сервер macOS за 19,99 долларов США

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

MacOS Server, серверное программное обеспечение Apple, имеет простую в настройке службу VPN, которая дает вам зашифрованный доступ в Интернет из любого места, а также позволяет вам удаленно просматривать свои файлы. Все, что вам нужно, это:

  • Рабочий стол Mac, который всегда подключен к вашей сети через Ethernet. На Craigslist вы можете найти недорогой Mac Mini или использовать существующий iMac, если он у вас уже есть.
  • Сервер macOS стоит 19 долларов.99, и его можно загрузить из Mac App Store.
  • Маршрутизатор с переадресацией портов и динамическим DNS, который можно настроить.
  • Благодаря интеграции маршрутизаторы Apple AirPort невероятно упрощают работу, но другие маршрутизаторы должны работать должным образом.

Шаг 1. Установка сервера macOS

Если вы еще этого не сделали, приобретите сервер macOS (19,99 долл. США) в Mac App Store и установите его на компьютер, который вы будете использовать в качестве VPN. Если у вас есть iMac, вы можете использовать его в качестве сервера или использовать Mac Mini, приобретенный специально для этой цели.

Эта страница может быть удобной.

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

Шаг 2. Настройка переадресации портов

Для подключения к VPN требуется переадресация портов, которую необходимо настроить на уровне маршрутизатора. Если у вас есть маршрутизатор Apple AirPort, вам повезло: macOS Server позаботится об этом за вас при настройке VPN.Вы можете пропустить этот раздел и вместо этого следовать указаниям, когда они появятся позже. Для начала введите IP-адрес вашего маршрутизатора в веб-браузере, чтобы получить доступ к его панели администратора.

Затем выберите настройки переадресации портов и перенаправьте следующие порты на IP-адрес вашего сервера macOS:

UDP 500 — ISAKMP/IKE;

UDP 1701 — L2TP; и

UDP 4500 — IPsec NAT Traversal.

Шаг 3. Настройка динамического DNS

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

Шаг 4. Включите службу VPN.

Вернитесь на сервер macOS и откройте приложение macOS Server. Перейдите в раздел VPN на сайте.

Шаг 5 – Включите службу VPN.

Вернитесь на сервер macOS и откройте приложение macOS Server. Перейдите в раздел VPN на сайте. Введите динамический DNS-адрес, который вы установили выше (или статический IP-адрес вашего интернет-провайдера, если он у вас есть) в поле «Имя хоста VPN». В этом поле создайте уникальный «общий секрет»: чем длиннее и случайнее он будет, тем безопаснее будет ваше соединение.Для использования на других устройствах скопируйте этот секрет.

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

Когда вы закончите настройку, щелкните огромный переключатель «Вкл./Выкл.» в правом верхнем углу.Ваш VPN будет активирован.

Наконец, есть кнопка с надписью «Профиль конфигурации». Это создаст файл, который вы сможете отправить на устройства iOS и macOS для быстрой настройки VPN-подключения, избавив вас и любых других пользователей от времени и усилий, связанных с вводом общего секрета и настройками.

Время действовать!!

Как настроить виртуальную частную сеть (VPN)

Теперь пришло время подключиться к VPN с другого устройства, когда оно настроено.Стоит отметить, что вы не можете подключиться локально; это будет работать, только если вы не подключены к домашней сети. Для проверки я использовал Wi-Fi моего соседа, но вы также можете отключить Wi-Fi на своем телефоне и подключиться, используя вместо этого подключение для передачи данных.

На Mac самым простым способом является создание профиля конфигурации на сервере, на котором размещается ваше VPN-подключение, а затем открытие этого профиля. Это настроит ваш Mac для подключения к VPN, требуя только имя пользователя и пароль.

Если это невозможно, вы всегда можете сделать это вручную.Чтобы создать новую сеть, перейдите в «Системные настройки» > «Сеть» и нажмите кнопку «+» в левом нижнем углу. Выберите «VPN». Выберите «L2TP через IPSec» в качестве типа VPN, а затем назовите его как хотите. Выберите «Создать».

Используйте свой статический IP-адрес или динамический DNS-адрес в качестве адреса сервера и основную учетную запись на сервере macOS в качестве имени учетной записи. После этого перейдите в «Настройки аутентификации».

Введите общий секрет и, если вы не хотите вводить его каждый раз, пароль пользователя.

На этом этапе вы сможете подключиться к VPN! Если ваше устройство поддерживает L2TP, вы можете подключиться с iOS, Windows, Linux и Android. Все, что вам нужно, это:

  • Ваш IP-адрес или динамический DNS-адрес
  • Используемый протокол VPN — L2TP с IPSec.
  • Ваша конфиденциальная информация
  • Требуется имя пользователя и пароль.

Заключение

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

P.S. Вы хотите настроить VPN для своего Android и iPhone или iPad? Следите за частью (2) этого руководства.

Как выбрать и настроить VPN — Forbes Advisor

Примечание редакции. Мы получаем комиссию за партнерские ссылки в Forbes Advisor. Комиссии не влияют на мнения или оценки наших редакторов.

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

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

Избранные партнеры

Ежемесячные цены

$ 11.95 / месяц

$ 11.95 / месяц

$ 1,95 / месяц

$ 8.32 / месяц

Ежемесячные цены

$ 3.33 / месяц

Неограниченное шифрование

AES-256

Как выбрать VPN

Не все VPN созданы одинаково. Вот как выбрать тот, который подходит именно вам.

Определение обязательных функций

Вам нужна VPN, которая поддерживает типы устройств, которые вы хотите охватить — ваш телефон, ноутбук и смарт-телевизор, — а также количество устройств, которые вы хотите охватить.Большинство премиальных сервисов предлагают около пяти одновременно подключенных устройств в рамках одного плана, но некоторые позволяют подключать неограниченное количество устройств. Вам следует попытаться подключить все устройства в вашей сети к VPN, особенно те, которые вы планируете использовать в общедоступных сетях Wi-Fi.

В идеале выбранная вами VPN должна обеспечивать высокую скорость, шифрование на уровне 256-AES и доступ к VPN-серверам в нескольких местах. Ваш провайдер VPN также не должен регистрировать или собирать ваши данные. Смысл VPN — конфиденциальность.

Определите свою цену

План с оплатой по мере использования с полным покрытием и описанными выше функциями будет стоить примерно от 10 до 15 долларов в месяц. Если вы покупаете на целый год или более вперед, эти цены снизятся. Тем не менее, мы рекомендуем попробовать VPN перед покупкой годового плана, чтобы убедиться, что скорость и функции этого конкретного сервиса вам подходят.

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

Положитесь на сторонние исследования

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

Как настроить VPN

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

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

Однако мы также описали шаги для ручной настройки для ваших устройств macOS, Windows, Android и iOS ниже.

Ручная настройка VPN для MacOS

  1. После загрузки выбранного VPN-приложения через App Store или онлайн щелкните меню Apple в верхней части компьютера.
  2. Оттуда перейдите в «Системные настройки», а затем в «Сеть».
  3. Добавьте свою VPN, щелкнув значок «плюс» в левом нижнем углу и заполнив данные для выбранной сети в полях «Интерфейс» и «Имя службы».
  4. Создайте новую сеть VPN и заполните «Адрес сервера», «Удаленный идентификатор» и «Локальный идентификатор».
  5. Войдите в «Настройки аутентификации» и добавьте свое имя пользователя и пароль.
  6. Подключите VPN и начните безопасно пользоваться интернетом.

Ручная настройка VPN для Windows

  1. После загрузки выбранного VPN-приложения через Магазин Windows или онлайн перейдите в «Настройки».Оттуда нажмите «Сеть», а затем «VPN».
  2. Нажмите «Добавить VPN» и заполните поля «Имя сервера», «Тип VPN» и информацию о своей учетной записи (предоставляется вам выбранным вами провайдером VPN). Затем сохраните свой VPN.
  3. Вернитесь в «VPN», нажмите на только что добавленную учетную запись и нажмите «Подключиться».

Ручная настройка VPN для Android

  1. После загрузки выбранного VPN-приложения из магазина приложений вашего телефона перейдите в «Настройки» и оттуда нажмите «Сеть и Интернет», затем «Дополнительно» и, наконец, «VPN.
  2. Нажмите «Добавить VPN» и заполните «Имя» и «Сервер» вашего VPN, а затем сохраните информацию.
  3. Нажмите на недавно добавленный профиль VPN и заполните поля «Учетная запись» и «Пароль», затем нажмите «Подключиться».

Ручная настройка VPN для iOS

  1. После загрузки VPN через App Store перейдите к кнопке «Настройки» на своем телефоне и прокрутите вниз до «Общие».
  2. Найдите подменю VPN и нажмите «Добавить конфигурацию VPN».
  3. Выберите правильный «Тип» VPN, который вы установили, затем вернитесь, чтобы ввести его данные.
  4. Вы заполните поля «Описание» и «Сервер» VPN, а также «Учетную запись» и «Пароль».
  5. Нажмите «Готово» и включите новый профиль, и VPN начнет работать.


Избранные партнеры

Ежемесячные цены

$ 11.95 / месяц

$ 11.95 / месяц

$ 1,95 / месяц

$ 8.32 / месяц

Ежемесячные цены

$ 3.33 / месяц

Неограниченное шифрование

AES-256

Когда использовать свой VPN

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

В домашних сетях VPN защитит ваш IP-адрес и активность в Интернете, скрывая вашу личность от вашего интернет-провайдера; из приложений и сайтов, которые вы посещаете; и от компаний, которым ваш интернет-провайдер продает ваши данные. Ваша онлайн-активность не будет полностью скрыта, но ваша личность (через ваш IP-адрес) будет скрыта. Домашняя VPN не является надежной мерой для полной анонимности, но обеспечивает базовый уровень безопасности данных.

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

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

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

Часто задаваемые вопросы (FAQ)

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

Хотя у вас может возникнуть соблазн воспользоваться бесплатным сервисом, немногие предлагают полную конфиденциальность данных и защиту от вредоносного ПО, как платные сервисы. Многие бесплатные сервисы продают свои пользовательские данные, тем самым уменьшая самую большую ценность VPN: конфиденциальность. Если стоимость является одной из ваших главных проблем, существует множество дешевых VPN-сервисов, которые обеспечивают баланс между безопасностью, функциями и бюджетом.

Нужно ли вручную настраивать VPN?

Не всегда. Большинство приложений VPN предлагают простые процессы установки, которые автоматически добавляются на ваш телефон или компьютер. Ручная установка проста, но автоматическая установка еще проще.

Да, как и любое программное обеспечение, VPN подвержены взлому. Они не являются надежными мерами безопасности. Сами VPN-компании стали жертвами массовых взломов. Чем больше информации о вас хранит VPN-компания, тем больше вы подвержены утечке данных.

Какой VPN лучше всего использовать?

Ответ на этот вопрос зависит от вашей ситуации. Только вы знаете свои уникальные потребности, но как только вы определили свои уникальные потребности, вы можете ознакомиться с нашим руководством по лучшим VPN на рынке в целом. Если вы ищете конкретную нишу, мы также опубликовали список лучших бизнес-VPN и руководства для конкретных платформ для Windows, Mac, Chrome, iPhone и Android.

VPN — виртуальная частная сеть и OpenVPN — учебные пособия по Linux

В этой статье описывается настройка подключения к виртуальной частной сети с помощью приложения OpenVPN в Linux.Во-первых, вы познакомитесь с базовой теорией виртуальных частных сетей. Затем в статье будут даны пошаговые инструкции по настройке виртуальной частной сети OpenVPN с использованием шифрования с симметричным ключом и шифрования с открытым ключом. Эта статья предназначена для всех, кто обладает базовыми знаниями в области администрирования и работы в сети Linux.

В этом уроке вы узнаете:

  • Что такое VPN и как он работает?
  • Как установить OpenVPN на основные дистрибутивы Linux
  • Как настроить VPN-туннель с шифрованием с симметричным ключом
  • Как настроить VPN-туннель с шифрованием с открытым ключом

Создание виртуальной частной сети с OpenVPN

Требования к программному обеспечению и соглашения о командной строке Linux
Категория Требования, соглашения или используемая версия программного обеспечения
Система Любой дистрибутив Linux
Программное обеспечение OpenVPN
Другое Привилегированный доступ к вашей системе Linux с правами root или с помощью команды sudo .
Конвенции # — требует выполнения данных команд linux с привилегиями root либо непосредственно от имени пользователя root, либо с помощью команды sudo
$ — требует выполнения данных команд linux от имени обычного непривилегированного пользователя

Почему VPN?



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

Вы можете взять с собой свой служебный ноутбук, но для полного использования ресурсов компании вам также потребуется подключение к локальной сети компании. Решение этой проблемы зависит от того, какие ресурсы необходимы для выполнения вашей работы. Если вам нужны общие файлы, доступные в сети компании, вы можете просто скопировать эти файлы на жесткий диск вашего ноутбука или на USB-накопитель.Если вам нужно работать в системе, установленной на ПК вашей компании, вы также можете использовать некоторые инструменты виртуализации, такие как VirtualBox или VMware.

Достаточно скоро вы поймете, что этот подход не так удобен, как вам хотелось бы, и что вы потратили больше времени на копирование файлов и синхронизацию виртуальных систем, чем на работу. Идеальным решением в этом случае должно быть предоставление сотрудникам доступа к локальным ресурсам компании из внешней сети.

Это можно сделать, перенаправив порты локальных служб через брандмауэр.Открытие локальных портов для Интернета — не совсем безопасный подход. Чем больше портов вашей локальной сети открыто для внешней сети, такой как Интернет, тем более уязвимой станет ваша локальная система. Идеальным подходом в этой ситуации могло бы стать использование всего одного порта для всех сервисов вкупе с шифрованием и аутентификацией пользователей. Этого можно добиться, например, с помощью виртуальной частной сети (VPN).

Как работает VPN?

Сети

VPN часто работают как клиент-серверные приложения.Хорошим примером может быть реализация MS Windows PPTP или OpenVPN на платформе Linux. Сервер VPN работает непосредственно на брандмауэре, где он создает виртуальный сетевой интерфейс и дополнительную подсеть виртуальной сети. Сервер VPN ожидает соединений на внешнем сетевом интерфейсе брандмауэра, где он выполняет аутентификацию клиентского приложения VPN.

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

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

Основы зашифрованного туннеля VPN

VPN-туннели

вообще считаются чем-то загадочным, и любой, кто их упоминает, считается «крутым» :-).Однако не беспокойтесь о попытках понять их. На самом деле принцип виртуальных частных сетей очень прост. Обмен данными в IP-сетях осуществляется пакетами. Информацию о получателе и источнике пакета можно найти в заголовке пакета. Фактические пользовательские данные передаются как полезная нагрузка.

Давайте представим, что клиент SSH хочет связаться с сервером SSH через виртуальную частную сеть. Пакеты, покидающие сетевой интерфейс хоста, расположенного в локальной сети, отправляются с номером порта назначения 22.Когда этот пакет достигает туннеля VPN, он инкапсулируется в пакет VPN, где исходный пакет теперь обрабатывается как полезная нагрузка. Если сервер VPN прослушивает порт 443, пакет VPN будет содержать порт назначения 443.

Полезная нагрузка инкапсулирована внутри пакета VPN

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

Теория VPN

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

Несколько внутренних хостов используют один внешний интерфейс

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

После того, как сотрудник пройдет аутентификацию на сервере VPN, сервер VPN назначит IP-адрес из 192.168.2.0/24 подсеть. Хосты в подсети 192.168.1.0/24 смогут видеть системы в сети 192.168.2.0/24 , как если бы они находились в отдельной локальной подсети, но на самом деле связь осуществляется с помощью зашифрованного VPN. туннель через Интернет.



Основы VPN

На следующем изображении мы попытаемся объяснить основные принципы взаимодействия между сервером и клиентом VPN. Анимация GIF будет меняться каждые 14 секунд. Целью этой анимации является максимально простое объяснение логики VPN-соединения.Обратите внимание, что за кулисами есть много других факторов, которые были опущены для простоты.

Процесс VPN разбит на 14 шагов

Вот 14 шагов, которые происходят в анимированной графике:

  1. VPN-клиент устанавливает соединение с VPN-сервером через внешний сетевой интерфейс.
  2. VPN-сервер назначает IP-адрес VPN-клиенту из локальной виртуальной подсети 192.168.2.0/24 .
  3. VPN-клиент подготавливает пакет для хоста 192.168.1.3 , расположенный в частной подсети 192.168.1.0/24 .
  4. VPN-клиент шифрует и скрывает исходный пакет внутри внешнего общедоступного пакета.
  5. Пакет отправляется VPN-клиентом через общедоступную сеть на VPN-сервер.
  6. Сетевой пакет, полученный из общедоступной сети, расшифровывается и декапсулируется VPN-сервером. Таким образом, VPN-сервер получает пакет для частной сети.
  7. VPN-сервер обрабатывает недавно полученный пакет, поскольку он был отправлен локально на 192.Подсеть 168.1.0/24 .
  8. Пакет доставлен на хост с IP-адресом назначения 192.168.1.3 .
  9. Хост с IP-адресом 192.168.1.3 создает сетевой пакет с IP-адресом назначения 192.168.2.2 .
  10. VPN-сервер получает ответный пакет.
  11. Согласно таблице маршрутизации VPN-сервера, этот пакет связан с виртуальной частной сетью.
  12. VPN-сервер шифрует и скрывает исходный пакет внутри внешнего общедоступного пакета.
  13. Пакет отправляется VPN-сервером через общедоступную сеть VPN-клиенту.
  14. Сетевой пакет, полученный из общедоступной сети, расшифровывается и декапсулируется VPN-клиентом. Таким образом, VPN-клиент получает пакет из частной сети.

Статический ключ и сертификаты

Одной из лучших характеристик VPN-решения является шифрование, которое повышает конфиденциальность связи между клиентом и сервером. Когда соединение между VPN-сервером и VPN-клиентом зашифровано, перехватчик не может прочитать сообщение.

Шифрование выполняется на обеих сторонах передачи VPN, создавая таким образом так называемый туннель VPN через общедоступную сеть, такую ​​как Интернет. Шифрование можно разделить на две основные группы: шифрование с симметричным ключом и шифрование с открытым ключом. См. Разделы ниже, чтобы понять, что это за оба.

Шифрование с симметричным ключом

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

Шифрование с открытым ключом



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

Симметричное шифрование с точки зрения OpenVPN рассматривается как режим статического ключа, а шифрование с открытым ключом — как режим сертификата. Прежде чем мы проверим оба типа шифрования, показав реальную конфигурацию и примеры тестирования, давайте взглянем на следующий список, который содержит преднамеренно несортированные сильные и слабые стороны для каждого решения:

Шифрование с симметричным ключом:

  • Симметричное шифрование
  • Простая конфигурация
  • Центр сертификации ( ЦС ) не требуется
  • Сервер может одновременно обслуживать только одного клиента
  • Ключ
  • должен храниться в текстовом файле на обеих системах, что повышает риск его попадания в чужие руки
  • Затрудненный обмен ключами

Шифрование с открытым ключом:

  • Асимметричное шифрование
  • Более сложная конфигурация
  • Требуется центр сертификации ( ЦС )
  • Сервер может обслуживать множество клиентов одновременно

Примеры VPN-подключения

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

Соединение может быть выполнено через перекрестный кабель, две виртуальные машины, соединенные мостом, или через Интернет. Важно то, что оба ПК могут пинговать друг друга, и у VPN-сервера будет открыт порт 1194/UDP для подключения с VPN-клиента. В дальнейшем тексте мы будем называть эти системы VPN-сервером (IP-адрес: 10.1.1.3 ) и VPN-клиент (IP-адрес: 10.1.1.4 ).

Пример реализации виртуальной частной сети

VPN-туннель будет создан как точка-точка 192.168.0.1 192.168.0.2 . Однако для VPN-туннеля, созданного с использованием шифрования с открытым ключом (режим сертификации OpenVPN), IP-адрес клиента будет отличаться и будет назначен из пула IP-адресов подсети 192.168.0.0/16 . В нашем случае клиент получит IP-адрес 192.168.0.6 .

Установка OpenVPN

Приложение OpenVPN состоит только из одного бинарного файла, имя которого совпадает с именем самого приложения, таким образом, openvpn. Этот двоичный файл используется для запуска сервера OpenVPN, а также клиента OpenVPN, поэтому важно установить одни и те же пакеты OpenVPN на обеих сторонах. Если быть более точным, разница между сервером OpenVPN и клиентом OpenVPN заключается только в том, как выполняется настройка с обеих сторон.

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

Как установить OpenVPN из официального репозитория

Чтобы установить OpenVPN на Ubuntu, Debian и Linux Mint:

 $ sudo apt установить openvpn
 

Чтобы установить OpenVPN на CentOS, Fedora, AlmaLinux и Red Hat:

 $ sudo dnf установить openvpn
 

Чтобы установить OpenVPN на Arch Linux и Manjaro:

 $ sudo pacman -S openvpn
 

Как установить OpenVPN из исходного кода



Установка OpenVPN из исходного кода включает такие шаги, как загрузка исходного кода с домашней страницы OpenVPN и его компиляция с помощью следующей последовательности команд:

$ wget http://openvpn.сеть/выпуск/openvpn-2.0.9.tar.gz
$ tar xfz openvpn-2.0.9.tar.gz
$ cd openvpn-2.0.9
$ ./configure --prefix=/usr/local
$ сделать
# сделать установку
 

Здесь происходит то, что двоичный файл openvpn будет создан компиляцией исходного кода и установлен в каталоге /usr/local/sbin .

Включение виртуального сетевого интерфейса

OpenVPN работает с виртуальными сетевыми интерфейсами TUN/TAP. TUN и TAP являются драйверами ядра виртуальной сети, и TUN ( TUNnel ) должен быть включен в ядре или, по крайней мере, как модуль, чтобы виртуальная частная сеть могла функционировать.Драйвер ядра TAP можно найти в разделе сетевых интерфейсов под названием «Универсальная поддержка драйверов устройств TUN/TAP».

Чтобы убедиться, что модуль TUN поддерживается вашей системой, проверьте файл конфигурации, созданный во время компиляции ядра. В настоящее время для подавляющего большинства современных установок Linux драйвер TUN поддерживается по умолчанию в виде модуля ядра. Это может быть подтверждено следующей командой Linux:

 $ grep CONFIG_TUN=/boot/config-*
/загрузка/config-5.8.0-55-общий:CONFIG_TUN=y
/boot/config-5.8.0-59-общий:CONFIG_TUN=y
 

Интерфейс eth0 напрямую представляет аппаратное устройство, которым может быть, например, сетевая карта PCI. С другой стороны, устройства TUN/TAP представляют виртуальный сетевой интерфейс. Пакеты, проходящие через интерфейс TUN/TAP, отправляются в приложение до того, как они достигнут сетевого интерфейса eth0. Это позволяет такому приложению, как OpenVPN, шифровать или расшифровывать пакеты до того, как они достигнут физической сети.

VPN-подключение и шифрование симметричного ключа

Настройка VPN-сервера

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

Создание файла конфигурации — это простой способ сохранить параметры подключения к виртуальной частной сети, поскольку количество исходящих подключений может расти, а единственным ограничением является надежность вашей системы. Однако для простоты и прозрачности в следующем примере мы будем использовать параметры командной строки для настройки сервера OpenVPN.

 linux_VPN_Server:~# ip-адрес show dev eth0
 Инкапсуляция канала eth0: Ethernet HWaddr 00:0C:29:70:5A:F7
           инет адрес:10.1.1.3 Трансляция: 10.255.255.255 Маска: 255.0.0.0
           адрес inet6: fe80::20c:29ff:fe70:5af7/64 Область действия: ссылка
           ВВЕРХ ТРАНСЛЯЦИЯ РАБОТАЕТ MULTICAST MTU:1500 Метрика:1
           Пакеты RX: 110 ошибки: 0 отброшены: 0 переполнены: 0 кадр: 0
           Пакеты TX: 85 ошибки: 0 отброшены: 0 превышения: 0 оператор: 0
           коллизии: 0 txqueuelen: 1000
           Байты RX: 11724 (11,4 КБ) Байты TX: 13204 (12,8 КБ)
           Прерывание: 169 Базовый адрес: 0x2000
 

Генерация статического симметричного ключа

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

.
 linux_VPN_Server:~# openvpn --genkey --secret staticVPN.key
# кот staticVPN.key
#
# 2048-битный статический ключ OpenVPN
#
-----НАЧАЛО Статический ключ OpenVPN V1-----
00e5dea65588eec9800f72607c6fb050
62a58ad4a44039d22635bdd817886c8b
69dbe38384eed05dcdca54c604e46d74
daec8f0e074f2a142db0efafe25520cb
a71a0c0314800be297275205bc6d18e3
852419caac500dc4135c2ce375c5020a
dd4ed783c1f47518e74c6b10124173ca
8ef3b52cfc297daf21683bb4f735856f
825c7ee868385dfcf4c3363d261e0e13
dfb60d3e3abc6a2075b8d243d3976eee
1afdff0e865d5973e2f6b6418f603aca
1
  • 3d44ac0021ff74efbf00e60e3f b928d4cc32f9d3d65566f8c1aaa5eb45 e1ebc134a1b060b6dde30ca5b9a54900 a1a5e0746ba7778285f163317433fb19 c0d5669677d9e

    1c1fa6d3c75d47 -----END Статический ключ OpenVPN V1-----
  • Запуск сервера OpenVPN

    На этом этапе можно использовать статический симметричный ключ для запуска сервера OpenVPN, который создаст одну сторону туннеля виртуальной частной сети, готовую для подключений:

     linux_VPN_Server:~# openvpn --dev tun --ifconfig 192.168.0.1 192.168.0.2 --secret staticVPN.key
    Ср, 28 января, 03:48:09 2009 г. OpenVPN 2.0.9 i486-pc-linux-gnu [SSL] [LZO] [EPOLL] построен 20 сентября 2007 г.
    Среда, 28 января, 03:48:09 2009 ВАЖНО: номер порта по умолчанию для OpenVPN теперь равен 1194, согласно официальным
                             присвоение номера порта IANA.
                             OpenVPN 2.0-beta16 и более ранние версии использовали 5000 в качестве порта по умолчанию.
    Ср, 28 января 03:48:09 2009 Открыто устройство TUN/TAP tun0
    Ср, 28 января, 03:48:09 2009 ifconfig tun0 192.168.0.1 pointopoint 192.168.0.2 МТУ 1500
    Ср, 28 января, 03:48:09 2009 UDPv4, локальная ссылка (связанная): [undef]:1194
    Ср, 28 января, 03:48:09 2009 Удаленная ссылка UDPv4: [undef]
     

    Параметр --dev tun указывает приложению OpenVPN использовать виртуальный сетевой интерфейс TUN. Следующий параметр --ifconfig 192.168.0.1 192.168.0.2 указывает IP-адреса для обеих сторон виртуального туннеля. Таким образом, OpenVPN устанавливает для виртуального сетевого интерфейса tun0 IP-адрес 192.168.0.1 и активирует слот для подключения от клиента OpenVPN по IP-адресу 192.168.0.2 .

    Последний параметр --secret staticVPN.key указывает файл со статическим симметричным ключом, созданный на предыдущем шаге. Подтвердим правильность предыдущих утверждений командой ip :



     linux_VPN_Server:~# IP-адрес показать dev tun0
    tun0 Инкап ссылки: UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
              инет-адрес: 192.168.0.1 P-t-P: 192.168.0.2 Маска: 255.255.255.255
              UP POINTOPOINT RUNNING NOARP MULTICAST MTU: 1500 Метрика: 1
              Пакеты RX: 0 ошибки: 0 отброшены: 0 переполнение: 0 кадр: 0
              Пакеты TX: 0 ошибки: 0 отброшены: 0 переполнения: 0 оператор: 0
              коллизии: 0 txqueuelen: 100
              Байты RX: 0 (0.0 б) Байты TX: 0 (0,0 б)
     

    Настройка VPN-клиента

    Процедура настройки клиента OpenVPN очень похожа на ту, которая использовалась для настройки сервера OpenVPN. На данный момент мы предполагаем, что соединение установлено через сеть 10.0.0.0 , клиент установил и готов к использованию приложения OpenVPN, а также сгенерированный ранее симметричный ключ был скопирован клиенту с помощью USB-ключа или SCP. Если это так, ничто не может помешать нам запустить клиент OpenVPN:

    .
     linux_VPN_Client:~# ip-адрес show dev eth0
     Инкапсуляция канала eth0: Ethernet HWaddr 00:0C:29:00:C1:42
                инет адрес:10.1.1.4 Трансляция: 10.255.255.255 Маска: 255.0.0.0
               адрес inet6: fe80::20c:29ff:fe00:c142/64 Область действия: ссылка
               ВВЕРХ ТРАНСЛЯЦИЯ РАБОТАЕТ MULTICAST MTU:1500 Метрика:1
               Пакеты RX: 456 ошибки: 0 отброшены: 0 переполнены: 0 кадр: 0
               Пакеты TX: 293 ошибки: 0 отброшены: 0 переполнены: 0 перевозчик: 0
               коллизии: 0 txqueuelen: 1000
               Байты RX: 434285 (424,1 КБ) Байты TX: 28413 (27,7 КБ)
               Прерывание: 169 Базовый адрес: 0x2000
     

    Запустить клиент

    Для запуска клиента OpenVPN со статическим симметричным ключом можно использовать следующую команду и параметры:

     linux_VPN_Client:~# openvpn --remote 10.1.1.3 --dev tun --ifconfig 192.168.0.2 192.168.0.1 \
    --secret staticVPN.key
    Ср, 28 января, 03:51:02 2009 г. OpenVPN 2.0.9 i486-pc-linux-gnu [SSL] [LZO] [EPOLL] построен 20 сентября 2007 г.
    Среда, 28 января, 03:51:02 2009 ВАЖНО: номер порта по умолчанию для OpenVPN теперь равен 1194 на основе официального порта.
    присвоение номеров IANA.
                             OpenVPN 2.0-beta16 и более ранние версии использовали 5000 в качестве порта по умолчанию.
    Ср, 28 января 03:51:02 2009 Открыто устройство TUN/TAP tun0
    Ср, 28 января, 03:51:02 2009 ifconfig tun0 192.168.0.2 pointopoint 192.168.0.1 МТУ 1500
    Ср, 28 января, 03:51:02 2009 UDPv4, локальная ссылка (связанная): [undef]:1194
    Ср, 28 января, 03:51:02 2009 Удаленная ссылка UDPv4: 10.1.1.3:1194
     

    Параметр --remote 10.1.1.3 указывает реальный IP-адрес сервера OpenVPN, который ожидает подключения, поэтому клиент OpenVPN будет подключаться к сокету 10.1.1.3:1194/UDP . Остальные параметры имеют точно такое же значение, как и в случае с OpenVPN-сервером.

    Единственным отличием является порядок IP-адресов, которые передаются параметру --ifconfig .Таким образом, приложение OpenVPN устанавливает локальный виртуальный сетевой интерфейс tun0 на 192.168.0.2 и ожидает, что сервер OpenVPN будет установлен на 192.168.0.1 . Agian подтвердит правильность этих настроек с помощью команды ip :

     linux_VPN_Client:~# IP-адрес show dev tun0
    tun0 Инкап ссылки: UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
              инет-адрес: 192.168.0.2 P-t-P: 192.168.0.1 Маска: 255.255.255.255
              UP POINTOPOINT RUNNING NOARP MULTICAST MTU: 1500 Метрика: 1
              Пакеты RX: 0 ошибки: 0 отброшены: 0 переполнение: 0 кадр: 0
              Пакеты TX: 0 ошибки: 0 отброшены: 0 переполнения: 0 оператор: 0
              коллизии: 0 txqueuelen: 100
              Байты RX: 0 (0.0 б) Байты TX: 0 (0,0 б)
     

    Проверка VPN-подключения

    Сервер и клиент OpenVPN теперь используют виртуальный сетевой интерфейс tun0 для поддержания зашифрованного виртуального туннельного соединения. Интерфейс tun0 сервера OpenVPN установлен на 192.168.0.1 , а интерфейс tun0 клиента OpenVPN установлен на 192.168.0.2 .

    Если все прошло гладко и между обеими конечными точками не установлен брандмауэр, который может мешать VPN-туннелю, должно быть легко подтвердить VPN-соединение с помощью команды ping.

     linux_VPN_Server:~# ping -c 5 192.168.0.2
    PING 192.168.0.2 (192.168.0.2) 56 (84) байт данных.
    64 байта из 192.168.0.2: icmp_seq=1 ttl=64 время=3,24 мс
    64 байта из 192.168.0.2: icmp_seq=2 ttl=64 время=4,30 мс
    64 байта из 192.168.0.2: icmp_seq=3 ttl=64 время=1,76 мс
    64 байта из 192.168.0.2: icmp_seq=4 ttl=64 время=1,83 мс
    64 байта из 192.168.0.2: icmp_seq=5 ttl=64 время=2,52 мс
    
    --- Статистика пинга 192.168.0.2 ---
    5 пакетов передано, 5 получено, 0% потери пакетов, время 4012 мс
    rtt мин/средн/макс/mdev = 1.766/2,733/4,305/0,952 мс
     

    Если в то же время мы запустим программу tcpdump на виртуальном сетевом интерфейсе tun0 клиента OpenVPN, мы увидим пакеты ICMP, переданные программой ping, включая пакеты ответов.

     linux_VPN_Client:~# tcpdump -i tun0
    03:54:11.648040 IP 192.168.0.1 > 192.168.0.2: эхо-запрос ICMP, идентификатор 32520, последовательность 1, длина 64
     

    Однако на реальном сетевом интерфейсе eth0 клиента OpenVPN программа tcpdump выдаст следующий вывод:



     linux_VPN_Client:~# tcpdump -i eth0
    03:54:11.803616 IP 10.1.1.3.openvpn > 10.1.1.3.openvpn: UDP, длина 124
     

    Этот вывод программы tcpdump можно использовать в качестве доказательства того, что мы узнали ранее, что пакеты из виртуального сетевого интерфейса tun0 инкапсулируются в общедоступные сетевые пакеты и отправляются получателю в зашифрованном виде через один порт 1194/UDP .

    Использование файлов конфигурации OpenVPN

    В предыдущем примере VPN-туннеля для создания VPN-подключения использовался ряд аргументов и параметров, передаваемых в командной строке.Хотя почти каждую директиву конфигурации OpenVPN можно передать команде openvpn из командной строки, иногда это может стать очень утомительной работой.

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

    Конфигурационный файл OpenVPN Server — Создайте файл vpn-server.conf со следующим содержимым:

     # Конфигурационный файл OpenVPN для VPN-СЕРВЕРА
    разработчик тун
    ифконфиг 192.168.0.1 192.168.0.2
    секрет /root/staticVPN.key
    комп-льзо
    поддержка 10 60
    ping-таймер-rem
    упорный тун
    постоянный ключ
    пользователь openvpn
    группа опенвпн
    демон
     

    Файл конфигурации клиента OpenVPN — Создайте файл vpn-client.conf со следующим содержимым:

     # Конфигурационный файл OpenVPN для VPN-КЛИЕНТА
    разработчик тун
    удаленный 10.1.1.3
    ифконфиг 192.168.0.2 192.168.0.1
    секрет /root/staticVPN.key
    комп-льзо
    поддержка 10 60
    ping-таймер-rem
    упорный тун
    постоянный ключ
    пользователь openvpn
    группа опенвпн
    демон
     

    Объяснение директив конфигурации OpenVPN:

    • dev — использовать виртуальное сетевое устройство TUN
    • удаленный — указывает IP-адрес или имя VPN-сервера
    • ifconfig — указывает локальную и удаленную конечные точки
    • secret – путь к файлу предварительного общего статического ключа
    • comp-lzo — включить быстрое сжатие данных LZO
    • keepalive — поддерживать соединение, отправляя регулярные пинг-пакеты, в нашем случае пинг-пакет отправляется каждые 10 секунд, при этом ответный пакет должен приходить в течение 60 секунд, в противном случае предполагается, что другая конечная точка не работает.
    • ping-timer-rem — следует использовать только на стороне VPN-сервера, где демон запущен без явного удаленного IP-адреса, таким образом тайм-аут начинается только после подключения VPN-клиента.
    • persist-tun — не создавать заново виртуальный сетевой интерфейс TUN после автоматического перезапуска
    • persist-key — после автоматического перезапуска нет необходимости повторно читать предварительно общий файл статического ключа
    • пользователь — запустить туннель openvpn под пользователем openvpn
    • группа — запустить туннель openvpn в группе openvpn
    • демон — после завершения функций инициализации запускается в фоновом режиме как демон

    Пришло время ввести в действие эти два файла конфигурации OpenVPN.Как указано в обоих конфигурационных файлах, нам нужно сначала создать пользователя и группу openvpn. OpenVPN может работать как root. Тем не менее, запуск туннеля vpn в качестве непривилегированного пользователя «openvpn» — это разумный шаг, который значительно повысит безопасность ваших хостов. Для создания группы openvpn можно использовать команду addgroup :

    ПРИМЕЧАНИЕ: пользователя и группу openvpn необходимо создать на обеих сторонах VPN-туннеля (VPN-сервер и VPN-клиенты)

     # добавить группу openvpn
     

    Теперь, когда группа «openvpn» готова, мы можем создать пользователя «openvpn».



     # useradd --shell=/bin/false -g openvpn openvpn
     

    На данный момент мы готовы задействовать оба файла конфигурации в создании туннеля OpenVPN:

    Запустить сервер OpenVPN:

     linux_VPN_Server:~# openvpn --config /root/vpn-server.conf
    linux_VPN_Server:~# ps aux | grep openvpn
         опенвпн 2310 0,2 0,6 4060 988 ? Сс 01:00 00:00 openvpn --config vpn-server.conf
    root 2313 0.0 0.1 1512 224 pts/1 R+ 01:00 0:00 grep openvpn
     

    Запустить клиент OpenVPN:

     linux_VPN_Client:~# openvpn --config /root/vpn-client.конф
    linux_VPN_Client:~# ps aux | grep openvpn
    опенвпн 2317 0,8 0,7 4060 1188 ? Сс 01:16 0:00 openvpn --config vpn-client.conf
    root 2319 0.0 0.4 2852 704 pts/0 S+ 01:16 0:00 grep openvpn
     

    Проверка VPN-подключения:

     linux_VPN_Client:~# пинг 192.168.0.1
    PING 192.168.0.1 (192.168.0.1) 56 (84) байт данных.
    64 байта из 192.168.0.1: icmp_seq=1 ttl=64 время=8,50 мс
    64 байта из 192.168.0.1: icmp_seq=2 ttl=64 время=4,32 мс
    
    --- 192.168.0.1 статистика пинга ---
    2 пакета передано, 2 получено, 0% потери пакетов, время 1005 мс
    rtt min/avg/max/mdev = 4,327/6,416/8,506/2,091 мс
     

    VPN-подключение с шифрованием с открытым ключом

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

    В случае, если в компании работает большое количество сотрудников, и каждому сотруднику необходимо обмениваться симметричным ключом с любым, с кем он хочет установить VPN-соединение, эта задача может стать очень утомительной, не говоря уже о том, что ключ может быть публично раскрыт где-то на путь и весь процесс нужно будет начинать заново. Здесь речь идет об инфраструктуре открытых ключей (PKI).

    Инфраструктура открытых ключей

    Чтобы избежать хаоса при обмене открытыми ключами при использовании модели, подобной сетке, мы могли бы делегировать одного сотрудника в качестве центра сертификации ( ЦС ), который будет отвечать за ведение учета всех открытых ключей.Цель ЦС будет заключаться в том, чтобы собрать все закрытые ключи от всех сотрудников и подписать их закрытым ключом ЦС — для выдачи сертификата. Если кто-то хочет подтвердить подпись документа, созданного любым другим сотрудником, он должен сначала использовать открытый ключ ЦС для подтверждения открытого ключа отправителя (сертификата).

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

    Настройка PKI

    Для упрощения давайте кратко опишем шаги, которые необходимо выполнить для создания VPN-подключения с использованием OpenVPN и шифрования с симметричным ключом: Сначала нам нужно установить центр сертификации. Для этого мы будем использовать наш VPN-сервер с IP 10.1.1.3 . Обратите внимание, что вы можете установить ЦС в любой другой системе. Тот факт, что мы намерены иметь CA и vpn-сервер в той же системе, что и наш VPN-сервер, является просто вопросом удобства.

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

    Далее нам нужно будет передать CSR клиента на сервер, где мы будем подписывать запросы как сервера, так и клиентов, используя закрытый ключ CA. Это создаст два подписанных сертификата, один для сервера и один для клиента.На следующем этапе мы передаем клиенту подписанный сертификат клиента вместе с открытым ключом ЦС. Прежде чем мы начнем, убедитесь, что у вас установлен пакет openssl в обеих системах (vpn-client и vpn-server):

     # подходящая установка openssl
    ИЛИ
    # dnf установить openssl
    ИЛИ
    # pacman -S openssl
     

    Также убедитесь, что имя пользователя «openvpn» и группа «openvpn» существуют на обеих конечных точках (vpn-client и vpn-server) вашего будущего VPN-подключения.

     # добавить группу openvpn
    # useradd --shell=/bin/false -g openvpn openvpn
     

    Учреждение центра сертификации

    Следующая команда Linux создаст самозаверяющий сертификат ЦС и закрытый ключ.Это все, что нам нужно, чтобы иметь возможность подписывать CSR.



     linux_VPN_Server:~#
    openssl req -new -x509 -extensions v3_ca -keyout ca-private-key.pem -out ca-certificate.pem -days 365
     

    Вам нужно будет указать некоторые детали и, что более важно, парольную фразу, которую вы будете использовать для подписи CSR. Вывод будет выглядеть примерно так:

     linux_VPN_Server:~# openssl req -new -x509 -extensions v3_ca -keyout ca-private-key.pem \
    -out ca-certificate.pem -days 365
    Генерация 1024-битного закрытого ключа RSA
    ...............++++++
    ...++++++
    запись нового закрытого ключа в «ca-private-key.pem»
    Введите парольную фразу PEM:
    Проверка — введите парольную фразу PEM:
    -----
    Вас попросят ввести информацию, которая будет включена
    в ваш запрос сертификата.
    То, что вы собираетесь ввести, называется отличительным именем или DN.
    Полей довольно много, но вы можете оставить некоторые пустыми
    Для некоторых полей будет значение по умолчанию,
    Если вы введете «.», поле останется пустым.
    -----
    Название страны (двухбуквенный код) [AU]:SK
    Название штата или провинции (полное название) [Some-State]:Slovakia
    Название местности (например, город) []: Братислава
    Название организации (например, компания) [Internet Widgits Pty Ltd]:linuxconfig.организация
    Название организационной единицы (например, раздел) []: Центр сертификации ( ЦС )
    Общее имя (например, ВАШЕ имя) []: Центр сертификации ( CA )
    Адрес электронной почты []:
     

    Если все прошло хорошо, теперь вы создали свой собственный ЦС, готовый подписать CSR. Вы можете найти два новых файла в каталоге, из которого вы ввели команду openssl:

     linux_VPN_Server:~# лс
    ca-certificate.pem ca-закрытый ключ.pem
     

    Создание запроса на подпись сертификата

    Наш ЦС готов, поэтому на данный момент нам нужно создать запрос на подпись сертификата для нашего vpn-сервера и vpn-клиента.Вам будет предложено ввести некоторые сведения о вашей компании. Важно, чтобы «Общее имя» отражало ваш IP-адрес или полное доменное имя (или полное доменное имя) системы, для которой предназначен сертификат.

     linux_VPN_Server:~# openssl req -new -nodes -out vpn-server-CSR.pem
    Генерация 1024-битного закрытого ключа RSA
    ..........................++++++
    ................................................++++++
    запись нового закрытого ключа в 'privkey.pem'
    -----
    Вас попросят ввести информацию, которая будет включена
    в ваш запрос сертификата.То, что вы собираетесь ввести, называется отличительным именем или DN.
    Полей довольно много, но вы можете оставить некоторые пустыми
    Для некоторых полей будет значение по умолчанию,
    Если вы введете «.», поле останется пустым.
    -----
    Название страны (двухбуквенный код) [AU]:SK
    Название штата или провинции (полное название) [Some-State]:Slovakia
    Название местности (например, город) []: Братислава
    Название организации (например, компания) [Internet Widgits Pty Ltd]:linuxconfig.org
    Название организационного подразделения (например, раздел) []:VPN-SERVER
    Обычное имя (например, ВАШЕ имя) []:10.1.1.3
    Адрес электронной почты []:
    
    Пожалуйста, введите следующие «дополнительные» атрибуты
    будет отправлен с вашим запросом сертификата
    Пароль вызова []:
    Необязательное название компании []:
     


    После создания запроса на подпись сертификата вы должны были получить два новых файла. Один из них — vpn-server-CSR.pem , запрос на подпись сертификата vpn-сервера, а другой — privkey.pem , закрытый ключ vpn-сервера.

     linux_VPN_Server:~# лс
    ca-certificate.pem ca-закрытый ключ.pem privkey.pem vpn-сервер-CSR.pem
     
     linux_VPN_Client:~# openssl req -new -nodes -out vpn-client-CSR.pem
    Генерация 1024-битного закрытого ключа RSA
    ............++++++
    .....++++++
    запись нового закрытого ключа в 'privkey.pem'
    -----
    Вас попросят ввести информацию, которая будет включена
    в ваш запрос сертификата.
    То, что вы собираетесь ввести, называется отличительным именем или DN.
    Полей довольно много, но вы можете оставить некоторые пустыми
    Для некоторых полей будет значение по умолчанию,
    Если вы введете ‘.', поле останется пустым.
    -----
    Название страны (двухбуквенный код) [AU]:SK
    Название штата или провинции (полное название) [Some-State]:Slovakia
    Название местности (например, город) []: Братислава
    Название организации (например, компания) [Internet Widgits Pty Ltd]:linuxconfig.org
    Название организационного подразделения (например, раздел) []:VPN-CLIENT
    Обычное имя (например, ВАШЕ имя) []:10.1.1.4
    Адрес электронной почты []:
    
    Пожалуйста, введите следующие «дополнительные» атрибуты
    будет отправлен с вашим запросом сертификата
    Пароль вызова []:
    Необязательное название компании []:
     

    После создания запроса на подпись сертификата вы должны получить два новых файла.Один из них — vpn-client-CSR.pem , который является запросом на подпись сертификата vpn-client, а другой — privkey.pem , закрытый ключ vpn-client.

     linux_VPN_Client:~# лс
    privkey.pem vpn-клиент-CSR.pem
     

    Поскольку наш Центр сертификации подписи находится на нашем vpn-сервере, мы копируем клиентов, подписывающих запрос, для подписи туда:

     linux_VPN_Client:~# scp vpn-client-CSR.pem [email protected]:~/
    пароль пользователя [email protected]:
    vpn-client-CSR.pem 100% 672 0.7КБ/с 00:00
     

    Подписание запросов на подпись сертификата

    Оба запроса на подпись сертификатов ожидают подписания.

    • vpn-сервер-CSR.pem
    • vpn-клиент-CSR.pem


    Для этого мы могли бы создать файл конфигурации openssl, подобный приведенному ниже, и использовать его в сочетании с командой openssl. Используйте свой любимый текстовый редактор и создайте файл с именем CA-openssl.config с содержимым, показанным ниже:

     linux_VPN_Server:~# cat CA-openssl.конфигурация
    [ ок ]
    default_ca = ca_default
    [ca_default]
    дир = .
    new_certs_dir = .
    private_key = ca-private-key.pem
    сертификат = ca-certificate.pem
    база данных = index.txt
    default_md = md5
    серийный = серийный
    default_days = 365
    x509_extensions = usr_cert
     
    
    политика = общая_политика
    [общая_политика]
    имя_страны = необязательно
    stateOrProvinceName = необязательно
    localityName = необязательно
    Название организации = необязательно
    OrganizationUnitName = необязательно
    общее имя = поставляется
    адрес электронной почты = необязательно
     
    [ usr_cert ]
    authorKeyIdentifier = идентификатор ключа
    базовые ограничения = CA:FALSE
    keyUsage = цифровая подпись
    расширенный ключ использования = серверная аутентификация
     

    Центр сертификации должен отслеживать все подписанные сертификаты ( index.txt ) и присвоил каждому из них серийный номер (serial). Поэтому нам нужно создать эти два файла:

     # сенсорный index.txt; эхо 01 > серийный номер;
     

    Все готово для подписания CSR. Давайте сначала подпишем CSR vpn-сервера:

     linux_VPN_Server:~# openssl ca -config CA-openssl.config -infiles \
     vpn-сервер-CSR.pem
    Использование конфигурации из CA-openssl.config
    Введите парольную фразу для ca-private-key.pem:
    Проверить соответствие запроса подписи
    Подпись ок
    Отличительное имя субъекта выглядит следующим образом
    имя_страны :PRINTABLE:'SK'
    stateOrProvinceName :PRINTABLE:'Словакия'
    localityName :PRINTABLE:'Братислава'
    имя_организации :PRINTABLE:'linuxconfig.организация
    organizationUnitName:PRINTABLE:'VPN-SERVER'
    commonName :PRINTABLE:'10.1.1.3'
    Сертификат должен быть заверен до 25 февраля 21:34:25 2010 GMT (365 дней)
    Подписать сертификат? [д/н]:д
                                                  
    
    1 из 1 запросов на сертификат сертифицирован, зафиксировать? [г/н]г
    Записать базу данных с 1 новой записью
     

    Сервер сертифицирован, нам нужно изменить CA-openssl.config , чтобы подписать открытый ключ VPN-клиента. Изменить строку:

     расширенныйKeyUsage = аутентификация сервера
    К:
    расширенный ключ использования = клиентская аутентификация
     

    Следующая команда Linux также поможет:

     # sed 's/serverAuth/clientAuth/' CA-openssl.конфиг > темп; МВ временный CA-openssl.config
     

    Теперь мы готовы подписать CSR vpn-клиента:



     linux_VPN_Server:~# openssl ca -config CA-openssl.config -infiles \
    vpn-клиент-CSR.pem
    Использование конфигурации из CA-openssl.config
    Введите парольную фразу для ca-private-key.pem:
    Проверить соответствие запроса подписи
    Подпись ок
    Отличительное имя субъекта выглядит следующим образом
    имя_страны :PRINTABLE:'SK'
    stateOrProvinceName :PRINTABLE:'Словакия'
    localityName :PRINTABLE:'Братислава'
    имя_организации :PRINTABLE:'linuxconfig.организация
    organizationUnitName:PRINTABLE:'VPN-CLIENT'
    commonName :PRINTABLE:'10.1.1.4'
    Сертификат должен быть заверен до 25 февраля 21:37:53 2010 GMT (365 дней)
    Подписать сертификат? [д/н]:д
                                                  
    
    1 из 1 запросов на сертификат сертифицирован, зафиксировать? [г/н]г
    Записать базу данных с 1 новой записью
     

    Подписанные сертификаты готовы к использованию:

    • 01.pem — сертификат vpn-сервера
    • 02.pem — сертификат vpn-клиента
     linux_VPN_Server:~# лс
    01.pem ca-certificate.pem ca-закрытый ключ.pem
    index.txt.attr index.txt.старый серийный номер
    vpn-client-CSR.pem 02.pem CA-openssl.config
    index.txt index.txt.attr.old privkey.pem
    serial.old vpn-server-CSR.pem
     

    Вы можете увидеть оба сертификата с помощью следующих команд Linux:

     # openssl x509 -in 01.pem -noout -text
    # openssl x509 -in 02.pem -noout -text
     

    На этом этапе нам необходимо скопировать сертификат vpn-vlient в систему vpn-client ( 10.1.1.4 ) и измените имя на что-то вроде vpn-client-certificate.pem . Вместе с сертификатом vpn-клиента нам также необходимо скопировать сертификат ЦС:

     linux_VPN_Server:~# scp 02.pem [email protected]:~/vpn-client-certificate.pem
    пароль [email protected]:
    02.pem 100% 3173 3,1 КБ/с 00:00
    linux_VPN_Server:~# scp ca-certificate.pem [email protected]:~/
    пароль [email protected]:
    ca-certificate.pem 100% 1367 1,3 КБ/с 00:00
     

    Измените имя сертификата vpn-сервера на что-то вроде vpn-server-certificate.пэм .

     linux_VPN_Server:~# mv 01.pem vpn-server-certificate.pem
     

    Список файлов в рабочем каталоге vpn-сервера:

     linux_VPN_Server:~# лс
    02.pem ca-private-key.pem index.txt.attr.old privkey.pem vpn-client-CSR.pem
    ca-certificate.pem index.txt index.txt.old серийный номер vpn-server-certificate.pem
    CA-openssl.config index.txt.attr openvpn-server.conf serial.old vpn-server-CSR.pem
     

    Протокол соглашения о ключах Диффи-Хеллмана

    Протокол соглашения о ключах Диффи-Хеллмана позволяет двум пользователям обмениваться секретным ключом через незащищенный носитель без каких-либо предварительных секретов.Нам нужен файл соглашения о ключах Диффи-Хеллмана только на стороне сервера нашего vpn. Его можно создать с помощью следующей команды Linux:

    .
     linux_VPN_Server:~# openssl dhparam -out dh.pem 1024
     

    Создание файлов конфигурации



    Файлы конфигурации OpenVPN будут похожи на те, которые мы создали в предыдущих разделах, где мы создали виртуальную частную сеть с использованием шифрования с симметричным ключом. Создайте файлы с именами openvpn-server.conf и openvpn-client.conf со следующим содержимым:

    Конфигурационный файл OpenVPN Server — Создайте файл openvpn-server.conf со следующим содержимым:

     # Пример файла конфигурации сервера OpenVPN
    местный 10.1.1.3
    разработчик тун
    сервер 192.168.0.0 255.255.0.0
    ca ca-certificate.pem
    сертификат vpn-сервер-certificate.pem
    ключ privkey.pem
    dh dh.pem
    нажмите «перенаправление-шлюз»
    комп-льзо
    поддержка 10 60
    ping-таймер-rem
    упорный тун
    постоянный ключ
    пользователь openvpn
    группа опенвпн
    демон
     

    Файл конфигурации клиента OpenVPN — Создайте openvpn-клиент.conf со следующим содержимым:

     # Пример файла конфигурации клиента OpenVPN
    клиент
    разработчик тун
    удаленный 10.1.1.3
    tls-удаленный 10.1.1.3
    ca ca-certificate.pem
    сертификат vpn-client-certificate.pem
    ключ privkey.pem
    комп-льзо
    поддержка 10 60
    ping-таймер-rem
    упорный тун
    постоянный ключ
    пользователь openvpn
    группа опенвпн
    демон
     

    Объяснение директив конфигурации OpenVPN:

    • dev — использовать виртуальное сетевое устройство TUN
    • удаленный — указывает IP-адрес или имя VPN-сервера
    • ifconfig — указывает локальную и удаленную конечные точки
    • secret – путь к файлу предварительного общего статического ключа
    • comp-lzo — включить быстрое сжатие данных LZO
    • keepalive — поддерживать соединение, отправляя регулярные пинг-пакеты, в нашем случае пинг-пакет отправляется каждые 10 секунд, при этом ответный пакет должен приходить в течение 60 секунд, в противном случае предполагается, что другая конечная точка не работает.
    • ping-timer-rem — следует использовать только на стороне VPN-сервера, где демон запущен без явного удаленного IP-адреса, таким образом тайм-аут начинается только после подключения VPN-клиента.
    • persist-tun — не создавать заново виртуальный сетевой интерфейс TUN после автоматического перезапуска
    • persist-key — после автоматического перезапуска нет необходимости повторно читать предварительно общий файл статического ключа
    • пользователь — запустить туннель openvpn под пользователем openvpn
    • группа — запустить туннель openvpn в группе openvpn
    • демон — после завершения функций инициализации запускается в фоновом режиме как демон

    Запустить сервер OpenVPN

     linux_VPN_Server:~# openvpn --config openvpn-сервер.конф
    linux_VPN_Server:~# ip-адрес show dev tun0
    tun0 Инкап ссылки: UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
              инет-адрес: 192.168.0.1 P-t-P: 192.168.0.2 Маска: 255.255.255.255
              UP POINTOPOINT RUNNING NOARP MULTICAST MTU: 1500 Метрика: 1
              Пакеты RX: 0 ошибки: 0 отброшены: 0 переполнение: 0 кадр: 0
              Пакеты TX: 0 ошибки: 0 отброшены: 0 переполнения: 0 оператор: 0
              коллизии: 0 txqueuelen: 100
              Байты RX: 0 (0,0 бит) Байты TX: 0 (0,0 бит)
     

    Запустить клиент OpenVPN

     linux_VPN_Client:~# openvpn --config openvpn-client.конф
    linux_VPN_Client:~# IP-адрес show dev tun0
    tun0 Инкап ссылки: UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
              инет-адрес: 192.168.0.6 P-t-P: 192.168.0.5 Маска: 255.255.255.255
              UP POINTOPOINT RUNNING NOARP MULTICAST MTU: 1500 Метрика: 1
              Пакеты RX: 0 ошибки: 0 отброшены: 0 переполнение: 0 кадр: 0
              Пакеты TX: 0 ошибки: 0 отброшены: 0 переполнения: 0 оператор: 0
              коллизии: 0 txqueuelen: 100
              Байты RX: 0 (0,0 бит) Байты TX: 0 (0,0 бит)
     

    Проверка VPN-подключения

     linux_VPN_Client:~# пинг 192.168.0.1
    PING 192.168.0.1 (192.168.0.1) 56 (84) байт данных.
    64 байта из 192.168.0.1: icmp_seq=1 ttl=64 время=0,805 мс
    64 байта из 192.168.0.1: icmp_seq=2 ttl=64 время=1,51 мс
    
    --- Статистика пинга 192.168.0.1 ---
    2 пакета передано, 2 получено, 0% потери пакетов, время 1001 мс
    rtt min/avg/max/mdev = 0,805/1,159/1,513/0,354 мс
     


    Заключительные мысли

    В этом руководстве мы увидели, как установить OpenVPN в основных дистрибутивах Linux и использовать его для настройки VPN между сервером и одной или несколькими клиентскими системами.