Një lidhje OpenVPN dështon, dikush gjen një rregullim prej një rreshti që shton SECLEVEL=0, dhe tuneli ngrihet. Ajo që ndryshoi nuk ishte certifikata dhe as grupi i shifrave; u zhvendos një prag pranimi në nivel biblioteke, dhe gjithçka që bën procesi më pas trashëgon kufirin e ri. Ia vlen ta kuptoni këtë përpara se i njëjti rresht të kopjohet në çdo profil të mjedisit.

Përcaktoni cila bibliotekë dhe cila politikë janë në fuqi

SECLEVEL është një koncept i OpenSSL, prandaj pyetja e parë është nëse ndërtimi juaj përdor OpenSSL fare. OpenVPN mund të lidhet me më shumë se një bibliotekë kriptografie, dhe një rregullim që vlen për njërën prej tyre është i pakuptimtë për të tjerat. Pyetni binarin me çfarë është ndërtuar, pastaj pyetni bibliotekën çfarë versioni dhe konfigurimi ngarkoi:

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

Lexoni me kujdes daljen e versionit, sepse shpërndarjet rregullojnë vlerat e paracaktuara. Disa sjellin një konfigurim sistemi që ngre nivelin minimal mbi atë të paracaktuar të upstream, dhe për këtë arsye i njëjti profil sillet ndryshe në dy makina me paketa OpenVPN identike. Politika efektive është ajo që ngarkoi procesi në punë, jo ajo e manualit të upstream.

Pastaj ndani dy shtresat që njerëzit i ngatërrojnë. OpenVPN ka kontrollet e veta TLS, duke përfshirë një rregullim të profilit të certifikatës dhe lista eksplicite shifrash, dhe ato qëndrojnë mbi gjithçka që imponon biblioteka. Ulja e nivelit të bibliotekës nuk ndryshon cilat shifra liston konfigurimi juaj i OpenVPN, dhe ngushtimi i listës së OpenVPN nuk e ngre pragun e bibliotekës. Të dish cila shtresë të refuzoi është ajo që nuk lejon që rregullimi të mbetet hamendje.

Ndani tre gjërat që mund të refuzohen

Kandidati i parë është materiali i identitetit: një certifikatë çelësi i së cilës është shumë i vogël ose algoritmi i firmës së së cilës nuk pranohet më nga politika. I dyti është një parametër i shkëmbimit të çelësave, si një grup që politika e konsideron shumë të dobët. I treti është një grup shifrash që politika përjashton. Të tre mund të shkaktojnë dështim shtrëngimi duarsh, dhe vetëm teksti i gabimit dhe faza e negociimit i dallojnë.

Asnjëri prej këtyre të treve nuk është shifra e kanalit të të dhënave. OpenVPN negocion kriptimin e tunelit të tij veçmas nga shtrëngimi i duarve TLS, prandaj një lidhje që ka sukses pas një ndryshimi të nivelit të sigurisë nuk thotë asgjë se cila shifër mbron të dhënat tuaja. Nëse pyetja që po bëni në të vërtetë ka të bëjë me konfidencialitetin e të dhënave, po shikoni një çelës krejt të gabuar.

Ulja e nivelit zgjeron pranimin për të tre hyrjet njëherësh. Kjo është pjesa që njerëzit e humbin: rregullimi që pranon një certifikatë të vjetër pranon gjithashtu një grup të dobët dhe një grup shifrash që mund të mos kishit ndërmend të lejonit. Një gabim i vetëm shkaktoi ndryshimin, dhe ndryshimi është më i gjerë se gabimi. Kjo asimetri është arsyeja pse një përjashtim i kufizuar është më i mirë se një vlerë e paracaktuar për të gjithë mjedisin.

Ndryshoni hyrjen, jo pragun

Ruani gabimin e saktë përpara se të prekni konfigurimin, duke përfshirë fazën që e raportoi dhe objektin që emëroi. Një problem certifikate zgjidhet duke zëvendësuar certifikatën me diçka që politika aktuale pranon, gjë që zakonisht do të thotë ta riemëtoni nga autoriteti në vend që të riinstaloni të njëjtin skedar.

Nëse hyrja e refuzuar i përket një pale që nuk e kontrolloni, biseda është me pronarin e saj për material zëvendësues të mbështetur. Ulja e pragut tuaj për të strehuar një sistem që askush nuk e mirëmban e zhvendos koston prej tyre te të gjithë ata që lidhen pas tyre.

Aty ku serveri zbaton politikën, kontrolloni nëse një rregullim në nivel OpenVPN është shkaku i vërtetë përpara se të fajësoni bibliotekën. Një profil certifikate që kërkon një klasë më të rreptë sesa certifikata e vendosur mund të përmbushë do të dështojë pavarësisht nivelit të sigurisë, dhe heqja e atij profili është një ndryshim më i ngushtë sesa çaktivizimi i kontrolleve të bibliotekës.

Nëse duhet ta ulni, kufizojeni dhe dokumentojeni

Ndonjëherë një përjashtim i miratuar përputhshmërie është përgjigja e duhur, sidomos për një palë të vjetër me një plan të datuar tërheqjeje. Kufizojeni atë në shërbimin që ka nevojë, jo në të gjithë hostin: një skedar konfigurimi për shërbim ose një konfigurim OpenSSL i dedikuar ka një rreze ndikimi më të vogël sesa një eksport në profilin global.

Shkruani katër gjëra bashkë me përjashtimin: rregullimin e saktë, pronarin që e miratoi, klientët e prekur dhe kushtin në të cilin hiqet. Një përjashtim pa kusht tërheqjeje është një dobësim i përhershëm me një justifikim të përkohshëm të bashkëngjitur.

Kthimi pas duhet të jetë një hap i vetëm që e keni testuar tashmë. Ruani konfigurimin e mëparshëm, zbatoni ndryshimin, konfirmoni që shërbimi niset dhe dini saktësisht cilin skedar të riktheni nëse lidhja tjetër sillet ndryshe nga sa pritej.

Më pas verifikoni identitetin dhe mbrojtjen

Një lidhje e suksesshme provon vetëm se kushtet e rishikuara e pranuan atë. Konfirmoni që verifikimi i emrit të hostit dhe palës vazhdon të bëjë punën e vet, që certifikata në përdorim është ajo që kishit ndërmend të vendosni dhe që kanali i të dhënave i negociuar përputhet me politikën që mendoni se keni.

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

Referenca e OpenSSL për nivelet e sigurisë thotë shprehimisht se kuadri zbaton kufizime mbi çelësat, firmat, grupet dhe grupet e shifrave së bashku, dhe se niveli zero lejon gjithçka që kontrollon callback-u. Ky është shtrirja e asaj që ndryshuat, dhe kjo është fjalia që citohet kur dikush pyet nëse rregullimi ishte i ngushtë.

Dorëzimi që kalon një auditim thotë cila politikë refuzoi cilën hyrje, çfarë u ndryshua dhe çfarë mbetet e pranuar si rezultat. „Punon me SECLEVEL=0“ është një vëzhgim për një lidhje, jo një vlerësim sigurie i vendosjes.

Artikuj të ngjashëm