Du failai, dvi direktyvos ir įprotis abu vadinti pagal tai, ką jie konfigūruoja. Taip dh.pem atsiduria tls-auth eilutėje, o klientas nepavyksta su pranešimu apie netikėtą rakto formatą. Sprendimas priešais jus nėra kuris failas stipresnis. Tai, kokios rolės diegimui iš tikrųjų reikia, ir trys sąlygos tai nusprendžia: kokį raktų mainą derėsis jūsų TLS stekas, ar apskritai norite valdymo kanalo autentifikavimo, ir ar medžiaga turi likti slapta.

Atsakykite į juos iš eilės ir failo klausimas atsakys pats. Praleiskite juos ir direktyvų pavadinimai ims atrodyti pakeičiami, o būtent iš tos būsenos ir kyla klaida.

Perskaitykite etiketę prieš failo pavadinimą

Pirmoji failo eilutė informatyvesnė už jo pavadinimą, nes pavadinimas yra žmogiška konvencija, o etiketę sukuria įrankis. Diffie-Hellman parametrai turi PEM etiketę BEGIN DH PARAMETERS. OpenVPN statinis raktas yra visiškai kita struktūra, su sava antrašte ir šešioliktaine apkrova.

Pervadinimas nieko nekonvertuoja. Parametrų failas pavadinimu ta.key vis dar yra parametrai, o statinis raktas pavadinimu dh.pem vis dar yra statinis raktas; analizatorius skaito turinį ir atmeta neatitikimą. Patikrinkite prieš redaguodami profilį:

head -n 1 dh.pem
head -n 1 ta.key

Trys sąlygos, nusprendžiančios, kurio failo jums reikia

Pirmoji sąlyga – mainai. Baigtinio lauko Diffie-Hellman rankos paspaudimui reikia grupės, o direktyva dh yra vieta, kur serveris įvardija jai parametrus. Elipsinės kreivės rankos paspaudimui to failo visai nereikia, nes kreivė ir yra parametrų rinkinys. Jei jūsų serveris derasi tik dėl ECDHE rinkinių, DH failas yra negyvas svoris, o ne papildoma jėga.

Antroji sąlyga – valdymo kanalo autentifikavimas, atskira funkcija su sava medžiaga. tls-auth failas yra bendras statinis raktas, kurį turi abi pusės, naudojamas valdymo kanalo paketams pasirašyti, kad neautentifikuota pusė net negalėtų užbaigti rankos paspaudimo. Jis egzistuoja nepriklausomai nuo to, ar naudojate baigtinio lauko DH, ir neturi nieko bendra su grupės parametrais.

Trečioji sąlyga – slaptumas ir platinimas. DH parametrus galima skelbti nesusilpninus sesijos, nes slaptos reikšmės generuojamos kiekvienam rankos paspaudimui ir niekada nepalieka pusių. Statinio rakto skelbti negalima: tai tie patys baitai abiejuose galuose, jis pats nesikeičia, o kas jį turi, gali kurti galiojančius valdymo kanalo parašus. Šie du atsakymai veda prie visiškai skirtingų tvarkymo taisyklių, todėl vienas failas gali gulėti saugykloje, o kitas – ne.

Sukurkite tinkamą medžiagą kiekvienai rolei

Naudokite įrankį, kuris sukuria direktyvos laukiamą formatą, o ne konvertuokite tarp jų. OpenVPN 2.6 bendram raktui generatoriaus tipizuota forma aiškiai nurodo paskirtį.

openvpn --genkey tls-auth ta.key

Ši komanda sukuria naują slaptą medžiagą; ji netaiso ir netikrina esamo rakto, o paleidus dar kartą gausite kitą raktą, kurio kitos pusės neturi. Nukopijuokite gautą failą reikalingoms pusėms kanalu, kurį naudotumėte bet kokiai bendrai paslapčiai, ir palaikykite krypties konvenciją nuoseklią: su tls-auth viena pusė naudoja key-direction 0, o kita – key-direction 1.

DH parametrai, kai jų reikia, gaunami generuojant parametrus, o ne iš raktų generatoriaus, ir jų kilmė svarbi net tada, kai išvestis vieša. Grupė, paimta iš nežinomo šaltinio, netampa patikima dėl to, kad yra vieša; ji vis tiek turi būti grupė, dėl kurios sutaria jūsų pusės, ir tokia, kurios nesusilpnina jos dydis ar konstrukcija.

Ką reiškia dh none ir ko nereiškia

dh none yra tikra direktyva siaura prasme: joks baigtinio lauko parametrų failas nebus įkeltas, nes rankos paspaudimas naudoja elipsinės kreivės Diffie-Hellman. Tai nėra santrumpa „praleisti DH žingsnį“ ta prasme, kad ką nors susilpnintų, ir tikrai nepasako OpenVPN priimti kitą failą kaip pakaitalą.

Dvi klaidos kyla neteisingai jį perskaičius. Pirmoji – manyti, kad dh none panaikina tls-auth poreikį, nors abu valdo skirtingus dalykus. Antroji – laikyti pasenusią dh eilutę šalia tik kreivės konfigūracijos ir tada stebėtis, kurį failą serveris iš tikrųjų naudoja; jei direktyva yra, failas skaitomas, o ten sulaužytas kelias nepavykdo paleidimo dėl priežasties, nesusijusios su mainais, dėl kurių bus deramasi.

Jei netinkamas failas jau įdiegtas

Atkurkite numatytą paslaptį iš profilio savininko ir kol tai darote, nelieskite sertifikato tikrinimo. Gedimas yra formato neatitikimas, o ne pasitikėjimo gedimas, ir tikrinimo išjungimas klaidai apeiti pakeičia paleidimo problemą tylia problema.

Tada atskirkite du įvykius, kuriuos žmonės linkę sujungti. DH parametrų failo paskelbimas beveik nekenksmingas, nes parametrai buvo vieši pagal projektą. tls-auth rakto atskleidimas yra kitas įvykis: raktas autentifikuoja valdymo kanalo paketus kiekvienai pusei, kuri jį turi, todėl keitimą reikia derinti visame diegime, o ne taikyti viename hoste.

Penkių minučių patikra nusprendžia, kuriuo atveju esate: perskaitykite kiekvieno failo pirmą eilutę, patvirtinkite į jį nukreipiančią direktyvą ir patvirtinkite, kad failo platinimas atitinka tai, ko reikalauja medžiaga. Tai mažesnis darbas nei iš naujo sukurti veikiančią PKI, ir būtent į tai visą laiką nukreipė trys sąlygos.

Susiję straipsniai