Skip to main content

Käyttöönotto .mobileconfig-profiileilla

Luo Applen .mobileconfig-profiileja, jotka asentavat Vylos WireGuard -tunnelit hallituiksi, vain luku -muotoisiksi järjestelmäkohteiksi.

Profiilityypin valitseminen

TavoiteVPN-tietosisällön tyyppiJakeluvaatimus
Reititä laitteen soveltuva liikenne yhden tunnelin kauttacom.apple.vpn.managedAsenna suoraan tai jakele MDM:n kautta.
Reititä määritetyt hallitut apit Vylosin kauttacom.apple.vpn.managed.applayerTuotannon appimääritykset vaativat MDM:n, vaikka itse VPN-profiili olisi asennettu suoraan.

Molemmat profiilityypit luovat Vylosiin hallitun tunnelin. Ne ovat erillään hallitusta appimäärityksestä, joka ohjaa apin toimintaa mutta ei asenna VPN:ää.

Kunkin asetuksen sijainti

OminaisuusSijainti profiilissa
WireGuard-liitäntä ja vertaislaitteetVendorConfig.WgQuickConfigBase64 tai WgQuickConfig
Jaettu DNS ja hakutoimialueetVendorConfig.VylosConfigBase64 tai VylosConfig
Automaattinen aktivointiVPN.OnDemandEnabled ja VPN.OnDemandRules
Yhteyksien esto ilman VPN:ääVPN.IncludeAllNetworks
Appikohtainen aktivointiYlimmän tason OnDemandMatchAppEnabled ja VPNUUID
Vylosin rajoitukset ja asetuksetHallittu appimääritys, ei VPN-profiili

Alla olevat esimerkit käyttävät Applen ominaisuusluettelomuotoa. Jos MDM näyttää lomakkeen, luo sama sanakirjarakenne ja samat tyypit; älä käytä pisteellisiä nimiä kirjaimellisina avaimina.

WireGuard-määrityksen kuljetus

Lisää täsmälleen toinen seuraavista avaimista VPN-tietosisällön VendorConfig-sanakirjaan:

AvainArvo
WgQuickConfigWireGuardin .conf-tiedoston muokkaamaton monirivinen UTF-8-sisältö.
WgQuickConfigBase64Saman .conf-tiedoston UTF-8-sisällön yksirivinen Base64-koodaus.

Käytä WgQuickConfigBase64-avainta, jos MDM-kenttä ei säilytä rivinvaihtoja. Vylos hylkää tietosisällön, jossa ovat molemmat avaimet, koska tarkoitettua lähdettä ei voisi päätellä.

Base64 on kuljetuskoodaus, ei salaus. Koodattu arvo on itse .conf-teksti, ei .vylos-tiedosto, ZIP-arkisto eikä polku kumpaankaan.

macOS:ssä seuraava komento kopioi liittämisvalmiin arvon leikepöydälle:

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

base64 koodaa tiedoston, tr -d '\n' poistaa rivinvaihdot koodatusta tulosteesta ja pbcopy asettaa tuloksen leikepöydälle. Liitä tulos MDM:n avain-arvo-editorissa avaimen WgQuickConfigBase64 arvoksi ja jätä WgQuickConfig pois.

Jaetun DNS:n asetusten kuljetus

Kun hallittu tunneli käyttää jaettua DNS:ää, lisää täsmälleen toinen seuraavista valinnaisista avaimista samaan VendorConfig-sanakirjaan:

AvainArvo
VylosConfigVylosin asetusten monirivinen UTF-8-teksti settings.conf-muodossa.
VylosConfigBase64Saman tekstin yksirivinen Base64-koodaus.

Käytä MDM-jakelussa VylosConfigBase64-avainta, jotta avain-arvoeditori ei poista tai muuta rivinvaihtoja. Luo esimerkiksi seuraava tiedosto:

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

Kopioi sitten koodattu arvo macOS:ssa:

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

Liitä arvo VylosConfigBase64-avaimeen. WireGuard-määrityksen [Interface]-osassa on oltava myös vähintään yksi DNS-palvelin. Domains valitsee kyseisiä palvelimia käyttävät kyselyt, SearchDomains lisää lyhyisiin isäntänimiin päätteet ja AllowedIPs ohjaa edelleen liikenteen reititystä.

Hallittujen tunneleiden verkkoliikenteen katkaisu

Anna hallitulle koko laitteen tunnelille kill switch -toiminta lisäämällä Applen IncludeAllNetworks-avain VPN-sanakirjaan:

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

Sijoita se RemoteAddress- ja AuthenticationMethod-avainten viereen. Määritä automaattinen aktivointi erikseen OnDemandRules-säännöillä.

IncludeAllNetworks ei laajenna WireGuardin AllowedIPs-reittejä. Se estää tavallista liikennettä ohittamasta VPN:ää, mutta AllowedIPs ratkaisee edelleen, mitä kohteita kukin vertaislaite voi kuljettaa. Käytä 0.0.0.0/0- ja ::/0-reittejä täydelliseen kaksipinoiseen tunneliin. Osittaiset reitit muodostavat tiukan sallittujen kohteiden luettelon, ja reittien on katettava myös kaikki [Interface]-osan DNS-palvelimet.

Apple jättää verkkohallinnan liikenteen ja tietyt laitepalvelut käytännön ulkopuolelle. Lue ennen käyttöönottoa VPN-kuorman IncludeAllNetworks-kentän dokumentaatio.

Koko laitteen profiili

Käytä com.apple.vpn.managed-tyyppiä tavalliseen koko laitteen tunneliin. Korvaa kaikki esimerkkitunnisteet, UUID:t, avaimet, osoitteet ja päätepisteet ennen käyttöönottoa.

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>

Luo yksilölliset UUID:t komennolla uuidgen. Jokainen lisätunneli on uusi com.apple.vpn.managed-sanakirja ulommassa PayloadContent-taulukossa.

Jos käytät yksirivistä arvoa, korvaa esimerkin WgQuickConfig-avain ja monirivinen merkkijono seuraavalla:

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

Korvaa esimerkin VylosConfig-avain ja monirivinen merkkijono samalla tavalla:

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

Appikohtainen VPN-profiili

Käytä com.apple.vpn.managed.applayer-tyyppiä Vylosin pakettitunnelipalvelun kanssa appikohtaiseen WireGuard-reititykseen. Tietosisältö hyväksyy samat WgQuickConfig- ja WgQuickConfigBase64-vaihtoehdot sekä valinnaiset jaetun DNS:n asetukset VylosConfig- tai VylosConfigBase64-avaimessa.

AsetusArvo
PayloadTypecom.apple.vpn.managed.applayer
VPNTypeVPN
VPNSubTypeio.cbnventures.vylos
VPN.ProviderBundleIdentifierio.cbnventures.vylos.packet-tunnel
VPN.ProviderTypepacket-tunnel
VPNUUIDYksilöllinen arvo, joka jaetaan jokaisen tähän VPN:ään määritetyn hallitun apin kanssa.
OnDemandMatchAppEnabledtrue, kun yhteys muodostetaan määritetyn apin aloittaessa verkkoliikenteen.

Seuraava sanakirja voi korvata koko laitteen VPN-sanakirjan profiilin PayloadContent-taulukossa:

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>

Tietosisällön asentaminen luo VPN:n mutta ei määritä sille appeja. Jatka kohdasta Appikohtaisen VPN:n määrittäminen, jotta voit yhdistää hallitut apit samaan VPNUUID-arvoon ja ymmärtää tuetut reitityskentät.

Profiilien asentaminen ja poistaminen

Jaa profiilit MDM:n kautta, jotta omistus, korvaaminen ja poisto voidaan hallita keskitetysti. Jos MDM ei ole käytettävissä, käyttäjä voi asentaa koko laitteen profiilin myös suoraan ja poistaa sen myöhemmin käyttöjärjestelmän profiilinhallinta-asetuksista.

Vylos käsittelee molempia jakelutapoja profiilin omistamina ja vain luku -muotoisina. Tuettu tapa muuttaa tunnelia on päivittää tai poistaa profiili, ei muokata tunnelia Vylosissa.

Katso apissa näkyvä lopputulos kohdasta Hallittujen tunnelien käyttöönotto. Applen koko tietosisältösopimus löytyy VPN- ja AppLayerVPN-viitteistä.