Недозвољена TLS верзија у AnyConnect-у на Linux-у: прво одредите обим поправке
LEGACY политика на нивоу хоста, OpenSSL конфигурација по процесу и једнократна VM у поређењу, плус промена на гејтвеју која трајно уклања грешку.
Ова грешка се појављује пре питања за лозинку, и то је корисни део: ништа још није аутентификовано, па акредитиви нису проблем. На Linux-у исти AnyConnect дијалог може доћи од старе верзије протокола, 1024-битне групе за размену кључева или шифарског скупа који системска крипто политика одбија. Решио сам је на три различита начина на три машине, а те поправке разликује домет, а не досетљивост. Свака је оправдана на правом месту и лош подразумевани избор свуда другде.
Прочитајте поруку пре него што дирнете политику
Задржите тачан низ из дијалога. Жалба на верзију упућује на слој протокола, жалба на сертификат на поверење или именовање, а неуспешна пријава на акредитиве. Гејтвеј који нуди TLS 1.0 са 1024-битном DHE групом, AES-256-CBC и SHA-1 потписом може имати потпуно важећи сертификат и ипак бити одбијен од модерне политике пре него што ваши акредитиви уопште буду послати.
Проверите крајњу тачку системским OpenSSL-ом, користећи стварно име хоста и порт који клијент користи.
Неуспех openssl s_client -connect vpn.example.com:443 -servername vpn.example.com док -tls1 -cipher DEFAULT@SECLEVEL=0 успева говори да је граница верзија и величина кључа заједно. Ако прва команда пријави мали DH кључ уместо протоколног упозорења, верзија је у реду и само група тражи пажњу. Никада не стављајте приватни кључ или лозинку у проверу.
Опција 1: ублажите цео хост крипто политиком
На Fedori и RHEL 8 и 9, update-crypto-policies --set LEGACY снижава системску политику OpenSSL-а, а update-crypto-policies --show потврђује шта је активно. То обично враћа тунел, али политика се чита при покретању процеса, па поново покрените клијент и сваки помоћни процес који је створио пре него што поново тестирате. Она такође допушта старије протоколе и слабије групе за сваки TLS клијент на машини, од прегледача у суседном прозору до менаџера пакета који ажурира језгро.
Та ширина је и цела поента и цео проблем. LEGACY је на нивоу хоста, трајан и лако се заборавља, па би требало да буде дијагностички корак или документовани изузетак на управљаној слици, никада стално стање радне станице. Видео сам једну која је остала на LEGACY две године јер ју је тражио један интерни портал, а нико није могао да каже када је почело.
Debian и Ubuntu немају један прекидач за то. Еквивалент је измена /etc/ssl/openssl.cnf која поставља нижи MinProtocol и CipherString = DEFAULT@SECLEVEL=0 у одељку системских подразумеваних вредности. Исти домет, друга датотека, мало лакше изгубити из вида током надоградње издања.
Опција 2: једна конфигурациона датотека за једног клијента
OpenSSL конфигурација по процесу држи промену унутар једног стабла процеса, али само ако је датотека повезана онако како библиотека очекује. Именовати одељак ssl_conf није довољно: OpenSSL чита кључ највишег нивоа openssl_conf, прати га до одељка за иницијализацију и тек тада долази до SSL подразумеваних вредности.
openssl_conf = openssl_init
[openssl_init]
ssl_conf = ssl_sect
[ssl_sect]
system_default = system_default_sect
[system_default_sect]
MinProtocol = TLSv1.0
CipherString = DEFAULT@SECLEVEL=0Усмерите OPENSSL_CONF на ту датотеку и покрените VPN клијент кроз омотач који је извози. Све остало на хосту задржава подразумевану политику, а то је својство које је важно када дође питање усклађености. Потврдите да је датотека стварно на снази пре него што окривите гејтвеј: OPENSSL_CONF=/path/to/file openssl ciphers -s -tls1 треба да наведе TLS 1.0 шифре, а празан резултат значи да је ланац прекинут и да је клијент тихо задржао системске подразумеване вредности.
Датотека је осетљива на верзију. OpenSSL 1.1.1 и 3.x прихватају иста имена одељака, али обрада директива око провајдера се променила у 3.x, па проверите клијентским дневником и пробним руковањем уместо да претпоставите да је датотека прочитана. Типфелер у имену одељка пада отворено, а клијент тихо користи системске подразумеване вредности.
Ограничење је покривеност. Све што је линковано на GnuTLS или NSS игнорише OPENSSL_CONF, као и сваки помоћни процес који клијент покрене без наслеђивања окружења. Проверите са ldd са којом TLS библиотеком је бинарни фајл стварно линкован пре него што направите омотач, јер одговор одлучује да ли та опција уопште постоји.
Опција 3: једнократна VM или контејнер
За извођача који две недеље удара на један стари гејтвеј, наменска VM са ублаженом политиком је чишћа граница од радне станице. Стара површина и свакодневни профил прегледача престају да деле политику језгра, а одлагање је брисање, а не налаз ревизије.
То је и даље умрежена машина, па ограничите њен приступ и држите је даље од општег прегледања. Трошак одржавања је још једна слика коју треба закрпити, што је стварно али ограничено и видљиво, за разлику од заборављене LEGACY заставице на лаптопу.
Шта вам поређење оставља
Бирајте по три питања: коме треба стари протокол, колико дуго и ко ће приметити ако изузетак надживи свој разлог. Једна апликација, једна особа, неколико дана упућују на конфигурацију по процесу. Цела флота иза једног уређаја упућује на сам гејтвеј. Све што тражи трајну LEGACY политику хоста је набавна одлука у техничком костиму.
Трајно решење припада уређају: TLS 1.2 или новији, група од најмање 2048 бита, AEAD шифра и сертификат са модерним потписом. Затражите ту промену од власника уређаја, па потврдите договорену верзију и шифру у клијентском дневнику. Запишите изузетак са хостом, гејтвејом, договореним протоколом, одобраваоцем и датумом истека, јер тај запис спречава да привремено решење постане подразумевано.