Skip to main content

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

ObjectiuTipus de càrrega VPNRequisit de distribució
Encaminar el trànsit admès del dispositiu per un túnelcom.apple.vpn.managedInstal·lar-lo directament o distribuir-lo mitjançant MDM.
Encaminar les apps gestionades assignades mitjançant Vyloscom.apple.vpn.managed.applayerCal 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 WireGuardVendorConfig.WgQuickConfigBase64 o WgQuickConfig
DNS dividit i dominis de cercaVendorConfig.VylosConfigBase64 o VylosConfig
Activació automàticaVPN.OnDemandEnabled i VPN.OnDemandRules
Bloqueig de connexions sense VPNVPN.IncludeAllNetworks
Activació per appOnDemandMatchAppEnabled i VPNUUID al nivell superior
Restriccions i preferències de VylosConfiguració 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:

ClauValor
WgQuickConfigContingut UTF-8 multilínia sense modificar d’un fitxer .conf de WireGuard.
WgQuickConfigBase64Codificació 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:

bash
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:

ClauValor
VylosConfigText UTF-8 multilínia dels ajustos de Vylos en format settings.conf.
VylosConfigBase64Codificació 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:

settings.conf
ini
[SplitDNS]
Domains = corp.example.com, *.internal.example.com
SearchDomains = example.com

Després copia el valor codificat a macOS:

bash
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:

xml
<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
<?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:

xml
<key>WgQuickConfigBase64</key>
<string>BASE64_ENCODED_CONF</string>

Substitueix també la clau VylosConfig i la cadena multilínia de la mateixa manera:

xml
<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
PayloadTypecom.apple.vpn.managed.applayer
VPNTypeVPN
VPNSubTypeio.cbnventures.vylos
VPN.ProviderBundleIdentifierio.cbnventures.vylos.packet-tunnel
VPN.ProviderTypepacket-tunnel
VPNUUIDValor únic compartit amb cada app gestionada assignada a aquesta VPN.
OnDemandMatchAppEnabledtrue 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:

xml
<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.