Грешка „няма общ шифър“ звучи като една настройка за промяна, а настройката, която повечето хора променят, е грешната. OpenVPN поддържа отделни политики за контролния канал, който извършва TLS ръкостискането, и за канала за данни, който пренася пакети вътре в тунела, а грешката назовава първия, докато хората редактират втория. Сравняването на това, което позволява всяка страна, в правилния ред, превръща догадките в две или три решения: версия, после списък с набори, после идентификационни данни.

Сбъркате ли този ред, може да загубите час, добавяйки име на AES в списък, който никога не е бил четен.

Два списъка с шифри и само един чупи ръкостискането

Контролният канал договаря TLS сесия и политиката му се задава с tls-cipher за TLS 1.2 и tls-ciphersuites за TLS 1.3. Каналът за данни се настройва отделно с data-ciphers, където несъответствието дава връзка, която се установява и после не може да пропусне трафик. И двете дават грешки, които споменават шифри, затова се бъркат. Ръкостискане, което никога не завършва, сочи към контролния канал, докато установен тунел, който изпуска пакети, сочи към канала за данни.

Прочетете цялото съобщение, а не първия ред. Несъответствие на версии, липсващ набор, алгоритъм за подпис на сертификат, който страната отхвърля, и неуспех при проверка на име на хост всички завършват с TLS грешка и само един от тях е за вашия списък с набори. Разделянето на тези категории е по-голямата част от диагнозата.

Сравнете версиите, преди да сравнявате наборите

Страна, ограничена до TLS 1.2, и страна, която изисква 1.3, не споделят версия и никакъв низ с шифри не ги свързва. Запишете tls-version-min и tls-version-max от двете страни или стойностите по подразбиране на използваните сборки, защото политиката на OpenSSL в дадена дистрибуция може да вдигне минимума, без никоя опция на OpenVPN да го казва. Ако едната страна е устройство или клиент от трета страна, прозорецът ѝ е това, което позволява фърмуерът ѝ. Сравнението на набори има смисъл само след като прозорците се застъпят.

Тези записи трябва да назовават и действителните изпълними файлове. Команден openvpn на вашия лаптоп не е непременно клиентът, който обработва импортиран профил.

Списъците за TLS 1.2 и TLS 1.3 не се смесват

Имената на наборите за TLS 1.2 изглеждат като ECDHE-RSA-AES256-GCM-SHA384 и принадлежат в tls-cipher, който приема низ с шифри на OpenSSL. Наборите за TLS 1.3 се наричат като TLS_AES_256_GCM_SHA384 и принадлежат в tls-ciphersuites; добавянето на един към низа за 1.2 не настройва списъка за 1.3 и парсерът може да приеме текста, без никога да го съпостави. Филтър, правилен за една версия, не казва нищо за другата. Запишете за коя версия е предназначен всеки списък.

openvpn --show-tls отпечатва това, което локалната сборка поддържа, и това е инвентар, а не обещание: отдалечената страна може да не позволява тези набори и активният профил може да не ги включва. Използвайте го, за да изключите сборка, която изобщо не може да предложи набор, и после сравнете конфигурираните списъци.

Докажете преговорите на нова връзка

Успешното ръкостискане е единственото доказателство, което се брои, и то трябва да идва от истинския клиент с истинския профил. Увеличете подробността на сървъра, свържете се веднъж и прочетете договорените версия на протокола и набор от журнала, вместо да предполагате, че първата предложена стойност е спечелила. После потвърдете канала за данни отделно с трафик през тунела, защото работещо ръкостискане и провалящ се канал за данни са различни поправки. Повторете след всяка промяна на конфигурацията, защото остарял клиентски профил е честа причина за фалшиво отрицателен резултат.

Ако няма одобрена обща конфигурация, отговорът е надграждане или план за миграция, а не отслабена политика. Понижаването на tls-version-min, изключването на проверката или включването на всеки остарял набор премахва отказа, без да изпълни изискването за сигурност, което го е създало.

Запишете договорените версия, набор и шифър за данни в билета за промяната. Следващият човек, който срещне TLS грешка, ще започне от този запис, а не от низ с шифри, намерен в публикация във форум.

Подобни статии