Mac VPN istemcisi: Network Extension'e karşı System Extension
Network Extension bir yetenek, System Extensions ise bir teslimat mekanizmasıdır: macOS onay adımını ve okunacak günlüğü seçmek için ikisini ayırın.
İki Apple terimi sanki aynı şeyi adlandırıyormuş gibi kullanılıyor ve bu karışıklık insanları yanlış ayarlar paneline gönderiyor. Network Extension bir yeteneği tanımlar: VPN tünellerini, vekilleri ve filtreleri uygulamanın desteklenen yolu. System Extensions ise kullanıcı alanındaki uzantılar için teslimat ve onay mekanizmasını tanımlar. Modern bir Mac VPN istemcisi genellikle ikisine de ihtiyaç duyar, bu yüzden hiçbir etiket tek başına bir belirtiyi açıklamaz. İkisini ayırmak hangi bileşenin inceleneceğini ve hangi onay adımının bekleneceğini yanıtlar.
İki soru, tek etiket değil
Bileşenin ne yaptığını, nasıl kurulduğunu sormadan önce sorun. Yetenek hangi sağlayıcı sınıfının var olduğunu ve dolayısıyla paketlerinizi hangi kodun işlediğini belirler. Teslimat mekanizması ikili dosyanın nasıl geldiğini, nasıl onaylandığını ve durumunun nerede kaydedildiğini belirler. Bir ürün, eski sürümlerde sistem uzantısı teslim etmeden paket tüneli uygulayabilir ve tünel dışında bir şey uygulayan bir sistem uzantısı da teslim edebilir.
Çekirdek uzantıları, insanların karıştırdığı üçüncü terimdir. Ayrıcalıklı ağ kodunu çalıştırmanın eski yoluydu, farklı onaylar gerektiriyorlardı ve Apple yıllardır geliştiricileri onlardan uzaklaştırıyor. Çekirdek uzantısı onay tarifini modern bir istemciye uygulamak, asla görünmeyecek bir iletişim kutusunda zaman kaybettirir.
Kullandığınız macOS sürümü için satıcının dağıtım notlarını okuyun daha eski bir sürümden bir forum gönderisi yerine. Mimari birden fazla kez değişti ve talimatlar hızla eskiyor. Çekirdek uzantısı onayından söz eden bir not, ürünün başka bir dönemini anlatır.
Network Extension ne sağlar
Çerçeve, yaygın ağ işleri için sağlayıcı türleri sunar: VPN trafiği için paket tüneli, uygulama başına akışlar için uygulama vekili, trafiği incelemek için içerik filtresi ve çözümleyicinin davranışı için DNS vekili işleme. Sağlayıcı türü uzantının neler yapabileceğini belirler ve iki sağlayıcı teslim eden bir istemci iki farklı iş yapıyor olabilir.
Bu, tanılama sırasında önemlidir çünkü aynı bağlantı belirtisi bir tünelden, filtreden veya DNS vekilinden gelebilir. Bir web sitesini engellemek filtre kararıdır, özel bir alt ağa ulaşamamak genellikle tünel kararıdır ve yanlış adresi çözmek genellikle çözümleyici kararıdır. Sağlayıcı türünü adlandırmak, herhangi bir günlük okunmadan önce aramayı daraltır.
Çerçevede hiçbir şey bir gizlilik tutumu ima etmez. Kullanıcı alanındaki bir uzantının hâlâ izinleri, yapılandırması ve arkasında bir işletmecisi vardır, bu yüzden mimariyi güven sinyali değil uygulama ayrıntısı olarak görün. Uç noktayı kimin işlettiğini ve neyi toplamak üzere yapılandırıldığını sorun.
System Extensions neyi değiştirir
Mekanizma ayrıcalıklı kodu çekirdekten kullanıcı alanına taşır ve işletim sisteminin onayı nasıl istediğini değiştirir. Etkinleştirme kurulumdan ayrı bir adımdır ve kullanıcı veya bir MDM profili buna izin vermelidir. Kurulan ama hiç etkinleşmeyen bir istemci Applications klasöründe varmış gibi görünür ve bağlantı için hiçbir şey yapmaz.
Durumu uygulama değil sistem kaydeder, bu da kullanışlıdır çünkü sorgulanabilir. Aşağıdaki komut sistemin bildiği uzantıları ve etkinleştirme durumlarını listeler.
systemextensionsctl list
scutil --nc list
İlk komut bileşenin kurulu ve etkin olup olmadığını yanıtlar. İkincisi sistemin tuttuğu VPN yapılandırmalarını listeler, bu başka bir sorudur ve genellikle bağlantı profili bozuk değil eksik olduğunda önemli olandır.
Belirli bir belirti için hangisi incelenmeli
Bir ayarlar paneli açmadan önce belirtiyi katmanla eşleştirin. Eksik yapılandırma bir profil sorusudur, kurulu ama etkin olmayan bileşen bir teslimat sorusudur ve trafiği geçiremeyen etkin bileşen bir yetenek sorusudur.
| Symptom | First place to look |
|---|---|
| No VPN entry at all | Configuration profile or scutil list |
| Client installed, nothing happens | Extension activation state |
| Tunnel up, private host unreachable | Tunnel provider routes and policy |
| One app blocked, others fine | Filter or app proxy provider |
Son iki satır için ortak kanıt günlük akışıdır. Ağ uzantısı alt sistemini okumak akışı hangi sağlayıcının işlediğini söyler ve filtre kararı, kullanıcı ikisini de bozuk VPN olarak tanımlasa bile tünel arızasından farklı görünür.
log show --last 10m --predicate 'process == "nesessionmanager"'
Menü çubuğunda bir simge var diye uzantının etkin olduğu sonucuna varmayın. Simgeler başarısız etkinleştirmelerden sonra da kalır ve eski bir simge, bir destek çağrısının yanlış yerden başlamasının en yaygın nedenlerinden biridir. Bunun yerine etkinleştirme durumunu okuyun, çünkü sistemi kaydeden odur.
Onay, MDM ve çekirdek uzantısı efsanesi
Yönetilen Mac'lerde onay adımı MDM profiline aittir ve System Settings'te Allow'a tıklayan bir kullanıcı hâlâ güncellenmemiş bir ilke tarafından engellenebilir. Kullanıcıdan bir şeye tıklamasını istemeden önce masaüstü ekibine o filo için uzantıyı hangi mekanizmanın onayladığını sorun.
Yönetilmeyen bir Mac'te onay istemi bir kez görünür ve uzantı yeniden kurulana kadar reddetme kalıcı olabilir. Bu davranış, istemcinin bir işletim sistemi yükseltmesinden önce çalıştığı ve şimdi hiç kurulmayan bir bağlantı bildirdiği makineyi açıklar.
Dağıttığınız istemci için sağlayıcı türünü, etkinleştirme durumunu ve onay mekanizmasını yazın. Bu üç gerçek, yetenek ile teslimat tartışmasını yeniden açmadan Mac VPN hakkındaki gelecekteki soruların çoğunu yanıtlar.