Yalnızca bir yönetim istemcisi: monitörünüz neden grafik arayüzü dışarı atıyor
Yönetim soketi aynı anda tek bağlantı kabul eder. İkinci abone ya bağlanamaz ya da komut istemlerini elinde tutan bileşenden denetimi çalar.
Masaüstü grafik arayüzü yönetim bağlantısını tutar, bu yüzden kendi bağlantısını açmaya çalışan bir izleme betiği hiçbir şey okumaz ya da daha kötüsü, arayüz komut istemlerine yanıt vermeyi keser. Alışıldık sonuç, sunucu sürecinin kararsız olduğudur. Topluluk sunucusunda sınırlama bilinçlidir: denetim arayüzü aynı anda tek bağlı yönetim istemcisine hizmet eder ve bu sayının VPN'in kaç kullanıcı taşıyabileceğiyle hiçbir ilgisi yoktur.
Tek soket, tek sahip
Yönetim kanalı tek bir bağlı istemci kabul eder. Birincisi etkinken ikincisi geldiğinde bekler ya da reddedilir ve bir seçeneğin arkasına gizlenmiş paralel abone kipi yoktur. Geçerli sahibin bağlantısını kesmek sunucu sürecinin sıradakini kabul etmesini sağlar; bu ikinci bir kanal değil, bir devir teslimdir.
Bu, her ek aracı bir rakibe dönüştürür. Bağlantı arayüzün sahibindeyse, yoklama betiği ya bağlanamaz ya da ancak arayüz pes ettikten sonra başarır ve sıra bir sonraki yeniden bağlanmada yinelenir. Betik önce bağlanırsa arayüz denetim yolunu kaybeder ve komut istemleri çalışmayı durdurur. Araçların hiçbiri çakışmayı bildirmez, çünkü her biri yalnızca kendi başarısız komutunu görür.
| What you need | Mechanism that fits | What it cannot do |
|---|---|---|
| Periodic list of connected clients | Status file written on an interval | Deliver events as they happen |
| Interactive prompts and session control | The single management connection | Serve two controllers at once |
| Multiple consumers of either | One owner process that fans out | Exist without you writing it |
Hangi bileşenin denetimi elinde tuttuğuna karar verin
Etkileşimli kanal için tek bir sahip seçin ve yalnızca o bağlansın. Bağlantıyı yöneten bir arayüz, kimlik doğrulama istemlerine yanıt veren bir betik ve oturumları sonlandıran bir denetleyici, hepsi sahip sayılır ve rolü yalnızca biri üstlenebilir.
Bir arayüz bağlantının sahibiyse, onunla savaşmak yerine sunduğu tümleştirmeyi kullanın. Soket için sahiple yarışmak, kullanıcılara rastgele görünen aralıklı arızalar üretir ve hata ayıklayan kişi genellikle yarışın yalnızca ikinci yarısını görür. Yeniden başlatmadan sonra hangi sürecin önce bağlandığını not edin, çünkü bu sıra her seferinde kimin kazandığını belirler. Arayüzden önce başlayan bir monitör, arayüz pes edene kadar kanalı elinde tutar.
Toplayıcılar için durum anlık görüntüleri kullanın
İzleme gereksinimlerinin çoğu bir liste ister, sohbet değil. Düzenli bir durum dosyası bunu denetim kanalına dokunmadan yanıtlar ve arayüz bağlı kaldığı sürece çalışmayı sürdürür.
status /run/openvpn/server.status 10
management /run/openvpn/server.sock unix
Aralık, tazelik bütçesidir; bu yüzden onu güvenli görünen en küçük değere değil, panonun gerçekten ihtiyaç duyduğuna göre ayarlayın. Birkaç saniyede bir yazılan anlık görüntü ucuzdur; birkaç saniyede bir denetim soketine yeniden bağlanan betik ucuz değildir, çünkü her yeniden bağlanma sahiple rekabet eder.
Anlık görüntü ne bir geçmiş ne de olay akışıdır. Tek aralık içinde gelip giden bağlantılar hiç görünmez, bu yüzden kendi üzerine yazan bir dosyayı yoklayarak denetim gereksinimi karşılanamaz. Bir kullanıcının hiç bağlanıp bağlanmadığını bilmeniz gerekiyorsa, anlık görüntü yanlış araçtır.
Dağıtım bir tasarımdır, bir kip değil
Birkaç tüketici gerçekten canlı yönetim verisine ihtiyaç duyuyorsa, soketin önüne tek bir güvenilir bileşen koyun ve dar seçilmiş gözlemleri diğerlerine yayımlamasına izin verin. Bu bileşen yeniden bağlanmayı, kimlik doğrulama istemlerini ve neyin açığa çıkarılmasının güvenli olduğu kararını elinde tutar.
Onu bilinçli olarak kurun: hangi sorgulara izin verildiğini tanımlayın, kimin sorduğunu günlüğe yazın ve dağıtım katmanının yanlışlıkla uzaktan kumanda paneline dönüşmesini önleyin. Sunucu sürecinde açılacak bir çoklu istemci kipi yoktur ve hiçbir yapılandırma satırı böyle bir kip oluşturmaz. Sahibi güvenlik sınırının parçası olarak görün, çünkü insanların bağlantısını kesebilen bir arayüzü elinde tutar. Yeniden başlatması, belgelenmiş bir kurtarma yolu olan rutin bir işlem olmalıdır.
Soketi ölçüm değil, ayrıcalık olarak görün
Yönetim arayüzü kullanıcıların bağlantısını kesebilir, durumu değiştirebilir ve insanların adını anan olayları okuyabilir. Parolası istemcinin kimliğini doğrular ve taşımayı şifrelemez, bu yüzden bir ağ dinleyicisi konuşmayı onu gözleyebilen herkese açar.
Yerel bir soketi ya da sıkı kısıtlanmış bir dinleyiciyi tercih edin ve toplayıcınızın gerçekte hangi sürece yöneldiğini denetleyin, çünkü sunucu ürünleri farklı davranan kendi yönetim API'lerini getirir. Yanlış sunucu sürecine yöneltilmiş bir toplayıcı kendinden emin ve yanlış sonuçlar üretir. Hiçbir şey döndürmeyen bir sorguda hata ayıklamadan önce yolu ve sahip süreci doğrulayın.