Изграждане на IKEv2 VPN в PowerShell със сертификат на машина
Разположението на сертификата, префиксите на маршрутите и EAP данните за достъп са местата, където скриптът за IKEv2 се проваля. Изградете тунела в PowerShell и проверявайте всеки етап поотделно.
Windows предоставя IKEv2 клиент, който PowerShell управлява от край до край, така че работещият тунел не се нуждае от графичен интерфейс и от софтуер на трети страни. Почти всяко сбрутване идва от три места: къде е попаднал сертификатът, как са записани префиксите на маршрутите и какво очаква избраният EAP метод. Работете с тях в този ред, защото всяко е проверимо преди да започне следващото, а по-късна грешка ще прикрие по-ранна.
Тунелите със сертификат на машина съществуват, за да стартират преди някой да влезе, поради което самоличността обикновено трябва да живее в хранилището на компютъра, а не на потребителя.
Първо сертификатът, после тунелът
Два вноса са важни. Самоличността на клиента отива в Cert:\LocalMachine\My чрез Import-PfxCertificate, а издаващият CA отива в Cert:\LocalMachine\Root чрез Import-Certificate. Крайният сертификат сам по себе си не доказва верига, така че пропускането на втория внос оставя проверката без основа. Освен наличието, частният ключ трябва да е прикачен и на компютърния акаунт трябва да е разрешено да го чете. Get-ChildItem Cert:\LocalMachine\My изброява какво е пристигнало; сравнявайте отпечатъци, а не субекти, защото почти еднакви субекти са често срещани.
Проверете разширеното използване на ключа, преди да разгърнете. Удостоверяването на клиента е обичайното изискване за самоличност на машина с IKEv2 и другата страна трябва да се доверява на CA, който я е подписал. Самоличност в потребителско хранилище не съществува за връзка в контекста на компютъра.
Създайте профила и неговите маршрути
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 или персонализиран метод изобщо не използва този cmdlet; вместо това приема XML конфигурация за EAP.
rasdial "Office IKEv2" вдига връзката от обвивка, което е най-бързият начин да видите резултата на преден план, а не в журнал на събития.
Какво не доказва свързан тунел
Състоянието „свързано“ покрива IKE обмена и стъпката на удостоверяване и нищо след тях. Поведението на DNS, пътят до частен хост и отдалечената защитна стена все още не са доказани. Работете навън: тунелния адаптер, после търсене на маршрут за частен адрес, после една услуга, за която имате право. Първото наблюдение, което се провали, сочи слоя за проверка.
Когато променяте профил, изтрийте предишния с Remove-VpnConnection -Name "Office IKEv2" -Force, преди да го пресъздадете; иначе остарели настройки и маршрути се запазват след редакцията. Ако все още не се свързва, сравнете отпечатъка, записан в профила, с този в хранилището, защото Windows може да държи препратка към самоличност, която междувременно е заменена под непроменен субект.
Дръжте отпечатъка, EAP метода и списъка с маршрути до профила. Заедно те обясняват по-голямата част от това, което се обърка по-късно.