Mac'te PF VPN kilidi: bir site politikası, teslim edilebilir bir özellik değil
Packet Filter, dağıtılan ürünler için desteklenen bir API değildir. Kural kümesine bir sahip atayın, her istisnayı adlandırın ve geçişleri test edin.
Mac'inizde çalışıyor, bu yüzden kullanıcılara verebileceğiniz bir şey gibi görünüyor. Bu varsayım ilk bırakılması gereken şeydir. Apple'ın TN3165 belgesi, Packet Filter'ın genel olarak dağıtılan ürünler için desteklenen bir API olmadığını açıkça belirtir ve ayrıcalıklı, kontrollü site yönetimini makul durum olarak çerçeveler. Bu nedenle PF üzerine kurulu bir VPN kilidi, sahibi olan yerel bir operasyonel politikadır; bir uygulamanın içinde teslim edebileceğiniz bir özellik değildir.
PF bir paketleme yüzeyi değildir
Bu ayrım akademik değildir. PF'ye bağımlı dağıtılan bir ürün, Apple'ın onda yaptığı her değişikliği, kural yazan başka bir araçla her çakışmayı ve bu düzenlemenin çalışmaya devam edeceğine dair hiçbir destek taahhüdünü miras alır. Kendi makinelerini yöneten bir site farklı bir ilişkiye sahiptir: bağımlılığı belgeleyebilir, her işletim sistemi sürümüne karşı test edebilir ve bakımı kabul edebilir.
Bazı kurulum tavsiyeleri adlandırmaya değer bir çizgiyi aşar. Tek bir çapa yüklemek için tüm sistem kural kümesinin üzerine yazmak, Apple'ın sistem başlatma yapılandırmasını düzenlemek veya System Integrity Protection'ı devre dışı bırakmak, yeniden kullanılabilir bir tarif için kabul edilebilir gereksinimler değildir. Yayımlanmış bir kılavuz bunlardan herhangi birine ihtiyaç duyuyorsa bir laboratuvarı anlatıyordur, konuşlandırılabilir bir politikayı değil.
Sözdiziminden önce çıkış niyetini yazın
Tek bir anahtar sözcük seçmeden önce neyin izinli olduğuna karar verin. Genellikle üç yol bulunmalıdır: VPN istemcisinin kendi sunucusuna giden kendi taşıması, tünel içindeki korunan uygulama trafiği ve kurulumun veya yerel hizmetlerin gerçekten doğrudan bir yola ihtiyaç duyduğu her şey.
Önerilen her istisnaya bir hedef, bir taşıma ve bir sahip verin. Tek bir uç noktaya tüm bağlantı noktalarına izin vermek, tünelin kullandığı tek taşımadan çok daha fazlasına izin verir ve ek maruziyet, kimse böyle olması gerektiğine karar vermeden ortaya çıkar. Genel bir çözümleyiciye izin vermek, daha dostça bir kılıkta aynı tuzaktır: tünel kapalıyken bile doğrudan bir DNS yolu yaratır, bu yüzden ad aramaları hâlâ sızar.
| Path | Destination | Owner |
|---|---|---|
| VPN transport | Gateway address, one UDP port | Network team |
| Tunnel traffic | Internal prefixes | Application owner |
| Resolver exception | Named internal resolver | Security team |
Bir istisna için faydalı test, onu isteyen kişiyi ve önlediği arızayı adlandırıp adlandıramadığınızdır. İki yanıttan hiçbiri yoksa, kural muhtemelen aksi hâlde görünmez kalacak yanlış bir yapılandırmanın etrafından dolaşmadır.
utun numaraları bir kimlik değildir
MacOS tünel arayüzlerini utun aygıtları olarak oluşturur ve VPN'inize atanan numara kararlı değildir yeniden başlatmalar, yeniden bağlanmalar veya başka bir istemcinin varlığı arasında. Birkaç tahmini numarayı listeleyen bir kural politika değildir; bir öğleden sonranın anlık görüntüsüdür.
Kuralı amaçlanan sağlayıcıyı tanımlayan bir şeye bağlayın: tünelin atadığı adres planı, arayüzün sahibi olan süreç veya VPN istemcisinin kendisinin sürdürdüğü bir yapılandırma. Sonra bu tanımlamanın nasıl çalıştığını kaydedin, çünkü kuralı bir yıl sonra inceleyecek kişide sizin kabuk geçmişiniz olmayacak.
Yüklenen politikayı atfedilebilir kılın
Bir çapa adı kuralları düzenler; etkili politikanın amaçladığınız olduğunu kanıtlamaz. Çapalar arasındaki öncelik, başka yazılımların yüklediği kurallar ve mevcut durum sonucu değiştirebilir. Etkili kümeyi o makinede PF'nin sahibi olan herkesle birlikte gözden geçirin ve sahipliği yapılandırmayla aynı yerde belgeleyin. Farklı varsayımlarla farklı çapaları düzenleyen iki sahip, bir kilidin delik kazanmasının olağan yoludur.
Kural kümesini sitenin desteklenen yapılandırma yolunda tutun, sürümleyin ve hangi macOS sürümlerinin test edildiğini not edin. Elle uygulanan ve tek bir kişinin hatırladığı bir değişiklik, dosya başlığı ne derse desin, bakımı yapılan altyapı değildir.
Bağlı durumu değil, geçişleri test edin
Tünel açıkken alınan bir ekran görüntüsü neredeyse hiçbir şeyi kanıtlamaz. Bunun yerine durumları dolaşın: herhangi bir bağlantıdan önce başlangıç, çalışan bir tünel, uyarı vermeden düşen bir tünel, kasıtlı bağlantı kesme ve Wi-Fi'den erişim noktasına geçiş. Her durumun kendi yanıtı vardır ve ilginç olanlar mutlu yol değil, arızalardır.
Her durumda kasıtlı olarak erişilebilir olanı kaydedin. IPv4 ve IPv6'yı ayrı ayrı kontrol edin, ad çözümlemesini test edin ve geçişten önce kurulmuş bir akışı dahil edin, çünkü mevcut bağlantılar yeni politikayı her zaman izlemez. Tünel kapalıyken başarısız olan bir tarayıcı tek bir veri noktasıdır, diğer tüm yolların engellendiğinin kanıtı değildir.
Son olarak, değiştirdiğiniz ağ yoluna bağlı olmayan bir kurtarma yöntemi tutun. Yerel depolamada bilinen iyi bir yapılandırma ve onu yüklemenin belgelenmiş bir yolu, bir kilidi politikaya dönüştürür; bunlar olmadan, kötü bir revizyon yöneticiyi korunması gereken makinenin dışında kilitler.