Always on vpn что это
Перейти к содержимому

Always on vpn что это

  • автор:

Простой и сложный Always On VPN от Microsoft. Опыт внедрения

VPN обеспечивает доступ удаленных пользователей в корпоративную сеть. Решений много, но выбор оптимального не всегда очевиден. В данной статье хотел бы поделиться опытом внедрения и использования такого продуктового решения как Always On VPN от компании Microsoft. Подчеркну, что это не просто технология постоянно работающего соединения (многие вендоры используют похожие слова), а название продукта или даже целой экосистемы.

Статья будет полезна архитекторам решений ВПН и тем, кто планирует внедрять ВПН на основе технологии Always On VPN (или еще сомневается). В документации вендора вопросы, затронутые в данной статье совсем не освещены и понять возможные трудности, можно только на основе личного опыта.

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

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

Если говорить о практике, наши заказчики любят эту технологию за то, что она предоставляет:

  • очень высокий уровень безопасности (при «правильной» конфигурации);
  • высокий уровень автоматизации и интеграции. Минимальная загрузка ИТ отдела, отвечающего за ВПН решения;
  • способность работы с очень большим количеством пользователей;
  • относительно небольшие требования к вычислительным ресурсам;
  • не требует приобретения отдельных лицензий для ВПН. Все включено в серверные и клиентские ОС от Microsoft. Т.е. для организации ВПН сервера требуются только лицензии на Windows Server, более того, не активированные версии выполняют свои ВПН функции без ограничений*.

*Note 1
1) Не все ОС поддерживаются, в основном корпоративные.
2) Для использования облачных сервисов требуются дополнительные лицензии.

При этом они же опасаются использовать эту технологию, потому что видят:

  • высокий порог вхождения по уровню знаний. Требуется довольно глубокое понимание принципов работы и траблшутинга большого количества связанных продуктов Microsoft;
  • не единое решение «из коробки» а «куча» продуктов и решений от Microsoft. Хотя, если не выходить из экосистемы Microsoft, всё настраивается согласно документации, без «костылей»;
  • решение «из коробки» и настройками «по умолчанию» небезопасное и не рабочее;
  • тяжелый траблуштинг – логи разбросаны по разным компонентам, единой точки сбора логов нет. Надо хорошо понимать, что и где искать. Хотя, необходимые логи есть и можно очевидно понять в чем проблема. Вопрос опыта.

У Microsoft есть своё понимание того, что нужно ее клиентам. Эти идеи иногда расходятся с общепринятыми практиками и ожиданиями конечных пользователей. Все перечисленные ниже «проблемы», на самом деле не являются таковыми с точки зрения Microsoft, а скорее ненужными сценариями работы для корпоративных пользователей.

Мы же накопили многолетний опыт конфигурирования этой технологии для организаций в Европе и РФ с десятками тысяч пользователей, а заодно и обширный список «сложностей» и «непониманий», о которые спотыкаются наши заказчики. И эта статья как раз об этом.

Описание

Почему «Allways On»? Позволяет настроить ВПН соединение так, что соединение будет устанавливаться автоматически, можно подключаться к ВПН только в случае использования определенного приложения и на основе разных триггеров. Особый сценарий, когда до входа пользователя в операционную систему устанавливается туннель от имени компьютера, например, для связи с контролером домена. Такие туннели пользователь не сможет отключить и увидеть в трее.

Тут важно не путать. У других известных вендоров Always On – это параметр, а у Microsoft это название целой экосистемы для создания ВПН туннелей. Т.е. у Microsoft Always On VPN вовсе не обязательно будет подключен всегда – все зависит от конфигурации. Все сценарии конфигурации трудно перечислить, поэтому важно понимать ключевые возможности и ограничения.

Ниже приведу небольшую схему, описывающую технологию и ее описание для тех, кто глубоко не знаком с возможностями Always On VPN от MS:

