Bağlantı adıyla scutil --nc start çalıştıran bir betik yazarsınız, Mac'inizde çalışır ve ofisteki her yeni kurulmuş makinede başarısız olur. Betik bozuk değildir. Ondan hiçbir zaman yapamadığı bir şey istenir: var olan bir bağlantıyı başlatmak, yenisini oluşturmakla aynı işlem değildir.

Hazırlama ve oturum denetimi iki sahipli iki iştir ve aksini varsayan bir iş akışı, yazıldığı makinede her testi geçer.

Başlatma komutu gerçekte neyle konuşur

Bir oturum denetimi komutu, zaten var olan ve zaten onaylanmış bir yapılandırmaya hitap eder. Sistemden bu adlandırılmış bağlantıyı kaldırmasını ister; daha önce saklanan sunucu ayarlarını, kimlik referanslarını ve ilkeyi kullanarak. Bunlar hiç kurulmadıysa başlatılacak bir şey yoktur.

Bu yüzden arıza yeni donanımda görünür, yöneticinin dizüstü bilgisayarında değil. Dizüstü bilgisayar aylar önce bunu yaptığını unutmuş biri tarafından hazırlanmıştı. Başlatma komutunu geçen çeyrekte birinin kablo çektiği bir kapı zili gibi düşünün. Ona basmak, kabloyu döşemekle aynı şey değildir.

Bir VPN yapılandırmasının üç sahibi

Kuruluş tarafından yönetilen bir profil cihaz yönetiminden gelir. Profil, sunucu adreslerini, kimlik doğrulama düzenini ve kuruluşun gerektirdiği ilkeyi taşır ve VPN yöneticisi bunları sağlayan kişidir. Bir betik bu ayarları bir listede bulduğu görünen addan yeniden kurmamalıdır.

Yerel kişisel VPN yapılandırması, yerleşik IPsec ve IKEv2 protokollerini kapsayan Apple'ın Network Extension API'si üzerinden oluşturulur. Bu, bir kaydetme adımı ve kullanıcı onayı olan bir uygulama arayüzüdür; bir satıcının sunduğu her tünel türünü sessizce oluşturan bir shell komutu değildir.

Üçüncü taraf istemcisi, kendi içe aktarma biçimi, kendi yönetim aracı ve çoğu zaman kendi ayrıcalıklı yardımcısı olan üçüncü durumdur. Oturumu o satıcının sürecine aittir. Benzer adlı bir sistem hizmeti bulmak, bir sistem komutunun tüneli denetlediğinin kanıtı değildir ve bunu varsaymak, satıcı istemciyi güncelleyene kadar çalışıyor gibi görünen betikler üretir.

Yerel hazırlamada bir kaydetme ve bir onay vardır

Apple'ın modeli yükle, değiştir, kaydet. Bir uygulama, başlatmadan sonraki ilk kaydetmesinden önce mevcut tercihleri yükler, yapılandırmayı değiştirir ve sonra kaydeder. Kaydetme, kalıcı olamadığında bir hata bildirir ve bu sonucu yok saymak, hazırlama arızasını üç adım sonra bağlantı arızasına dönüştürür.

İlk kaydetme ayrıca kullanıcının uygulamayı onaylamasını gerektirir. Bu bilinçli bir güvenlik sınırıdır ve yeni bir Mac'te ilk çalıştırmanın etkileşimli olduğu anlamına gelir; sonraki her bağlanma ve ayrılma otomatikleştirilebilse bile. İlk çalıştırmayı, bir insanın hazır bulunduğu insani bir görev olarak planlayın. İkinci çalıştırmadan itibaren otomatikleştirin ve kimsenin imkânsızı vaat etmemesi için bunu runbook'a yazın. Tamamen gözetimsiz bir ilk çalıştırma vaat eden bir dağıtım planı, platformun sunmadığı bir şeyi vaat ediyordur.

Apple ayrıca API'ye güvenmeden önce sunucu uyumluluğunu bir yapılandırma profiliyle doğrulamayı önerir. Bu denetimi önce yapmak, «sunucu bu istemciyi kabul etmeyecek» ile «istemci ayarları hiç kaydetmedi» durumlarını ayırır ve bunlar farklı ekipler için farklı biletlerdir.

Yinelenebilir bir başlatma komutu neyi varsayabilir

Hazırlamadan sonra betik, sahibinin arayüzü üzerinden var olan bağlantıyı güvenle hedefleyebilir. Ona bağlantının kararlı kimliğini ve istediğiniz eylemi verin, başka bir şey vermeyin. Tahmin edilmiş bir tercih yolunu okumamalı ve menüde gösterilen adın tüm sistemde benzersiz olduğunu varsaymamalıdır.

Yerel bağlantılar için scutil --nc start gibi adlandırılmış bir oturum isteği bir denetim işlemidir. Sunucu ayarlarını kurmaz, kimlik bilgilerini içe aktarmaz ve ilk kaydetmenin yetkilendirmesini yapmaz. Onu bir zincirin son adımı olarak görün, asla zincirin tamamı olarak değil.

Sırları komut satırı bağımsız değişkenlerinden ve olağan tanılama çıktısından uzak tutun. Dağıtım hangi kimlik mekanizmasını seçtiyse, başlatma komutunun güvenmesi gereken odur ve shell geçmişine yapıştırılmış bir parola her incelemede bir bulgudur.

İki kabul denetimi

İlk denetim hazırlamadır: yeni kurulmuş bir Mac alın ve yapılandırmanın var olduğunu, doğru yöneticiye ait olduğunu ve tamamen onaylandığını kanıtlayın. Bunu bağlantıyı test etmeden önce yapın, çünkü hazırlanmamış bir makinede bağlantı testi betik hakkında hiçbir şey kanıtlamaz.

İkinci denetim oturumdur: bağlanın, yetkili kaynağa ulaşın ve temiz bir şekilde ayrılın. Artık her arızanın bir sahibi vardır ve iki işi ayırmanın pratik faydası budur. Eksik profil bir teslimat sorunudur, kaydetme hatası bir onay sorunudur, reddedilen oturum açma bir kimlik doğrulama sorunudur ve başarılı bir başlatmadan sonraki zaman aşımı oturum katmanıdır. Hiçbiri «betik bozuk» değildir.

İlgili makaleler