VPN komutunuz ayrıcalıksız çalışır; hizmet çalışmaz
Parola istemi görünmemesi, rotaları kimin değiştirdiği hakkında hiçbir şey söylemez. Hizmeti, sunduğu arayüzü ve hangi çağıranların isteyebileceğine karar veren ilkeyi bulun.
VPN komutu sizin kullanıcınız olarak çalışır, parola görünmez ve tünel açılır. Bu dizi ayrıcalıksız bir işlem gibi hissettirir ve genellikle öyle değildir. Ağ değişikliklerini ayrı bir hizmet yapar ve ilginç soru, o hizmetin doğrulamadığı bir çağıran için ne yapacağıdır. Parola istemlerini saymak size o sınır hakkında hiçbir şey söylemez.
Arayüz, mekanizma ve denetim
Arayüz istekleri kabul eder: bağlan, bağlantıyı kes, profil seç. Mekanizma ağ işlemlerine sahiptir: arayüz oluşturma, rotaları değiştirme, filtreleri uygulama. Yetkilendirme denetimi bu çağıranın bu eylemi isteyip isteyemeyeceğine karar verir. Bu üçü bir ikili dosya, bir yardımcı ve bir sistem hizmeti arasında dağılabilir ve kullanıcı yalnızca ilkini görür.
Roller tek bir ikili dosyada, iki süreçte ya da bir istemci ve bir sistem hizmetinde yaşayabilir ve kullanıcının gördüğü komut hangisi olduğunu nadiren açıklar. Bir tepsi simgesi ve bir sistem artalan süreci, çok farklı yetkiyle çalışırken tek bir uygulama gibi görünebilir. Kurulum anındaki ayrıcalık ile istek anındaki ayrıcalık da farklı şeylerdir. root olarak çalışmış bir kurulum programı, paket yöneticisi bittikten çok sonra bile sonraki istekleri dinleyen bir hizmet bırakabilir. Yetki, yazdığınız komutta değil o hizmettedir.
Devretmek olağan tasarımdır
Ayrıcalıklı ağ işini bir hizmete devretmek makul mimaridir. Sıradan uygulamaları ayrıcalıksız tutar ve özen gerektiren işlemleri merkezileştirir. Tasarım ancak hizmet kimin ve ne için istediğini de denetlediğinde karşılığını verir. Bu denetim olmadan yalnızca daha geniş bir kapıdır.
NetworkManager, Linux'taki somut örnektir. Yapılandırma kılavuzu, PolicyKit'in varsayılan kurulumda root olmayan istekleri nasıl yetkilendirdiğini açıklar. Bu, gerçek bir üründe devredilmiş yetkilendirmeyi gösterir. Her ticari istemcinin NetworkManager kullandığını kanıtlamaz ve belirli bir satıcının soket yolunu ya da ilkesini tanımlamaz.
Desen, arkasında bir ilke olan devretmedir. Örnek bu desenin tek bir uygulamasıdır, evrensel değildir.
Sınırı okuyun, isteği değil
Hizmeti, yapılandırmasının sahibini ve ön ucun kullandığı yerel arayüzü bulun. Sonra hangi kullanıcıların hangi işlemleri isteyebileceğini sorun. Kaydedilmiş tek bir profili açıp kapatabilmek, işletmenin hiç incelemediği bir yapılandırmayı yüklemekle aynı izin değildir. Fark, güvenlik sorusunun tamamıdır.
Hizmet yöneticisiyle ve istemcinin kendi izinlerine ilişkin kendi görüşüyle başlayın. Aşağıdaki komutlar artalan sürecinin çalışıp çalışmadığını, çağıranın ondan ne isteyebileceğini ve artalan sürecinin çalışma dizini altında ne sunduğunu gösterir.
systemctl status NetworkManager
nmcli general permissions
ls -l /run/NetworkManager
İşlemin neyi etkilediğini de sorun. Kişisel görünen bir menü öğesi tüm makinenin rotalarını ve DNS'ini değiştirebilir, bu da diğer kullanıcıların oturumlarını bozabileceği anlamına gelir. Etki yarıçapı izinle aynı incelemeye aittir ve genellikle hizmetin daha dar bir role ihtiyacı olup olmadığına o karar verir.
İzinleri desteklenen yolla düzeltin
Korumalı bir denetim soketini herkesin yazabileceği hale getirmek ya da bir hesabı geniş bir yönetici grubuna eklemek, bir izin hatasını kaldırır ve daha büyüğünü oluşturur. Hata, o sınırın var olduğunu size söyleyen tek şeydi. Belgelenmiş üyelik ya da yetkilendirme sürecini, gerektirdiği oturum yenilemesiyle birlikte kullanın. Grup üyeliği çoğunlukla yalnızca yeni oturum açma oturumları için geçerlidir, bu yüzden bir değişiklik bir sonraki oturum açmaya kadar hiçbir şey yapmıyor gibi görünebilir.
Ürün işlem için daha dar bir rol sunuyorsa, genel bir verme yerine onu tercih edin. Seçilen rolü ve sahibini hizmet adının yanına yazın.
İyi bir ayrım nasıl görünür
Sıradan uygulamalar ayrıcalıksız kalır, hizmet yalnızca tasarlandığı kurulumu yapar ve her çağıran birinin sahip olduğu bir ilkeye göre denetlenir. Bu savunulabilir bir tasarımdır. Ayrıca denetlenebilirdir, çünkü ilkeye bir ad bağlıdır. Bundan büyük her şey sessiz bir izin değişikliği yerine yazılı bir istisnayı hak eder.
Başarısızlık kipi, arayüz elverişli olduğu için her yerel kullanıcının her isteğini yerine getiren bir hizmettir. Kullanıcı tarafından bakıldığında aynı görünür ve çok daha büyük bir yetki taşır. Yalnızca başarılı isteği değil, bir reddedilmiş isteği de sınayın. İlkeden gelen bir ret, ilkenin var olduğunun kanıtıdır.