На выбор предоставляется два варианта аутентификации:

  • для устройства (Device Tunnel) — пока пользователь не вошел в систему. Работает для всех пользователей.
  • для пользователя (User Tunnel) — доступный после входа (логина). Разрывается после выхода пользователя из системы.

Для пользовательского туннеля возможен выбор между двумя протоколами: IPSec или TLS (SSTP). В обоих случаях используется аутентификация PEAP. (возможны и другие, менее безопасные варианты, которые мы не рекомендуем своим клиентам и не рассматриваем далее). Для туннеля устройства такого выбора нет — только чистый IPsec IKEv2 с аутентифкацией по сертифкату.

Device Tunnel

Плюсы

Плюсы и важные возможности

Комментарии

Соединение работает независимо от входа пользователя

— Компьютер всегда остается подключен к корпоративной сети.

— Пользователь не может отключить такое соединение.

— Все пользователи компьютера имеют доступ в ВПН туннель.

— Основная цель – обеспечивается связь с доменом, обновляются пароли, связь со средствами защиты, логирование, мониторинг, и т.д.

Соединение на основе сертификата устройства

— Сертификат пользователя не используется, только сертификат компьютера (device).

— Пароли и PSK не используются.

— Большой выбор «криптопровадеров» для хранения закрытого ключа.

— Сертификат устройства можно защитить разместив в TPM модуле.

Высокая скорость внедрения

— Сертификаты распространяются средствами Microsoft CA на доменные компьютеры с помощью политик «auto enroll».

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

— Также сертификаты можно распространять любыми сторонними средствами.

Поддерживается отказоустойчивость при наличии внешнего балансировщика

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

Можно подключить ОС отличные от Windows

Классический IPSec на основе сертификатов.

Поддержка Split Tunneling и Full Tunneling

Можно принудительно отправлять весь трафик пользователя (компьютера) в корпоративную сеть, а можно выбирать отдельные сети в зависимости от требований безопасности.

Минусы

Сложности и ограничения

Комментарии

Невозможно ограничить доступ на основе Active Directory Security Group

— RADIUS-сервер не участвует в аутентификации.

— Аутентификация происходит на RAS
только на основе сертификата устройства (проверяется корневой сервер в цепочке
и EKU).

Невозможно на одном сервере реализовать схему с нескольким пулами IP-адресов

Один сервер RAS – один пул адресов.

RAS-сервер для пользовательского туннеля (User tunnel) и сервер для туннеля устройства (Device tunnel) должны быть разными

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

Невозможно задать выделенный IP-адрес для компьютера

— Адрес будет выдан из пула адресов случайным образом.

— RADIUS-сервер не используется, RAS-сервер не обращается в базу AD и т.п.

— При использовании внешнего DHCP-сервера привязка IP к MAC невозможна, более того, полноценно не работает.

Тяжело «заблокировать» скомпрометированный компьютер

— Отключение/блокировка компьютера возможна только на основе CRL.

— Реакция на изменения не мгновенная, как, например, исключение из Security Group. Потребуется очистка кэша на сервере, чтобы изменения CRL были видны сразу.

— В Windows 2022 был баг, когда очистить кеш без перезагрузки ОС невозможно. Для Windows 2019 таких проблем нет.

Отсутствие визуального контроля подключения для пользователя

— У пользователя нет статуса соединения и значков соединения.

— Пользователь не может ни разорвать, ни установить соединение.

— Конечно, по косвенным признакам можно понять, что соединение установлено но, в целом, это доступно не каждому пользователю.

Нет возможности использовать SSTP (TCP/443), а трафик UDP500/4500 пропускается не всеми провайдерами.

Невозможно сделать аутентификацию на основе SubCA

RAS-сервер позволяет задать аутентификацию на основе сертификата, расположенного в корневом хранилище.

Не все EKU поддерживаются сервером для фильтрации на этапе аутентификации.

Очень ограниченный список EKU (списка как такого нет в документации, но большую часть путей настроить невозможно). Например, 1.3.6.1.5.5.7.3.7,1.3.6.1.5.5.7.3.2 фильтровать можно.

