Saltar al contenido principal

Desplegar con perfiles .mobileconfig

Crea perfiles .mobileconfig de Apple que instalen túneles WireGuard de Vylos como entradas del sistema gestionadas y de solo lectura.

Elegir un tipo de perfil

ObjetivoTipo de payload VPNRequisito de entrega
Enrutar el tráfico admisible del dispositivo por un túnelcom.apple.vpn.managedInstalarlo directamente o entregarlo mediante MDM.
Enrutar las apps gestionadas asignadas mediante Vyloscom.apple.vpn.managed.applayerMDM es obligatorio para las asignaciones de apps en producción, aunque el perfil VPN se haya instalado directamente.

Ambos tipos de perfil crean un túnel gestionado en Vylos. Son independientes de la Configuración de app gestionada, que controla el comportamiento de la app, pero no instala una VPN.

Dónde se configura cada ajuste

FunciónUbicación en el perfil
Interfaz y peers de WireGuardVendorConfig.WgQuickConfigBase64 o WgQuickConfig
DNS dividido y dominios de búsquedaVendorConfig.VylosConfigBase64 o VylosConfig
Activación automáticaVPN.OnDemandEnabled y VPN.OnDemandRules
Bloqueo de conexiones sin la VPNVPN.IncludeAllNetworks
Activación por appOnDemandMatchAppEnabled y VPNUUID en el nivel superior
Restricciones y preferencias de VylosConfiguración de app gestionada, no el perfil VPN

Los ejemplos siguientes utilizan el formato de lista de propiedades de Apple. Si el MDM muestra un formulario, reproduce la misma jerarquía de diccionarios y los mismos tipos; no conviertas los nombres con puntos en claves literales.

Transporte de la configuración de WireGuard

Coloca exactamente una de las siguientes claves dentro del diccionario VendorConfig del payload VPN:

ClaveValor
WgQuickConfigContenido UTF-8 multilínea sin modificar de un archivo .conf de WireGuard.
WgQuickConfigBase64Codificación Base64 en una sola línea del mismo contenido UTF-8 del archivo .conf.

Utiliza WgQuickConfigBase64 cuando un campo del MDM no conserve los saltos de línea. Vylos rechaza los payloads que contienen ambas claves porque no podría determinar cuál es la fuente prevista.

Base64 es una codificación de transporte, no un cifrado. El valor codificado es el propio texto del archivo .conf: no es un archivo .vylos, un archivo ZIP ni una ruta a ninguno de ellos.

En macOS, este comando copia al portapapeles un valor listo para pegar:

bash
base64 -i "tunnel.conf" | tr -d '\n' | pbcopy

base64 codifica el archivo, tr -d '\n' elimina los saltos de línea de la salida codificada y pbcopy coloca el resultado en el portapapeles. En un editor de pares clave-valor del MDM, pega el resultado como WgQuickConfigBase64 y omite WgQuickConfig.

Transporte de los ajustes de DNS dividido

Cuando el túnel gestionado utilice DNS dividido, añade exactamente una de estas claves opcionales al mismo diccionario VendorConfig:

ClaveValor
VylosConfigTexto UTF-8 multilínea de los ajustes de Vylos en formato settings.conf.
VylosConfigBase64Codificación Base64 en una sola línea del mismo texto.

Utiliza VylosConfigBase64 con MDM para que el editor de pares clave-valor no elimine ni modifique los saltos de línea. Crea un archivo como este:

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

Después copia el valor codificado en macOS:

bash
base64 -i "settings.conf" | tr -d '\n' | pbcopy

Pégalo como VylosConfigBase64. La configuración de WireGuard también debe incluir al menos un servidor DNS en [Interface]. Domains selecciona las consultas que usan esos servidores, SearchDomains añade sufijos a los nombres de host cortos y AllowedIPs sigue controlando el enrutamiento del tráfico.

Bloqueo de conexiones para túneles gestionados

Utiliza la clave de Apple IncludeAllNetworks dentro del diccionario VPN para dar comportamiento de bloqueo de conexiones a un túnel gestionado para todo el dispositivo:

xml
<key>IncludeAllNetworks</key>
<integer>1</integer>

Colócala junto a RemoteAddress y AuthenticationMethod. Configura la activación automática por separado mediante OnDemandRules.

IncludeAllNetworks no amplía las rutas AllowedIPs de WireGuard. Impide que el tráfico normal evite la VPN, pero AllowedIPs sigue determinando qué destinos puede transportar cada peer. Utiliza 0.0.0.0/0 y ::/0 para un túnel completo de doble pila; las rutas parciales se convierten en una lista de permitidos estricta y las rutas también deben cubrir cada servidor DNS de [Interface].

Apple mantiene excepciones para el tráfico de control de red y determinados servicios del dispositivo. Revisa el campo IncludeAllNetworks del payload VPN antes del despliegue.

Perfil para todo el dispositivo

Utiliza com.apple.vpn.managed para un túnel convencional que abarque todo el dispositivo. Sustituye todos los identificadores, UUID, claves, direcciones y endpoints de ejemplo antes del despliegue.

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 únicos con uuidgen. Cada túnel adicional es otro diccionario com.apple.vpn.managed dentro del array PayloadContent exterior.

Para utilizar un valor de una sola línea, sustituye la clave WgQuickConfig de ejemplo y su cadena multilínea por:

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

Sustituye también la clave VylosConfig y su cadena multilínea de la misma forma:

xml
<key>VylosConfigBase64</key>
<string>BASE64_ENCODED_SETTINGS_CONF</string>

Perfil de VPN por app

Utiliza com.apple.vpn.managed.applayer con el proveedor de túnel de paquetes de Vylos para enrutar WireGuard por app. El payload admite las mismas alternativas WgQuickConfig y WgQuickConfigBase64, además de los ajustes opcionales de DNS dividido en VylosConfig o VylosConfigBase64.

AjusteValor
PayloadTypecom.apple.vpn.managed.applayer
VPNTypeVPN
VPNSubTypeio.cbnventures.vylos
VPN.ProviderBundleIdentifierio.cbnventures.vylos.packet-tunnel
VPN.ProviderTypepacket-tunnel
VPNUUIDValor único que comparten todas las apps gestionadas asignadas a esta VPN.
OnDemandMatchAppEnabledtrue para conectarse cuando una app asignada inicia tráfico de red.

El siguiente diccionario puede sustituir el diccionario VPN para todo el dispositivo dentro del 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 instalación de este payload crea la VPN, pero no le asigna aplicaciones. Continúa en Configurar la VPN por app para asociar apps gestionadas con la misma VPNUUID y entender los campos de enrutamiento compatibles.

Instalar y eliminar perfiles

Entrega los perfiles mediante MDM para centralizar su propiedad, sustitución y eliminación. Si no se dispone de MDM, un usuario también puede instalar directamente un perfil para todo el dispositivo y eliminarlo después desde los ajustes de gestión de perfiles del sistema operativo.

Vylos considera ambos métodos como gestionados por el perfil y de solo lectura. Para cambiar el túnel, se debe actualizar o eliminar el perfil, no editarlo dentro de Vylos.

Consulta Desplegar túneles gestionados para conocer la experiencia resultante en la app. Para ver el contrato completo de los payloads de Apple, consulta las referencias de VPN y AppLayerVPN.