Изградња IKEv2 VPN-а у PowerShell-у са сертификатом рачунара
Положај сертификата, префикси рута и EAP акредитиви су места на којима IKEv2 скрипта пада. Изградите тунел у PowerShell-у и проверите сваку фазу засебно.
Windows долази са IKEv2 клијентом којим PowerShell управља од почетка до краја, па исправан тунел не треба ни GUI ни софтвер треће стране. Скоро сваки неуспех долази са три места: где је сертификат завршио, како су записани префикси рута и шта изабрана 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 заједно покривају исти адресни простор. Усмеравање префикса такође не даје ништа на удаљеном firewall-у, па листа префикса и политика firewall-а остају одвојени документи.
Акредитиви припадају методи аутентификације
Профил са сертификатом рачунара уопште не треба корисничку тајну, док профил EAP-MSCHAPv2 треба. За други случај модул VPNCredentialsHelper пружа Set-VpnConnectionUsernamePassword, и тражи обичан текст: $cred.Password је SecureString, па га прво распакујте помоћу GetNetworkCredential().Password. Инсталирајте модул где год се наредба извршава, не само на радној станици на којој је састављена. EAP-TLS или прилагођена метода уопште не користе овај cmdlet; уместо тога прихватају EAP конфигурациони XML.
rasdial "Office IKEv2" подиже везу из љуске, што је најбржи начин да резултат видите у првом плану, а не у дневнику догађаја.
Шта повезани тунел не доказује
Статус повезаности покрива IKE размену и корак аутентификације и ништа више. Понашање DNS-а, пут до приватног хоста и удаљени firewall још су недоказани. Радите према споља: адаптер тунела, затим тражење руте за приватну адресу, затим једна услуга коју смете користити. Прво опажање које падне означава слој који треба истражити.
Када мењате профил, обришите претходни помоћу Remove-VpnConnection -Name "Office IKEv2" -Force пре него што га поново направите; иначе застарела подешавања и руте остају кроз измену. Ако се и даље не повезује, упоредите отисак записан у профилу са оним у складишту, јер Windows може да држи референцу на идентитет који је у међувремену замењен под непромењеним субјектом.
Држите отисак, EAP методу и листу рута уз профил. Заједно објашњавају већину онога што касније пође по злу.