Zure VPNak 3 ordutan erantzuten die konexioei, bere ziurtagiriak sinatzen dituen makina tiradera batean itzalita dagoen bitartean. Zerbitzariaren ziurtagiria baliozkotzen duen bezeroak ez du inoiz zure CArekin harremanetan jartzen, beraz CAk ez du konexioetarako irisgarria izan behar. Plangintza behar duen zatia hau da: ziurtagiri bat eman, berritu edo baliorik gabe utzi behar den eguna erro gakoa giltzapetuta dagoen bitartean.

Zer baliozkotzen du konexio batek benetan

OpenVPN bezeroa konektatzen denean, sinadura-katea zeharkatzen du zerbitzariaren hosto-ziurtagiritik gora, jada fidatzen den CA ziurtagiri bateraino, baliozkotasun-leihoa egiaztatzen du eta, profilak hala dioenean, baliogabetze-zerrenda kontsultatzen du. Inoiz ez dio zure erro CAri begiratzen. Zerbitzariak ispilu-irudia egiten du bezero-ziurtagirientzat. Konexio unean hosto-ziurtagiria, tarteko ziurtagiria eta aurrez banatu zenituen konfiantza-sortak soilik daude presente.

Benetan huts egiten duen gauza hiruretako bat da: sinadura-gakoa ez dago eskuragarri ematean, baliogabetze-zerrenda bat zaharkituta geratu da edo bezeroaren konfiantza-sorta zerbitzariak aurkezten duen katea baino zaharragoa da. Lehenengoa prozesu-arazoa da; beste biak banaketa-arazoak dira. Horietako batek ere ez du eskatzen erro gakoa linean egotea, eta tunelaren autentifikaziorako ziurtagiri pribatu bat eskatzen duen kudeatutako VPN zerbitzuak sinadura-autoritatea hornitzailera eramaten du soilik. Azure puntutik gunera alderantziz funtzionatzen du: erro ziurtagiri bat igotzen duzu eta haren azpian sinatutako ziurtagiriak fidagarritzat hartzen dira, beraz galdetu nork sinatzen duen, nork baliozkotzen duen eta nola kentzen den ziurtagiri bat aurretik.

Eraiki erroa inoiz helbiderik jasotzen ez duen ostalari batean

Lineaz kanpoko erroa gutxitan erabiltzen da: tarteko CA ziurtagiria sinatzeko eta, geroago, hura berritu edo baliogabetzeko. Gainerako guztia maila bat beherago gertatzen da. Egin erro-lana sarean egon ez dadin zaindua dagoen makina batean, ahal bada sistema bizirik, eta idatzi nork zegoen gelan. Komandoek OpenSSL 1.1.1 edo berriagoa suposatzen dute, -addext ez baitago eraikuntza zaharretan.

openssl genpkey -algorithm EC -pkeyopt ec_paramgen_curve:P-256 -out root.key
openssl req -x509 -new -key root.key -sha256 -days 7300 \
  -subj "/CN=Example VPN Root CA" -out root.crt \
  -addext "basicConstraints=critical,CA:TRUE" \
  -addext "keyUsage=critical,keyCertSign,cRLSign"

Sortu tartekoa sinadura-ostalarian eta eraman soilik haren eskaera lineaz kanpoko makinara. Erroak eskaera hori zero bide-luzerarekin sinatzen du, beraz tarteko CAk amaierako ziurtagiriak sina ditzake baina ezin du haren azpian beste CA bat sortu. Luzapen bakar horrek sinadura-ostalari konprometitu batek erroaren baliokidea den autoritatea sortzea eragozten du. Erabili ECDSA soilik bezero guztiek OpenVPN 2.4 edo berriagoa exekutatzen badute; bestela sortu RSA gakoak eta mantendu fluxua berdin.

openssl genpkey -algorithm EC -pkeyopt ec_paramgen_curve:P-256 -out intermediate.key
openssl req -new -key intermediate.key -subj "/CN=Example VPN Intermediate CA" -out intermediate.csr
openssl x509 -req -in intermediate.csr -CA root.crt -CAkey root.key \
  -CAcreateserial -days 3650 -sha256 -extfile intermediate.ext -out intermediate.crt

intermediate.ext(e)k basicConstraints=critical,CA:TRUE,pathlen:0, keyUsage=critical,keyCertSign,cRLSign eta authorityKeyIdentifier=keyid:always ditu. Itzuli erro gakoa bere kutxara sinadura-ostalaria berriro konektatu aurretik. Erroak tartekoa baliogabetu ahal izan behar badu, sinatu openssl ca -config root.cnf -extensions intermediate_ca erabiliz erro-mailako index.txt baten aurka, openssl x509 -req erabili beharrean, serie-zenbakia erregistratu dadin; gero bidali sortutako erro-zerrenda bezeroaren profilean, non fitxategian oinarritutako crl-verify(e)k abiaraztean irakurtzen duen. Bidali bezeroei bi CA ziurtagiriak dituen sorta bat; hosto-ziurtagiri bakar batek ez du erroraren aurka baliozkotuko.

Eman hostoak tartekotik, datu-base batekin

openssl x509 -req(e)kin sinatzeak balio du baliogabetu behar duzun arte, ezerk ez baitu serie-zenbakia erregistratzen. Erabili openssl ca lehenengo ziurtagiritik, serie-zenbakia, iraungitzea eta baliogabetze-egoera datu-base bakarrean bizi daitezen. Sortu datu-basearen fitxategiak behin eta gero bideratu konfigurazioa haietara:

