Du klientai viename hoste skamba kaip dar vienas serverio blokas ir antras prievadas. Tai tampa kitu projektu, kai išvardiji viską, ką klientas iš tikrųjų valdo: klausytoją, tunelio telkinį, tapatybę, pasitikėjimo failus, maršrutus ir atšaukimo grafiką. Praleisk vieną iš jų ir antras klientas tyliai paveldi dalį pirmojo. Sukurk kortelę kiekvienam klientui ir užpildyk ją prieš prisijungiant pirmajam klientui.

Kiekvienam klientui skirk visą išteklių kortelę

Rezervuok visą rinkinį kartu: viešą prievadą, tunelio potinklį, konfigūracijos kelią, žurnalų paskirties vietą, paslaugos egzemplioriaus pavadinimą ir įrenginį. Jų įvardijimas grupe yra tai, kas apsaugo nuo klasikinės veikiančio failo kopijos, kurioje dar yra pirmojo kliento telkinys ar sąsaja. Reikšmės yra pavyzdžiai, o ne rezervuoti prievadai, todėl patikrink, ką hostas jau naudoja. Paslauga, kuri paleidžiama, nėra tas pats kaip užbaigtas klientas.

Laikyk kortelę prie konfigūracijos ir atnaujink ją, kai tik pasikeičia reikšmė. Dokumentacija, kuri nutolsta nuo realybės, yra blogiau nei jokios.

Laikyk pasitikėjimo medžiagą kiekvieno kliento viduje

Atskira išdavimo institucija kiekvienam klientui palengvina ribos supratimą ir laiko pasirašymo raktą toli nuo internetui atviro hosto. Bendra šaknis taip pat gali veikti, bet bendras inkaras nepaverčia dviejų paslaugų viena narystės sritimi. Nuspręsk, kokias grandines priima kiekvienas klausytojas ir kokias kliento tapatybes jis įgalioja, tada užrašyk abu. Nenuimk sertifikatų nuo grandinės bandymų ir klaidų metodu, kol kažkas prisijungs.

Serverio nuosavas privatusis raktas priklauso apsaugotam failui kiekvienam klientui, o ne šablonų katalogui, kuris replikuojamas kartu su konfigūracija.

Atskirk tinklus taip pat kaip procesus

Du procesai dviejuose prievaduose vis dar dalijasi hostu ir maršrutizavimo lentele, jei jų neatskirsi. Patvirtink, kas klausosi, prieš pasitikėdamas projektu.

ss -lunp | grep -E '1194|1195'
openssl verify -CAfile customer-a/ca.crt customer-a/client.pem

Klausytojo patikra parodo, kuris procesas valdo kiekvieną viešą prievadą, o tikrinimas parodo, ar kliento sertifikatas susiejamas su numatytu inkaru. Nė viena išvestis neįrodo, kad A klientas negali pasiekti B potinklio, todėl apibrėžk šaltinio ir paskirties politiką, grįžimo maršrutus ir bet kokią sąmoningai bendrą paslaugą. Tinklo vardų erdvės ar konteineriai atskiria maršrutizavimo kontekstus ir sumažina atsitiktinį maišymąsi, bet jie nėra visavertė nuomininko riba patys savaime. Pasirink stipresnį izoliavimo mechanizmą, kai to reikalauja grėsmių modelis.

Pristatyk atšaukimą prieš perdavimą

Sertifikato diegimas nebaigtas, kol atšaukimas neturi pristatymo kelio. Patikrink CRL išdavėją ir galiojimo langą kaip priėmimo dalį.

openssl crl -in customer-a/crl.pem -noout -lastupdate -nextupdate
systemctl status openvpn@customer-a

CRL patikra praneša, kada sąrašas išduotas ir kada baigiasi, o paslaugos būsena patvirtina, kad jį skaitantis egzempliorius veikia. Atnaujink sąrašą pagal išdavimo politikos grafiką net kai nieko naujo neatšaukta, nes pasibaigęs CRL gali atmesti kiekvieną klientą. Skelbk visą failą, o ne palik skaitytojams dalinį įrašą, ir prieš diegimą patikrink parašą. Užfiksuok, kas valdo išdavimą, galinio taško eksploatavimą ir išėmimą, kad A kliento išjungimas netrukdytų B.

Tada paleisk priėmimo porą: leidžiamas klientas pasiekia savo paslaugą, o A prisijungimo duomenys atmetami B klausytojo. Tai riba, išreikšta kaip testas.

Susiję straipsniai