İmaj önyüklenir, servis başlar ve istemciler bağlanır. İşte o an durup iki çok farklı işlemden hangisinin az önce gerçekleştiğini sormak gerekir. Ya kopya daha önce var olan tek bir mantıksal ağ geçidini geri yüklüyordur ya da filoya ikinci bir ağ geçidi ekliyordur. İkisi de meşrudur ve kimlik ile erişim açısından farklı sonuçları vardır. Temiz biçimde açılan bir makine ikisini de kanıtlamaz.

Cevabı üç koşul belirler ve bunlar bir imajın taşıyabileceği üç malzeme kovasıdır. İmaj oluşturulmadan önce bunları ayırın, iki kez dağıtıldıktan sonra değil.

Önce iki işlemden hangisini yaptığınıza karar verin

Geri yükleme tek bir hizmet kimliğini korur. Eski örnek gitti, ad ve sertifika kalır ve istemciler aynı uç noktaya güvenmeye devam eder. Ekleme, istemcilerin, günlüklerin ve iptalin hepsinin ayırt etmesi gereken ikinci bir kimlik oluşturur.

Ayrım kozmetik değildir. İki canlı ana makine aynı ağ geçidi sertifikasını sunarsa, bir istemci onları ayırt edemez, denetim izi de ayırt edemez ve bu sertifikayı iptal etmek her ikisini birden kaldırır. Bu, kasıtlı bir yüksek kullanılabilirlik tasarımının tam olarak istediği şey olabilir ve aceleyle alınmış bir imaj kopyasının niyeti nadiren budur.

Yani ilk karar bir cümledir ve imaj derleme ana makinesini terk etmeden önce yazılır: bu kopya A geçidini geri yükler veya bu kopya B geçidi olur. Sonrasındaki her şey bu cümleye karşı muhasebedir. Kimse bunu yazamıyorsa kopya derlenmeye hazır değildir.

Yeniden kullanılabilir girdiler, kimlik ve yetki, dağıtım durumu

Yeniden kullanılabilir kova kolay olanıdır: paketler, sır içermeyen gözden geçirilmiş yapılandırma, hizmet şablonları, sağlamlaştırma ayarları. Bir imajın gerçekten iyi olduğu şey budur ve sınırsız çoğaltılabilir.

Kimlik ve yetki kovası, kopyaların yanlış gittiği yerdir. Bir ağ geçidinin özel anahtarı ve sertifikası o geçidi her istemciye tanıtır. Sertifika otoritesinin imzalama anahtarı farklı güce sahip farklı bir nesnedir: kimlik yayımlar. Bir yayımcıya güvenmek, her yeni geçidin yayımlama yeteneğine ihtiyacı olduğu anlamına gelmez ve imzalama anahtarını bir imajın içinde göndermek bu yeteneği imajı okuyabilen her şeye verir.

Dağıtım durumu kovası, yapılandırmaya benzediği için insanların unuttuğu kovadır. Dinleme adresleri, adres havuzları, itilen yollar, çözümleyici ayarları ve yerel tümleşme hepsi ilk ana makine hakkında varsayımları kodlar. Bunları kopyalayan ikinci bir düğüm, başka bir ağ geçidinin zaten sahip olduğu havuzdan tahsis edebilir veya istemcileri yalnızca aslın yanında bulunan bir kaynağa yönlendirebilir.

Yeni bir düğüme ne verilmeli ve kim tarafından

Bağımsız olarak yönetilen bir düğüm kendi kimlik bilgilerini onaylanmış kayıt süreciyle almalı ve imzalama işlemi yeni ana makinede değil, imzalama anahtarının bulunduğu yerde gerçekleşmelidir. Diğer düğümleri rahatsız etmeden hangi kimliğin geri çekilebileceğini kaydedin; cevap "hepsi" ise tasarımda iki gibi davranan tek bir kimlik vardır.

Ağ değerleri de aynı muameleyi hak eder. Mevcut ağ geçidiyle çakışmayan bir havuz, dinleme adresi ve itilen yollar kümesi seçin ve bunları imaja değil sağlama girdilerine yazın. Girdi gözden geçirilebilir; imaj değil.

Meşru bir ara durum vardır. Desteklenen bir kurtarma veya çoğaltma tasarımı, eski kopyaya denetimli erişim ve bir döndürme planıyla, ana makineler arasında tek bir mantıksal hizmet kimliğini kasıtlı olarak koruyabilir. Bu, sahibi olan bir karardır; imaj elverişli olduğu için oluşan bir varsayılan değildir.

openssl x509 -in /etc/openvpn/server/server.crt -noout -subject -issuer -dates
find /etc/openvpn -name '*.key' -o -name '*.pem' | head -20

İlk komut düğümün gerçekte hangi kimliği sunduğunu ve kimin imzaladığını söyler. İkincisi bir başlangıç envanteridir, kanıt değildir: özel malzeme o dizinin dışında, bir uygulama veritabanında veya çalışan dosya sisteminin artık göstermediği bir anlık görüntü katmanında yaşayabilir.

İmajın bir kopyası sessizce ne taşır

Bir dosyayı imajın en yeni revizyonundan silmek onu daha eski revizyonlardan, katman önbelleklerinden veya var olduğu süre boyunca alınan anlık görüntülerden kaldırmaz. Bu yüzden kimlik bilgisi taşıyan imajlar tüm yaşamları boyunca hassas nesneler olarak ele alınmalıdır, yalnızca derlendikleri anda değil.

İmaj içeriğini ve sağlama girdilerini iki ayrı soru olarak denetleyin. İmaj "bu yapıtın içinde ne var" sorusunu yanıtlar, girdiler ise "bu örnek ilk açılışta ne olacak" sorusunu. Paylaşılan bir anahtar getiren önyükleme betiğine sahip temiz bir imaj ilk soruya iyi, ikinciye kötü yanıt verir.

Meşru biçimde sır içeren kurtarma imajlarını ihtiyaç duyan kişilerle sınırlı tutun ve nerede saklandıklarını kaydedin. Alternatif, yani hiçbir sağlama olmadan çalıştığı için elverişli bir imaj, onu bulan herkese ağ geçidinin kimliğini veren aynı imajdır. O iki görevden yalnızca biri derleme günlüğünde görünür.

Üretim öncesi kabul denetimleri

Düğüm trafik almadan önce dört şeyi doğrulayın: sunduğu kimlik, kabul edeceği istemciler, erişmesine izin verilen kaynaklar ve dağıttığı adresler için dönüş yolu.

systemctl status openvpn-server@lab --no-pager
ss -lunp 'sport = :1194'
ip -4 route show table all | grep -F '10.90.'

Ardından kazaları yakalayan olumsuz durumu denetleyin: yeni düğümde asıl için tasarlanmış bir yönetici veya istemci erişimi var mı? Kopyalanmış bir yapılandırma fazladan bir istemci girdisi, devralınmış bir yönetim yolu veya ilk ana makinede anlamlı olan bir push yönergesi taşıyabilir.

Canlı sırlar içeren bir imaj onaylanmış sınırının ötesine geçtiyse kimlik bilgilerini değiştirin ve kopyaları sınırlayın. Dosyayı son derlemeden kaldırmak, eski kopyaların hâlâ elinde tuttuğu kimlik bilgisini devreden çıkarmakla aynı şey değildir ve bu iki gerçek arasındaki boşluk tam olarak bir saldırganın ihtiyaç duyduğu penceredir.

İlgili makaleler