remote-cert-tls server: ką ji tikrina OpenVPN profilyje
Direktyva tikrina priešinės pusės sertifikate užkoduotą vaidmenį, o ne jo pavadinimą. Prieš ką nors išjungdami palyginkite vaidmenį, pasitikėjimo inkarą ir pagrindinio kompiuterio vardo patikrą.
Trys skirtingi klausimai sulaukia atsakymų iš trijų skirtingų OpenVPN profilio dalių, ir būtent jų sumaišymas lemia, kad žmonės galiausiai išjungia veikiantį patikrinimą. Ar priešinės pusės sertifikatas pasirašytas institucijos, kuria pasitikiu? Ar tas sertifikatas deklaruoja TLS serverio vaidmenį? Ar tai tas konkretus serveris, kurį norėjau pasiekti? remote-cert-tls server atsako tik į vidurinį klausimą, ir tai daro skaitydamas sertifikato viduje esančius plėtinius.
Trys patikrinimai, kuriuos lengva sumaišyti galvoje
Pasitikėjimo inkaras glūdi direktyvoje ca. Vaidmens patikrinimas priklauso remote-cert-tls. Tapatybės patikrinimas priklauso verify-x509-name, kai profilis jį naudoja, arba bet kuriam vardo patikrinimui, kurį prideda diegimas.
Jie apima skirtingus gedimus:
| 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 |
Profilis gali turėti visus tris ir vis tiek būti silpnas, jei CA per plačiai bendrinama, o tai yra raktų valdymo, o ne direktyvos klausimas.
Ką skaito vaidmens patikrinimas
Direktyva yra makrokomanda. Ji išsiplečia į rakto naudojimo reikalavimą ir išplėstinio rakto naudojimo reikalavimą, nurodantį TLS žiniatinklio serverio vaidmenį, todėl priešinės pusės sertifikatas turi iš tikrųjų deklaruoti tą paskirtį. Kliento autentifikavimui išduotas sertifikatas to neatitinka, net kai ta pati institucija pasirašė abu.
Tai svarbu, nes bendrinama CA įprasta mažuose diegimuose. Viena institucija pasirašo kiekvieną klientą ir serverį, o be vaidmens patikrinimo bet kuris iš tų sertifikatų galėtų užbaigti serverio pusę rankos paspaudimo. Patikrinimas nepadaro to scenarijaus neįmanomo, bet pašalina jo trivialią versiją.
Direktyva pagal dizainą yra asimetrinė: klientai neša remote-cert-tls server, o serveriai neša remote-cert-tls client. Sukeiskite juos ir kiekvienas ryšys nepavyks su vaidmens klaida, kuri atrodo kaip sugadintas sertifikatas.
Senesni profiliai kartais naudoja ns-cert-type tam pačiam tikslui. Dabartiniai vadovo puslapiai tą parinktį laiko pakeista, todėl profilį, kuris vis dar ja remiasi, verta perkelti, o ne derinti.
Kodėl jį išjungti atrodo kaip pataisymas
Kai vaidmens patikrinimas nepavyksta, ryšys sustoja su patikros klaida, ir akivaizdus žingsnis yra ištrinti eilutę. Tada ryšys pakyla, kas atrodo kaip pažanga ir iš tikrųjų yra gedimo režimas, kurį direktyva egzistuoja, kad užkirstų kelią. Dabar jūs priimate priešinę pusę, kurios sertifikatas niekada nebuvo skirtas tam vaidmeniui.
Vietoj to perskaitykite klaidą. Ji įvardija nepavykusį patikrinimą, o kitos pusės sertifikatą galima ištirti, kad pamatytumėte, kokius plėtinius jis tikrai turi. Dvi minutės skaitymo nusprendžia, ar gedimas yra išdavime, ar konfigūracijoje. Spėliojimas kainuoja popietę ir dažniausiai baigiasi susilpnėjusiu profiliu. Atnaujintas serverio sertifikatas, praradęs išplėstinį rakto naudojimą, yra tikras atnaujinimo gedimas, o ne priežastis atsipalaiduoti klientui.
Vardo patikrinimas yra atskira direktyva
Vaidmens patikrinimo įvykdymas reiškia, kad priešinė pusė yra koks nors jūsų institucijos pasirašytas serveris. Tai nieko nesako apie tai, kuris, o tai svarbu, kai ta pati CA išduoda sertifikatus keliems tinklų sietuvams ir vienas jų yra pažeistas arba panaudotas iš naujo.
verify-x509-name lygina sertifikato subjektą su jūsų sukonfigūruota reikšme, su atitikimo režimais tiksliam subjektui, priešdėliui arba vienam laukui. Naudokite lauką, kuris iš tikrųjų identifikuoja sietuvą, ir tikėkitės sąmoningai jį atnaujinti, kai pavadinimas pasikeis.
Nė viena direktyva nepakeičia gero raktų tvarkymo. Jei kliento rakto failas kopijuojamas kartu su profiliu, priešinės pusės tapatybė yra tokia stipri, kokia yra platinimo sąrašas.
Išnagrinėkite sertifikatą prieš redaguodami profilį
Perskaitykite priešinės pusės sertifikatą ir kliento žurnalą, ta tvarka. Sertifikatas pasako, kokius vaidmenis jis deklaruoja; žurnalas pasako, kuris patikrinimas jį atmetė.
Šios komandos išspausdina naudojimo plėtinius ir patikros eilutes iš išsamaus ryšio:
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 verifyJei plėtiniai rodo serverio vaidmenį, o žurnalas vis dar praneša apie vaidmens gedimą, profilis tikriausiai nurodo ne tinkamą sertifikato failą, o ne blogą sertifikatą. Jei plėtiniai rodo tik kliento autentifikavimą, nustokite žiūrėti į klientą ir ištaisykite išdavimą. Bet kuriuo atveju atkurkite patikrinimą prieš vadindami ryšį sveiku, nes sėkmingas rankos paspaudimas pašalinus patikrą įrodo mažiau nei klaida, kurią jis pakeitė.