Gbé profáìlì VPN wọlé nínú PowerShell pẹ̀lú Add-VpnConnection
Add-VpnConnection ń dá profáìlì Windows abínibí nìkan. So irú ọ̀nà abẹ́lẹ̀ àti ìjẹ́rìí pọ̀ mọ́ ẹnubodè, ṣètò ààlà ní ìmọ̀ọ́nú, kí o sì dán àwọn ọ̀nà àti DNS wò.
Kò sí cmdlet tí ń jẹ́ Import-VpnProfile, àti èyí tí ó dà bí ẹni tí ó súnmọ́ jù, Add-VpnConnection, kò ka fáìlì .ovpn tàbí .conf rí. Ó ń kó profáìlì Windows abínibí papọ̀ láti inú àwọn pàrámítà tí o bá fi wọlé, ìdí nìyẹn tí àkọ́kọ́ ibi ìṣàyẹ̀wò níbí fi jẹ́ ọ̀nà fáìlì kì í ṣe ìlà pàṣẹ. Bí ẹnubodè bá ń sọ SSTP, IKEv2, L2TP/IPsec tàbí PPTP, Windows lè ni profáìlì náà àti pé ìyókù àkójọ náà ń ṣiṣẹ́. Bí wọ́n bá fún ọ ní fáìlì OpenVPN tàbí WireGuard, dúró ní ìgbésẹ̀ kìíní: àwọn kíláìẹ̀ntì yẹn ni ó ni àwọn olùgbéwọlé wọn.
Ìgbésẹ̀ 1: Jẹ́rìí profáìlì tí Windows lè ní ní tòótọ́
Lórí ẹ̀rọ náà, ṣe àkọ́kọ́ Get-Command -Module VpnClient. Windows 10, Windows 11 àti Server 2016 tàbí tí ó tẹ̀lé wá pẹ̀lú ètò yìí; bí kò bá sí, kò sí àkọsílẹ̀ tí a dà kó pẹ̀lú rẹ̀ tí yóò mú kí olùgbàlejò yìí gba profáìlì abínibí. Àwọn cmdlet tí ó ṣe pàtàkì ni Add-VpnConnection, Get-VpnConnection àti Remove-VpnConnection, àti àkójọ pàrámítà tí ó wà nínú ìwé ìtọ́kasí Add-VpnConnection tọ́ sí kí a kà án ní kíkún lẹ́ẹ̀kan.
Abínibí túmọ̀ sí pé àkójọ VPN Windows ni ó ń parí ọ̀nà abẹ́lẹ̀. Ìyẹn ní IKEv2, ní ọ̀pọ̀ ìgbà pẹ̀lú ìwé-ẹ̀rí ẹ̀rọ; SSTP, tí í ṣe TLS pẹ̀lú ìjẹ́rìí olùṣàmúlò tàbí ìwé-ẹ̀rí nínú; àti L2TP/IPsec pẹ̀lú kọ́kọ́rọ́ tí a pín ṣáájú. Fáìlì .ovpn jẹ́ àkọsílẹ̀ OpenVPN, kì í ṣe ìsopọ̀ Windows: ó ń gbé àwọn ìtọ́ni bí remote, cipher tàbí tls-auth tí àkójọ Windows kò mọ̀ rárá. .conf WireGuard jẹ́ ìtàn kan náà pẹ̀lú PrivateKey àti AllowedIPs; yíyí ọ̀kan padà sí èkejì kì í ṣe yíyan pàrámítà ṣùgbọ́n ìmúṣẹ ọ̀nà abẹ́lẹ̀ mìíràn.
Ẹ̀ka kẹta wà. Bí alábòójútó bá fún ọ ní àkọsílẹ̀ XML VPNv2 CSP tàbí profáìlì Intune, ìyẹn ni ọ̀nà MDM, tí àkójọ ìpèsè ń lò kì í ṣe Add-VpnConnection. Má ṣe túmọ̀ àwọn orúkọ node yẹn sí pàrámítà PowerShell; dípò bẹ́ẹ̀ béèrè irú ètò tí ń lo XML náà.
Ìgbésẹ̀ 2: So irú ọ̀nà abẹ́lẹ̀ pọ̀ mọ́ ọ̀nà ìjẹ́rìí
-TunnelType àti -AuthenticationMethod jẹ́ pàrámítà ọ̀tọ̀ọ̀tọ̀, ẹnubodè sì kàn ń wo àdàpọ̀ náà. Tí ọ̀kan bá tọ́ tí èkejì kò tọ́, ìwọ yóò ní profáìlì tí kò so mọ́ ohunkóhun, tàbí tí ó dúró nígbà tí ọ̀nà abẹ́lẹ̀ ti gòkè tẹ́lẹ̀. Ṣètò àwọn méjèèjì ní kedere dípò gbígbẹ́kẹ̀lé àkọ́kọ́ tí a yàn fún iṣẹ́ mìíràn.
- IKEv2 pẹ̀lú MachineCertificate: kíláìẹ̀ntì ń gbé ìwé-ẹ̀rí kọ̀mpútà jáde; tún ṣètò -EncryptionLevel Required.
- SSTP pẹ̀lú Eap: ọ̀nà abẹ́lẹ̀ TLS kọ́kọ́, lẹ́yìn náà PEAP/MSCHAPv2 tàbí ìwé-ẹ̀rí nínú EAP. Èyí nílò XML tí ó wà ní ìgbésẹ̀ 3.
- SSTP, L2TP tàbí PPTP pẹ̀lú MSChapv2, Chap tàbí Pap: orúkọ olùṣàmúlò àti ọ̀rọ̀ ìpamọ́ lasan, kò sí EAP blob.
- L2TP pẹ̀lú MSChapv2 àti -Lt2pPsk: PSK ń bo ìdajì IPsec, olùṣàmúlò ń bo PPP; àwọn méjèèjì gbọ́dọ̀ bá olùpín mu.
splat ń tọ́jú àwọn iye ní ibi kan:
$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 ń dá ohun tí Windows ṣẹ̀ṣẹ̀ kọ padà, kí o lè yẹ̀wò rẹ̀ láìsí ìpè kejì. Bí orúkọ bá ti wà tẹ́lẹ̀ cmdlet kọ̀ láti ṣiṣẹ́; -Force ń kọ lé e lórí, èyí tí í ṣe ìdáhùn tí kò tọ́ lórí kọ̀mpútà iṣẹ́ nítorí pé ó ń sọ ohunkóhun tí ẹnìkan fi ọwọ́ ṣètò dànù ní ìdákẹ́jẹ́.
Ìgbésẹ̀ 3: Fi ohun èlò ìjẹ́rìí lé lọ́wọ́ lọ́nà tí ó tọ́
Àwọn ọ̀rọ̀ ìpamọ́, àwọn kọ́kọ́rọ́ tí a pín ṣáájú àti àwọn EAP blob ni ibi tí àwọn àkọsílẹ̀ wọ̀nyí máa ń já. -EapConfigXmlStream fẹ́ XmlDocument, kì í ṣe ọ̀nà fáìlì, nítorí náà kọ́kọ́ ka fáìlì náà kí o sì yí irú rẹ̀ padà. Fífi okun tẹ̀lé ń mú àṣìṣe ìyípadà tí ó dà bí ìṣòro schema jáde, tí ó sì ń mú kí àwọn ènìyàn tún XML tí kò ṣe àṣìṣe rárá kọ.
$eap = [xml](Get-Content -Raw .\peap-mschapv2.xml)
Add-VpnConnection -Name "Corp SSTP" -ServerAddress "sstp.example.com" `
-TunnelType Sstp -AuthenticationMethod Eap `
-EapConfigXmlStream $eap -EncryptionLevel RequiredXML yẹn kì í ṣe ohun tí a lè hùmọ̀ láti inú àfọwọ́kọ blog. Ó ń dárúkọ irú ọ̀nà EAP àti ìjẹ́rìí inú, ẹnubodè sì ń fi àwọn méjèèjì wé ìlànà rẹ̀. Ọ̀nà inú tí kò bá mu yóò já lẹ́yìn tí ìfọwọ́sowọ́pọ̀ TLS ti parí, èyí tí ó dà bí ọ̀rọ̀ ìpamọ́ tí kò tọ́ ní pẹ́kípẹ́kí tí kì í sì í ṣe bẹ́ẹ̀. Gba XML lọ́wọ́ ẹni tí ń ṣakoso ẹnubodè, tàbí kó o jáde láti profáìlì tí ó ti ń ṣiṣẹ́.
Fún IKEv2 ìdajì ìwé-ẹ̀rí jẹ́ wíwá nínú ìpamọ́. -MachineCertificateIssuerFilter ń gba ohun ìwé-ẹ̀rí, Windows sì ń lò ó láti wá ìwé-ẹ̀rí kíláìẹ̀ntì tí ó wúlò nínú LocalMachine\My. Ìwé-ẹ̀rí nílò kọ́kọ́rọ́ àdáni àti ẹ̀wọ̀n tí olùpín gbẹ́kẹ̀lé; bí ọ̀kan bá ṣèé, ìjẹ́rìí yóò já láìsí àlàyé tí ó wúlò, nítorí náà kọ́kọ́ yẹ ìpamọ́ wò:
Get-ChildItem Cert:\LocalMachine\My |
Where-Object { $_.HasPrivateKey -and $_.NotAfter -gt (Get-Date) } |
Select-Object Subject, Issuer, Thumbprint, NotAfterJẹ́ kí àwọn ìkọ̀kọ̀ wà ní ìta fáìlì àkọsílẹ̀. PSK tí a fi lórí ìlà pàṣẹ tàbí tí a fi sínú .ps1 máa ń parí nínú àwọn àkọsílẹ̀, àwọn àkókò tí a fipamọ́ àti àwọn ibi ìkópamọ́ tí a pín, -RememberCredential sì ń tọ́jú ẹ̀rí olùṣàmúlò fún ìgbà mìíràn, yí ìdánwò ẹ̀ẹ̀kan padà sí àṣẹ tí ó wà pẹ́.
Ìgbésẹ̀ 4: Pinnu ààlà kí o tó ṣe ìgbésẹ̀ àkọ́kọ́
Cmdlet kan náà ń kọ sínú ìwé tẹlifóònù méjì ọ̀tọ̀ọ̀tọ̀. Láìsí -AllUserConnection profáìlì jẹ́ tìrẹ ó sì wà lábẹ́ %APPDATA%\Microsoft\Network\Connections\Pbk\rasphone.pbk. Pẹ̀lú rẹ̀, láti ibi ìtẹ̀ tí a gbé sókè, gbogbo àkọsílẹ̀ ń rí profáìlì náà, pẹ̀lú ojú-ìwé ìwọlé, ó sì ń lọ sí %ProgramData%\Microsoft\Network\Connections\Pbk\rasphone.pbk.
Ààlà kì í ṣe ọ̀ṣọ́. Profáìlì gbogbo olùṣàmúlò ni àkọsílẹ̀ iṣẹ́, iṣẹ́ tí a ṣètò àkókò tàbí ipò ṣáájú ìwọlé lè lò; profáìlì olùṣàmúlò kan kò hàn sí àwọn mẹ́ta yẹn. Àwọn ohun náà ni a sì ń kà ní ọ̀nà mìíràn: Get-VpnConnection ń ṣe àkójọ àwọn ẹ̀yà olùṣàmúlò lọ́wọ́lọ́wọ́, Get-VpnConnection -AllUserConnection ń ṣe àkójọ ti gbogbo ẹ̀rọ. Yan ọ̀kan báyìí, kí o sì ka ìyípadà tó ń bọ̀ sí pípa àti àtúndá dípò ṣíṣe àtúnṣe:
# elevated prompt
Remove-VpnConnection -Name "Corp IKEv2" -Force
Add-VpnConnection -Name "Corp IKEv2" -ServerAddress "vpn.example.com" `
-TunnelType Ikev2 -AuthenticationMethod MachineCertificate `
-EncryptionLevel Required -AllUserConnectionÌgbésẹ̀ 5: Dán ohun tí ọ̀nà abẹ́lẹ̀ gbọ́dọ̀ fi jáde wò
Ààmì tí ó so pọ̀ ń jẹ́rìí pé ọ̀nà abẹ́lẹ̀ gòkè, kò fi ohunkóhun mìíràn hàn. Kọ́kọ́ so mọ́ ẹ̀rọ láti ìlà pàṣẹ kí àwọn àṣìṣe lè dé bí ọ̀rọ̀, kì í ṣe bí àpótí ìjíròrò, lẹ́yìn náà ka ohun tí Windows kọ sílẹ̀:
rasdial "Corp IKEv2"
Get-VpnConnection -Name "Corp IKEv2" |
Select-Object Name, ServerAddress, TunnelType, ConnectionStatus, SplitTunneling
Get-NetRoute -DestinationPrefix "0.0.0.0/0"Àwọn àṣìṣe méjì tí àwọn olùṣàmúlò ń ròyìn nígbà tí ipò ṣì ń sọ pé Ó so pọ̀ ni DNS àti ìtọ́nisọ́nà. Yanjú orúkọ inú kí o sì wo olùpín tí ó dáhùn; profáìlì tí kò ní -DnsSuffix lè ṣe ọ̀nà abẹ́lẹ̀ dáadáa tí yóò sì já ní gbogbo ìwádìí intranẹ́ẹ̀tì. Lẹ́yìn náà wo ọ̀nà àkọ́kọ́: nígbà tí a pa split tunneling, ọ̀nà 0.0.0.0/0 tí ó ní metric tí ó kéré jù gbọ́dọ̀ tọ́ka sínú ẹ̀yà VPN, nígbà tí a bá sì tan, kìkì àwọn ìbẹ̀rẹ̀ tí o retí ni ó yẹ kí ó ṣe bẹ́ẹ̀. Bí àwọn méjèèjì bá dà bí ẹni tí ó tọ́ tí ìṣàn náà sì ṣì kú, ìṣòro wà ní ìkọjá profáìlì, nínú ìlànà tàbí nínú àyọ̀ ẹnubodè.
Nígbà tí ìsopọ̀ bá já pátápátá, kóòdù ń dín ìgbésẹ̀ tí o gbọ́dọ̀ padà sí kù:
- 691: ẹnubodè kọ̀ ẹ̀rí náà. Padà sí ìgbésẹ̀ 3, kì í ṣe ọ̀nà abẹ́lẹ̀.
- 809: ìfọwọ́sowọ́pọ̀ IKEv2 kò parí rárá. Yẹ UDP 500 àti 4500 wò, àti ìgbẹ́kẹ̀lé ìwé-ẹ̀rí.
- 789: kọ́kọ́rọ́ tí a pín ṣáájú ti L2TP/IPsec kò sí tàbí kò tọ́.
- 868: orúkọ olùpín kò yanjú. Tún DNS ṣe kí o tó ṣe àtúnṣe profáìlì.
Jẹ́ kí àṣẹ tí ń ṣiṣẹ́ wà lẹ́gbẹ̀ẹ́ àwọn ìṣètò tí ó ń kọ́, kí ẹni tí ó kàn lè tún kọ́ dípò yíyí profáìlì padà láti UI. Bí o bá gbọ́dọ̀ tún kọ́, pa ẹ̀yà náà kí o sì tún dá a pẹ̀lú àwọn pàrámítà kan náà; fífi àtúnṣe wọlé sínú profáìlì tí a ṣètò ní ìdajì ń fi àwọn ọ̀nà àtijọ́ àti ipò ìjẹ́rìí sílẹ̀. Bí fáìlì kò bá sì tí ṣe abínibí rí, padà sí kíláìẹ̀ntì tí ó ni í. .ovpn tí a fi wọ aṣọ profáìlì IKEv2 kì í ṣe ìgbéwọlé, ìwé ìrànlọ́wọ́ ni.