По умолчанию максимально небезопасные настройки IPSec

— Требуется донастройка сервера RAS с помощью команд.

— «Из коробки» открывается полный доступ в сеть, так как входящий сертификат не проверяется.

— Откровенно слабые алгоритмы, используемые по умолчанию, типа ENCR_3DES, AUTH_HMAC_SHA1, PRF_HMAC_SHA1, DF Group 2.

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

Трудности определения работоспособности сервера балансировщиком

— В случае применения отказоустойчивой конфигурации требуется установить балансировщик. Большинство балансировщиков не могут проверить работоспособность IPSec и портов UDP 500/4500.

— Обходное решение: на сервере RAS запускается SSTP-сервер с User Tunnel без публикации в интернет. В этом случае балансировщик проверяет порт TCP/443. Решение обходное, так как проверяется другой тип туннеля.

У соединения нет ограничения на время работы

— Повторная аутентификация не проводится.

— Если у сертификата истек срок действия или он был добавлен в CRL, соединение будет продолжать работать.

— Необходимо вручную отключить сессию компьютера и очистить кэш CRL.

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

  1. Соединение “Device tunnel” устанавливается для доменного компьютера, т.е. априори «своего», доверенного.
  2. Если компьютер получил сертификат, значит ситуации, когда мы допускаем потерю связи с доменом, минимальны. Ведь связь с доменом и служебными сервисами — это приоритет.
  3. Блокировки и богатые настройки для аутентификации через группы и пулы адресов в этом случае не нужны, а МФА-аутентификация невозможна «по определению».
  4. Высокий уровень безопасности дает хранение ключа в TPM модуле. А дополнительные подключения, необходимые пользователю, нужно устанавливать другим типом соединения – на основе сертификата пользователя (User tunnel), после входа.
  5. Доступ к критическим ресурсам будет получен уже на основе аутентификационных данных пользователя после входа пользователя.

Пользовательский туннель

Для туннеля пользователя предусмотрены различные способы аутентификации: Имя пользователя и пароль, смарт-карта (как физические, так и виртуальные), пользовательские сертификаты, Windows Hello. Далее рассуждения основываются на сценарии с аутентификацией на основе сертификатов, в том числе смарт-картах.*

*Note 2: При этом имя пользователя и пароль мы не рассматриваем как достаточно безопасный способ и не рекомендуем его своим клиентам.

Плюсы

Плюсы и важные возможности

Комментарии

Поддержка Split Tunneling и Full Tunneling

Можно принудительно отправлять весь трафик пользователя в корпоративную сеть, а можно выбирать отдельные сети в зависимости от требований безопасности.

VPN для каждого приложения

— Возможно установить триггеры на «запуск» ВПН при использовании определенного приложения.

— Постоянно работающий ВПН (неотключаемый пользователем)
не совместим с триггерами по приложениям.

— Все MFA которые можно реализовать через RADIUS (NPS) будут работать нативно.

— Исключение – не поддерживаются пуш-уведомления средствами Always On VPN на клиентах Windows. Т.е. в процессе соединения сервер не может показать пользователю окно и запросить код.

— Необходима установка специальных приложений от «провайдеров» MFA.

— В случае использования аппаратных сертификатов, MFA запрашивается
при доступе системы в сертификату.

Поддержка двойного стека для IPv4 и IPv6

Direct Access, предшественник Always On VPN, плотно использовал IPv6. Сейчас есть выбор и в подавляющем большинстве случаев мы отказываемся от IPv6.

IP-адрес из профиля пользователя

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

Поддержка механизмов высокой доступности

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

Условный доступ VPN (недоступен без Azure и облака от Microsoft)

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

IKEv2: при смене IP клиента соединение не разрывается

— Функция доступна только для IKE варианта пользовательского туннеля.

— Смена IP не приводит к разрыву соединения. Безопасность не страдает.

