Această eroare apare înainte de cererea parolei, iar aceasta este partea utilă: nimic nu a fost autentificat încă, deci acreditările nu sunt problema. Pe Linux același dialog AnyConnect poate veni de la o versiune veche de protocol, de la un grup de schimb de chei de 1024 biți sau de la o suită de cifrare pe care politica criptografică a sistemului o refuză. Am eliminat-o în trei moduri diferite pe trei mașini, iar ceea ce desparte aceste corecții este amploarea, nu istețimea. Fiecare este justificabilă la locul potrivit și o valoare implicită proastă peste tot altundeva.

Citiți mesajul înainte de a atinge politica

Păstrați șirul exact din dialog. O reclamație despre versiune indică stratul de protocol, una despre certificat indică încrederea sau denumirea, iar o autentificare eșuată indică acreditările. Un gateway care oferă TLS 1.0 cu un grup DHE de 1024 biți, AES-256-CBC și o semnătură SHA-1 poate avea un certificat perfect valid și totuși poate fi respins de o politică modernă înainte ca datele dumneavoastră să fie trimise.

Verificați punctul final cu OpenSSL al sistemului, folosind numele real al gazdei și portul pe care îl utilizează clientul.

Dacă openssl s_client -connect vpn.example.com:443 -servername vpn.example.com eșuează în timp ce -tls1 -cipher DEFAULT@SECLEVEL=0 reușește, limita este versiunea și dimensiunea cheii împreună. Dacă prima comandă raportează o cheie DH mică în loc de o alertă de protocol, versiunea este în regulă și doar grupul necesită atenție. Nu puneți niciodată o cheie privată sau o parolă în verificare.

Opțiunea 1: relaxați întregul host cu politica criptografică

Pe Fedora și RHEL 8 și 9, update-crypto-policies --set LEGACY coboară politica de sistem a OpenSSL, iar update-crypto-policies --show confirmă ce este activ. De obicei reface tunelul, dar politica este citită la pornirea unui proces, așa că reporniți clientul și orice ajutor pe care l-a creat înainte de a retesta. Permite, de asemenea, protocoale mai vechi și grupuri mai slabe pentru fiecare client TLS de pe mașină, de la browserul din fereastra alăturată până la managerul de pachete care actualizează nucleul.

Această lățime este întregul scop și întreaga problemă. LEGACY se aplică întregului host, este persistent și ușor de uitat, deci ar trebui să fie un pas de diagnostic sau o excepție documentată pe o instalare administrată, niciodată starea de repaus a unei stații de lucru. Am văzut una care a rămas pe LEGACY timp de doi ani pentru că un singur portal intern avea nevoie de ea, și nimeni nu putea spune când a început.

Debian și Ubuntu nu au un singur comutator pentru asta. Echivalentul este o modificare în /etc/ssl/openssl.cnf care stabilește un MinProtocol mai jos și CipherString = DEFAULT@SECLEVEL=0 în secțiunea de valori implicite ale sistemului. Aceeași amploare, alt fișier, puțin mai ușor de pierdut din vedere în timpul unei actualizări de versiune.

Opțiunea 2: un fișier de configurare pentru un singur client

O configurație OpenSSL per proces ține modificarea într-un singur arbore de procese, dar numai dacă fișierul este conectat așa cum se așteaptă biblioteca. A numi o secțiune ssl_conf nu este suficient: OpenSSL citește cheia de nivel superior openssl_conf, o urmărește până la o secțiune de inițializare și abia apoi ajunge la valorile implicite 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

Îndreptați OPENSSL_CONF spre acel fișier și lansați clientul VPN printr-un înveliș care îl exportă. Tot restul de pe host păstrează politica implicită, iar aceasta este proprietatea care contează când apare întrebarea de conformitate. Confirmați că fișierul este într-adevăr în vigoare înainte de a da vina pe gateway: OPENSSL_CONF=/path/to/file openssl ciphers -s -tls1 ar trebui să listeze cifruri TLS 1.0, iar un rezultat gol înseamnă că lanțul este rupt și clientul a păstrat în tăcere valorile implicite ale sistemului.

Fișierul este sensibil la versiune. OpenSSL 1.1.1 și 3.x acceptă aceleași nume de secțiune, dar tratarea directivelor în jurul furnizorilor s-a schimbat în 3.x, așa că verificați cu jurnalul clientului și cu o strângere de mână de test în loc să presupuneți că fișierul a fost citit. O greșeală de tipar în numele secțiunii eșuează în mod deschis, iar clientul folosește în tăcere valorile implicite ale sistemului.

Limita este acoperirea. Orice este legat de GnuTLS sau NSS ignoră OPENSSL_CONF, la fel ca orice proces ajutător pe care clientul îl lansează fără a moșteni mediul. Verificați cu ldd la ce bibliotecă TLS este de fapt legat binarul înainte de a construi învelișul, pentru că răspunsul decide dacă această opțiune există deloc.

Opțiunea 3: o VM sau un container de unică folosință

Pentru un contractant care timp de două săptămâni lovește un singur gateway vechi, o VM dedicată cu politica relaxată este o graniță mai curată decât stația de lucru. Suprafața veche și profilul zilnic de navigare nu mai împart o politică de nucleu, iar eliminarea este o ștergere, nu o constatare de audit.

Rămâne o mașină în rețea, așa că limitați-i accesul și țineți-o departe de navigarea generală. Costul de întreținere este încă o imagine de peticit, ceea ce este real, dar limitat și vizibil, spre deosebire de un steag LEGACY uitat pe un laptop.

Ce vă lasă comparația

Alegeți după trei întrebări: cine are nevoie de protocolul vechi, pentru cât timp și cine va observa dacă excepția supraviețuiește motivului ei. O aplicație, o persoană, câteva zile indică configurația per proces. O flotă întreagă în spatele unui singur echipament indică gateway-ul însuși. Orice lucru care necesită o politică LEGACY permanentă pe host este o decizie de achiziție îmbrăcată într-un costum tehnic.

Corecția durabilă aparține echipamentului: TLS 1.2 sau mai nou, un grup de cel puțin 2048 biți, o cifrare AEAD și un certificat cu semnătură modernă. Cereți această modificare proprietarului echipamentului, apoi confirmați versiunea și cifra negociate în jurnalul clientului. Notați excepția cu hostul, gateway-ul, protocolul negociat, aprobatorul și o dată de expirare, pentru că nota este cea care împiedică o soluție temporară să devină valoarea implicită.

Articole similare