O conexiune Client VPN cade, certificatul din ACM este înlocuit și nimic nu se schimbă. Obiectul certificat nu a fost niciodată ceea ce folosea punctul final. Un punct final stochează la creare o asociere cu un certificat, împreună cu CA-ul de client față de care va valida, tipul de autentificare, subrețelele și regulile de autorizare, și niciuna dintre aceste asocieri nu are un apel de modificare care să accepte un certificat de înlocuire. Înlocuirea octeților din spatele unui ARN este o schimbare a certificatului, nu a punctului final care l-a capturat.

Punctul final stochează referințe, nu certificate

Merită enunțat mecanismul cu precizie, pentru că explică întreaga defecțiune. create-client-vpn-endpoint preia un ARN de certificat de server și un ARN de lanț de certificate rădăcină de client, iar punctul final rezultat păstrează acele referințe împreună cu opțiunile de autentificare ca proprietăți fixe. API-ul nu oferă nicio operațiune care să înlocuiască certificatul de server pe un punct final existent.

Puteți confirma legătura fără să ghiciți. aws ec2 describe-client-vpn-endpoints --client-vpn-endpoint-ids cvpn-endpoint-0123456789abcdef0 afișează ARN-ul certificatului, ARN-ul lanțului rădăcină al clientului, tipul de autentificare, CIDR-ul clientului și subrețelele asociate, adică setul complet de proprietăți pe care ar trebui să le reproduceți. Rulați-l înainte și după o reimportare și ieșirea nu se mișcă. Aceasta este dovada că reimportarea nu avea să ajute niciodată.

De ce o reimportare nu poate ajunge la punctul final

O reimportare scrie un corp nou de certificat sub un ARN existent. Este o operațiune legitimă când un certificat este aproape de expirare, iar ACM o va accepta atât timp cât cheia privată se potrivește și lanțul validează. Ce nu face este să ruleze din nou validarea din momentul creării punctului final, așa că asocierea și materialul din spatele ei rămân cum erau când punctul final a fost construit.

De aceea și simptomul se citește ca o defecțiune de rețea. Strângerea de mână TLS eșuează sau se resetează înainte ca autorizarea să fie evaluată, așa că grupurile de securitate, rutele și regulile de autorizare par toate nevinovate, și chiar sunt.

Lanțul face parte din certificatul de client

A doua jumătate a defecțiunii este în certificatul de client, și este mai ușor de ignorat. Un certificat de client trebuie importat cu lanțul care l-a emis, chiar dacă formularul de import arată acel câmp ca opțional. Fără lanț, punctul final nu poate construi o cale de la certificatul de client la CA-ul rădăcină de client cu care a fost configurat, iar conexiunea se termină într-un reset blând care sună ca un firewall care aruncă pachete. openssl verify -CAfile root-ca.pem client.crt răspunde la acea întrebare local într-o secundă, și ar trebui să fie prima comandă pe care o rulați.

Reimportarea cu lanțul este o corectare reală pentru acea jumătate, și totuși nu este suficientă singură. Odată ce obiectul din ACM s-a schimbat, punctul final care păstrează asocierea veche este lucrul greșit împotriva căruia să continuați testarea. Ambii pași aparțin aceleiași reparații, de aceea corectarea în două părți nu este o contradicție.

Recrearea unui punct final este o migrare

Crearea unui punct final de înlocuire este o migrare, nu o reîncercare, iar tratarea ei ca reîncercare este modul în care echipele ajung cu două puncte finale pe jumătate configurate. Noul punct final primește un ID nou și, dacă nu ați planificat asta, un nume DNS nou pentru fiecare utilizator. Țineți profilul de client îndreptat spre un nume, nu spre o adresă, pentru ca schimbarea să devină o modificare de înregistrare, nu o redistribuire.

Ordinea care păstrează acest lucru sigur este scurtă: creați noul punct final cu același CIDR, aceleași subrețele și aceleași reguli de autorizare, exportați un profil proaspăt cu aws ec2 export-client-vpn-client-configuration și verificați cu un singur utilizator. Abia după aceea punctul final vechi este retras.

Retragerea punctului final vechi are propria ordine. Revocați certificatele de client pe care intenționați să le retrageți înainte de a-l șterge, pentru că un punct final nou care încă are încredere în CA-ul vechi continuă să accepte certificate despre care credeați că au dispărut. Apoi ștergeți punctul final vechi și eliminați regulile lui de autorizare, ca un profil învechit să nu se mai poată reconecta la o rețea țintă pe care o credeați închisă. Scrieți ID-ul punctului final vechi și identificatorii asocierii în registrul de modificări, pentru că o migrare comparată cu memoria este modul în care un punct final funcțional este reconstruit de două ori.

Ordonați diagnosticul

Separați trei defecțiuni înainte de a schimba orice configurație. Clientul nu poate finaliza TLS, clientul finalizează TLS și nu este autorizat, sau clientul se conectează și nu ajunge la o destinație. Asocierea certificatului aparține primei, o regulă de autorizare care nu acoperă adresa clientului aparține celei de-a doua, iar o rută sau un grup de securitate aparține celei de-a treia, unde recrearea unui punct final este aproape întotdeauna mișcarea greșită.

Un punct final care a funcționat luni de zile și apoi s-a oprit, fără nicio schimbare de certificat sau politică, este un caz separat. Reconstruirea lui cu setări identice poate restabili serviciul, dar acesta este un motiv să păstrați configurația reproductibilă, nu un motiv să reconstruiți la fiecare incident.

Țineți patru lucruri sub control de versiuni ca următoarea reconstrucție să fie un diff și nu o improvizație: parametrii punctului final, ARN-urile certificatului și lanțului, regulile de autorizare și CIDR-ul clientului. Documentația de autentificare Client VPN enumeră ce certificat joacă ce rol, ceea ce merită verificat înainte de a presupune că un certificat este problema. Dacă o reimportare nu schimbă nimic și punctul final se resetează în continuare, asocierea este suspecta și răspunsul este un punct final nou construit din parametrii înregistrați. Dacă punctul final preia totuși noul obiect, asocierea era deja corectă și defecțiunea se află în lanțul clientului sau în stratul de autorizare.

Articole similare