remote-cert-tls server: çfarë kontrollon në një profil OpenVPN
Direktiva kontrollon rolin e koduar në certifikatën e palës tjetër, jo emrin e saj. Krahasoni rolin, ankorën e besimit dhe kontrollin e emrit të hostit përpara se të çaktivizoni diçka.
Tre pyetje të ndryshme marrin përgjigje nga tre pjesë të ndryshme të një profili OpenVPN, dhe bashkimi i tyre është mënyra se si njerëzit përfundojnë duke fikur një kontroll që funksiononte. A është certifikata e palës tjetër e nënshkruar nga autoriteti të cilin e besoj? A e deklaron ajo certifikatë rolin e serverit TLS? A është pikërisht ai server që doja të arrija? remote-cert-tls server përgjigjet vetëm pyetjes së mesme, dhe e bën këtë duke lexuar zgjerimet brenda certifikatës.
Tre kontrolle që bashkohen lehtë në kokë
Ankora e besimit jeton në direktivën ca. Kontrolli i rolit i përket remote-cert-tls. Kontrolli i identitetit i përket verify-x509-name, kur një profil e përdor atë, ose çdo kontrolli emri që shton vendosja.
Ato mbulojnë dështime të ndryshme:
| Question | Directive | Failure it catches |
|---|---|---|
| Who signed this? | ca | Certificate from an unrelated authority |
| Is this a server? | remote-cert-tls | Client certificate presented by a peer |
| Is this my server? | verify-x509-name | Another valid server from the same CA |
Një profil mund t'i ketë të treja dhe të mbetet i dobët nëse CA ndahet shumë gjerësisht, gjë që është çështje e menaxhimit të çelësave dhe jo e direktivës.
Çfarë lexon kontrolli i rolit
Direktiva është një makro. Ajo zgjerohet në një kërkesë për përdorim çelësi dhe një kërkesë për përdorim të zgjeruar çelësi që emërton rolin e serverit web TLS, prandaj certifikata e palës tjetër duhet të deklarojë vërtet atë qëllim. Një certifikatë e lëshuar për vërtetim klienti nuk e plotëson atë, edhe kur i njëjti autoritet ka nënshkruar të dyja.
Kjo ka rëndësi sepse një CA e përbashkët është e zakonshme në vendosje të vogla. Një autoritet nënshkruan çdo klient dhe serverin, dhe pa një kontroll roli secila prej atyre certifikatave mund të përfundonte anën e serverit të shtrëngimit të duarve. Kontrolli nuk e bën atë skenar të pamundur, por heq versionin e tij të parëndësishëm.
Direktiva është asimetrike nga dizajni: klientët mbajnë remote-cert-tls server, dhe serverët mbajnë remote-cert-tls client. Ndërrojini dhe çdo lidhje dështon me një gabim roli që duket si certifikatë e thyer.
Profilet më të vjetra ndonjëherë përdorin ns-cert-type për të njëjtin qëllim. Faqet aktuale të manualit e trajtojnë atë opsion si të zëvendësuar, prandaj një profil që varet ende prej tij meriton migrim dhe jo korrigjim.
Pse çaktivizimi duket si zgjidhje
Kur kontrolli i rolit dështon, lidhja ndalon me një gabim verifikimi dhe lëvizja e dukshme është fshirja e rreshtit. Lidhja pastaj ngrihet, gjë që duket si përparim dhe në fakt është mënyra e dështimit që direktiva ekziston për të parandaluar. Tani ju pranoni një palë tjetër, certifikata e së cilës nuk ishte menduar kurrë për atë rol.
Në vend të kësaj lexoni gabimin. Ai emërton kontrollin që dështoi, dhe certifikata në anën tjetër mund të inspektohet për të parë cilat zgjerime mban vërtet. Dy minuta lexim vendosin nëse faji është në lëshim apo në konfigurim. Hamendja kushton një pasdite dhe zakonisht përfundon me një profil të dobësuar. Një certifikatë serveri e përtërirë që humbi përdorimin e zgjeruar të çelësit është një defekt i vërtetë në përtëritje, jo një arsye për të liruar klientin.
Kontrolli i emrit është një direktivë e veçantë
Plotësimi i kontrollit të rolit thotë që pala tjetër është ndonjë server i nënshkruar nga autoriteti juaj. Nuk thotë asgjë për atë se cili, gjë që ka rëndësi kur e njëjta CA lëshon certifikata për disa porta dhe njëra prej tyre është komprometuar ose ripërdorur.
verify-x509-name krahason subjektin e certifikatës me një vlerë që ju konfiguroni, me mënyra përputhjeje për një subjekt të saktë, një parashtesë ose një fushë të vetme. Përdorni fushën që identifikon vërtet portën, dhe prisni ta përditësoni me qëllim kur emri ndryshon.
Asnjëra nga direktivat nuk zëvendëson trajtimin e mirë të çelësave. Nëse skedari i çelësit të klientit kopjohet rreth e rrotull bashkë me profilin, identiteti i palës tjetër është vetëm aq i fortë sa lista e shpërndarjes.
Inspektoni certifikatën përpara se të redaktoni profilin
Lexoni certifikatën e palës tjetër dhe regjistrin e klientit, në atë rend. Certifikata ju tregon cilat role deklaron; regjistri ju tregon cili kontroll e refuzoi.
Këto komanda shtypin zgjerimet e përdorimit dhe rreshtat e verifikimit nga një lidhje e detajuar:
openssl x509 -in server.crt -noout -text | grep -A1 -E "Key Usage|Extended Key Usage"
sudo openvpn --config client.ovpn --verb 4 2>&1 | grep -i verifyNëse zgjerimet tregojnë rolin e serverit dhe regjistri ende raporton një dështim roli, profili ndoshta tregon skedarin e gabuar të certifikatës dhe jo një certifikatë të keqe. Nëse zgjerimet tregojnë vetëm vërtetim klienti, ndaloni së shikuari klientin dhe rregulloni lëshimin. Në çdo rast, rikthejeni kontrollin përpara se ta quani lidhjen të shëndetshme, sepse një shtrëngim duarsh i suksesshëm pas heqjes së verifikimit provon më pak sesa gabimi që zëvendësoi.