Profil OpenVPN, ktorý funguje inde, hlási, že AES-256-GCM sa nenašiel, alebo že strany nemajú spoločnú šifru, a prvým impulzom je upraviť profil. Tieto dve správy opisujú rôzne poruchy. Jedna hovorí, že miestny program taký algoritmus nemá; druhá, že obe strany algoritmy majú, ale nemajú spoločnú voľbu. Úprava profilu nerieši ani jedno, kým neviete, ktoré máte.

Prečítajte presný text chyby a program, ktorý ju vytvoril.

Určte, ktorú chybu máte

Správa o šifre, ktorá sa nenašla, pochádza z rozboru volieb na miestnom počítači ešte pred odoslaním akéhokoľvek paketu. Znamená to, že spustiteľný súbor pred vami alebo knižnica, s ktorou je prepojený, tento algoritmus neponúka. Správa o chýbajúcej spoločnej šifre prichádza neskôr, počas vyjednávania, a znamená, že obe strany šifry podporujú, ale nevedia sa dohodnúť na jednej.

Rozdiel je dôležitý, pretože jedno je problém verzie softvéru a druhé problém konfigurácie. Prvé rieši číslo verzie. Druhé rieši porovnanie dvoch zoznamov.

Miestny nedostatok schopnosti

Staré komunitné zostavenia predchádzajú moderným predvoleným hodnotám a desktopová aplikácia môže priniesť vlastný engine, ktorý sa líši od balíka príkazového riadku nainštalovaného vedľa. Kontroly vykonávajte na spustiteľnom súbore, ktorý spojenie skutočne spustil, a potom zvoľte podporované zostavenie namiesto učenia starého programu nový algoritmus.

openvpn --version
openvpn --show-ciphers | grep -i gcm
openvpn --show-tls | head -5

Ak sa AES-256-GCM v tom zozname neobjaví, žiadny riadok profilu ho nepridá. Riešením je novší klient alebo iné zostavenie a obmedzenia staršej strany sa stávajú samostatnou otázkou návrhu.

Pri klientoch založených na OpenVPN 3 sa engine a prijímané direktívy líšia od komunitnej línie 2.x, takže rovnaký text profilu môže zlyhať z dôvodov, ktoré so zoznamom šifier nemajú nič spoločné.

Medzera vo vyjednávaní

Keď obe strany algoritmus vypíšu, zostáva otázka, ktorý zoznam ponúka ktorá strana. Komunitný OpenVPN premenoval direktívu vyjednávania: ncp-ciphers v 2.4 sa stalo data-ciphers v 2.5 a v 2.6 starší riadok cipher slúži väčšinou kompatibilite a zálohe, nie určeniu vyjednaného súboru.

Preto zmena iba starého riadku cipher môže zoznam vyjednávania nechať nedotknutý. Starý riadok je pre záložný režim stále dôležitý a to je samostatná úloha. Zámena oboch vedie k úpravám, ktoré viditeľne nič nemenia.

openvpn --version | head -2
grep -n -E '^(data-ciphers|ncp-ciphers|cipher|tls-cipher)' server.conf client.ovpn

Porovnajte zoznamy oboch koncov a správu servera o odmietnutí. Ak je prienik prázdny, zoznamy zlaďte zámerne, namiesto kopírovania hodnoty z článku písaného pre inú verziu. Príliš široký zoznam ticho oslabuje každé spojenie. Príliš úzky zoznam vylučuje stranu, ktorú ste chceli zachovať.

Udržujte kompatibilitu explicitnú

Záložný režim pre jednu starú stranu je rozhodnutie s cenou: celé nasadenie prijíma slabšiu voľbu, aby sa jedno zariadenie mohlo pripojiť. Zapíšte to tak a obmedzte na stranu, ktorá to potrebuje.

O výsledku rozhodujú dve podmienky. Ak je chyba miestna, vymeňte zostavenie. Ak je chyba vo vyjednávaní, zlaďte zoznamy na oboch koncoch a poznamenajte, ktoré verzie podporujete.

Potom nahláste presnú chybu s priloženým výstupom verzie a schopností. Táto dvojica oddeľuje chýbajúci algoritmus od nezhody a zastaví ďalšie kolo špekulatívnych úprav, skôr než sa začne.

Súvisiace články