OpenVPN ryšys nepavyksta, kas nors randa vienos eilutės pataisą, pridedančią SECLEVEL=0, ir tunelis pakyla. Pasikeitė ne sertifikatas ir ne šifrų rinkinys; pasislinko visos bibliotekos priėmimo slenkstis, ir viskas, ką procesas daro vėliau, paveldi naują ribą. Verta tai suprasti prieš tą pačią eilutę nukopijuojant į kiekvieną aplinkos profilį.

Nustatykite, kuri biblioteka ir kokia politika galioja

SECLEVEL yra OpenSSL sąvoka, todėl pirmas klausimas, ar jūsų kompiliacija apskritai naudoja OpenSSL. OpenVPN galima susieti su daugiau nei viena kriptografijos biblioteka, o vienai iš jų galiojantis nustatymas beprasmis kitoms. Paklauskite binario, su kuo jis sukurtas, tada paklauskite bibliotekos, kokią versiją ir konfigūraciją ji įkėlė:

openvpn --version | head -3
openssl version -a

Atidžiai skaitykite versijos išvestį, nes distribucijos pataiso numatytąsias reikšmes. Kai kurios pateikia sistemos konfigūraciją, kuri pakelia minimalų lygį aukščiau upstream numatytosios, todėl tas pats profilis elgiasi skirtingai dviejose mašinose su identiškais OpenVPN paketais. Veiksminga politika yra ta, kurią įkėlė veikiantis procesas, o ne ta, kuri yra upstream vadove.

Tada atskirkite du sluoksnius, kuriuos žmonės painioja. OpenVPN turi savo TLS valdiklius, įskaitant sertifikato profilio nustatymą ir aiškius šifrų sąrašus, ir jie yra aukščiau visko, ką primeta biblioteka. Bibliotekos lygio sumažinimas nekeičia, kokius šifrus išvardija jūsų OpenVPN konfigūracija, o OpenVPN sąrašo susiaurinimas nepakelia bibliotekos slenksčio. Žinojimas, kuris sluoksnis jus atmetė, yra tai, kas neleidžia pataisai likti spėjimu.

Atskirkite tris dalykus, kurie gali būti atmesti

Pirmas kandidatas yra tapatybės medžiaga: sertifikatas, kurio raktas per mažas arba kurio parašo algoritmo politika nebepriima. Antrasis yra raktų mainų parametras, pavyzdžiui, grupė, kurią politika laiko per silpna. Trečiasis yra šifrų rinkinys, kurį politika atmeta. Visi trys gali sukelti rankos paspaudimo klaidą, ir tik klaidos tekstas bei derybų etapas juos skiria.

Nė vienas iš šių trijų nėra duomenų kanalo šifras. OpenVPN derasi dėl tunelio šifravimo atskirai nuo TLS rankos paspaudimo, todėl sėkmingas ryšys po saugumo lygio pakeitimo nieko nesako apie tai, kuris šifras saugo jūsų duomenis. Jei klausimas, kurį iš tikrųjų keliate, yra apie duomenų konfidencialumą, žiūrite į visiškai netinkamą rankenėlę.

Lygio sumažinimas praplečia priėmimą visiems trims įvestims vienu metu. Tai dalis, kurią žmonės praleidžia: pataisa, priimanti seną sertifikatą, priima ir silpną grupę, ir rinkinį, kurio galbūt neketinote leisti. Viena klaida paskatino pakeitimą, o pakeitimas platesnis už klaidą. Ši asimetrija yra priežastis, kodėl apribota išimtis geresnė už visos aplinkos numatytąją.

Keiskite įvestį, o ne slenkstį

Išsaugokite tikslią klaidą prieš liesdami konfigūraciją, įskaitant etapą, kuris ją pranešė, ir objektą, kurį ji įvardijo. Sertifikato problema sprendžiama pakeičiant sertifikatą tuo, ką priima dabartinė politika, o tai paprastai reiškia jo pakartotinį išdavimą institucijoje, o ne to paties failo perdiegimą.

Jei atmesta įvestis priklauso partneriui, kurio nekontroliuojate, pokalbis vyksta su jo savininku apie palaikomą pakaitinę medžiagą. Savo slenksčio sumažinimas, norint priglausti sistemą, kurios niekas nepalaiko, perkelia išlaidas nuo jų visiems, kurie jungiasi po jų.

Ten, kur serveris taiko politiką, prieš kaltindami biblioteką patikrinkite, ar tikroji priežastis yra OpenVPN lygio nustatymas. Sertifikato profilis, reikalaujantis griežtesnės klasės, nei gali atitikti įdiegtas sertifikatas, nepavyks nepriklausomai nuo saugumo lygio, o to profilio pašalinimas yra siauresnis pakeitimas nei bibliotekos patikrų išjungimas.

Jei turite jį sumažinti, apribokite ir užrašykite

Kartais patvirtinta suderinamumo išimtis yra teisingas atsakymas, ypač senam partneriui su datuotu išėjimo planu. Apribokite ją tai paslaugai, kuriai jos reikia, o ne visam hostui: paslaugos konfigūracijos failas arba atskira OpenSSL konfigūracija turi mažesnį poveikio spindulį nei eksportas visuotiniame profilyje.

Kartu su išimtimi užrašykite keturis dalykus: tikslų nustatymą, savininką, kuris ją patvirtino, paveiktus klientus ir sąlygą, kuriai esant ji bus pašalinta. Išimtis be išėjimo sąlygos yra nuolatinis susilpninimas su pridėtu laikinu pagrindimu.

Grįžimas atgal turėtų būti vienas žingsnis, kurį jau išbandėte. Išsaugokite ankstesnę konfigūraciją, pritaikykite pakeitimą, patvirtinkite, kad paslauga paleidžiama, ir tiksliai žinokite, kurį failą atkurti, jei kitas ryšys elgsis kitaip nei tikėtasi.

Tada patikrinkite tapatybę ir apsaugą

Sėkmingas ryšys tik įrodo, kad peržiūrėtos sąlygos jį priėmė. Patvirtinkite, kad hosto vardo ir partnerio tikrinimas vis dar atlieka savo darbą, kad naudojamas sertifikatas yra tas, kurį ketinote įdiegti, ir kad suderėtas duomenų kanalas atitinka politiką, kurią manote turį.

openssl x509 -in /etc/openvpn/client.crt -noout -subject -dates -text | grep -E 'Signature Algorithm|Public-Key'
openvpn --show-tls | head -20

OpenSSL saugumo lygių nuoroda aiškiai nurodo, kad sistema taiko ribas raktams, parašams, grupėms ir rinkiniams kartu, ir kad nulinis lygis leidžia viską, ką tikrina atgalinis iškvietimas. Tai yra jūsų pakeisto apimtis, ir tai yra sakinys, kurį cituoti, kai kas nors klausia, ar pataisa buvo siaura.

Auditą atlaikantis perdavimas pasako, kuri politika atmetė kurią įvestį, kas buvo pakeista ir kas dėl to lieka priimta. „Tai veikia su SECLEVEL=0“ yra vieno ryšio stebėjimas, o ne diegimo saugumo vertinimas.

Susiję straipsniai