Ohranite podpisni ključ CA OpenVPN zunaj /etc/openvpn
Delovni prostor CA izdaja identitete; storitev le porablja nameščeno gradivo. Vsaki vlogi dajte svoj račun, mapo in varnostno kopijo ter preverite oba.
Dve mapi, ki sta v vadnici videti enaki, opravljata popolnoma različni deli. Ena vsebuje potrditveno agencijo: njen zasebni ključ, števec serijskih številk in evidenco vsega, kar je podpisala. Druga vsebuje tisto, kar daemon potrebuje za zagon in strežbo odjemalcem. Obe postaviti na isti gostitelj pod istim računom je priročno za eno popoldne in drago za preostanek življenjske dobe uvedbe, ker daemon takrat teče ob edinem ključu, ki lahko ustvari katero koli identiteto, ki si jo želi.
Kaj vsebuje delovni prostor CA
Mapa PKI je stanje izdajatelja, ne konfiguracija. Vsebuje zasebni ključ in potrdilo CA, datoteko s serijsko številko, indeks izdanih potrdil in gradivo za posamezno identiteto, izdelano iz njih.
Podpis zahteve spremeni to stanje, zato delovni prostor pripada računu, ki ga upravlja skrbnik, na gostitelju, kjer storitev VPN ne teče. Kdor lahko prebere zasebni ključ CA, lahko izda potrdilo, ki mu bo strežnik zaupal, zato je zaščita ključa celoten model zaupanja v eni datoteki. Kopiranje na drugo mesto, da bi prihranili korak, ustvari drugo stvar, ki jo je treba zaščititi, in drugo, ki jo je treba pozabiti. Vsak podpis tudi poveča serijsko številko in doda vnos v indeks, zato je delovni prostor ena kopija stanja, ne mapa datotek.
Javno potrdilo CA je drugačno. Namenjeno je razširjanju in odjemalci ter strežniki ga uporabljajo za medsebojno preverjanje.
Kaj daemon prebere ob zagonu
Delujoč strežnik porabi majhen nabor: lastno potrdilo, lastni zasebni ključ, potrdilo CA za preverjanje partnerjev in katero koli ključno gradivo, ki ga zahteva izbrani način. Te poti prebere ob zagonu in znova ob ponovnem nalaganju.
Lastništvo je treba oceniti glede na enoto, ki se dejansko zažene, ne glede na interaktivno lupino root. Deklarirano peskovnik lahko del datotečnega sistema naredi samo za branje ali neviden, tudi ko ročni preizkus kot root uspe.
systemctl show -p User -p Group -p ReadOnlyPaths [email protected]
stat -c '%a %U:%G' /etc/openvpn/server/server.key
runuser -u openvpn -- test -r /etc/openvpn/server/server.key; echo $?Tretjo vrstico ljudje preskočijo. Sprašuje lastni račun daemona, ali lahko prebere ključ, in to je edina različica vprašanja, ki je pomembna po tem, ko so privilegiji spuščeni. Ničeln izhod kot root ne pove ničesar o tem, kaj se zgodi po spustu.
Obe poti napake je vredno ločiti, preden spremenite katero koli dovoljenje. Napaka podpisovanja kaže na mapo PKI, dovoljenje za iskanje v njenih nadrejenih mapah in račun, ki poganja izdajatelja. Napaka zagona kaže na enoto, njeno delovno mapo in poti, navedene v konfiguraciji strežnika. Če je celotno drevo berljivo za vse, ne odpravi nobene od njiju in odstrani mejo, od katere sta odvisni obe.
Zakaj kopiranje ključa CA na strežnik pozneje ne uspe
Kopija se običajno začne kot razhroščevalna poteza: nekdo želi obnoviti odjemalca na gostitelju VPN, zato ključ CA konča v /etc/openvpn in obnova deluje. Neposredna naloga uspe in meja je izginila.
Nato se strežnik varnostno kopira in podpisna agencija se pridruži varnostnim kopijam. Posnetek, paket za podporo ali kopija konfiguracijske mape zdaj nosi zmožnost izdajanja zaupanja vrednih identitet, dokler je CA veljavna. Kdor ima to kopijo, lahko ustvari potrdilo za vsako ime, ki ga strežnik sprejme, vključno z imeni, ki niso bila nikoli izdana. Edina evidenca te izdaje je tista, ki jo izberejo obdržati.
Okrevanje iz tega stanja ni stvar brisanja datoteke. Odločiti se morate, ali je bil ključ razkrit, zavrteti CA, če je bil, in prerazporediti zaupanje vsakemu partnerju. Ločen delovni prostor se izogne celotnemu pogovoru.
Računi, mape, varnostne kopije
Izdajatelju dajte lasten račun in domačo mapo, stran od gostitelja VPN, kjer je to praktično. Daemonu dajte drug račun z bralnim dostopom do nameščenega gradiva in pisalnim dostopom do ničesar, kar izdaja potrdila. Uvajajte s kopiranjem javnih potrdil navzven in nikoli z vlečenjem zasebnega stanja izdajatelja navznoter. Varnostno kopirajte obe vlogi ločeno, ker se njuna občutljivost in njune zgodbe obnovitve razlikujeta.
Po preklicu posodobite datoteko CRL, ki jo navaja konfiguracija strežnika, in nato znova naložite storitev, da jo nove povezave preberejo. Dokumentacija Easy-RSA pokriva postavitev delovnega prostora in potek podpisovanja; pravila lastništva okoli njega ostajajo odločitev o vašem gostitelju. Preverite, kaj je storitev naložila, z openssl crl -in /etc/openvpn/crl.pem -noout -lastupdate -nextupdate namesto da bi domnevali, da ga je ponovno nalaganje prevzelo.
Preizkus, ki dokaže ločitev
Preverite negativni primer, ne le delujočega. Podpišite potrdilo z računa izdajatelja, kot je predvideno, nato potrdite, da isti račun ne more zagnati storitve ali prebrati zasebnega ključa strežnika. Nato potrdite, da račun daemona ne more prebrati zasebnega ključa CA.
Ti trije pregledi trajajo nekaj minut in preživijo kadrovske spremembe, ker so trditve o dovoljenjih in ne o navadi. Zapišite rezultat s potmi in računi, ki jih je zajel, ter datumom, ko ste jih izvedli. Naslednja oseba, ki podeduje to uvedbo, bo sicer mejo znova izpeljala iz vadnice, ki je nikoli ni imela. Datiran zapis je tudi tisto, zaradi česar naslednji pregled traja minute namesto popoldneva.