Zum Hauptinhalt springen

Bereitstellung mit .mobileconfig-Profilen

Erstellen Sie Apple-.mobileconfig-Profile, die Vylos-WireGuard-Tunnel als schreibgeschützte, vom Profil verwaltete Systemeinträge installieren.

Profiltyp auswählen

ZielVPN-Payload-TypVoraussetzung für die Bereitstellung
Geeigneten Geräteverkehr durch einen Tunnel leitencom.apple.vpn.managedDirekt installieren oder über MDM verteilen.
Zugewiesene verwaltete Apps durch Vylos leitencom.apple.vpn.managed.applayerFür produktive App-Zuweisungen ist MDM erforderlich, auch wenn das VPN-Profil selbst direkt installiert wurde.

Beide Profiltypen erstellen in Vylos einen verwalteten Tunnel. Sie sind von der verwalteten App-Konfiguration getrennt. Diese steuert das Verhalten der App, installiert aber kein VPN.

Wo die einzelnen Einstellungen hingehören

FunktionPosition im Profil
WireGuard-Schnittstelle und PeersVendorConfig.WgQuickConfigBase64 oder WgQuickConfig
Split-DNS und SuchdomainsVendorConfig.VylosConfigBase64 oder VylosConfig
Automatische AktivierungVPN.OnDemandEnabled und VPN.OnDemandRules
Verbindungen ohne VPN blockierenVPN.IncludeAllNetworks
App-bezogene AktivierungOnDemandMatchAppEnabled und VPNUUID auf oberster Ebene
Vylos-Einschränkungen und -EinstellungenVerwaltete App-Konfiguration, nicht das VPN-Profil

Die folgenden Beispiele verwenden Apples Property-List-Format. Zeigt Ihr MDM stattdessen ein Formular, bilden Sie dieselbe Dictionary-Verschachtelung und dieselben Typen nach. Verwenden Sie gepunktete Namen nicht als wörtliche Schlüssel.

WireGuard-Konfiguration übertragen

Legen Sie genau einen der folgenden Schlüssel im VendorConfig-Dictionary des VPN-Payloads ab:

SchlüsselWert
WgQuickConfigUnveränderter mehrzeiliger UTF-8-Inhalt einer WireGuard-.conf-Datei.
WgQuickConfigBase64Einzeilige Base64-Kodierung desselben UTF-8-Inhalts der .conf-Datei.

Verwenden Sie WgQuickConfigBase64, wenn ein MDM-Feld Zeilenumbrüche nicht zuverlässig beibehält. Vylos lehnt Payloads ab, die beide Schlüssel enthalten, da dann nicht eindeutig wäre, welche Quelle verwendet werden soll.

Base64 ist eine Transportkodierung und keine Verschlüsselung. Der kodierte Wert ist der Text der .conf-Datei selbst – keine .vylos-Datei, kein ZIP-Archiv und auch kein Pfad zu einer solchen Datei.

Unter macOS kopiert der folgende Befehl einen direkt einsetzbaren Wert in die Zwischenablage:

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

base64 kodiert die Datei, tr -d '\n' entfernt Zeilenumbrüche aus der kodierten Ausgabe und pbcopy legt das Ergebnis in der Zwischenablage ab. Fügen Sie dieses Ergebnis in einem Schlüssel-Wert-Editor des MDM als WgQuickConfigBase64 ein und lassen Sie WgQuickConfig weg.

Split-DNS-Einstellungen übertragen

Fügen Sie genau einen der folgenden optionalen Schlüssel in dasselbe VendorConfig-Dictionary ein, wenn der verwaltete Tunnel Split-DNS verwendet:

SchlüsselWert
VylosConfigMehrzeiliger UTF-8-Text der Vylos-Einstellungen im Format settings.conf.
VylosConfigBase64Einzeilige Base64-Codierung desselben Texts.

Verwenden Sie bei MDM VylosConfigBase64, damit ein Schlüssel-Wert-Editor keine Zeilenumbrüche entfernt oder verändert. Erstellen Sie beispielsweise diese Datei:

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

Kopieren Sie anschließend unter macOS den codierten Wert:

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

Fügen Sie ihn als VylosConfigBase64 ein. Die WireGuard-Konfiguration muss außerdem mindestens einen DNS-Server unter [Interface] enthalten. Domains bestimmt, welche Abfragen diese Server verwenden, SearchDomains ergänzt kurze Hostnamen und AllowedIPs steuert weiterhin das Traffic-Routing.

