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 needMechanism that fitsWhat it cannot do
Periodic list of connected clientsStatus file written on an intervalDeliver events as they happen
Interactive prompts and session controlThe single management connectionServe two controllers at once
Multiple consumers of eitherOne owner process that fans outExist 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.

İlgili makaleler