AES-256-GCM hindi natagpuan: kakayahan ng kliyente o negosasyon?
Dalawang error ng OpenVPN ay magkamukha: build na walang algorithm at mga panig na walang karaniwang cipher. Basahin ang --show-ciphers at data-ciphers bago baguhin ang profile.
Ang profile ng OpenVPN na gumagana sa ibang lugar ay nag-uulat na hindi natagpuan ang AES-256-GCM, o wala ang mga panig ng karaniwang cipher, at ang unang reaksyon ay i-edit ang profile. Ang dalawang mensaheng ito ay naglalarawan ng magkaibang pagkabigo. Sinasabi ng isa na wala sa lokal na programa ang algorithm na iyon; sinasabi ng isa pa na may algorithm ang dalawang panig ngunit walang karaniwang pagpipilian. Hindi inaayos ng pag-edit ng profile ang alinman hanggang malaman mo kung alin ang mayroon ka.
Basahin ang eksaktong teksto ng error at ang programang gumawa nito.
Tukuyin kung aling error ang mayroon ka
Ang mensahe tungkol sa cipher na hindi natagpuan ay nagmumula sa pagsusuri ng mga opsyon sa lokal na makina, bago ipadala ang anumang packet. Ibig sabihin, ang executable sa harap mo, o ang library na naka-link dito, ay hindi nag-aalok ng algorithm na iyon. Ang mensahe tungkol sa kawalan ng karaniwang cipher ay dumarating mamaya, sa panahon ng negosasyon, at ibig sabihin ay sinusuportahan ng dalawang panig ang cipher ngunit hindi sila magkasundo sa isa.
Mahalaga ang pagkakaiba dahil ang isa ay problema sa bersyon ng software at ang isa ay problema sa configuration. Ang una ay naaayos ng numero ng bersyon. Ang pangalawa ay naaayos sa paghahambing ng dalawang listahan.
Kakulangan sa lokal na kakayahan
Ang lumang build ng komunidad ay mas matanda sa modernong default, at ang desktop application ay maaaring magdala ng sarili nitong engine na iba sa command-line package na naka-install sa tabi nito. Gawin ang mga pagsusuri sa executable na talagang naglunsad ng koneksyon, pagkatapos ay pumili ng sinusuportahang build sa halip na turuan ang lumang programa ng bagong algorithm.
openvpn --version openvpn --show-ciphers | grep -i gcm openvpn --show-tls | head -5
Kung wala ang AES-256-GCM sa listahang iyon, walang linya ng profile ang magdadagdag nito. Ang solusyon ay mas bagong kliyente o ibang build, at ang mga limitasyon ng mas lumang panig ay nagiging hiwalay na tanong sa disenyo.
Sa mga kliyenteng nakabatay sa OpenVPN 3, ang engine at ang tinatanggap na direktiba ay iba sa linya ng komunidad na 2.x, kaya ang parehong teksto ng profile ay maaaring mabigo sa mga dahilang walang kinalaman sa listahan ng cipher.
Kakulangan sa negosasyon
Kapag inilista ng dalawang panig ang algorithm, ang natitirang tanong ay kung aling listahan ang iniaalok ng bawat panig. Pinalitan ng OpenVPN ng komunidad ang pangalan ng direktiba ng negosasyon: ang ncp-ciphers sa 2.4 ay naging data-ciphers sa 2.5, at sa 2.6 ang lumang linyang cipher ay pangunahing nagsisilbi sa pagiging compatible at pag-urong, hindi sa pagtukoy ng napagkasunduang set.
Kaya ang pagbabago lamang ng lumang linyang cipher ay maaaring iwanang hindi ginalaw ang listahan ng negosasyon. Mahalaga pa rin ang lumang linya para sa pag-urong, at hiwalay na gawain iyon. Ang paghaluin ang dalawa ay gumagawa ng mga pagbabagong walang binabago sa nakikita.
openvpn --version | head -2 grep -n -E '^(data-ciphers|ncp-ciphers|cipher|tls-cipher)' server.conf client.ovpn
Ihambing ang mga listahan ng dalawang dulo at ang mensahe ng pagtanggi ng server. Kung walang laman ang intersection, ihanay ang mga listahan nang sadya sa halip na kopyahin ang halaga mula sa artikulong isinulat para sa ibang bersyon. Ang masyadong malawak na listahan ay tahimik na nagpapahina sa bawat koneksyon. Ang masyadong makitid na listahan ay nagbubukod sa panig na gusto mong panatilihin.
Panatilihing malinaw ang pagiging compatible
Ang pag-urong para sa isang lumang panig ay desisyong may gastos: tinatanggap ng buong deployment ang mas mahinang opsyon upang makakonekta ang isang device. Isulat ito nang ganoon, at limitahan sa panig na nangangailangan.
Dalawang kondisyon ang nagtatakda ng resulta. Kung lokal ang error, palitan ang build. Kung negosasyon ang error, ihanay ang mga listahan sa dalawang dulo at itala kung aling bersyon ang sinusuportahan mo.
Pagkatapos, iulat ang eksaktong error na may kalakip na output ng bersyon at kakayahan. Ang pares na iyon ay naghihiwalay ng nawawalang algorithm sa hindi pagkakasundo at pinipigilan ang susunod na ikot ng haka-hakang pag-edit bago ito magsimula.