VPN պրոֆիլի ներմուծում PowerShell-ում Add-VpnConnection-ով
Add-VpnConnection-ը ստեղծում է միայն Windows-ի բնիկ պրոֆիլներ։ Համապատասխանեցրեք թունելի և նույնականացման զույգը դարպասին, գիտակցաբար սահմանեք շրջանակը, ապա ստուգեք երթուղիներն ու DNS-ը։
Import-VpnProfile cmdlet գոյություն չունի, իսկ ամենամոտը՝ Add-VpnConnection-ը, երբեք չի կարդում .ovpn կամ .conf ֆայլ։ Այն հավաքում է Windows-ի բնիկ պրոֆիլ ձեր տրամադրած պարամետրերից, և դրա համար էլ այստեղ առաջին ստուգման կետը ֆայլի ձևաչափն է, ոչ թե հրամանի տողը։ Եթե դարպասը խոսում է SSTP, IKEv2, L2TP/IPsec կամ PPTP, Windows-ը կարող է տիրապետել պրոֆիլին, և ցանկի մնացած մասը գործում է։ Եթե ձեզ տվել են OpenVPN կամ WireGuard ֆայլ, կանգ առեք առաջին քայլին, այդ հաճախորդներն ունեն իրենց ներմուծիչները։
Քայլ 1. հաստատեք, թե որ պրոֆիլին կարող է իրականում տիրապետել Windows-ը
Ամեն ինչից առաջ մեքենայի վրա գործարկեք Get-Command -Module VpnClient հրամանը։ Windows 10-ը, Windows 11-ը և Server 2016-ը կամ ավելի նորը տալիս են այս մոդուլը, եթե այն բացակայում է, ոչ մի պատճենված սկրիպտ չի ստիպի այս հոսթին ընդունել բնիկ պրոֆիլ։ Կարևոր cmdlet-ներն են Add-VpnConnection-ը, Get-VpnConnection-ը և Remove-VpnConnection-ը, և Add-VpnConnection-ի տեղեկագրի պարամետրերի ցանկը արժե մեկ անգամ ամբողջությամբ կարդալ։
Բնիկ նշանակում է, որ Windows-ի VPN կույտն է ավարտում թունելը։ Դա ներառում է IKEv2-ը, հաճախ մեքենայի վկայագրով, SSTP-ն, որը TLS է՝ ներսում օգտվողի կամ վկայագրի նույնականացմամբ, և L2TP/IPsec-ը՝ նախապես համօգտագործված բանալիով։ .ovpn ֆայլը OpenVPN սկրիպտ է, ոչ Windows միացում, այն կրում է remote, cipher կամ tls-auth հրահանգներ, որոնց մասին Windows-ի կույտը պատկերացում չունի։ WireGuard-ի .conf-ը նույն պատմությունն է PrivateKey-ով և AllowedIPs-ով, մեկը մյուսի վերածելը պարամետրի ընտրություն չէ, այլ թունելի այլ իրականացում։
Կա նաև երրորդ ճյուղ։ Եթե ադմինիստրատորը ձեզ տալիս է VPNv2 CSP XML փաստաթուղթ կամ Intune պրոֆիլ, դա MDM ուղին է, որը կիրառում է մատակարարման կույտը, ոչ Add-VpnConnection-ը։ Մի թարգմանեք այդ հանգույցների անունները PowerShell պարամետրերի, փոխարենը հարցրեք, թե որ մեխանիզմն է կիրառում XML-ը։
Քայլ 2. զուգակցեք թունելի տեսակը նույնականացման եղանակի հետ
-TunnelType-ը և -AuthenticationMethod-ը առանձին պարամետրեր են, և դարպասին հետաքրքրում է միայն զուգակցումը։ Մեկը ճիշտ, մյուսը սխալ, և դուք ստանում եք պրոֆիլ, որը ոչ մի տեղ չի միանում կամ կախվում է, երբ թունելն արդեն բարձրացած է։ Սահմանեք երկուսն էլ բացահայտ, այլ ոչ թե վստահեք լռելյայն արժեքի, որն ընտրվել է այլ ծառայության համար։
- IKEv2-ը MachineCertificate-ով, հաճախորդը ներկայացնում է համակարգչի վկայագիր, սահմանեք նաև -EncryptionLevel Required։
- SSTP-ն Eap-ով, նախ TLS թունելը, ապա PEAP/MSCHAPv2 կամ վկայագիր EAP-ի ներսում։ Սա պահանջում է 3-րդ քայլի XML-ը։
- SSTP-ն, L2TP-ն կամ PPTP-ն MSChapv2-ով, Chap-ով կամ Pap-ով, պարզ օգտանուն և գաղտնաբառ, առանց EAP բլոքի։
- L2TP-ն MSChapv2-ով և -Lt2pPsk-ով, PSK-ն ծածկում է IPsec կեսը, օգտվողը՝ PPP-ն, երկուսն էլ պետք է համապատասխանեն սերվերին։
splat-ը արժեքները պահում է մեկ տեղում՝
$p = @{
Name = "Corp IKEv2"
ServerAddress = "vpn.example.com"
TunnelType = "Ikev2"
AuthenticationMethod = "MachineCertificate"
EncryptionLevel = "Required"
SplitTunneling = $false
DnsSuffix = "corp.example.com"
}
Add-VpnConnection @p -PassThru-PassThru-ն վերադարձնում է այն օբյեկտը, որը Windows-ը հենց նոր գրեց, այնպես որ կարող եք ստուգել այն առանց երկրորդ կանչի։ Եթե անունն արդեն կա, cmdlet-ը հրաժարվում է աշխատել, -Force-ը վերագրում է այն, և դա սխալ ռեֆլեքս է արտադրական նոութբուքի վրա, քանի որ լուռ դեն է նետում այն ամենը, ինչ ինչ-որ մեկը ձեռքով կարգավորել է։
Քայլ 3. ճիշտ հանձնեք հավատարմագրային նյութը
Գաղտնաբառերը, նախապես համօգտագործված բանալիները և EAP բլոքերը այն տեղն են, որտեղ այս սկրիպտները սովորաբար կոտրվում են։ -EapConfigXmlStream-ը ուզում է XmlDocument, ոչ թե ուղի, ուստի նախ կարդացեք և փոխակերպեք ֆայլը։ Տող փոխանցելը տալիս է փոխակերպման սխալ, որը նման է սխեմայի խնդրի և մարդկանց ուղարկում է վերաշարադրելու XML, որը երբեք սխալ չի եղել։
$eap = [xml](Get-Content -Raw .\peap-mschapv2.xml)
Add-VpnConnection -Name "Corp SSTP" -ServerAddress "sstp.example.com" `
-TunnelType Sstp -AuthenticationMethod Eap `
-EapConfigXmlStream $eap -EncryptionLevel RequiredԱյդ XML-ը բլոգի հատվածից հորինելու բան չէ։ Այն անվանում է EAP մեթոդի տեսակը և ներքին նույնականացումը, և դարպասը երկուսն էլ համեմատում է իր քաղաքականության հետ։ Չհամապատասխանող ներքին մեթոդը ձախողվում է TLS ձեռքսեղմումն ավարտվելուց հետո, ինչը ճիշտ սխալ գաղտնաբառի տպավորություն է թողնում և այդպիսը չէ։ Վերցրեք XML-ը նրանից, ով ղեկավարում է դարպասը, կամ արտահանեք այն արդեն աշխատող պրոֆիլից։
IKEv2-ի համար վկայագրի կեսը պահոցում որոնում է։ -MachineCertificateIssuerFilter-ը վերցնում է վկայագրի օբյեկտ, և Windows-ը դրանով փնտրում է օգտագործելի հաճախորդի վկայագիր LocalMachine\My-ում։ Վկայագրին պետք է մասնավոր բանալի և շղթա, որին սերվերը վստահում է, և երբ դրանցից մեկը բացակայում է, նույնականացումը ձախողվում է առանց օգտակար մանրամասնության, ուստի նախ ստուգեք պահոցը՝
Get-ChildItem Cert:\LocalMachine\My |
Where-Object { $_.HasPrivateKey -and $_.NotAfter -gt (Get-Date) } |
Select-Object Subject, Issuer, Thumbprint, NotAfterԳաղտնիքները պահեք սկրիպտի ֆայլից դուրս։ Հրամանի տողում տրված կամ .ps1-ում թխված PSK-ն հայտնվում է արձանագրություններում, պահված նստաշրջաններում և համօգտագործված պահոցներում, իսկ -RememberCredential-ը պահում է օգտվողի հավատարմագրերը ավելի ուշ օգտագործելու համար՝ մեկանգամյա թեստը դարձնելով երկարաժամկետ թույլտվություն։
Քայլ 4. որոշեք շրջանակը մինչ առաջին գործարկումը
Նույն cmdlet-ը գրում է երկու տարբեր հեռախոսագրքերի մեջ։ Առանց -AllUserConnection-ի պրոֆիլը ձերն է և ապրում է %APPDATA%\Microsoft\Network\Connections\Pbk\rasphone.pbk-ի տակ։ Դրա հետ, բարձրացված հուշման միջից, պրոֆիլը գնում է %ProgramData%\Microsoft\Network\Connections\Pbk\rasphone.pbk և տեսանելի է բոլոր հաշիվներին, ներառյալ մուտքի էկրանին։
Շրջանակը կոսմետիկ չէ։ Բոլոր օգտվողների պրոֆիլն այն է, ինչը ծառայության հաշիվը, պլանավորված առաջադրանքը կամ մինչ մուտքը սցենարը կարող են օգտագործել, մեկ օգտվողի պրոֆիլն անտեսանելի է բոլոր երեքի համար։ Օբյեկտները նույնպես տարբեր կերպ են կարդացվում, Get-VpnConnection-ը թվարկում է ընթացիկ օգտվողի գրառումները, Get-VpnConnection -AllUserConnection-ը՝ ամբողջ մեքենայի։ Ընտրեք մեկը հիմա, և հետագա փոփոխությունը համարեք ջնջում ու վերստեղծում, ոչ թե խմբագրում՝
# elevated prompt
Remove-VpnConnection -Name "Corp IKEv2" -Force
Add-VpnConnection -Name "Corp IKEv2" -ServerAddress "vpn.example.com" `
-TunnelType Ikev2 -AuthenticationMethod MachineCertificate `
-EncryptionLevel Required -AllUserConnectionՔայլ 5. փորձարկեք, թե ինչ պետք է իրականում մատակարարի թունելը
Միացված պատկերակը ապացուցում է, որ թունելը բարձրացել է, և ոչ ավելին։ Նախ միացեք հրամանի տողից, որպեսզի խափանումները գան որպես տեքստ, ոչ երկխոսության պատուհան, ապա կարդացեք, թե ինչ գրանցեց Windows-ը՝
rasdial "Corp IKEv2"
Get-VpnConnection -Name "Corp IKEv2" |
Select-Object Name, ServerAddress, TunnelType, ConnectionStatus, SplitTunneling
Get-NetRoute -DestinationPrefix "0.0.0.0/0"Երկու խափանումները, որոնց մասին օգտվողները հայտնում են, երբ կարգավիճակը դեռ ասում է Connected, DNS-ն և երթուղումն են։ Լուծեք ներքին անուն և ստուգեք, թե որ սերվերն է պատասխանել, առանց -DnsSuffix-ի պրոֆիլը կարող է կատարյալ թունել անել և այնուամենայնիվ ձախողվել ինտրանետի ամեն որոնման ժամանակ։ Այնուհետև նայեք կանխադրված երթուղուն. բաժանված թունելավորումն անջատված վիճակում ամենացածր մետրիկով 0.0.0.0/0 երթուղին պետք է ուղղված լինի VPN ինտերֆեյսին, իսկ միացված վիճակում՝ միայն այն նախածանցերը, որոնք դուք սպասում եք։ Եթե երկուսն էլ ճիշտ են թվում, և երթևեկությունը դեռ մահանում է, խնդիրը պրոֆիլից այն կողմ է, քաղաքականության կամ դարպասի զտիչի մեջ։
Երբ միացումը լիովին ձախողվում է, կոդը սահմանափակում է այն քայլը, որին պետք է վերադառնալ՝
- 691: դարպասը մերժեց հավատարմագրերը։ Վերադարձեք 3-րդ քայլին, ոչ թե թունելին։
- 809: IKEv2 ձեռքսեղմումը երբեք չավարտվեց։ Ստուգեք UDP 500-ը և 4500-ը, և վկայագրի վստահությունը։
- 789: L2TP/IPsec նախապես համօգտագործված բանալին բացակայում է կամ սխալ է։
- 868: սերվերի անունը չլուծվեց։ Ուղղեք DNS-ը նախքան պրոֆիլը խմբագրելը։
Աշխատող հրամանը պահեք այն կարգավորումների կողքին, որոնք այն կոդավորում է, որպեսզի հաջորդ մարդը կարողանա վերակառուցել՝ փոխանակ ինտերֆեյսից պրոֆիլը հակադարձ ինժեներիայի ենթարկելու։ Եթե ստիպված եք վերակառուցել, ջնջեք գրառումը և նույն պարամետրերով նորից ստեղծեք այն, կիսով չափ կարգավորված պրոֆիլը կարկատելը թողնում է հնացած երթուղիներ և նույնականացման վիճակ։ Իսկ եթե ֆայլը երբեք բնիկ չի եղել, վերադարձեք այն հաճախորդին, որը տիրապետում է դրան։ IKEv2 պրոֆիլի ձևով զարդարված .ovpn-ը ներմուծում չէ, աջակցության տոմս է։