Kill-Switch für verwaltete Tunnel

Verwenden Sie Apples Schlüssel IncludeAllNetworks im VPN-Dictionary, um einem verwalteten geräteweiten Tunnel Kill-Switch-Verhalten zu geben:

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

Platzieren Sie ihn neben RemoteAddress und AuthenticationMethod. Konfigurieren Sie die automatische Aktivierung separat über OnDemandRules.

IncludeAllNetworks erweitert die WireGuard-Routen in AllowedIPs nicht. Es verhindert, dass normaler Traffic das VPN umgeht; AllowedIPs bestimmt weiterhin, welche Ziele jeder Peer transportieren kann. Verwenden Sie 0.0.0.0/0 und ::/0 für einen vollständigen Dual-Stack-Tunnel. Teilrouten werden zu einer strikten Zulassungsliste, und die Routen müssen außerdem jeden DNS-Server unter [Interface] abdecken.

Apple nimmt Netzwerksteuerungs-Traffic und bestimmte Gerätedienste weiterhin aus. Lesen Sie vor der Bereitstellung die Dokumentation zum IncludeAllNetworks-Feld des VPN-Payloads.

Geräteweites Profil

Verwenden Sie com.apple.vpn.managed für einen herkömmlichen geräteweiten Tunnel. Ersetzen Sie vor der Bereitstellung alle Beispiel-IDs, UUIDs, Schlüssel, Adressen und Endpunkte.

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>

Erzeugen Sie mit uuidgen eindeutige UUIDs. Jeder weitere Tunnel ist ein zusätzliches com.apple.vpn.managed-Dictionary innerhalb des äußeren PayloadContent-Arrays.

Ersetzen Sie für einen einzeiligen Wert den Beispielschlüssel WgQuickConfig und den mehrzeiligen String durch:

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

Ersetzen Sie den Schlüssel VylosConfig und seinen mehrzeiligen String auf dieselbe Weise:

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

VPN-pro-App-Profil

Verwenden Sie com.apple.vpn.managed.applayer zusammen mit dem Packet-Tunnel-Provider von Vylos, um WireGuard-Verkehr app-spezifisch zu leiten. Das Payload akzeptiert dieselben Alternativen WgQuickConfig und WgQuickConfigBase64 sowie optionale Split-DNS-Einstellungen in VylosConfig oder VylosConfigBase64.

EinstellungWert
PayloadTypecom.apple.vpn.managed.applayer
VPNTypeVPN
VPNSubTypeio.cbnventures.vylos
VPN.ProviderBundleIdentifierio.cbnventures.vylos.packet-tunnel
VPN.ProviderTypepacket-tunnel
VPNUUIDEindeutiger Wert, der mit jeder diesem VPN zugewiesenen verwalteten App geteilt wird.
OnDemandMatchAppEnabledtrue, damit der Tunnel startet, wenn eine zugewiesene App Netzwerkverkehr auslöst.

Das folgende Dictionary kann das geräteweite VPN-Dictionary im PayloadContent-Array des Profils ersetzen:

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>

Durch die Installation dieses Payloads wird das VPN erstellt, Apps werden ihm jedoch noch nicht zugewiesen. Fahren Sie mit VPN pro App konfigurieren fort, um verwaltete Apps derselben VPNUUID zuzuordnen und die unterstützten Routingfelder kennenzulernen.

Profile installieren und entfernen

Verteilen Sie Profile per MDM, um Eigentümerschaft, Ersetzung und Entfernung zentral zu verwalten. Wenn kein MDM verfügbar ist, kann ein Benutzer ein geräteweites Profil auch direkt installieren und es später in den Profilverwaltungseinstellungen des Betriebssystems entfernen.

Vylos behandelt beide Bereitstellungswege als profilverwaltet und schreibgeschützt. Änderungen am Tunnel erfolgen unterstützt durch Aktualisieren oder Entfernen des Profils – nicht durch Bearbeiten in Vylos.

Die daraus entstehende Benutzeroberfläche wird unter Verwaltete Tunnel bereitstellen beschrieben. Den vollständigen Payload-Vertrag von Apple finden Sie in den Referenzen zu VPN und AppLayerVPN.