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
| Релизы и инфо | Скачать | Дата |
|---|
Always on vpn что это
Виртуальные частные сети (VPN) считаются важным приложением для миллионов пользователей интернета по всему миру. Именно VPN позволяют сохранять данные защищёнными от потенциальных киберугроз и атак. Теперь популярный шведский VPN-провайдер сообщил, что пользователи системы Android защищены не так хорошо, как им казалось.
реклама
В настройках Android пользователи могут выбрать опцию «Всегда включенный VPN». Она призвана ограничивать подключения к устройству без включенного VPN. Эта функция полезна для любителей конфиденциальности.
VPN создаёт виртуальный «туннель» между двумя точками глобальной сети, посредством которого зашифрованные данные могут передаваться без риска перехвата посторонними. Так как пакет данных зашифрован, источник и место назначения скрыты.
Шведский VPN-провайдер Mullvad сообщает, что Always-on VPN работает не лучшим образом. Android иногда отправляет «проверку подключения» для поиска близлежащих серверов. Проверки подключения содержат данные об устройстве, такие как IP-адрес, HTTPS-трафик и запросы DNS. Всё это передаётся в незашифрованном виде, так как не проходит через туннель VPN. Любой перехвативший проверку подключения может увидеть информацию об устройстве даже при включенной опции Always-on VPN.

Mullvad призывает Google изменить описание этой функции или исправить ошибку. Google уже отреагировала на эту информацию, но не так, как хотелось бы Mullvad. В компании говорят, что всё работает как было задумано.
Использование «Always On VPN» стало намного проще

Благодаря тому, что все больше людей работает из дома через Интернет, VPN-сервисы становятся еще более популярными среди тех пользователей, которые хотят защитить свои соединения, свою частную жизнь и добавить дополнительный слой онлайн-защиты.
В то время как некоторые пользователи просто подключаются к VPN во время работы или пытаются получить доступ к гео-заблокированному контенту, другие, которые работают с конфиденциальными данными компании, часто предпочитают быть подключенными к ним все время, используя технологию постоянного подключения «Always On VPN».
Подключение «Always On VPN» позволяет сотрудникам безопасно получать доступ к корпоративным сетям удаленно с клиента Windows 10. Однако до сих пор настройка такого подключения была довольно длительным процессом, который требовал от пользователей Windows 10 создания профиля XML VPN для настройки соответствующих параметров VPN.
Создание профиля Always On VPN в Microsoft Intune
Microsoft выпустила новое обновление, которое позволяет пользователям Windows 10 создавать профиль «Always On VPN» напрямую в облаке Intune без использования XML.
Чтобы настроить профиль «Always On VPN» в Intune, пользователям необходимо выбрать IKEv2 в качестве типа подключения, включить постоянное подключение, выбрать сертификаты компьютеров в качестве метода аутентификации, выбрать правильный сертификат аутентификации и включить туннельное устройство.
Если по какой-то причине настройки по умолчанию IKE в Windows 10 не совпадают с тем, что уже было настроено на сервере RRAS, пользователи могут настроить параметры профиля VPN в соответствии с ними. К счастью, все это можно сделать без необходимости сначала создавать XML-профиль.
Если вы работаете удаленно и не хотите, чтобы вас беспокоило подключение к VPN каждый раз, когда вы выходите в Интернет, технология «Always On VPN» именно то, что вам нужно.
iOS и Android не полностью шифруют трафик, проходящий через VPN. Разработчики знают об этом, но ничего не делают
Похоже, что мобильные операционные системы оказались довольно слабо защищёнными, причём это касается обеих актуальных ОС на сегодняшний день. Исследователи безопасности Томми Майск и Талал Хадж Бакри выяснили, что при включённом VPN на iOS 16 не шифруется весь трафик. Отмечается, что большинство соединений при активации VPN переподключаются через шифрованный канал, но некоторые продолжают работать в обход. Это касается, к примеру, программ «Карты», «Здоровье» и «Кошелёк» (Wallet).

Примечательно, что проблема существует со времён iOS 13, Apple знает о ней, но ничего не предпринимает. Ситуацию не спасает и появившийся в iOS 16 «Режим блокировки», который ограничивает работу системы, но не влияет на VPN.
Не лучше ситуация и на Android. Специалисты сервиса Mullvad VPN утверждают, что при подключении к сети Wi-Fi происходит утечка данных — IP-адресов, DNS-запросов, HTTPS и NTP-трафика. Это наблюдается даже в том случае, когда активна функция Block connections without VPN или Always-on VPN.
Это нормальное поведение системы, просто такая особенность неточно описана в документах. А в Google заявили, что исправить её нельзя, поскольку это повлияет на проверку подключения и ряд других аспектов, которые широко используются по всему миру.
Специалисты Mullvad VPN утверждают, что такие утечки могут потенциально привести к утечке конфиденциальной информации, но, похоже, исправлений ждать не стоит.
13 октября 2022 в 23:42
