Imaginea pornește, serviciul începe și clienții se conectează. Acesta este momentul să vă opriți și să întrebați care dintre două operațiuni foarte diferite tocmai a avut loc. Fie copia restaurează o poartă logică ce exista anterior, fie adaugă o a doua poartă în flotă. Ambele sunt legitime și au consecințe diferite pentru identitate și acces. O mașină care pornește curat nu dovedește niciuna dintre ele.

Trei condiții decid răspunsul și sunt cele trei găleți de material pe care o imagine le poate purta. Sortați-le înainte ca imaginea să fie construită, nu după ce a fost implementată de două ori.

Mai întâi decideți care dintre cele două operațiuni o efectuați

O restaurare păstrează o singură identitate de serviciu. Instanța veche a dispărut, numele și certificatul rămân, iar clienții continuă să aibă încredere în același punct final. O adăugare creează o a doua identitate pe care clienții, jurnalele și revocarea trebuie să o distingă.

Distincția nu este cosmetică. Dacă două gazde active prezintă același certificat de poartă, un client nu le poate distinge, nici o urmă de audit nu poate, iar revocarea acelui certificat le elimină pe amândouă deodată. Poate fi exact ceea ce dorește un proiect deliberat de disponibilitate ridicată și rareori este ceea ce urmărește o copie grăbită a unei imagini.

Așadar prima decizie este o propoziție, scrisă înainte ca imaginea să părăsească gazda de construcție: această copie restaurează poarta A, sau această copie devine poarta B. Tot ce urmează este contabilitate față de acea propoziție. Dacă nimeni nu o poate scrie, copia nu este gata de construit.

Intrări reutilizabile, identitate și autoritate, stare de implementare

Găleata reutilizabilă este cea ușoară: pachete, configurație revizuită fără secrete, șabloane de serviciu, setări de întărire. La asta o imagine este cu adevărat bună și poate fi reprodusă fără limită.

Găleata de identitate și autoritate este locul unde copiile greșesc. Cheia privată și certificatul unei porți identifică acea poartă în fața fiecărui client. Cheia de semnare a autorității de certificare este un obiect diferit cu o putere diferită: emite identități. A avea încredere într-un emitent nu înseamnă că fiecare poartă nouă are nevoie de capacitatea de a emite, iar expedierea cheii de semnare în interiorul unei imagini acordă acea capacitate oricui poate citi imaginea.

Găleata stării de implementare este cea pe care oamenii o uită pentru că arată ca o configurație. Adresele de ascultare, pool-urile de adrese, rutele împinse, setările resolverului și integrarea locală codifică toate presupuneri despre prima gazdă. Un al doilea nod care le copiază poate aloca dintr-un pool pe care o altă poartă îl deține deja sau poate direcționa clienții către o resursă care există doar lângă original.

Ce trebuie să primească un nod nou și de la cine

Un nod administrat independent ar trebui să primească propriile credențiale prin procesul de înregistrare aprobat, iar operațiunea de semnare să aibă loc acolo unde se află cheia de semnare, nu pe gazda nouă. Notați ce identitate poate fi retrasă fără a deranja celelalte noduri; dacă răspunsul este "toate", proiectul are o identitate care se preface a fi două.

Valorile de rețea merită același tratament. Alegeți un pool, o adresă de ascultare și un set de rute împinse care nu se ciocnesc cu poarta existentă și scrieți-le în intrările de aprovizionare, nu în imagine. Intrarea poate fi revizuită; imaginea nu.

Există un caz intermediar legitim. Un proiect de recuperare sau replicare acceptat poate păstra în mod deliberat o identitate logică de serviciu pe mai multe gazde, cu acces controlat la copia veche și un plan de rotație. Este o decizie cu un proprietar, nu o valoare implicită care se întâmplă pentru că imaginea a fost convenabilă.

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

Prima comandă arată ce identitate prezintă de fapt nodul și cine a semnat-o. A doua este un inventar inițial, nu o dovadă: materialul privat poate locui în afara acelui director, într-o bază de date a aplicației sau într-un strat de instantaneu pe care sistemul de fișiere în execuție nu îl mai arată.

Ce poartă în tăcere o copie a imaginii

Ștergerea unui fișier din cea mai recentă revizie a unei imagini nu îl elimină din reviziile mai vechi, din cache-urile de straturi sau din instantaneele făcute cât timp a existat. De aceea imaginile care poartă credențiale trebuie tratate ca obiecte sensibile pe toată durata lor de viață, nu doar în momentul construcției.

Verificați conținutul imaginii și intrările de aprovizionare ca două întrebări separate. Imaginea răspunde la "ce este în interiorul acestui artefact", iar intrările răspund la "ce va deveni această instanță la prima pornire". O imagine curată cu un script de pornire care aduce o cheie partajată răspunde bine la prima întrebare și prost la a doua.

Țineți imaginile de recuperare care conțin în mod legitim secretele limitate la oamenii care au nevoie de ele și notați unde sunt stocate. Alternativa, o imagine comodă pentru că funcționează fără nicio aprovizionare, este aceeași imagine care acordă identitatea porții oricui o găsește. Doar una dintre cele două sarcini apare într-un jurnal de construcție.

Verificări de admitere înainte de producție

Înainte ca nodul să preia trafic, confirmați patru lucruri: identitatea pe care o prezintă, clienții pe care îi va accepta, resursele la care îi este permis să ajungă și calea de întoarcere pentru adresele pe care le distribuie.

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

Apoi verificați cazul negativ, cel care prinde accidentele: are nodul nou acces de administrator sau de client care era destinat originalului? O configurație copiată poate purta o intrare suplimentară de client, o rută de administrare moștenită sau o directivă push care avea sens pe prima gazdă.

Dacă o imagine care conține secrete vii a depășit deja limita aprobată, înlocuiți credențialele și limitați copiile. Eliminarea fișierului din ultima construcție nu este același lucru cu scoaterea din uz a credențialului pe care copiile mai vechi îl mai dețin, iar diferența dintre aceste două fapte este exact fereastra de care are nevoie un atacator.

Articole similare