Menerapkan dengan Profil .mobileconfig
Buat profil Apple .mobileconfig untuk memasang tunnel Vylos WireGuard sebagai item sistem terkelola yang bersifat baca-saja.
Memilih Jenis Profil
| Tujuan | Jenis payload VPN | Persyaratan pengiriman |
|---|---|---|
| Merutekan lalu lintas perangkat yang memenuhi syarat melalui satu tunnel | com.apple.vpn.managed | Pemasangan langsung atau pengiriman melalui MDM. |
| Merutekan aplikasi terkelola yang ditetapkan melalui Vylos | com.apple.vpn.managed.applayer | Penetapan aplikasi produksi memerlukan MDM meskipun profil VPN dipasang langsung. |
Kedua profil membuat tunnel terkelola di Vylos. Ini berbeda dari konfigurasi aplikasi terkelola, yang mengontrol perilaku aplikasi tetapi tidak memasang VPN.
Lokasi Setiap Pengaturan
| Kemampuan | Lokasi dalam profil |
|---|---|
| Antarmuka dan peer WireGuard | VendorConfig.WgQuickConfigBase64 atau WgQuickConfig |
| Split DNS dan domain pencarian | VendorConfig.VylosConfigBase64 atau VylosConfig |
| Aktivasi otomatis | VPN.OnDemandEnabled dan VPN.OnDemandRules |
| Blokir koneksi tanpa VPN | VPN.IncludeAllNetworks |
| Aktivasi per aplikasi | OnDemandMatchAppEnabled dan VPNUUID tingkat atas |
| Pembatasan dan preferensi Vylos | Konfigurasi Aplikasi Terkelola, bukan profil VPN |
Contoh berikut menggunakan format daftar properti Apple. Jika MDM menampilkan formulir, buat susunan dictionary dan tipe nilai yang sama; jangan jadikan nama bertitik sebagai kunci harfiah.
Mengirim Konfigurasi WireGuard
Masukkan hanya salah satu kunci berikut ke kamus VendorConfig payload VPN:
| Kunci | Nilai |
|---|---|
WgQuickConfig | Isi UTF-8 multi-baris yang tidak diubah dari file WireGuard .conf. |
WgQuickConfigBase64 | Isi UTF-8 .conf yang sama, dienkode Base64 dalam satu baris. |
Jika kolom MDM tidak mempertahankan pemisah baris, gunakan WgQuickConfigBase64. Jika payload memuat kedua kunci, Vylos menolaknya karena sumber yang dimaksud tidak jelas.
Base64 adalah pengodean transportasi, bukan enkripsi. Nilai yang dienkode adalah teks .conf itu sendiri, bukan file .vylos, arsip ZIP, atau jalur menuju file tersebut.
Di macOS, perintah berikut menyalin nilai siap tempel ke papan klip:
base64 -i "tunnel.conf" | tr -d '\n' | pbcopy
base64 mengodekan file, tr -d '\n' menghapus pemisah baris dari keluaran, dan pbcopy menaruh hasilnya di papan klip. Di editor kunci-nilai MDM, tempel hasil sebagai WgQuickConfigBase64 dan hilangkan WgQuickConfig.
Mengirim Pengaturan Split DNS
Saat tunnel terkelola menggunakan Split DNS, tambahkan tepat satu kunci opsional berikut ke dictionary VendorConfig yang sama:
| Kunci | Nilai |
|---|---|
VylosConfig | Teks UTF-8 multibaris pengaturan Vylos dalam format settings.conf. |
VylosConfigBase64 | Enkode Base64 satu baris dari teks yang sama. |
Gunakan VylosConfigBase64 dengan MDM agar editor kunci-nilai tidak menghapus atau mengubah pemisah baris. Buat file seperti berikut:
[SplitDNS]
Domains = corp.example.com, *.internal.example.com
SearchDomains = example.com
Lalu salin nilai yang dienkode di macOS:
base64 -i "settings.conf" | tr -d '\n' | pbcopy
Tempel sebagai VylosConfigBase64. Konfigurasi WireGuard juga harus memiliki setidaknya satu server DNS di [Interface]. Domains memilih kueri yang menggunakan server tersebut, SearchDomains menambahkan akhiran ke nama host singkat, dan AllowedIPs tetap mengendalikan perutean lalu lintas.
Kill Switch untuk Tunnel Terkelola
Gunakan kunci Apple IncludeAllNetworks di dalam dictionary VPN untuk memberikan perilaku kill switch pada tunnel seluruh perangkat yang terkelola:
<key>IncludeAllNetworks</key>
<integer>1</integer>
Letakkan di samping RemoteAddress dan AuthenticationMethod. Konfigurasikan aktivasi otomatis secara terpisah melalui OnDemandRules.
IncludeAllNetworks tidak memperluas rute WireGuard dalam AllowedIPs. Kunci ini mencegah lalu lintas biasa melewati VPN, tetapi AllowedIPs tetap menentukan tujuan yang dapat dibawa setiap peer. Gunakan 0.0.0.0/0 dan ::/0 untuk tunnel dual-stack penuh. Rute parsial menjadi daftar izin ketat dan rute juga harus mencakup setiap server DNS di [Interface].
Apple tetap mengecualikan lalu lintas kontrol jaringan dan layanan perangkat tertentu. Tinjau bidang IncludeAllNetworks payload VPN sebelum penerapan.
Profil Seluruh Perangkat
Tunnel seluruh perangkat tradisional menggunakan com.apple.vpn.managed. Sebelum menerapkan, ganti semua contoh pengenal, UUID, kunci, alamat, dan endpoint.
<?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>
Gunakan uuidgen untuk membuat UUID unik. Setiap tunnel tambahan adalah kamus com.apple.vpn.managed lain di dalam array PayloadContent luar.
Untuk menggunakan nilai satu baris, ganti kunci WgQuickConfig dan string multi-baris contoh dengan:
<key>WgQuickConfigBase64</key>
<string>BASE64_ENCODED_CONF</string>
Ganti juga kunci VylosConfig dan string multibaris dengan cara yang sama:
<key>VylosConfigBase64</key>
<string>BASE64_ENCODED_SETTINGS_CONF</string>
Profil Per Aplikasi
Gunakan com.apple.vpn.managed.applayer dan penyedia tunnel paket Vylos untuk perutean WireGuard per aplikasi. Payload mendukung varian WgQuickConfig dan WgQuickConfigBase64 yang sama, ditambah pengaturan Split DNS opsional dalam VylosConfig atau VylosConfigBase64.
| Pengaturan | Nilai |
|---|---|
PayloadType | com.apple.vpn.managed.applayer |
VPNType | VPN |
VPNSubType | io.cbnventures.vylos |
VPN.ProviderBundleIdentifier | io.cbnventures.vylos.packet-tunnel |
VPN.ProviderType | packet-tunnel |
VPNUUID | Nilai unik yang dibagikan dengan setiap aplikasi terkelola yang ditetapkan ke VPN. |
OnDemandMatchAppEnabled | Atur ke true agar tersambung otomatis saat aplikasi yang ditetapkan memulai komunikasi. |
Kamus berikut dapat menggantikan kamus VPN seluruh perangkat di array PayloadContent profil:
<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>
Memasang payload ini membuat VPN tetapi tidak menetapkan aplikasi. Lanjutkan ke Mengonfigurasi VPN Per Aplikasi untuk mengaitkan aplikasi terkelola dengan VPNUUID yang sama dan memahami bidang perutean yang didukung.
Memasang dan Menghapus Profil
Kirim profil melalui MDM agar kepemilikan, penggantian, dan penghapusan dikelola secara terpusat. Jika MDM tidak tersedia, pengguna juga dapat memasang profil seluruh perangkat secara langsung lalu menghapusnya melalui pengaturan manajemen profil sistem operasi.
Apa pun caranya, Vylos memperlakukannya sebagai milik profil dan baca-saja. Cara perubahan yang didukung adalah memperbarui atau menghapus profil, bukan mengedit tunnel di Vylos.
Untuk hasilnya di aplikasi, lihat Menerapkan Tunnel terkelola. Untuk konvensi payload lengkap Apple, lihat referensi VPN dan AppLayerVPN.