— Реальные сценарии, где это было бы по-настоящему нужно,
представить тяжело.

Скорость IKEv2 vs SSTP

Есть мнение, что IPSec работает быстрее SSTP. На самом деле в реальной жизни это не совсем так. Практика показывает, что победителя нет – бывает SSTP показывает результат немного лучше, а бывает наоборот. Скорее всего у провайдеров на пути трафика разное отношение к UDP и TCP в разное время дня.

Минусы

Минус

Комментарии

Слабая поддержка ОС отличных от Windows

— На практике поддержки Protected EAP совместимой с Microsoft в других ОС встретить не удалось (ни для IKEv2 ни для SSTP). Владельцы MacOS и Linux остаются вне этого типа туннеля.

— Существует Windows Platform (UWP) Virtual Private Network (VPN) plugin API, но его широкого применения мы не заметили.

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

Сложная конфигурация параметров EAP для пользователя (если процесс не автоматизирован). Для администраторов повышенный порог вхождения

Конфиг PEAP содержит огромное количество параметров (порядка 15 важных), включающих хэши сертификатов RADIUS серверов, которым мы доверяем.

Microsoft даже разработала специальный скрипт для выгрузки конфига Windows в XML формат.
Кстати, только так можно загрузить конфиг в Intune.Возможно, это один из основных факторов делающих использование протокола PEAP слишком сложным и непонятным для многих администраторов.

Не настраивается из GUI в Windows

Полноценно настроить соединение со всеми преимуществами AlwaysOnVPN можно только через Intune или XML-файл.

Хотя тестовое подключение выполнить можно, даже сам Microsoft рекомендует
выгружать настройки PEAP из
соединения, настроенного вручную, через GUI.

Нельзя передавать сетевые параметры клиенту с сервера RAS

На стороне клиента определяется:

— Роутинг (таблица маршрутизации)

— Регистрация в ДНС

Передать эти параметры с сервера к клиенту невозможно. Чтобы поменять их, нужно переконфигурировать профиль. При «правильной» и «продуманной» настройке это не проблема и конфиг можно проверять/обновлять при каждом подключении.

Кстати, Intune это делает автоматически через интернет, но он в РФ недоступен.

Невозможно на одном RAS-сервере реализовать схему с нескольким пулами

— Один сервер RAS – один пул адресов.

— Есть возможность задавать в доменном профиле пользователя персональный выделенный IP адрес (не обязательно из пула).

Так как это профиль пользователя, а не DHCP-сервер, менеджмент таких адресов будет головной болью, так как инструмента для проверки того, кому принадлежит этот адрес в домене Microsoft нет.

Профиль ВПН — это не файл

— Например, при использовании AnyConnect достаточно просто заменить файл для изменения конфига, но этот легкий путь – не для Microsoft.

— Конфигурация находится в пространстве имен root\cimv2\mdm\dmmap, ClassName MDM_VPNv2_01.

— XML-файл используется на входе для конфигурирования профиля стандартными средствами.

Более того, не все параметры, связанные с ВПН, находятся в профиле, сохраняются/задаются в XML-файле, а находятся в других местах.

Развернуть профиль с правами пользователя невозможно

— Нужны права Администратора на машине (точнее от имени системы).

— Упрощенный профиль развернуть можно через GUI, но он не будет содержать полного и важного конфига ВПН.

Стандартные команды разворачивания профиля для пользователя не работают при удаленных подключениях (например, RDP)

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

В этом случае разворачивание профиля проводится:

— Локально (тестовая фаза)

— Через диспетчера задач

Основная сложность и корень проблемы – получение имени пользователя для которого разворачивается профиль. Скрипт создания профиля должен выполняться от имени Администратора, а профиль разворачиваться уже для пользователя.

В мире, где работает Intune, мы бы и не узнали об этих сложностях.

При разворачивании сервера «по умолчанию» создаются небезопасные конфигурации IPSec и TLS (SSTP)

