Windows 10 подключение к vpn до входа в систему
Многочисленные ограничения, невозможность попасть на определённые сайты из-за получения блокировок, отсутствие анонимности – все эти факторы могут серьёзно омрачить наше пребывание в Интернете. Как облегчить своё пребывание в онлайн-пространстве и избежать новоявленных «границ» нашего доступа? На помощь может прийти VPN – средство доступа в сеть с помощью «обходных путей». Но что представляют из себя эти пути, и как работает этот механизм?
Что такое VPN?
Всемирная паутина в том виде, в каком она существовала с 90-ых годов, всегда славилась своей свободой, и не просто так – она была задумана как способ беспрепятственного доступа людей к информации, способ стереть границы между людьми и государствами.
Вместе с расширением доступа к Сети среди населения разных стран эта мечта, казалось бы, начала приближаться к осуществлению. Но, как и всегда, благие желания разработчиков были искажены самими пользователями.
Понятие законов «частной собственности» довольно быстро обрело свою интерпретацию и в онлайн-пространстве – например, появление правил для беспрепятственного доступа к форумам, определяемых их создателями и администраторами. Это было своеобразным саморегулированием отдельных ячеек интернета, задевающим исключительно отдельных нарушителей – в частности, получив блокировку, пользователь лишался доступа на сайт.
Естественно, что такое положение дел не могло устроить отдельных, особенно активных личностей. Они регистрировали новые аккаунты и легко проходили сквозь поставленные барьеры, утирая нос модераторам.
Но появление блокировок по IP-адресу мгновенно закрыло эту возможность. Теперь, чтобы попасть на страницу, пользователю приходилось менять либо интернет-подключение – например, сменив оператора связи, – либо пользоваться устройствами друзей.
Но непреодолимых препятствий, как известно, не существует – на сцену вышли технологии анонимизации, в числе которых оказался и VPN. Что представляет из себя эта технология?
Можно долго сыпать сложными терминами, ссылаясь на многочисленную техническую документацию, но принцип работы VPN крайне прост – мы получаем доступ к определённым страницам в Сети, пропуская трафик через чужой компьютер. Примерно так это выглядит в схематичном отображении.
В последние несколько лет все более популярной становится технология организации удаленного рабочего места (будь то отдельный сотрудник и целый офис) за счет технологии VPN. Однако пользователю не очень удобно каждый раз при загрузке компьютера вручную инициировать VPN соединение. Как сделать так, чтобы VPN подключение поднималось автоматически при загрузке Windows или при входе пользователя в систему и не требовало бы от пользователя никаких дополнительных манипуляций? Попробуем в этом разобраться.
Предположим, что для подключения к VPN, вы используете специально созданное подключение с именем «vpn_office». В том случае, если новое VPN создавалось с настройками по-умолчанию, скорее всего его название будет содержать пробелы или русские символы. Для дальнейшей работы, лучше его переименовать, так, чтобы имя VPN подключения содержало только английский символы, а пробелы в названии отсутствовали (Правой клавишей по значку соединения и «Переименовать»).
В параметрах VPN подключения снимите галочки у параметров:
- Отображать ход подключения (Display progress while connecting)
- Запрашивать имя, пароль и т.д. (Prompt for name and password, certificate, etc)
- Включать домен входа в Windows (Include Windows logon domain)
Существует несколько способов автоматической установки VPN соединения в Windows. Большинство из них работают корректно практически во всех версиях Windows и отличаются способами реализации автоматического запуска сценария инициации VPN подключения. В некоторых случаях какая-то конкретная методика может не заработать, и вам придется попробовать альтернативную. Также стоит отметить, что описанные методики автоматического подключения к VPN были протестированы в Windows 7, однако с небольшими модификациями и правками (или совсем без оных), их можно использовать и в других ОС семейства Windows
Для установки автоматического VPN соединения мы будем использовать встроенную в систему утилиты rasdial.
RASDIAL. Установка VPN подключения из командной строки
Утилита rasdial появилась еще в самых ранних версиях Windows и использовалась для управления удаленными подключениями. Найти утилиту rasdial.exe можно в системном каталоге C:\Windows\system32\.
Список текущих удаленных подключений можно отобразить, набрав команду rasdialбез параметров.
Чтобы отключить удаленное соединение, нужно воспользоваться командой:
Нас в данном случае интересует процесс как с помощь данной утилиты можно установить VPN подключение. Формат команды в этом случае будет такой:
[Имя_VPN_подключения] — название VPN подключения в системе
[имя_пользователя] [пароль] – информация, выданная вашим ISP или администратором.
В том случае, если название подключения или имя пользователя содержит пробел, служебные или русские символы, такой параметр нужно брать в кавычки.
В моем случае, команда подключения будет такой:
В случае успешной установки VPN соединения и прохождения авторизации, отобразится строка «Command completed successfully», это означает, что соединение с VPN сервером установлено.
Следующий шаг – настройка автоматического запуска данной команды.
Автозапуск VPN подключения с помощью планировщика Windows
Попробуем настроить автозапуск VPN с помощью функций планировщика (Task Sheduller) Windows. Для этого запустите программу Start->All Programs-> Accessories-> System Tools->Task Scheduler, или же в командной строке выполните: taskschd.msc
Создадим новое простое задание планировщика с именем «AutoConnectVPN»
Далее нужно указать, когда необходимо выполнять задачу. В данном случае нас интересуют следующие возможности планировщика:
Выбор в данном случае за вами, т.к. в зависимости от требования к организации системы иногда нужно, чтобы VPN автоматически подключался при загрузке компьютера (пользователь еще не вошел в систему). Это удобно использовать на серверах (для служб, работающих в фоновом режиме или для выполнения других автоматических операций). Если же требуется, чтобы VPN запускался только при входе пользователя (начало рабочего дня оператора или работника удаленного офиса), нужно выбрать второй вариант.
Затем указываем что планировщик должен запустить программу (Start a program).
В следующем окне нужно указать какую программу нужно запустить и с какими параметрами. Мы запускаемC:\Windows\system32\rasdial.exe с аргументами vpn_office winitpro_admin $ecretnaRFr@z@
После окончания работы мастера, в списке задач, выполняемых при загрузке Windows, появится еще одна с именем AutoConnectVPN. Теперь при следующей загрузке системы VPN соединение должно подняться автоматически.
Для Windows 7/ Win 8. В том случае, если соединение не установиться, попробуйте в планировщике задач найти созданное вами задание и в его свойствах на вкладке General укажите — Run with highest privileges (запускать с правами администратора), это должно помочь.
Автозапуск VPN с помощью реестра
VPN подключение можно устанавливать автоматически и с помощью реестра. В реестре существует специальная ветка, программы в которой Windows автоматически запускает каждый раз при загрузке.
- Запустите редактор реестра (regedit.exe) и перейдите в ветку HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run
- Создайте новый строковый параметр именем vpnConnect и значением rasdial vpn_office winitpro_admin $ecretnaRFr@z@
- Закройте реестр и перезагрузите компьютер
Если нужно запускать подключение только для текущего пользователя, то эту операцию нужно произвести с разделом HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run
Автоматическое подключение VPN с помощью автозагрузки
Просто создать ярлык для нужного VPN подключения и скопируйте (перетяните) созданный ярлык в каталог Автозагрузка (C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup) меню «Пуск».
Автостарт VPN с помощью системной службы
Данная методика предполагает, что мы создадим собственную службу Windows, которая отрабатывает процедуру VPN соединения до входа пользователя в систему.
В командной строке с правами администратора, создадим новую службу командой:
Чтобы служба запускалась уже после запуска всех системных служб, поставим ее в зависимость от службы lanmanworkstation. В консоли services.msc должна появиться новая служба autoVPN, если она отсутствует, проверьте правильность введенной команды.
Учтите, что это псевдо-служба, и она не будет отображаться в процессах, отрабатывая один раз при запуске системы.
Удалить службу можно командой:
В этой статье мы разобрали наиболее популярные способы организации автоматического VPN подключения в Windows. Если что-то не заработало, или вы знаете собственный способ организации автозапуска VPN — описывайте все в комментариях. Указанную схему можно протестировав, подняв собственный VPN сервер на Windows 7 и отработать всю процедуру на нем.
В Windows 10 и Windows 11 в VPN с автоматическим триггером добавлен ряд функций, чтобы пользователям не пришлось подключаться вручную, когда VPN необходим для доступа к необходимым ресурсам. Существует три типа правил автоматически инициируемых правил.
- Триггер приложений
- Триггер на основе имени
- Режим "Всегда включен"
Автоматические VPN-подключения не будут работать, если включено перенаправление папок для AppData. Либо перенаправление папок для AppData должно быть отключено, либо автоматический VPN-профиль должен быть развернут в системном контексте, что меняет путь к хранянию файла rasphone.pbk.
Триггер приложений
Vpn-профили Windows 10 или Windows 11 можно настроить для автоматического подключения при запуске определенного набора приложений. Вы можете настроить классические приложения и приложения универсальной платформы Windows (UWP) для активации VPN-подключения. Можно также настроить VPN для отдельного приложения и указать правила трафика для каждого приложения. Дополнительные сведения см. в разделе Фильтры трафика.
Идентификатор классического приложения — это путь к файлу. Идентификатор приложения UWP — это имя семейства пакетов.
Триггер на основе имени
Вы можете настроить правило на основе имени домена, чтобы определенное имя домена активировало VPN-подключение.
Автоматический триггер на основе имени можно настроить с помощью параметра VPNv2/имя_профиля/DomainNameInformationList/dniRowId/AutoTrigger в разделе Поставщик службы конфигурации (CSP) VPNv2.
Существует четыре типа триггеров на основе имени.
Режим "Всегда включен"
Always On — это функция Windows 10 и Windows 11, которая позволяет активному профилю VPN автоматически подключаться на следующих триггерах:
При активации триггер выполняется попытка подключения к VPN. Если возникает ошибка или требуется ввод пользователя, отображается всплывающее уведомление.
Если на устройстве несколько профилей с триггерами «Всегда включен», пользователь может задать активный профиль в разделе Параметры > Сеть и Интернет > VPN > Профиль VPN, установив флажок Разрешить приложениям автоматически использовать это VPN-подключение. По умолчанию первый профиль, настроенный в MDM, отмечен как активный. Устройства с несколькими пользователями имеют одно и то же ограничение: только один профиль и, следовательно, только один пользователь сможет использовать триггеры Always On.
Сохранение пользователя Всегда на предпочтении
Windows имеет функцию для сохранения предпочтений пользователя AlwaysOn. Если пользователь вручную отключает Подключение автоматически, Windows запомнит это имя профиля, добавив имя профиля к значению AutoTriggerDisabledProfilesList.
Если средство управления удалит или добавит одно и то же имя профиля и задает AlwaysOn значение true, Windows не будет проверять поле, существует ли имя профиля в следующем значении реестра, чтобы сохранить предпочтения пользователей.
Клавиша: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\RasMan\Config
Значение: AutoTriggerDisabledProfilesList
Тип: REG_MULTI_SZ
Обнаружение доверенной сети
Эта функция настраивает VPN таким образом, чтобы подключение не активировалось, если пользователь находится в доверенной корпоративной сети. Значение этого параметра — список суффиксов DNS. Стек VPN изучает DNS-суффикс на физическом интерфейсе и, если он соответствует любому из настроенных в списке, и сеть является частной или настроена MDM, VPN не активируется.
Обнаружение доверенной сети можно настроить с помощью параметра VPNv2/имя_профиля/TrustedNetworkDetection в разделе VPNv2 CSP.
Настройка VPN-подключения, инициируемого приложением
Сведения о настройке XML см. в разделе Параметры профиля VPN и VPNv2 CSP.
На следующем рисунке показано связывание приложения с VPN-подключением в политике конфигурации VPN-профиля с помощью Microsoft Intune.
Если после добавления связанного приложения установить флажок Только эти приложения могут использовать это VPN-подключение (VPN для отдельных приложений), приложение станет доступным в корпоративных границах, где можно настроить правила для приложения. Дополнительные сведения см. в разделе Фильтры трафика.
Управляем VPN-соединениями в Windows при помощи PowerShell
Управление VPN-подключениями в последних версиях Windows трудно назвать понятным и удобным. Часть настроек производится через современное приложение Параметры, другая часть, как и прежде, находится в Панели управления. Какие-то шаги к упорядочению этой ситуации сделаны только в Windows 11, но практического опыта работы с ней еще недостаточно. Но есть гораздо более простой и удобный способ управления VPN-соединениями - это PowerShell, его можно использовать как в интерактивном режиме, так и для написания скриптов автоматизации, которые будут производить настройку подключения в один клик.
Тема VPN является номером один для системных администраторов второй год, сложная эпидемиологическая обстановка диктует свои условия и требует обеспечить простой и безопасный способ удаленной работы для пользователей. И если с созданием VPN-сервера особых проблем нет - на выбор большое количество протоколов и технологий, то с клиентскими устройствами все намного сложнее.
Как мы уже говорили выше, самостоятельно создать VPN-подключение, не совершив при этом ошибок, для обычного пользователя будет достаточно сложной задачей, что потребует от администратора либо длительных консультаций в телефонном режиме, либо самостоятельной настройки через удаленное подключение. Да и в повседневной работе ввести одну команду гораздо быстрее и удобнее, нежели прокликивать несколько форм в разных местах.
Для управления VPN-соединениями мы будем использовать PowerShell, данные возможности поддерживаются начиная с Windows 8 и Windows Server 2012.
Создание VPN-соединения
Для того, чтобы создать новое VPN-подключение используется командлет Add-VpnConnection, использовать который достаточно просто, обязательных параметров всего два: имя подключения и адрес сервера. Но это, конечно же, не наш метод, если возможности позволяют выполнить тонкую настройку, а они позволяют, то ее нужно выполнить. Поэтому давайте изучим доступные параметры, которые могут нам пригодиться:
- Name - имя подключения, произвольная строка
- ServerAddress - адрес VPN сервера, можно указать как IP, так и FQDN
- TunnelType - тип туннеля, доступные значения: Pptp, L2tp, Sstp, Ikev2, Automatic
- EncryptionLevel - уровень шифрования данных, можно использовать: NoEncryption, Optional, Required, Maximum
- AuthenticationMethod - способ проверки подлинности, доступно: Pap, Chap, MSChapv2, Eap, MachineCertificate
- L2tpPsk - только для L2TP - предварительный общий ключ
- SplitTunneling - отключает перенаправление всего трафика в туннель, аналогично снятию флага Использовать основной шлюз в удаленной сети
- RememberCredential - запоминать учетные данные пользователя
- UseWinlogonCredential - использовать для VPN-подключения учетные данные для входа в систему
- AllUserConnection - создать подключение для всех пользователей
Также нам пригодятся два служебных параметра:
- PassThru - выводит на экран результат выполнения команды
- Force - подавляет вывод запросов и некритичных ошибок, в запросах применяется действие по умолчанию
Ниже мы рассмотрим команды для создания подключений всех поддерживаемых типов.
Устаревший и небезопасный протокол, то один из самых быстрых типов подключения, все еще продолжает использоваться там, где не предъявляются высокие требования к защите данных, либо для этого используются иные механизмы, например, SSL/TLS. В качестве способа аутентификации следует использовать MS-CHAP v2, а уровень шифрования не ниже Required, что соответствует параметру Обязательное (отключиться если нет шифрования) в графическом интерфейсе.
Также мы добавили опции для отключения перенаправления трафика в туннель и разрешили запоминать учетные данные.
Если вы указали параметр PassThru, то на экране появятся свойства созданного подключения, как на рисунке выше, без указания этого параметра вывод у команды отсутствуют.
L2TP/IPsec
В качестве L2TP будем рассматривать подключение с общим ключом, также используем MS-CHAP v2 и уровень шифрования Required и выше.
Обратите внимание, что в данной команде мы использовали ключ Force, чтобы предотвратить появление запроса о том, что подтверждаем ли мы передачу общего ключа в открытой форме. Также, как и с PPTP-подключением мы отключили шлюз в VPN-сети и разрешили запоминать учетные данные.
Для использования SSTP вам потребуется импортировать корневой CA-сертификат центра сертификации, выдавшего сертификат серверу в локальное хранилище компьютера, а также использовать в качестве адреса сервера FQDN-имя, указанное в его сертификате. В остальном все несложно, соединение создается уже привычной командой:
Комментировать здесь мы ничего не будем, если вы внимательно читали статью, то все параметры будут вам понятны.
IKEv2
А вот здесь уже интереснее, мы будем настраивать соединение с аутентификацией по сертификатам. Здесь вам также потребуется импортировать сертификаты в хранилище компьютера: сертификат CA и сертификат пользователя. А для настройки соединения используем следующую команду:
Обращает внимание новый метод аутентификации MachineCertificate и отсутствие параметра RememberCredential, в данном случае пользователю не нужно вводить никаких учетных данных, поэтому и запоминать тут нечего. В качестве имени сервера используем FQDN или IP, в зависимости от того, что указано в Common Name сертификата сервера.
Изменение параметров VPN-соединения
Создавать подключения мы уже научились, но как быть, когда нам требуется что-то в них изменить? На помощь придёт командлет Set-VpnConnection, он использует все те же параметры что и Add-VpnConnection и позволяет изменить любой из них, для указания подключения используется параметр Name. Скажем, мы хотим изменить адрес сервера для PPTP подключения, нет ничего проще, указываем имя подключения, требуемый параметр и его новое значение:
Например, включим разрешение запоминать учетные данные:
Для отключения введите:
В тоже время служебные параметры PassThru и Force можно просто указывать без ввода значения, само их наличие воспринимается как Истина.
Получение информации о VPN-соединении
Для получения информации о настроенных VPN-соединениях мы можем использовать командлет Get-VpnConnection, из параметров он поддерживает только Name и AllUserConnection, что позволяет отобразить параметры конкретного соединения и уточнить, что мы хотим видеть соединения всех пользователей, а не только текущего.
Чтобы увидеть все VPN-соединения выполните:
Для получения данных о конкретном соединении:
Возможностей у командлета немного, но со своей работой он справляется.
Удаление VPN-соединения
Для удаления соединения используется командлет, ему достаточно передать единственный параметр - Name, также можно дополнительно указать Force, если вы не хотите подтверждать запрос об удалении соединения.
Но будьте осторожны и используйте Force только тогда, когда вы точно знаете какое соединение хотите удалить. Не рекомендуем использовать этот параметр интерактивно, так как есть риск, что вы можете указать не то соединение, все-таки запрос - лишний повод остановиться и подумать.
Добавление маршрута при подключении
Автоматическое добавление маршрутов при установлении VPN-подключения - больная тема для пользователей Windows, но PowerShell позволяет решить и этот вопрос, для этих целей есть отдельный командлет Add-VpnConnectionRoute, он весьма прост в использовании, вам нужно указать имя соединения в параметре ConnectionName и сеть назначения в параметре DestinationPrefix.
Например, добавим маршрут к сети 192.168.111.0/24 через подключение L2TP PS:
Автоматизация создания VPN-соединения
Для автоматического создания соединения важно чтобы конечный пользователь совершал минимум необходимых действий. В целях безопасности PowerShell скрипты нельзя запустить двойным кликом, поэтому будем использовать старый добрый CMD, в котором уже будем запускать PS и передавать ему нужные команды.
Ниже пример простого командного файла, который создает VPN-соединение и прописывает маршрут для него:
Обратите внимание, что команда полностью берется в двойные кавычки, а все двойные кавычки внутри команды заменены на одинарные. Данное содержимое вносим в Блокнот и сохраняем с расширением .bat или .cmd, для создания подключения не требуется повышения прав.
Если вам нужно внести какие-либо изменения в параметры подключения, вы точно также можете создать новый командный файл, в котором будете использовать командлет Set-VpnConnection.
В целом PowerShell предоставляет достаточно широкие возможности по простому и удобному управлению VPN-соединениями на компьютере и позволяет решать множество связанных с этим задач в один клик, используя скрипты и командные файлы.
Читайте также: