Skip to main content

Implementacija putem .mobileconfig profila

Izradite Apple .mobileconfig profil kako biste Vylos WireGuard tunel instalirali kao upravljanu sistemsku stavku samo za čitanje.

Odabir vrste profila

CiljVrsta VPN payload-aZahtjevi
Usmjeriti prikladan promet uređaja kroz jedan tunelcom.apple.vpn.managedIzravna instalacija ili isporuka putem MDM-a.
Usmjeriti dodijeljene upravljane aplikacije kroz Vyloscom.apple.vpn.managed.applayerProdukcijske dodjele aplikacija zahtijevaju MDM čak i ako je VPN profil izravno instaliran.

Oba profila stvaraju upravljani tunel u Vylosu. Razlikuju se od upravljane konfiguracije aplikacije, koja upravlja ponašanjem aplikacije, ali ne instalira VPN.

Gdje se nalazi svaka postavka

MogućnostMjesto u profilu
WireGuard sučelje i ravnopravni članoviVendorConfig.WgQuickConfigBase64 ili WgQuickConfig
Razdvojeni DNS i domene pretraživanjaVendorConfig.VylosConfigBase64 ili VylosConfig
Automatska aktivacijaVPN.OnDemandEnabled i VPN.OnDemandRules
Blokiranje veza bez VPN-aVPN.IncludeAllNetworks
Aktivacija po aplikacijiOnDemandMatchAppEnabled i VPNUUID na najvišoj razini
Ograničenja i postavke VylosaUpravljana konfiguracija aplikacije, ne VPN profil

Primjeri u nastavku koriste Appleov oblik popisa svojstava. Ako MDM umjesto toga prikazuje obrazac, prenesite istu ugniježđenost rječnika i vrste vrijednosti; nazive s točkama nemojte unositi kao doslovne ključeve.

Prijenos WireGuard konfiguracije

U rječnik VendorConfig VPN payload-a stavite samo jedan od sljedećih ključeva:

KljučVrijednost
WgQuickConfigNeizmijenjeni višeredni UTF-8 sadržaj WireGuard .conf datoteke.
WgQuickConfigBase64Isti UTF-8 sadržaj .conf datoteke, kodiran Base64 u jednom retku.

Ako MDM polje ne čuva prijelome redaka, koristite WgQuickConfigBase64. Ako payload sadrži oba ključa, Vylos ga odbija jer izvor nije jednoznačan.

Base64 je prijenosno kodiranje, a ne šifriranje. Kodira se tekst .conf, ne .vylos datoteka, ZIP arhiva ni putanja do njih.

Na macOS-u sljedeća naredba kopira vrijednost spremnu za lijepljenje u međuspremnik:

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

base64 kodira datoteku, tr -d '\n' uklanja prijelome redaka, a pbcopy sprema rezultat u međuspremnik. U MDM uređivaču zalijepite rezultat kao WgQuickConfigBase64 i izostavite WgQuickConfig.

Prijenos postavki razdvojenog DNS-a

Kada upravljani tunel koristi razdvojeni DNS, dodajte točno jedan od sljedećih neobaveznih ključeva u isti rječnik VendorConfig:

KljučVrijednost
VylosConfigVišeredni UTF-8 tekst postavki Vylosa u formatu settings.conf.
VylosConfigBase64Jednoredno Base64 kodiranje istog teksta.

Uz MDM koristite VylosConfigBase64 kako uređivač ključeva i vrijednosti ne bi uklonio ili izmijenio prijelome redaka. Stvorite datoteku poput ove:

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

Zatim kopirajte kodiranu vrijednost na macOS-u:

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

Zalijepite je kao VylosConfigBase64. WireGuard konfiguracija mora imati i barem jedan DNS poslužitelj u odjeljku [Interface]. Domains odabire upite koji rabe te poslužitelje, SearchDomains dodaje nastavke kratkim nazivima računala, a AllowedIPs i dalje upravlja usmjeravanjem prometa.

Kill switch za upravljane tunele

Upotrijebite Appleov ključ IncludeAllNetworks u rječniku VPN kako biste upravljanom tunelu na razini uređaja dali ponašanje kill switcha:

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

Postavite ga uz RemoteAddress i AuthenticationMethod. Automatsku aktivaciju zasebno konfigurirajte putem OnDemandRules.

IncludeAllNetworks ne proširuje WireGuard rute u AllowedIPs. Sprječava obični promet da zaobiđe VPN, ali AllowedIPs i dalje određuje koja odredišta svaki ravnopravni član može prenositi. Za potpuni dvostruki stog upotrijebite 0.0.0.0/0 i ::/0. Djelomične rute postaju strogi popis dopuštenih odredišta i moraju obuhvatiti svaki DNS poslužitelj iz [Interface].

Apple zadržava iznimke za promet upravljanja mrežom i određene usluge uređaja. Prije implementacije pregledajte polje IncludeAllNetworks VPN sadržaja.

Profil na razini uređaja

Uobičajeni tunel na razini uređaja koristi com.apple.vpn.managed. Prije implementacije zamijenite sve primjerene identifikatore, UUID-ove, ključeve, adrese i krajnje točke.

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>

Generirajte jedinstvene UUID-ove naredbom uuidgen. Svaki dodatni tunel još je jedan rječnik com.apple.vpn.managed u vanjskom nizu PayloadContent.

Za vrijednost u jednom retku zamijenite primjer WgQuickConfig i višeredni niz ovim sadržajem:

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

Na isti način zamijenite ključ VylosConfig i njegov višeredni niz:

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

Profil po aplikaciji

Za WireGuard usmjeravanje po aplikaciji koristite com.apple.vpn.managed.applayer i Vylos pružatelja paketnog tunela. Payload podržava iste mogućnosti WgQuickConfig i WgQuickConfigBase64 te neobavezne postavke razdvojenog DNS-a u VylosConfig ili VylosConfigBase64.

PostavkaVrijednost
PayloadTypecom.apple.vpn.managed.applayer
VPNTypeVPN
VPNSubTypeio.cbnventures.vylos
VPN.ProviderBundleIdentifierio.cbnventures.vylos.packet-tunnel
VPN.ProviderTypepacket-tunnel
VPNUUIDJedinstvena vrijednost zajednička svim upravljanim aplikacijama dodijeljenima VPN-u.
OnDemandMatchAppEnabledPostavite na true za automatsko povezivanje kada dodijeljena aplikacija započne komunikaciju.

Sljedeći rječnik može zamijeniti VPN rječnik na razini uređaja u nizu PayloadContent profila:

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>

Instalacija payload-a stvara VPN, ali mu ne dodjeljuje aplikacije. Nastavite na Konfiguracija VPN-a po aplikaciji kako biste upravljane aplikacije povezali s istim VPNUUID i saznali podržana polja usmjeravanja.

Instalacija i uklanjanje profila

Profile isporučujte putem MDM-a radi središnjeg upravljanja vlasništvom, zamjenom i uklanjanjem. Ako MDM nije dostupan, korisnik može izravno instalirati profil na razini uređaja i ukloniti ga kroz sistemske postavke upravljanja profilima.

U oba slučaja Vylos smatra tunel vlasništvom profila i samo za čitanje. Podržani način promjene jest ažuriranje ili uklanjanje profila, ne uređivanje tunela u Vylosu.

Završno iskustvo u aplikaciji opisano je u Implementacija upravljanih tunela. Cjelovita Appleova pravila pogledajte u referencama VPN i AppLayerVPN.