— SSTP: Поддерживаются TLS 1.0 и много очень слабых алгоритмов шифрования. Чтобы отключить слабые алгоритмы надо создавать новые параметры в реестре на сервере RAS.

— IPSec: ENCR_3DES, AUTH_HMAC_SHA1, PRF_HMAC_SHA1, DF Group 2

— Пока вы не настроили IPSec параметры, посмотреть их невозможно.

Сервер не проверяет CRL. Для включения опции надо добавлять ключ в реестр.

Не работает автоматическое переключение между SSTP и IKE «из коробки»

— В режиме Automatic, несмотря на заманчивое название, подключение будет выполняться по схеме SSTP -> IKEv2->PPTP->L2TP. (почему 2 последних попали в эту схему – загадка)

— Схему IKEv2->SSTP надо настраивать довольно неочевидным способом — через rasphone.pbk (т.е. это не конфиг профиля ВПН).

— Можно оставить только SSTP. Можно оставить только IKEv2. А вот схемы, когда SSTP будет первым, а потом IKEv2, нет. Зато есть недокументированная функция для схемы IKEv2->SSTP: в случае отказа IKEv2 возврата к нему больше не произойдет. Изменения записываются в конфиг автоматически.Можно периодически сбрасывать этот параметр с помощью скриптов.

Не все приложения понимают конфигурацию ВПН

— Часть конфигурации сети проходит через Nrpt таблицы, поэтому, «старые» приложения не видят некоторых «современных» параметров.

— Например, DNS серверы, настроенные в NRPT не видны такому приложению как nslookup. Если у вас особая схема с «другими» DNS для ВПН и есть приложения, пытающиеся нестандартно и самостоятельно лазать на DNS серверы, то могут быть проблемы.

— То же самое касается настройки прокси сервера. Многие браузеры увидят подключение по ВПН и заберут настройки нового прокси, а вот некоторые приложения будут использовать конфиг ОС или, что хуже, свой.

Нет синхронизации конфигурации серверов в отказоустойчивом кластере

— Каждый сервер функционирует независимо. Нагрузку перераспределяет балансировщик.

— Администраторам требуется следить за синхронностью конфигурации.

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

Требования к корректной конфигурации PKI

— Если вы установили «по умолчанию» PKI от Microsoft, то сертификаты выданные таким CA работать не будут.

— Самая распространенная проблема у наших клиентов – это недоступность CRL листа
с компьютеров пользователей (из интернета). При использовании протокола PEAP проверяются
все сертификаты при каждом подключении, всеми участниками (серверы, клиенты). Отключить проверку практически невозможно. Если любому компоненту не удается проверить список отзыва, соединение прерывается.

Вместо заключения

В мире Microsoft ВПН разворачивают сертифицированные профессионалы, для управления компьютерами пользователей используется Intune, MFA и условный доступ реализуется средствами облака Azure, а все приложения – обновленные и современные.

Не забываем, что пока космические корабли бороздят просторы вселенной мир, движется (и уже давно пришел) к архитектуре ZeroTrust, когда смысл использования ВПН и закрытых сетей типа DMZ приближается к нулю. Суть ZeroTrust в том, что проверяются и защищаются абсолютно все соединения – неважно, внутри или снаружи периметра организации они устанавливаются. Основной приоритет не в том, чтобы спрятать какую-то “сеть”, а в том, чтобы ее защитить, даже если кто-то из сотрудников оказался не очень надежным. И с этой точки зрения перечисленные сложности — это просто ненужный сценарий работы.

Как включить Always-on VPN на Android

Включите Always-on VPN на Android, чтобы автоматически шифровать ваше соединение каждый раз, когда вы сёрфите в Интернете на своем телефоне Android.

  1. Откройте на вашем Android-устройстве приложение Настройки (обычно значок шестерёнки).
  2. На панели поиска настроек выполните поиск VPN.
  3. Выберите значок шестеренки рядом с Mozilla VPN. (Вы должны войти в Mozilla VPN с подпиской на аккаунт Mozilla).
  4. Переключите пункт Always-on VPN.

