Ana içeriğe geç

.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önlendirmecom.apple.vpn.managedDoğrudan yükleme veya MDM ile iletim.
Atanan yönetilen uygulamaları Vylos üzerinden yönlendirmecom.apple.vpn.managed.applayerVPN 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

ÖzellikProfildeki konum
WireGuard arabirimi ve eşleriVendorConfig.WgQuickConfigBase64 veya WgQuickConfig
Bölünmüş DNS ve arama etki alanlarıVendorConfig.VylosConfigBase64 veya VylosConfig
Otomatik etkinleştirmeVPN.OnDemandEnabled ve VPN.OnDemandRules
VPN olmadan bağlantıları engellemeVPN.IncludeAllNetworks
Uygulama başına etkinleştirmeÜst düzey OnDemandMatchAppEnabled ve VPNUUID
Vylos kısıtlamaları ve tercihleriVPN 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:

AnahtarDeğer
WgQuickConfigWireGuard .conf dosyasının değiştirilmemiş, çok satırlı UTF-8 içeriği.
WgQuickConfigBase64Aynı .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:

bash
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:

AnahtarDeğer
VylosConfigsettings.conf biçimindeki Vylos ayarlarının çok satırlı UTF-8 metni.
VylosConfigBase64Aynı 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:

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

Ardından macOS’te kodlanmış değeri kopyalayın:

bash
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:

xml
<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
<?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:

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

Aynı şekilde örnekteki VylosConfig anahtarı ile çok satırlı dizeyi de değiştirin:

xml
<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.

AyarDeğer
PayloadTypecom.apple.vpn.managed.applayer
VPNTypeVPN
VPNSubTypeio.cbnventures.vylos
VPN.ProviderBundleIdentifierio.cbnventures.vylos.packet-tunnel
VPN.ProviderTypepacket-tunnel
VPNUUIDBu VPN'e atanan her yönetilen uygulamayla paylaşılan benzersiz değer.
OnDemandMatchAppEnabledAtanan 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:

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>

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.