Windows поставляется с клиентом IKEv2, которым PowerShell управляет от начала до конца, поэтому работающему туннелю не нужен ни графический интерфейс, ни стороннее программное обеспечение. Почти каждая ошибка приходит из трёх мест: куда попал сертификат, как записаны префиксы маршрутов и чего ожидает выбранный метод EAP. Разбирайтесь с ними в этом порядке, потому что каждый проверяем до начала следующего, а более поздняя ошибка замаскирует более раннюю.

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

Сначала сертификат, потом туннель

Важны два импорта. Удостоверение клиента попадает в Cert:\LocalMachine\My через Import-PfxCertificate, а издающий ЦС попадает в Cert:\LocalMachine\Root через Import-Certificate. Один конечный сертификат не доказывает никакой цепочки, поэтому пропуск второго импорта оставляет проверку без основания. Помимо наличия, закрытый ключ должен быть присоединён, а учётной записи компьютера должно быть разрешено его читать. Get-ChildItem Cert:\LocalMachine\My перечисляет то, что прибыло; сравнивайте отпечатки, а не субъекты, поскольку почти одинаковые субъекты встречаются часто.

Проверьте расширенное использование ключа перед развёртыванием. Проверка подлинности клиента — обычное требование для удостоверения компьютера IKEv2, и другая сторона должна доверять ЦС, который его подписал. Удостоверение в хранилище пользователя не существует для подключения в контексте компьютера.

Создайте профиль и его маршруты

Add-VpnConnection -Name "Office IKEv2" -ServerAddress vpn.example.com -TunnelType Ikev2 -EncryptionLevel Required -AuthenticationMethod MachineCertificate -AllUserConnection записывает профиль. Параметр -AllUserConnection публикует его в глобальной телефонной книге, что подходит для общей машины или машины под управлением службы; для одного пользователя его опустите. Любой адрес, который вы передадите, должен совпадать с DNS-именем в сертификате сервера, иначе сбой появится уже после того, как туннель поднят. Затем префиксы добавляются по одному с помощью Add-VpnConnectionRoute, и только те, которые действительно нужны проекту.

У IPv6 есть особенность: Windows отказывается принимать ::/0 как маршрут VPN, поэтому ::/1 и 8000::/1 вместе покрывают одно и то же адресное пространство. Маршрутизация префикса также ничего не даёт на удалённом межсетевом экране, поэтому список префиксов и политика межсетевого экрана остаются отдельными документами.

Учётные данные принадлежат методу проверки подлинности

Профилю с сертификатом компьютера вообще не нужен пользовательский секрет, а профилю EAP-MSCHAPv2 нужен. Во втором случае модуль VPNCredentialsHelper предоставляет Set-VpnConnectionUsernamePassword, и он хочет обычный текст: $cred.Password — это SecureString, поэтому сначала распакуйте его с помощью GetNetworkCredential().Password. Устанавливайте модуль везде, где выполняется команда, а не только на рабочей станции, где её написали. EAP-TLS или пользовательский метод вообще не используют этот командлет; вместо этого они принимают XML конфигурации EAP.

rasdial "Office IKEv2" поднимает подключение из оболочки, и это самый быстрый способ увидеть результат на переднем плане, а не в журнале событий.

Чего не доказывает подключённый туннель

Состояние «подключено» охватывает обмен IKE и шаг проверки подлинности и ничего сверх этого. Поведение DNS, путь к частному узлу и удалённый межсетевой экран всё ещё не доказаны. Двигайтесь наружу: адаптер туннеля, затем поиск маршрута для частного адреса, затем одна служба, на которую у вас есть право. Первое наблюдение, которое не проходит, указывает на уровень для исследования.

При изменении профиля удалите предыдущий с помощью Remove-VpnConnection -Name "Office IKEv2" -Force, прежде чем создавать его заново; иначе устаревшие параметры и маршруты сохранятся после правки. Если он всё равно не подключается, сравните отпечаток, записанный в профиле, с тем, что есть в хранилище, потому что Windows может хранить ссылку на удостоверение, которое тем временем было заменено под неизменным субъектом.

Держите отпечаток, метод EAP и список маршрутов рядом с профилем. Вместе они объясняют большую часть того, что позже идёт не так.

Похожие статьи