AES-256-GCM nenalezen: schopnost klienta, nebo vyjednávání?
Dvě chyby OpenVPN vypadají stejně: sestavení bez algoritmu a protistrany bez společné šifry. Přečtěte si --show-ciphers a data-ciphers, než upravíte profil.
Profil OpenVPN, který jinde funguje, hlásí, že AES-256-GCM nebyl nalezen, nebo že protistrany nemají společnou šifru, a prvním instinktem je upravit profil. Tyto dvě zprávy popisují různé poruchy. Jedna říká, že místní program takový algoritmus nemá; druhá, že obě strany algoritmy mají, ale nemají společnou volbu. Úprava profilu nevyřeší ani jedno, dokud nevíte, které máte.
Přečtěte si přesný text chyby a program, který ji vytvořil.
Určete, kterou chybu máte
Zpráva o šifře, která nebyla nalezena, pochází z rozboru voleb na místním počítači ještě před odesláním jakéhokoli paketu. Znamená to, že spustitelný soubor před vámi nebo knihovna, se kterou je propojen, tento algoritmus nenabízí. Zpráva o chybějící společné šifře přichází později, během vyjednávání, a znamená, že obě strany šifry podporují, ale nedokážou se shodnout na jedné.
Rozdíl je důležitý, protože jeden je problém verze softwaru a druhý problém konfigurace. První se řeší číslem verze. Druhý se řeší porovnáním dvou seznamů.
Místní mezera ve schopnostech
Stará komunitní sestavení předcházejí moderním výchozím hodnotám a desktopová aplikace může nést vlastní engine, který se liší od balíčku příkazové řádky nainstalovaného vedle. Kontroly provádějte na spustitelném souboru, který spojení skutečně spustil, a potom zvolte podporované sestavení, místo abyste starý program učili nový algoritmus.
openvpn --version openvpn --show-ciphers | grep -i gcm openvpn --show-tls | head -5
Pokud se AES-256-GCM v tom seznamu neobjeví, žádný řádek profilu ho nepřidá. Řešením je novější klient nebo jiné sestavení a omezení starší strany se stávají samostatnou otázkou návrhu.
U klientů založených na OpenVPN 3 se engine a přijímané direktivy liší od komunitní řady 2.x, takže stejný text profilu může selhat z důvodů, které se seznamem šifer nemají nic společného.
Mezera ve vyjednávání
Když obě strany algoritmus vypíšou, zbývá otázka, který seznam která strana nabízí. Komunitní OpenVPN přejmenoval direktivu vyjednávání: ncp-ciphers ve 2.4 se stalo data-ciphers ve 2.5 a ve 2.6 starší řádek cipher slouží většinou kompatibilitě a záloze, nikoli určení vyjednané sady.
Proto změna pouze starého řádku cipher může ponechat seznam vyjednávání nedotčený. Starý řádek je pro záložní režim stále důležitý a to je samostatný úkol. Záměna obojího vede k úpravám, které viditelně nic nemění.
openvpn --version | head -2 grep -n -E '^(data-ciphers|ncp-ciphers|cipher|tls-cipher)' server.conf client.ovpn
Porovnejte seznamy obou konců a zprávu serveru o odmítnutí. Pokud je průnik prázdný, seznamy slaďte záměrně, místo abyste kopírovali hodnotu z článku psaného pro jinou verzi. Příliš široký seznam tiše oslabuje každé spojení. Příliš úzký seznam vylučuje protistranu, kterou jste chtěli zachovat.
Udržujte kompatibilitu explicitní
Záložní režim pro jednu starou protistranu je rozhodnutí s cenou: celé nasazení přijímá slabší volbu, aby se jedno zařízení mohlo připojit. Zapište to tak a omezte na protistranu, která to potřebuje.
O výsledku rozhodují dvě podmínky. Je-li chyba místní, vyměňte sestavení. Je-li chyba ve vyjednávání, sladit seznamy na obou koncích a poznamenejte, které verze podporujete.
Poté nahlaste přesnou chybu s přiloženým výstupem verze a schopností. Tato dvojice odděluje chybějící algoritmus od neshody a zastaví další kolo spekulativních úprav, než začne.