AlwaysOnVPN

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

Связанные статьи

  • Как узнать, что Mozilla VPN активен?
  • Как мне выбрать мой сервер/подключение в Mozilla VPN на моём ПК или ноутбуке?

Дополнительная информация:

Эти прекрасные люди помогли написать эту статью:

Illustration of hands

Станьте волонтёром

Растите и делитесь опытом с другими. Отвечайте на вопросы и улучшайте нашу базу знаний.

Android пропускает трафик даже с функцией «Always-on VPN»

Эксперты Mullvad VPN обнаружили, что мобильные устройства на базе Android передают пользовательский трафик каждый раз, когда устройство подключается к новой сети Wi-Fi. Это происходит даже если активированы функции «Блокировать соединение без VPN» или «Always-on VPN».

К сожалению, причина данной проблемы реализована на уровне ОС Android и является технической особенностью. За пределами VPN-туннелей передаются следующие данные: IP-адреса, трафик HTTPS, запросы DNS Lookup и, возможно, трафик NTP.

Функция «Always-on VPN» в Android должна блокировать соединения, если владелец смартфона не использует VPN. Это способно предотвратить случайную утечку реального IP-адреса, если VPN-соединение внезапно пропадает. Однако при подключении к новой сети Wi-Fi некоторые данные передавались и без VPN.

В Google сообщили, что все так и должно быть, поэтому не стоит ждать исправление. Эксперты считают, что пользователи ОС Android вряд ли будут знать о таком поведении из-за некорректного описания функции.

Always-VPN

Use VPN or On ne passe pas! Интернет или только через VPN, или больше никак!

Always-VPN

Use VPN or On ne passe pas!
Интернет или только через VPN, или больше никак!

Для чего

Есть, например, домашняя сетка. Во враждебном окружении разных провайдеров на пути до Интернета. Для решения таких задач придуман VPN, но он имеет свойство как “дозваниваться”, так и “отваливаться”. Требуется обеспечить, чтобы он был постоянно и гарантированно.

Есть подходяще звучащая технология Microsoft Always On VPN, но она заточена на подключение в сетям корпораций и требует много Microsoft как на той стороне, так и отнюдь небытовых редакций Windows на стороне клиента.

Есть аналогичные нагугленные решения (и больше вопросы) с использованием:

  • Windows Firewall, но он плохо различает wireless и ras и правила у него типа “0-49,51-499,501-4499,4501-65535”, куда потом может понадобиться вставить еще сетевую печать, например.
  • Ярлыка в автозагрузку, но потом Windows в какой-нибудь новой версии возьмет и перестанет давать права на жонглирование маршрутами.
  • Постоянной проверки раз в 30 секунд, что VPN еще не отвалился.
  • Перспективного PowerShell, но он так и не реализовал всей былой функциональности встроенной утилиты NETSH по работе с маршрутами, да и запускается он медленно, тогда как здесь важна быстрота реагирования.

Это решение по событиям:

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

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

Настройка

Шаг 1: Создание VPN-соединения

Создать VPN-соединение в Windows, назвать его желательно одним английским словом и без пробелов (например, tunnel), адрес сервера указать в числовом виде IP — чтобы не зависеть от доступности DNS, не забыть указать “Использовать основной шлюз в удаленной сети” (“Use default gateway on remote network”)!

В современных Windows это запрятано достаточно далеко. Например, в версии 1803 надо зайти в настройки VPN, далее в Настройка параметров адаптера (справа — не при всякой ширине экрана и влезает), найти наш tunnel, правой кнопкой мыши Свойства, закладка Сеть, в списке IP версии 4 (TCP/IPv4), Свойства, Дополнительно, Параметры IP и там поставить эту галочку.

В процессе подключения Windows 8.1/10 может появиться ошибка вида Policy match error из-за отключенности AES-256-CBC and MODP2048 по умолчанию. Чтобы форсировать их использование, в реестр надо добавить параметр:

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\RasMan\Parameters] "NegotiateDH2048_AES256"=dword:00000002 

