.mobileconfig Profilleriyle Dağıtma
Vylos WireGuard tünelini yönetilen, salt okunur sistem öğesi olarak yüklemek için Apple .mobileconfig profili oluşturun.
Profil Türünü Seçme
| Amaç | VPN yükü türü | İletim gereksinimi |
|---|---|---|
| Uygun aygıt trafiğini tek bir tünelden yönlendirme | com.apple.vpn.managed | Doğrudan yükleme veya MDM ile iletim. |
| Atanan yönetilen uygulamaları Vylos üzerinden yönlendirme | com.apple.vpn.managed.applayer | VPN profili doğrudan yüklense bile üretim uygulama atamaları için MDM gerekir. |
Her iki profil de Vylos'ta yönetilen tünel oluşturur. Bunlar uygulama davranışını denetleyen ancak VPN yüklemeyen Yönetilen Uygulama Yapılandırması ile aynı değildir.
Her Ayarın Yeri
| Özellik | Profildeki konum |
|---|---|
| WireGuard arabirimi ve eşleri | VendorConfig.WgQuickConfigBase64 veya WgQuickConfig |
| Bölünmüş DNS ve arama etki alanları | VendorConfig.VylosConfigBase64 veya VylosConfig |
| Otomatik etkinleştirme | VPN.OnDemandEnabled ve VPN.OnDemandRules |
| VPN olmadan bağlantıları engelleme | VPN.IncludeAllNetworks |
| Uygulama başına etkinleştirme | Üst düzey OnDemandMatchAppEnabled ve VPNUUID |
| Vylos kısıtlamaları ve tercihleri | VPN profili değil, Yönetilen Uygulama Yapılandırması |
Aşağıdaki örnekler Apple’ın özellik listesi biçimini kullanır. MDM bunun yerine bir form gösteriyorsa aynı sözlük iç içeliğini ve değer türlerini oluşturun; noktalı adları doğrudan anahtar olarak kullanmayın.
WireGuard Yapılandırmasını İletme
VPN yükünün VendorConfig sözlüğüne yalnızca aşağıdaki anahtarlardan birini koyun:
| Anahtar | Değer |
|---|---|
WgQuickConfig | WireGuard .conf dosyasının değiştirilmemiş, çok satırlı UTF-8 içeriği. |
WgQuickConfigBase64 | Aynı .conf UTF-8 içeriğinin tek satırlı Base64 kodlaması. |
MDM alanı satır sonlarını korumuyorsa WgQuickConfigBase64 kullanın. Yük her iki anahtarı da içerirse Vylos amaçlanan kaynağı belirleyemediğinden yükü reddeder.
Base64 bir aktarım kodlamasıdır, şifreleme değildir. Kodlanan değer .conf metninin kendisidir; .vylos dosyası, ZIP arşivi veya bunların yolu değildir.
macOS'ta aşağıdaki komut yapıştırılmaya hazır değeri panoya kopyalar:
base64 -i "tunnel.conf" | tr -d '\n' | pbcopy
base64 dosyayı kodlar, tr -d '\n' çıktının satır sonlarını kaldırır, pbcopy sonucu panoya koyar. MDM anahtar-değer düzenleyicisinde sonucu WgQuickConfigBase64 olarak yapıştırın ve WgQuickConfig anahtarını atlayın.
Bölünmüş DNS Ayarlarını İletme
Yönetilen tünel Bölünmüş DNS kullanıyorsa aynı VendorConfig sözlüğüne aşağıdaki isteğe bağlı anahtarlardan tam olarak birini ekleyin:
| Anahtar | Değer |
|---|---|
VylosConfig | settings.conf biçimindeki Vylos ayarlarının çok satırlı UTF-8 metni. |
VylosConfigBase64 | Aynı metnin tek satırlı Base64 kodlaması. |
Anahtar-değer düzenleyicisinin satır sonlarını kaldırmaması veya değiştirmemesi için MDM ile VylosConfigBase64 kullanın. Şuna benzer bir dosya oluşturun:
[SplitDNS]
Domains = corp.example.com, *.internal.example.com
SearchDomains = example.com
Ardından macOS’te kodlanmış değeri kopyalayın:
base64 -i "settings.conf" | tr -d '\n' | pbcopy
Sonucu VylosConfigBase64 olarak yapıştırın. WireGuard yapılandırmasının [Interface] bölümünde en az bir DNS sunucusu da bulunmalıdır. Domains bu sunucuları kullanan sorguları seçer, SearchDomains kısa ana bilgisayar adlarına son ek ekler ve trafik yönlendirmesini AllowedIPs denetlemeye devam eder.
Yönetilen Tüneller İçin Kill Switch
Yönetilen aygıt geneli tünele kill switch davranışı vermek için VPN sözlüğünde Apple’ın IncludeAllNetworks anahtarını kullanın:
<key>IncludeAllNetworks</key>
<integer>1</integer>
Anahtarı RemoteAddress ve AuthenticationMethod yanına yerleştirin. Otomatik etkinleştirmeyi OnDemandRules ile ayrıca yapılandırın.
IncludeAllNetworks, WireGuard’ın AllowedIPs yollarını genişletmez. Normal trafiğin VPN’i atlamasını önler, ancak her eşin hangi hedeflere ulaşabileceğini yine AllowedIPs belirler. Tam çift yığınlı bir tünel için 0.0.0.0/0 ve ::/0 kullanın. Kısmi yollar sıkı bir izin listesine dönüşür ve [Interface] içindeki her DNS sunucusunu da kapsamalıdır.
Apple, ağ denetim trafiği ve belirli aygıt hizmetleri için istisnalar uygular. Dağıtımdan önce VPN yükündeki IncludeAllNetworks alanını inceleyin.
Aygıt Geneli Profil
Geleneksel aygıt geneli tünel com.apple.vpn.managed kullanır. Dağıtmadan önce örnek tanımlayıcıların, UUID'lerin, anahtarların, adreslerin ve uç noktaların tümünü değiştirin.
<?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>
uuidgen ile benzersiz UUID'ler üretin. Her ek tünel, dış PayloadContent dizisindeki başka bir com.apple.vpn.managed sözlüğüdür.
Tek satırlı değer kullanmak için örnekteki WgQuickConfig anahtarı ile çok satırlı dizeyi şununla değiştirin:
<key>WgQuickConfigBase64</key>
<string>BASE64_ENCODED_CONF</string>
Aynı şekilde örnekteki VylosConfig anahtarı ile çok satırlı dizeyi de değiştirin:
<key>VylosConfigBase64</key>
<string>BASE64_ENCODED_SETTINGS_CONF</string>
Uygulama Başına Profil
Uygulama başına WireGuard yönlendirmesi için com.apple.vpn.managed.applayer ve Vylos paket tüneli sağlayıcısını kullanın. Yük aynı WgQuickConfig ve WgQuickConfigBase64 seçeneklerinin yanı sıra VylosConfig veya VylosConfigBase64 içindeki isteğe bağlı Bölünmüş DNS ayarlarını destekler.
| Ayar | Değer |
|---|---|
PayloadType | com.apple.vpn.managed.applayer |
VPNType | VPN |
VPNSubType | io.cbnventures.vylos |
VPN.ProviderBundleIdentifier | io.cbnventures.vylos.packet-tunnel |
VPN.ProviderType | packet-tunnel |
VPNUUID | Bu VPN'e atanan her yönetilen uygulamayla paylaşılan benzersiz değer. |
OnDemandMatchAppEnabled | Atanan uygulama ağ iletişimine başladığında otomatik bağlanmak için true yapın. |
Aşağıdaki sözlük, profilin PayloadContent dizisindeki aygıt geneli VPN sözlüğünün yerini alabilir:
<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>
Bu yükü kurmak VPN'i oluşturur ancak uygulama atamaz. Yönetilen uygulamaları aynı VPNUUID ile ilişkilendirmek ve desteklenen yönlendirme alanlarını görmek için Uygulama Başına VPN Yapılandırma bölümüne geçin.
Profilleri Yükleme ve Kaldırma
Sahiplik, değiştirme ve kaldırmayı merkezi olarak yönetmek için profilleri MDM ile iletin. MDM yoksa kullanıcı aygıt geneli profili doğrudan yükleyip işletim sisteminin profil yönetimi ayarlarından kaldırabilir.
Her iki yöntemde de Vylos tüneli profile ait ve salt okunur olarak değerlendirir. Desteklenen değişiklik yöntemi tüneli Vylos'ta düzenlemek değil profili güncellemek veya kaldırmaktır.
Uygulamadaki son deneyim için Yönetilen Tünelleri Dağıtma bölümüne bakın. Apple'ın tam yük kuralları için VPN ve AppLayerVPN başvurularını inceleyin.