Atsiranda vienas senas įrenginys, nepavyksta prisijungti, o greičiausiai atrodantis taisymas — susilpninti visą hostą, kol ryšys pavyks. Toks mainas akimirką nematomas, o praktiškai lieka visam laikui, nes niekas nepašalina apatinės ribos, kuri pagaliau veikia. Spaudimą kuria dvi labai skirtingos gedimų rūšys, ir tik viena jų apskritai susijusi su šifrais. Pirmiausia surūšiuokite gedimą, tada padėkite išimtį ten, kur ji negali pasklisti.

Prieš keisdami direktyvą, padalykite gedimą į dvi dalis

Serverio žurnalo eilutė apie bendro šifro nebuvimą arba nepalaikomą protokolo versiją ateina iš valdymo kanalo: abi pusės negalėjo susitarti, kaip apsaugoti pačias derybas. Kliento eilutė, kad nė vienas serverio sertifikato tikrinimo metodas neįjungtas, ateina visai iš kitur, nes tas klientas apskritai netikrina, kas atsakė. Duomenų šifro keitimas nieko neduoda antruoju atveju, o rolės patikros pridėjimas nieko neduoda pirmuoju.

Imkite ankstyviausią kiekvienos pusės nepavykusią eilutę, o ne paskutinę prieš atsijungimą, nes paskutinė dažniausiai yra pasekmė. Tada nustatykite, kurį failą klientas iš tikrųjų atidarė: importuotas profilis dažnai egzistuoja du kartus skirtingais rodomais pavadinimais, o kopijos, kurios niekas neskaito, redagavimas sukuria įtikinamą pokyčio nebuvimą. Veikiantis procesas išlaiko nustatymus, su kuriais buvo paleistas, todėl išsaugotas failas nėra įkeltas failas. Toliau pateiktos komandos rodo kliento derybas šalia serverio požiūrio į tą patį bandymą.

openvpn --config <profile>.ovpn --verb 4 2>&1 | head -n 40
journalctl -u [email protected] --since '-10 min' | grep -iE 'cipher|tls|verify'

Antrasis klausytojas yra sąžininga vieta silpnesnei apatinei ribai

Kai įrenginys sustoja ties TLS 1.0 su duomenų kanalu iki 2.5, serveris turi pasiūlyti žemesnę valdymo kanalo apatinę ribą ir duomenų šifrą, kurį atpažįsta senas klientas. Atsarginė direktyva skirta būtent tam partneriui, o šifrų sąrašas išlaiko šiuolaikinius klientus šiuolaikiniuose rinkiniuose. Abi direktyvos priklauso klausytojui, o ne vartotojui ar ryšiui, ir joks atskiro kliento nustatymas jų vėliau nesusiaurina. Štai kodėl vienas senas įrenginys pagrindiniame porte yra sprendimas apie kiekvieną partnerį, kuris tuo portu dalijasi.

Kur platforma leidžia, paleiskite seną klausytoją kaip atskirą egzempliorių kitame porte, leiskite tą portą tik iš įrenginio adreso, o pagrindinę paslaugą palikite ramybėje. Užrašykite, kodėl antrasis klausytojas egzistuoja, faile, kuriame yra jo konfigūracija, nes priešingu atveju būsimas valymas jį perskaitys kaip likučius. Atskyrimas vertas tik tada, kai silpnesnė apatinė riba baigiasi ten, kur baigiasi įrenginys.

tls-version-min 1.0
data-ciphers AES-128-GCM:AES-256-GCM:AES-256-CBC
data-ciphers-fallback AES-256-CBC

Ką iš tikrųjų sugadina senas teikėjo sertifikatas

Tikrinimo klaida yra trūkstamas rolės susiejimas: be jo klientas priims bet kurį sertifikatą, kuris jungiasi prie patikimos CA, nesvarbu, ar jis buvo išduotas serveriui. Pirmiausia susiekite sertifikatą su serverio role ir traktuokite susiejimą kaip reikalavimą, o ne derinimo rankenėlę. Tik profilis, kuris ir po šio žingsnio nepavyksta, turi tikrą sertifikato problemą.

Senas teikėjo sertifikatas, kurio rakto dydis ar parašo algoritmas nebeatitinka numatytosios OpenSSL politikos, yra atvejis, kai valdymo kanale reikia apriboto saugumo lygio pakeitimo. Lygio sumažinimas ten neišjungia tikrinimo, ir jo niekada negalima derinti su tuščiu CA, išjungtu tikrinimu ar nepatikrintu pagrindinio kompiuterio vardu. Laikykite eilutę tame viename profilyje, kuriam jos reikia; atlaisvintos OpenSSL konfigūracijos eksportavimas globaliai suteiktų tą patį atlaisvinimą kiekvienai mašinos programai.

remote-cert-tls server
tls-cipher "DEFAULT:@SECLEVEL=0"

Skaitykite suderėtas reikšmes, o ne reklaminę juostą

Esant verbosity 4, abi pusės išveda valdymo kanalo TLS versiją ir šifrą, dėl kurių susitarė, ir sesijos duomenų šifrą. Skaitykite tas eilutes, o ne inicializavimo reklaminę juostą, kuri praneša apie sėkmę, o ne jos sąlygas. Tada iš naujo prijunkite šiuolaikinį klientą prie pagrindinio klausytojo ir patvirtinkite, kad jis vis dar patenka į šiuolaikinį rinkinį, nes išimtis, kuri prasiskverbė į bendrą konfigūraciją, pirmiausia pasimato čia. Nusirašytos reikšmės tampa kitos peržiūros pagrindu.

Išbandykite seną įrenginį atskirai: jis turi prisijungti ir turi būti vienintelė sesija žurnaluose, rodanti silpnesnius parametrus. Jei antrasis partneris taip pat derasi dėl seno rinkinio, išimtis platesnė nei numatyta, o klausytojų atskyrimas iš tikrųjų neįvyko. Užrašykite abu stebėjimus, o ne vien išvadą.

Kiekvienai išimčiai reikia savininko ir datos

Išimtis be pašalinimo sąlygos tyliai tampa numatytuoju variantu, todėl įrenginį, savininką, priežastį ir datą, kada ji išnyks, padėkite šalia konfigūracijos, kurią ji pateisina. Be šios eilutės silpnesnė apatinė riba pergyvena aparatinę įrangą, kuriai jos reikėjo.

Pakeisti klientą arba paprašyti teikėjo dabartinio profilio yra rezultatas, kurio reikia siekti; išimtis yra atidėjimas, o ne projektas. Kai įrenginys nurašomas, pašalinkite klausytoją ir profilį tame pačiame pakeitime, kad nė viena pusė neliktų veikti. Niekas iš to nepadaro senų parametrų saugių, tai tik neleidžia vieno įrenginio ribai tapti visų pagrindu.

Susiję straipsniai