Implementacija putem .mobileconfig profila
Izradite Apple .mobileconfig profil kako biste Vylos WireGuard tunel instalirali kao upravljanu sistemsku stavku samo za čitanje.
Odabir vrste profila
| Cilj | Vrsta VPN payload-a | Zahtjevi |
|---|---|---|
| Usmjeriti prikladan promet uređaja kroz jedan tunel | com.apple.vpn.managed | Izravna instalacija ili isporuka putem MDM-a. |
| Usmjeriti dodijeljene upravljane aplikacije kroz Vylos | com.apple.vpn.managed.applayer | Produkcijske 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ćnost | Mjesto u profilu |
|---|---|
| WireGuard sučelje i ravnopravni članovi | VendorConfig.WgQuickConfigBase64 ili WgQuickConfig |
| Razdvojeni DNS i domene pretraživanja | VendorConfig.VylosConfigBase64 ili VylosConfig |
| Automatska aktivacija | VPN.OnDemandEnabled i VPN.OnDemandRules |
| Blokiranje veza bez VPN-a | VPN.IncludeAllNetworks |
| Aktivacija po aplikaciji | OnDemandMatchAppEnabled i VPNUUID na najvišoj razini |
| Ograničenja i postavke Vylosa | Upravljana 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 |
|---|---|
WgQuickConfig | Neizmijenjeni višeredni UTF-8 sadržaj WireGuard .conf datoteke. |
WgQuickConfigBase64 | Isti 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:
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 |
|---|---|
VylosConfig | Višeredni UTF-8 tekst postavki Vylosa u formatu settings.conf. |
VylosConfigBase64 | Jednoredno 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:
[SplitDNS]
Domains = corp.example.com, *.internal.example.com
SearchDomains = example.com
Zatim kopirajte kodiranu vrijednost na macOS-u:
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:
<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 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:
<key>WgQuickConfigBase64</key>
<string>BASE64_ENCODED_CONF</string>
Na isti način zamijenite ključ VylosConfig i njegov višeredni niz:
<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.
| Postavka | Vrijednost |
|---|---|
PayloadType | com.apple.vpn.managed.applayer |
VPNType | VPN |
VPNSubType | io.cbnventures.vylos |
VPN.ProviderBundleIdentifier | io.cbnventures.vylos.packet-tunnel |
VPN.ProviderType | packet-tunnel |
VPNUUID | Jedinstvena vrijednost zajednička svim upravljanim aplikacijama dodijeljenima VPN-u. |
OnDemandMatchAppEnabled | Postavite 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:
<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.