Leggje til ein VPN-klient utan å byggje CA på nytt
Éi eining til er registrering, ikkje ein ny installasjon. Avgjer ut frå tilstanden til utferdaren, nøkkellagring og tenaridentitet.
Du treng eitt sertifikat til for ein berbar PC til, men den første rettleiinga i søkjeresultata byrjar med ein kommando som slettar PKI-mappa. Den kommandoen høyrer til første oppsett, ikkje til registrering, og han kostar deg CA-en, utferdshistorikken og kvar klientprofil som stolte på den gamle utferdaren. Avgjerda er smalare: har utferdaren framleis brukbar tilstand, og passar den nye eininga inn i registreringspolicyen din? Tre vilkår avgjer det, og berre eitt rettferdiggjer ein nybygg.
Kva eit nybygg faktisk øydelegg
Å initialisere ein PKI på nytt byter ut mappa med ein tom struktur: ny CA-nøkkel og nytt sertifikat, tom utferdsdatabase, ny serienummerteljar. Klientane følgjer ikkje av seg sjølv; profilane deira festar den gamle CA-en, så kvar eining må registrerast på nytt, og dei utilgjengelege må gjerast manuelt.
Det stillare tapet er bokføringa. Tilbakekalling er avhengig av at du veit kva serienummer du gav ut og til kven. Slettar du indeksen, kan du framleis signere, men ikkje seie med visse kva av dei utferda sertifikata du meinte å kalle tilbake. Ei CA-mappe med sertifikat utan den tilsvarande utferdartilstanden er ein tryggleikskopi som gjenopprettar feil halvdel av systemet.
Å kopiere den private CA-nøkkelen ved sida av tenaren som køyrer er den andre snarvegen du bør avvise: han gjer ein signeringsinstans som skal stå utanfor nettet til endå ei fil på ein vert med utrygg trafikk.
Første vilkår: er tilstanden til utferdaren framleis tilgjengeleg?
Finn mappa som tenaren faktisk stolar på før du avgjer. Samanlikn sertifikatet tenaren presenterer som CA med det i PKI-mappa etter fingeravtrykk, ikkje etter filnamn:
openssl x509 -in ca.crt -noout -fingerprint -sha256
openssl x509 -in /etc/openvpn/ca.crt -noout -fingerprint -sha256Stemmer avtrykka, er registreringa inkrementell og du skal ikkje byggje noko på nytt. Er dei ulike, signerer du med ein CA som tenaren ikkje stolar på: sertifikatet blir installert reint og feilar i handsaminga, og den feilen blir i timar feildiagnostisert som ein klientfeil.
Sjå så etter utferdstilstanden: indeksfila, serieteljaren og fila med CRL-nummeret. Manglar indeksen men nøkkelen lever, kan du gje ut, men du arvar eit problem med å registrere tilbakekallingar. Noter det i endringsloggen, for den neste tilbakekallinga vil avdekkje det.
Andre vilkår: kven held den nye private nøkkelen?
Dette er avgjerda brukarane kjenner, så ta henne eksplisitt. Ein klientgenerert nøkkel som blir send som førespurnad held den private halvdelen på eininga frå første kommando, og administratoren rører han aldri. Ein tenargenerert nøkkel er enklare for einingar utan verktøy, men gjer administratoren til vaktar for kvar klientnøkkel og aukar verknaden av ein tenarkompromiss.
Med Easy-RSA 3 mot ein eksisterande CA er import og signering av ein førespurnad to kommandoar:
./easyrsa import-req /tmp/alice.req alice
./easyrsa sign-req client aliceVel sertifikattypen med vilje. Ein førespurnad signert som tenarsertifikat i staden for klientsertifikat gjev ei fil som ser fin ut og som motparten avviser, og feilmeldinga seier sjeldan kvifor. Med openssl ca ligg det same valet i utvidingane du sender, ikkje i standarddelen.
Tredje vilkår: treng tenaren meir enn eit sertifikat?
For ein vanleg OpenVPN-tenar med sertifikatautentisering er sertifikatet sjølve registreringa: det felles namnet blir identiteten til klienten, og kvar klientmappe, dytta rute eller statisk adresse heng på det namnet. Legg til sertifikatet og gløym konfigurasjonen, tunnelen koplar seg opp men rutene som trengst dukkar aldri opp.
Plattformar endrar dette. OpenVPN Access Server har sin eigen brukardatabase, så eit signert sertifikat er ikkje ein konto; kontoen må finnast og vere tillaten. Andre portar knyter ein identitetsstreng til ei gruppe. Registrering av éi eining rører vanlegvis to system, og sertifikatet er berre det første.
Den inkrementelle prosedyren og når eit nybygg er rett
Rekkjefølgja som legg til éi eining utan skade: stadfest utferdaren med fingeravtrykk, tak ein fersk tryggleikskopi av PKI-mappa, importer og signer førespurnaden for klientrolla, lever sertifikatet med kjeda gjennom den godkjende kanalen, og stadfest før brukaren koplar seg på:
openssl verify -CAfile ca.crt alice.crt
openssl x509 -in alice.crt -noout -subject -issuer -dates -purposeFøremålslinja skal vise SSL client. Avslutt med å oppdatere CA-kopien etter utferda, fordi ein kopi teken før det nye serienummeret blir registrert gjenopprettar ein tilstand utan eininga du nettopp la til.
Eit nybygg er rett i tre tilfelle: CA-nøkkelen er kompromittert, utferdstilstanden er uoppretteleg tapt, eller du endrar nøkkelalgoritmen eller sertifikatpolicyen med vilje. Alle tre er prosjekt med ein plan for nyregistrering av kvar klient, ikkje steg i ein førespurnad om éi eining. Gjeld ingen, registrer inkrementelt og lat utferdaren vere.