duplicate-cn iki cihaza tek kimlik verir, iki değil
duplicate-cn tek bir ortak ad altında ikinci bir eşzamanlı oturuma izin verir. Hiçbir zaman ikinci bir cihaz kimliği, ikinci bir adres veya ayrı bir iptal oluşturmaz.
Profili tablete kopyalayın, bağlanın ve dizüstü bilgisayar düşüyor. duplicate-cn ekleyin, ikisi de bağlı kalır ve sorun çözülmüş görünür — ta ki iki cihaz aynı tünel adresi için kavga edene ya da kaybolan bir tablet tüm hesabı çevrimdışı bırakana kadar. Bu seçenek tek bir şeyi ve yalnızca tek bir şeyi değiştirir: sunucunun daha önce gördüğü bir ad altında ikinci oturuma izin verip vermediğini. İnsanların düzeltmesini beklediği her şey — cihaz bağımsızlığından cihaz başına adreslemeye ve seçmeli iptale kadar — hâlâ kimlik üzerinden yapılır ve burada kimlik sertifikadır.
Mit: ikinci oturum ikinci kimliktir
Sezgi, iki bağlantının iki istemci olması ve iki istemcinin de kendi haklarına sahip iki cihaz olması gerektiğini söyler. Sunucu bunu böyle modellemez. Ortak bir ad görür ve duplicate-cn etkinken o adı taşıyan birden fazla canlı oturumu kabul eder; her biri daemon içinde kendi oturum durumunu alır.
Bu kabulün hiçbir yanı sertifika doğrulamasına dokunmaz. Aynı sertifika hâlâ kimlik bilgisidir, aynı anahtar hâlâ özel anahtardır ve sertifikanın öznesine bağlı her politika hâlâ iki kez aynı değere çözülür. İkinci oturum ikinci sokettir, ikinci kimlik değil.
Bu ayrım her şey çalışırken görünmezdir. İki cihazı ayırmanız gerektiği anda çok görünür hale gelir — ki bu genellikle birinin kaybolduğu gündür.
İki oturum bir adı paylaştığında gerçekte ne değişir
Seçenek olmadan, zaten bağlı olan ortak bir ad altındaki yeni bağlantı önceki oturumu dışarı iter. Tabletin bağlanmasıyla dizüstü bilgisayarın düşmesinin nedeni budur ve bu bir hata değil, kasıtlı bir belirsizlik korumasıdır. Seçenekle iki oturum da canlı kalır ve sunucu onları cihaza göre değil oturuma göre ayrı ayrı izler.
Her oturum yine kendi dış bağlantısını ve kendi müzakere edilmiş anahtarlarını alır, dolayısıyla eşzamanlı verim gerçekten eşzamanlıdır. Paylaştıkları şey kimlik bilgisinden türeyen her şeydir: politika aramaları, istemciye özgü yapılandırma, günlükteki kimlik ve iptal. Oturum durumu bağlantıya aittir ve onunla ölür; kimlik bilgisi düzeyindeki olgular ise ikisi için de kalır. Bu yüzden durum çıktısı aynı adı iki kez listeleyebilirken sayaçlar ayrı kalır.
Üzerine tasarım yapmadan önce derlemenizin gerçekte ne yaptığını doğrulayın, çünkü seçeneğin etkisini seçeneğin kendisi belirler, kulaktan dolma bilgiler değil:
grep -n 'duplicate-cn\|client-config-dir\|username-as-common-name' /etc/openvpn/server.conf
Atadığınızı sandığınız statik adres
İstemci başına yapılandırma ada göre aranır ve tuzak buradadır. Ortak ada göre adlandırılmış bir client-config-dir dosyası o adı kullanan her cihaza uygulanır, dolayısıyla içindeki ifconfig-push iki cihaza da aynı tünel adresini verir. İkinci oturum ya kurulamaz ya da yönlendirme arızası gibi görünen bir çakışma yaşar.
Dinamik bir havuz tesadüfen daha iyi davranır, çünkü her oturuma havuzdan bağımsız olarak bir adres atanır. Bu size yine de cihaz başına kararlı bir adres vermez ve o adrese bağlı cihaz başına bir politika hiç vermez.
Dağıtım username-as-common-name kullanıyorsa, arama anahtarı sertifika öznesi yerine kimliği doğrulanmış kullanıcı adı olur ve iki kez oturum açan herkes için aynı çakışma tekrarlanır. Yapılandırmayı yöneten adın cihaz başına benzersiz olması gerekir ki cihaz başına yapılandırma bir anlam taşısın.
Paylaşılan kimliğin kaldırma anında yapamadığı şey
İptal sertifika üzerinde işler, görünen ad üzerinde değil ve oturum üzerinde de değil. O sertifikayı iptal edin, kopyası olan her cihaz erişimi bir anda kaybeder — kimsenin rahatsız etmek istemediği ofisteki cihaz da dahil. Onu tutun, kaybolan cihaz çalışmaya devam eder, çünkü protokolde onu onaylanmış kopyadan ayıran hiçbir şey yoktur.
Günlükler de aynı belirsizliği miras alır. Durum çıktısı ortak bir ad ve gerçek bir adres gösterir ve ikisi de iki cihazdan herhangi birine ait olabilir. Hangi makinenin ne yaptığını bilmesi gereken bir olay incelemesi bu soruyu VPN'in kendi kayıtlarından yanıtlayamaz, günlük düzeyi ne kadar ayrıntı verirse versin.
Bunun kriptografik bir kaçış yolu yoktur. Aynı sertifikayı sunan iki cihaz, sunucu için aynı katılımcının iki kez kendisidir ve aksini iddia eden her düzen bir adlandırma kuralıdır, denetim değil.
Paylaşma ne zaman doğrudur ve nasıl sınırlanır
Paylaşmanın meşru kullanımları vardır: birkaç test makinesinin kullandığı bir laboratuvar hesabı ya da cihazların birlikte yönetildiği ve iptal ayrıntısının önemli olmadığı bir ev. Bu durumlarda seçeneği bilerek açın, paylaşılan kimlik bilgisini cihaz başına politikanın dışında tutun ve oturumların bir adreste çakışamaması için havuza boşluk bırakın.
Ayrı adresler, ayrı günlükler veya ayrı kaldırma gerektiren her şey için normal kayıt yolundan ayrı sertifikalar verin. Bu, her alt sisteme dayanacağı ayrı bir nesne verir ve adlar zaten benzersiz olduğu için seçenek önemini yitirir.
Hangi yolu seçerseniz seçin, oturum açmayı değil yönetim modelini test edin. İki cihazı bağlayın, farklı adreslere sahip olduklarını doğrulayın, sonra bir kayıp simüle edin ve tam olarak yalnızca birini kaldırabildiğinizi kontrol edin. openvpn(8) kılavuzu seçeneğin kapsamını tanımlar; paylaşmanın gerçekten kabul edilebilir olup olmadığını sizin kaldırma prosedürünüz tanımlar.