mkdir -p /etc/vpn-ca/intermediate/newcerts
touch /etc/vpn-ca/intermediate/index.txt
echo 1000 > /etc/vpn-ca/intermediate/serial
echo 1000 > /etc/vpn-ca/intermediate/crlnumber
[ ca ]
default_ca = CA_default
[ CA_default ]
dir = /etc/vpn-ca/intermediate
database = $dir/index.txt
new_certs_dir = $dir/newcerts
serial = $dir/serial
crlnumber = $dir/crlnumber
certificate = $dir/intermediate.crt
private_key = $dir/intermediate.key
default_md = sha256
default_days = 365
default_crl_days = 30
unique_subject = no
policy = policy_any
[ policy_any ]
commonName = supplied
[ server_cert ]
basicConstraints = CA:FALSE
keyUsage = critical, digitalSignature
extendedKeyUsage = serverAuth
subjectAltName = @server_names
[ client_cert ]
basicConstraints = CA:FALSE
keyUsage = critical, digitalSignature
extendedKeyUsage = clientAuth
[ server_names ]
DNS.1 = vpn.example.com

Gako-erabileraren lerroak ECDSA gakoa suposatzen du; gehitu keyEncipherment RSArako. Eman bezero bakoitzari bere izen arrunta, zeren OpenVPN eremu horren bidez identifikatzen baitu konexioa, eta CN=vpn-client partekatzen duten bi eramangarriek ezin dute bereizi erregistroetan, client-config-dir arauetan edo erabiltzaileko push batean, eta galdu egiten duzu baliogabetze-erabakia defendagarri egiten duen esleipena. Eman eta baliozkotu hosto bat horrela:

openssl req -new -key alice.key -subj "/CN=alice-laptop" -out alice.csr
openssl ca -config intermediate.cnf -extensions client_cert -in alice.csr -out alice.crt -batch
openssl verify -CAfile ca-bundle.crt -untrusted intermediate.crt alice.crt

Eduki sinadura-gakoa politika-muga baten atzean, VPN ostalarira kopiatu beharrean: eskaera autentifikatzen duen, izen arrunta baimendutakoen zerrendaren aurka egiaztatzen duen eta ziurtagiria soilik itzultzen duen zerbitzu txiki bat. Erregistratu serie-zenbaki bakoitza; erregistroa da ziurtagiriaren eta hura eskatu zuen pertsonaren arteko lotura bakarra.

Argitaratu baliogabetzea errora esnatu gabe

Bezero-ziurtagiriak tartekoak baliogabetzen ditu, inoiz ez erroak. Erro-zerrenda garrantzitsua da tarteko bat erre denean soilik. Bideratu zerbitzaria tarteko zerrendara crl-verify erabiliz. Fitxategian oinarritutako CRLa zerbitzuaren hasieran kargatzen da, beraz birkargatu birsorkuntza bakoitzaren ondoren; direktorio-formak konexio unean irakurtzen du egoera eta fitxategi bat kostatzen du serie-zenbaki bakoitzeko.

Baliogabetu eta birsortu bi komandorekin datu-base berretik:

openssl ca -config intermediate.cnf -revoke /etc/vpn-ca/intermediate/newcerts/1001.pem
openssl ca -config intermediate.cnf -gencrl -out /etc/openvpn/crl.pem

Egiaztatu gero erlojua. CRLak hurrengo eguneratze eremu bat dakar, eta data hori igarotakoan baliozkotzen ari den kideak zerrenda ukatzen du, alde batera utzi beharrean. Hilean behin default_crl_days = 30(e)kin birsortzeak tartea uzten du; urtero egiteak ez. Hosto-bizitza laburragoak dira kontrol fidagarriena, baliogabetzea zerrenda kontsultatzen den lekuan soilik aplikatzen baita.

Probatu katea eta gero idatzi zeremonia

Erreproduzitu lau hutsegite diseinuan fidatu aurretik. Baliozkotu katea openssl verify -CAfile ca-bundle.crt -untrusted intermediate.crt server.crt erabiliz. Konektatu iraungitako bezero-ziurtagiri batekin eta egiaztatu zerbitzariak ukatzen duela. Baliogabetu probako bezero bat, birkargatu eta egiaztatu zerrenda indarrean sartzen dela. Aurreratu ostalari baten erlojua egun bat, erloju oker batek beste leku batzuetan baliozko diruditen ziurtagiriak eman eta uka baititzake.

Lineaz kanpoko erroa kontrol bat da paperak badaude soilik: zeremoniarako izendatutako bi pertsona, sinatutako serie-zenbaki bakoitzaren erregistroa, makinatik aparte gordetako segurtasun-kopia enkriptatua eta ostalari isolatu batean berreskuratze-proba bat. Sinatu ordezko tarteko bat zeremonia berean, sinadura-ostalari hildako batek gauerdian erroa desblokeatzera behartu ez zaitzan.

Amatutzat jo aurretik, egiaztatu bost gauza: erro gakoa ez dago sareko ostalari batean, tarteko gakoa sinadura-ostalarian soilik bizi da, bezeroaren sortak bi CA ziurtagiriak ditu, CRLak etorkizuneko hurrengo eguneratze bat du eta norbaitek egutegi-sarrera bat du kateko iraungitze bakoitzerako. Bat falta bada, lineaz kanpo dirudien konfigurazioa dokumentatu gabea besterik ez da.

Erlazionatutako artikuluak