Żomm il-CA tal-għerq tal-VPN tiegħek offline u xorta oħroġ iċ-ċertifikati
Żomm iċ-ċavetta tal-għerq barra min-netwerk, iffirma ċ-ċertifikati tal-weraq b'CA intermedja, ippubblika CRL fil-ħin u ttestja l-ktajjen qabel ma jgħaqqad l-ewwel klijent.
Il-VPN tiegħek twieġeb konnessjonijiet fit-3 ta' filgħodu waqt li l-magna li tiffirma ċ-ċertifikati tiegħu tibqa' mitfija f'kexxun. Klijent li jivvalida ċ-ċertifikat tas-server qatt ma jikkuntattja lill-CA tiegħek, għalhekk il-CA m'għandhiex għalfejn tkun aċċessibbli għal ebda konnessjoni. Il-parti li teħtieġ ippjanar hija il-jum li fih ċertifikat irid jinħareġ, jiġġedded jew jiġi revokat waqt li ċ-ċavetta tal-għerq tibqa' msakkra.
X'jivvalida tassew konnessjoni
Meta l-klijent tal-OpenVPN jgħaqqad, huwa jimxi mal-ktajjen tal-firem miċ-ċertifikat tal-weraq tas-server sa ċertifikat tal-CA li diġà jafda, jivverifika t-tieqa tal-validità u, jekk il-profil jgħid hekk, jikkonsulta lista ta' revoka. Qatt ma jfittex il-CA tal-għerq tiegħek. Is-server jagħmel ix-xbieha mera għaċ-ċertifikati tal-klijent. Fil-ħin tal-konnessjoni huma preżenti biss il-weraq, l-intermedja u l-qatta ta' fiduċja li qsamt qabel.
Dak li tassew jonqos huwa wieħed minn tliet affarijiet: iċ-ċavetta tal-firma mhix disponibbli fil-ħin tal-ħruġ, lista ta' revoka saret skaduta, jew il-qatta ta' fiduċja tal-klijent hija eqdem mill-ktajjen li s-server jippreżenta. L-ewwel hija problema tal-proċess; it-tnejn l-oħra huma problemi tad-distribuzzjoni. L-ebda waħda minnhom ma teħtieġ li ċ-ċavetta tal-għerq tkun online, u servizz VPN ġestit li jitlob ċertifikat privat għall-awtentikazzjoni tal-mina biss iċaqlaq l-awtorità tal-firma għall-fornitur. Azure mill-punt għas-sit jaħdem bil-maqlub: tgħaddi ċertifikat tal-għerq u ċ-ċertifikati ffirmati taħtu jitqiesu affidabbli, għalhekk staqsi min jiffirma, min jivvalida u kif ċertifikat jiġi rtirat qabel il-waqt.
Ibni l-għerq fuq host li qatt ma jieħu indirizz
Għerq offline jintuża rari: biex jiffirma ċ-ċertifikat tal-CA intermedja, u aktar tard biex iġedddu jew jirrevokah. Kull ħaġa oħra sseħħ livell wieħed isfel. Agħmel ix-xogħol tal-għerq fuq magna li tinżamm 'il bogħod min-netwerk, jekk possibbli minn sistema ħajja, u nnota min kien fil-kamra. Il-kmandi jassumu OpenSSL 1.1.1 jew aktar ġdid, għax -addext mhuwiex disponibbli fil-bini l-qadim.
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"
Oħloq l-intermedja fuq il-host tal-firma u ġġib biss it-talba tagħha lejn il-magna offline. L-għerq jiffirma dik it-talba b'tul tal-passa ta' żero, għalhekk il-CA intermedja tista' tiffirma ċertifikati tal-punt finali iżda ma tistax toħloq CA oħra taħtha. Dak l-estensjoni waħda tipprevjeni host tal-firma kompromess milli joħloq awtorità ekwivalenti għall-għerq. Uża ECDSA biss jekk kull klijent iħaddem OpenVPN 2.4 jew aktar ġdid; inkella ġġenera ċaviet RSA u żomm il-fluss l-istess.
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 fih basicConstraints=critical,CA:TRUE,pathlen:0, keyUsage=critical,keyCertSign,cRLSign u authorityKeyIdentifier=keyid:always. Erġa' lura ċ-ċavetta tal-għerq fil-kaxxafort tagħha qabel ma l-host tal-firma jerġa' jgħaqqad. Jekk l-għerq irid ikun jista' jirrevoka l-intermedja, iffirmaha b'openssl ca -config root.cnf -extensions intermediate_ca kontra index.txt fil-livell tal-għerq minflok openssl x509 -req, sabiex in-numru tas-serje jiġi rreġistrat; imbagħad ibgħat il-lista tal-għerq li tirriżulta fil-profil tal-klijent, fejn crl-verify ibbażat fuq fajl jaqrah fil-bidu. Ibgħat lill-klijenti qatta b'żewġ ċertifikati tal-CA; weraq waħdu mhux se jiġi vvalidat kontra l-għerq.
Oħroġ weraq mill-intermedja, b'database
L-iffirmar b'openssl x509 -req jaħdem sakemm ikollok bżonn tirrevoka, għax xejn ma jirreġistra n-numru tas-serje. Uża openssl ca mill-ewwel ċertifikat sabiex in-numru tas-serje, l-iskadenza u l-istat tar-revoka jgħixu f'database waħda. Oħloq il-fajls tad-database darba, imbagħad indika l-konfigurazzjoni lejhom:
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
Il-linja tal-użu taċ-ċavetta tassumi ċavetta ECDSA; żid keyEncipherment għal RSA. Agħti lil kull klijent l-isem komuni tiegħu stess, għax OpenVPN jidentifika konnessjoni minn dak il-qasam, u żewġ laptops li jaqsmu CN=vpn-client ma jistgħux jiġu distinti fil-logs, fir-regoli tal-client-config-dir jew f'xi push għal kull utent, u titlef l-attribuzzjoni li tagħmel deċiżjoni ta' revoka difendibbli. Oħroġ u vvalida weraq hekk:
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
Żomm iċ-ċavetta tal-firma wara fruntiera ta' politika minflok ma tikkupjaha fuq il-host tal-VPN: servizz żgħir li jawtentika t-talba, jivverifika l-isem komuni kontra lista permessa u jirritorna biss iċ-ċertifikat. Irreġistra kull numru tas-serje; il-log huwa l-uniku rabta bejn ċertifikat u l-persuna li talbu.
Ippubblika r-revoka mingħajr ma tqajjem l-għerq
Iċ-ċertifikati tal-klijent jiġu revokati mill-intermedja, qatt mill-għerq. Il-lista tal-għerq hija importanti biss meta intermedja tinħaraq. Indika s-server lejn il-lista intermedja b'crl-verify. CRL ibbażat fuq fajl jitgħabba fil-bidu tas-servizz, għalhekk erġa' tgħabbih wara kull ġenerazzjoni mill-ġdid; il-forma tad-direttorju taqra l-istat fil-ħin tal-konnessjoni u tiswa fajl wieħed għal kull numru tas-serje.
Irrevoka u erġa' ġġenera b'żewġ kmandi mill-istess database:
openssl ca -config intermediate.cnf -revoke /etc/vpn-ca/intermediate/newcerts/1001.pem
openssl ca -config intermediate.cnf -gencrl -out /etc/openvpn/crl.pem
Imbagħad ara l-arloġġ. CRL iġorr qasam tal-aġġornament li jmiss, u meta dik id-data tgħaddi, il-pari li jivvalida jirrifjuta l-lista minflok ma jinjoraha. Ġenerazzjoni mill-ġdid kull xahar b'default_crl_days = 30 tħalli marġni; dik annwali le. Ħajjiet iqsar tal-weraq huma l-kontroll aktar affidabbli, għax ir-revoka tapplika biss fejn il-lista tiġi kkonsultata.
Ittestja l-ktajjen, imbagħad ikteb iċ-ċerimonja
Irriproduċi erba' fallimenti qabel ma tafda d-disinn. Ivvalida l-ktajjen b'openssl verify -CAfile ca-bundle.crt -untrusted intermediate.crt server.crt. Qabbad b'ċertifikat tal-klijent skadut u kkonferma li s-server jirrifjutah. Irrevoka klijent tat-test, erġa' tgħabba u kkonferma li l-lista tidħol fis-seħħ. Mexxi l-arloġġ ta' host jum 'il quddiem, għax arloġġ żbaljat jista' joħroġ u jirrifjuta ċertifikati li jidhru validi band'oħra.
Għerq offline huwa kontroll biss jekk teżisti l-karta: żewġ persuni msemmija għaċ-ċerimonja, rekord ta' kull numru tas-serje ffirmat, backup kriptat maħżun separat mill-magna, u test ta' restawr fuq host iżolat. Iffirma intermedja żejda waqt l-istess ċerimonja sabiex host tal-firma mejjet ma jġegħlekx tiftaħ l-għerq f'nofs il-lejl.
Qabel ma ssejjaħ dan lest, ikkonferma ħames affarijiet: iċ-ċavetta tal-għerq mhijiex fuq host konness man-netwerk, iċ-ċavetta intermedja tgħix biss fuq il-host tal-firma, il-qatta tal-klijent iġorr iż-żewġ ċertifikati tal-CA, il-CRL għandu aġġornament li jmiss fil-futur, u xi ħadd għandu entrata fil-kalendarju għal kull skadenza fil-ktajjen. Jekk waħda hija nieqsa, is-setup li jidher offline huwa biss mhux dokumentat.