При использовании числового IP вместо символьного имени DNS скорее всего понадобится также добавить в реестр еще один параметр (или попробовать сервис sslip.io):

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\RasMan\Parameters] "DisableIKENameEkuCheck"=dword:00000001 

Шаг 2: Прописывание констант

В файле always_vpn.cmd указать две используемые константы:

  • название соединения (set vpn=tunnel)
  • адрес сервера (set ip=IP).

Если название содержит пробелы, то здесь записывать БЕЗ кавычек — например, set vpn=VPN Tunnel IKEv2. Регистр значения не имеет. Тем не менее, всегда лучше, если такие названия будут одним английским словом.

Адрес лучше указывать цифрами (как 127.0.0.1, указанный для примера в программе), так как DNS может оказаться недоступен при удалении прежнего шлюза.

Также сохраните себе куда-нибудь на бумажку шлюзы по умолчанию с Ваших сетевых адаптеров — программа их очистит!

Шаг 3: Правильное размещение

Поместить файл always_vpn.cmd в защищенную от изменений пользователем папку (например, Windows), поскольку он запускается с админскими правами (требуется для удаления-добавления маршрутов) — чтобы не приписали чего.

Шаг 4: Планировщик заданий

Запустить Планировщик заданий Windows, импортировать в него прилагаемый файл always_vpn.xml и откорректировать местоположение запускаемого файла (по умолчанию это %windir%\always_vpn.cmd ).

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

  • Журнал: Microsoft-Windows-NetworkProfile/Выполняется
  • Источник: NetworkProfile
  • Код события: 10000 (подключение) и 10001 (отключение)

Прекращение деятельности

При необходимости все отключить, надо:

  • Отключить выполнение задания в Планировщике заданий,
  • у статических (чаще кабельных) сетевых адаптеров прописать обратно их шлюз по умолчанию, который удалила эта программа,
  • у адаптеров с DHCP (чаще это Wi-Fi) — просто переподключиться.

Заметьте: Пока задание в планировщике не остановлено, любые переподключения сетей не вернут выход в Интернет без поднятия заданного VPN! В этом ведь и заключается главная задача этой программы!

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

netsh int ipv4 show route | find "127.0.0.1/32" 

где вместо 127.0.0.1 указать IP Вашего сервера.

IPv6

Данный код обрабатывает только IPv4, поскольку и Windows не добавляет маршрут IPv6 по умолчанию. Это можно сделать командой вида:

netsh interface ipv6 add route ::/0 interface=27 

где 27 — для примера это наш интерфейс IKEv2. Или патчить strongSwan issue #817. Поэтому скрипт создания сервера также только IPv4.

Создание VPN-сервера

Собственно, создание самого сервера осуществляется скриптом vps-setup.sh . Выполняются команды:

cd /tmp wget https://raw.githubusercontent.com/diev/Always-VPN/master/vps-setup.sh chmod u+x vps-setup.sh ./vps-setup.sh 

Для скачивания также можно использовать сокращенный URL, но тогда с указанием имени для сохранения файла:

wget https://git.io/JemOz -O vps-setup.sh 

Благодарности

Код скрипта создания сервера основан на проекте jawj/IKEv2-setup. Copyright (c) 2015 – 2018 George MacKerron. Released under the MIT licence.

Также скрипт использует проект ValdikSS/easy-rsa-ipsec для генерации сертификатов RSA для сервера и клиентов, forked from Easy-RSA 3. Copyright (C) 2013 by the Open-Source OpenVPN development community. Easy-RSA 3 license: GPLv2.

Лицензионное соглашение

Licensed under the Apache License, Version 2.0. Вы можете использовать этот код совершенно свободно без всяких ограничений с моей стороны и без претензий с Вашей.

Downloads

Релизы и инфо Скачать Дата

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *