Desplegar amb perfils .mobileconfig
Crea perfils .mobileconfig d’Apple que instal·len túnels WireGuard de Vylos com a entrades de sistema gestionades i de només lectura.
Triar un tipus de perfil
| Objectiu | Tipus de càrrega VPN | Requisit de distribució |
|---|---|---|
| Encaminar el trànsit admès del dispositiu per un túnel | com.apple.vpn.managed | Instal·lar-lo directament o distribuir-lo mitjançant MDM. |
| Encaminar les apps gestionades assignades mitjançant Vylos | com.apple.vpn.managed.applayer | Cal MDM per a les assignacions d’apps en producció, encara que el perfil VPN s’hagi instal·lat directament. |
Tots dos tipus de perfil creen un túnel gestionat a Vylos. Són independents de la Configuració d’app gestionada, que controla el comportament de l’app però no instal·la cap VPN.
On va cada ajust
| Funció | Ubicació al perfil |
|---|---|
| Interfície i peers de WireGuard | VendorConfig.WgQuickConfigBase64 o WgQuickConfig |
| DNS dividit i dominis de cerca | VendorConfig.VylosConfigBase64 o VylosConfig |
| Activació automàtica | VPN.OnDemandEnabled i VPN.OnDemandRules |
| Bloqueig de connexions sense VPN | VPN.IncludeAllNetworks |
| Activació per app | OnDemandMatchAppEnabled i VPNUUID al nivell superior |
| Restriccions i preferències de Vylos | Configuració d’app gestionada, no el perfil VPN |
Els exemples següents utilitzen el format de llista de propietats d’Apple. Si l’MDM mostra un formulari, reprodueix la mateixa jerarquia de diccionaris i els mateixos tipus; no converteixis els noms amb punts en claus literals.
Transportar la configuració de WireGuard
Col·loca exactament una de les claus següents dins del diccionari VendorConfig de la càrrega VPN:
| Clau | Valor |
|---|---|
WgQuickConfig | Contingut UTF-8 multilínia sense modificar d’un fitxer .conf de WireGuard. |
WgQuickConfigBase64 | Codificació Base64 en una sola línia del mateix contingut UTF-8 del fitxer .conf. |
Utilitza WgQuickConfigBase64 quan un camp de l’MDM no conservi els salts de línia. Vylos rebutja una càrrega que contingui totes dues claus perquè la font prevista seria ambigua.
Base64 és una codificació de transport, no un xifratge. El valor codificat és el text del fitxer .conf: no és cap fitxer .vylos, cap arxiu ZIP ni cap camí cap a aquests elements.
Al macOS, aquesta ordre copia un valor a punt per enganxar al porta-retalls:
base64 -i "tunnel.conf" | tr -d '\n' | pbcopy
base64 codifica el fitxer, tr -d '\n' elimina els salts de línia de la sortida codificada i pbcopy posa el resultat al porta-retalls. En un editor clau-valor de l’MDM, enganxa el resultat com a WgQuickConfigBase64 i omet WgQuickConfig.
Transport dels ajustos de DNS dividit
Quan el túnel gestionat utilitzi DNS dividit, afegeix exactament una de les claus opcionals següents al mateix diccionari VendorConfig:
| Clau | Valor |
|---|---|
VylosConfig | Text UTF-8 multilínia dels ajustos de Vylos en format settings.conf. |
VylosConfigBase64 | Codificació Base64 en una sola línia del mateix text. |
Utilitza VylosConfigBase64 amb MDM perquè l’editor de clau i valor no elimini ni modifiqui els salts de línia. Crea un fitxer com aquest:
[SplitDNS]
Domains = corp.example.com, *.internal.example.com
SearchDomains = example.com
Després copia el valor codificat a macOS:
base64 -i "settings.conf" | tr -d '\n' | pbcopy
Enganxa’l com a VylosConfigBase64. La configuració de WireGuard també ha d’incloure almenys un servidor DNS a [Interface]. Domains selecciona les consultes que utilitzen aquests servidors, SearchDomains afegeix sufixos als noms d’amfitrió curts i AllowedIPs continua controlant l’encaminament del trànsit.
Tallafoc de connexió per a túnels gestionats
Utilitza la clau d’Apple IncludeAllNetworks dins del diccionari VPN per donar comportament de tallafoc de connexió a un túnel gestionat de tot el dispositiu:
<key>IncludeAllNetworks</key>
<integer>1</integer>
Col·loca-la al costat de RemoteAddress i AuthenticationMethod. Configura l’activació automàtica per separat amb OnDemandRules.
IncludeAllNetworks no amplia les rutes AllowedIPs de WireGuard. Impedeix que el trànsit normal eviti la VPN, però AllowedIPs continua decidint quines destinacions pot transportar cada peer. Utilitza 0.0.0.0/0 i ::/0 per a un túnel complet de doble pila; les rutes parcials es converteixen en una llista permesa estricta i les rutes també han de cobrir cada servidor DNS de [Interface].
Apple manté excepcions per al trànsit de control de xarxa i alguns serveis del dispositiu. Revisa el camp IncludeAllNetworks del payload VPN abans del desplegament.
Perfil per a tot el dispositiu
Utilitza com.apple.vpn.managed per a un túnel convencional que cobreixi tot el dispositiu. Substitueix tots els identificadors, UUID, claus, adreces i endpoints d’exemple abans del desplegament.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>PayloadDisplayName</key>
<string>Vylos Managed Tunnel</string>
<key>PayloadIdentifier</key>
<string>com.example.vylos.vpn</string>
<key>PayloadType</key>
<string>Configuration</string>
<key>PayloadUUID</key>
<string>00000000-0000-0000-0000-000000000003</string>
<key>PayloadVersion</key>
<integer>1</integer>
<key>PayloadContent</key>
<array>
<dict>
<key>PayloadDisplayName</key>
<string>VPN</string>
<key>PayloadIdentifier</key>
<string>com.example.vylos.vpn.corp</string>
<key>PayloadType</key>
<string>com.apple.vpn.managed</string>
<key>PayloadUUID</key>
<string>00000000-0000-0000-0000-000000000004</string>
<key>PayloadVersion</key>
<integer>1</integer>
<key>UserDefinedName</key>
<string>Corporate VPN</string>
<key>VPNType</key>
<string>VPN</string>
<key>VPNSubType</key>
<string>io.cbnventures.vylos</string>
<key>VendorConfig</key>
<dict>
<key>WgQuickConfig</key>
<string>[Interface]
PrivateKey = AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=
Address = 10.0.0.2/32
DNS = 10.0.0.1
[Peer]
PublicKey = BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB=
AllowedIPs = 0.0.0.0/0
Endpoint = vpn.example.com:51820
PersistentKeepalive = 25
</string>
<key>VylosConfig</key>
<string>[SplitDNS]
Domains = corp.example.com, *.internal.example.com
SearchDomains = example.com
</string>
</dict>
<key>VPN</key>
<dict>
<key>RemoteAddress</key>
<string>vpn.example.com</string>
<key>AuthenticationMethod</key>
<string>Password</string>
</dict>
</dict>
</array>
</dict>
</plist>
Genera UUID únics amb uuidgen. Cada túnel addicional és un altre diccionari com.apple.vpn.managed dins de l’array exterior PayloadContent.
Per utilitzar un valor d’una sola línia, substitueix la clau WgQuickConfig d’exemple i la cadena multilínia per:
<key>WgQuickConfigBase64</key>
<string>BASE64_ENCODED_CONF</string>
Substitueix també la clau VylosConfig i la cadena multilínia de la mateixa manera:
<key>VylosConfigBase64</key>
<string>BASE64_ENCODED_SETTINGS_CONF</string>
Perfil VPN per app
Utilitza com.apple.vpn.managed.applayer amb el proveïdor de túnel de paquets de Vylos per encaminar WireGuard per app. La càrrega admet les mateixes alternatives WgQuickConfig i WgQuickConfigBase64, més els ajustos opcionals de DNS dividit a VylosConfig o VylosConfigBase64.
| Configuració | Valor |
|---|---|
PayloadType | com.apple.vpn.managed.applayer |
VPNType | VPN |
VPNSubType | io.cbnventures.vylos |
VPN.ProviderBundleIdentifier | io.cbnventures.vylos.packet-tunnel |
VPN.ProviderType | packet-tunnel |
VPNUUID | Valor únic compartit amb cada app gestionada assignada a aquesta VPN. |
OnDemandMatchAppEnabled | true per connectar-se quan una app assignada inicia trànsit de xarxa. |
El diccionari següent pot substituir el diccionari VPN de tot el dispositiu dins de l’array PayloadContent del perfil:
<dict>
<key>PayloadDisplayName</key>
<string>Vylos Per-App VPN</string>
<key>PayloadIdentifier</key>
<string>com.example.vylos.vpn.per-app</string>
<key>PayloadType</key>
<string>com.apple.vpn.managed.applayer</string>
<key>PayloadUUID</key>
<string>00000000-0000-0000-0000-000000000005</string>
<key>PayloadVersion</key>
<integer>1</integer>
<key>UserDefinedName</key>
<string>Corporate Per-App VPN</string>
<key>VPNType</key>
<string>VPN</string>
<key>VPNSubType</key>
<string>io.cbnventures.vylos</string>
<key>VPNUUID</key>
<string>00000000-0000-0000-0000-000000000006</string>
<key>OnDemandMatchAppEnabled</key>
<true/>
<key>VendorConfig</key>
<dict>
<key>WgQuickConfigBase64</key>
<string>BASE64_ENCODED_CONF</string>
<key>VylosConfigBase64</key>
<string>BASE64_ENCODED_SETTINGS_CONF</string>
</dict>
<key>VPN</key>
<dict>
<key>AuthenticationMethod</key>
<string>Password</string>
<key>RemoteAddress</key>
<string>vpn.example.com</string>
<key>ProviderBundleIdentifier</key>
<string>io.cbnventures.vylos.packet-tunnel</string>
<key>ProviderType</key>
<string>packet-tunnel</string>
<key>OnDemandEnabled</key>
<integer>1</integer>
</dict>
</dict>
La instal·lació d’aquesta càrrega crea la VPN però no hi assigna aplicacions. Continua amb Configurar la VPN per app per associar apps gestionades amb el mateix VPNUUID i entendre els camps d’encaminament compatibles.
Instal·lar i eliminar perfils
Distribueix els perfils mitjançant MDM per centralitzar-ne la propietat, la substitució i l’eliminació. Si no hi ha MDM, un usuari també pot instal·lar directament un perfil per a tot el dispositiu i eliminar-lo més tard des de la configuració de gestió de perfils del sistema operatiu.
Vylos considera tots dos mètodes com a gestionats pel perfil i de només lectura. La manera admesa de canviar el túnel és actualitzar o eliminar el perfil, no editar-lo dins de Vylos.
Consulta Desplegar túnels gestionats per veure l’experiència resultant a l’app. Per al contracte complet de càrrega d’Apple, consulta les referències de VPN i AppLayerVPN.