Migrar un backend d'autenticació VPN sense reutilitzar hashes antics
Moure les identitats VPN és una retallada, no una còpia: traça la cadena d'autenticació, trasllada una cohort pilot, prova canvis de credencials i planifica una recuperació que un reinici no desfà.
Els noms d'usuari apareixen al directori nou, la migració es declara acabada i els inicis de sessió continuen fallant. La passarel·la encara necessita una ruta d'autenticació compatible i un resultat d'autorització correcte, i cap dels dos es dedueix d'un directori que ara conté els comptes. Un trasllat de backend és una retallada amb cicle de vida, no una tasca de còpia. El símptoma següent és el que sol revelar la diferència.
El símptoma: els comptes existeixen i les sessions no
El directori nou conté tots els noms d'usuari, una vinculació de prova funciona i el client VPN continua retornant un error d'autenticació. Aquesta combinació significa que la identitat existeix, però la ruta de verificació que fa servir la passarel·la no hi arriba, o hi arriba amb un mètode que no pot satisfer. Totes dues són configuració, i són problemes diferents.
La primera és fontaneria: la passarel·la apunta a un backend que no respon, fa servir un secret compartit que l'altre costat no espera o demana un atribut que el servei nou no retorna. La segona és criptogràfica: el mètode exigeix el secret original i el magatzem nou només guarda un hash del mateix. El text de l'error s'assembla en tots dos casos, per això els dos es tracten com un sol problema.
Separar aquests dos abans de tocar els comptes estalvia una setmana. Un és una qüestió d'encaminament i confiança, l'altre és una decisió sobre restablir credencials, i barrejar-los produeix canvis que ningú no pot atribuir.
Traça la cadena abans de moure ningú
Anota sis coses per cada perfil de client: el mètode d'autenticació extern, qualsevol mètode intern, la identitat del servidor que espera el client, la interfície entre passarel·la i backend, l'atribut que la passarel·la assigna a la pertinença a grups i la política de recursos resultant. Llegir-los per ordre mostra quin enllaç no té amo. Cada element té un responsable, i la retallada falla en el que ningú no va comprovar.
| Link | Question it answers |
|---|---|
| Client profile | Which method and server name does the client use? |
| Inner method | Is there a second authentication step? |
| Server identity | Which certificate or name must the client accept? |
| Gateway to backend | Which protocol, port and shared secret? |
| Attribute mapping | Which returned value becomes group membership? |
| Resource policy | What the resulting session may reach |
Un inici de sessió normal al directori recorre gairebé res d'aquesta cadena. Prova que el compte existeix i que la contrasenya funciona, que és justament la part que mai no va estar en dubte.
Els hashes no viatgen entre mètodes
La compatibilitat de les credencials s'ha de comprovar una vegada, abans de moure cap cohort. FreeRADIUS documenta la divisió amb claredat: una comprovació CHAP que el servidor fa ell mateix necessita la contrasenya real, i MS-CHAP accepta aquesta contrasenya o material NT adequat. Un hash creat per a una altra finalitat no encaixa en cap dels dos casos, per fort que sigui.
La distinció és en qui calcula la prova. Un mètode que verifica vinculant-se al directori deixa que el directori comprovi el que pot comprovar. Un mètode que verifica recalculant una resposta al desafiament necessita el secret mateix, perquè el servidor ha de fer el mateix càlcul.
On falta el material, les opcions honestes són un restabliment compatible, una nova inscripció, un servei de verificació extern o un canvi de mètode. Una exportació temporal de contrasenyes recuperables no és en aquesta llista. Crea un magatzem de credencials en text pla durant la setmana més caòtica del projecte i normalment sobreviu a la migració.
Cohort pilot, després canvis de cicle de vida
Mou una cohort petita d'identitats aprovades amb el client real i prova quatre coses: un inici de sessió nou, una credencial deliberadament incorrecta, els recursos als quals la sessió pot arribar i els recursos als quals no ha d'arribar. Comprova també la identitat del servidor que el client va acceptar, perquè un desajustament en el nom del certificat és invisible fins que algú llegeix el registre del client.
Després exerceix els canvis dels quals depèn realment el desplegament. Canvia una contrasenya, renova o torna a inscriure un certificat i retira l'accés a un compte pilot. Després de cadascun, confirma quin verificador va atendre l'intent, perquè una sessió creada abans de la retallada pot continuar funcionant i no demostra res sobre el proper inici de sessió.
Separa el lliurament de perfils del canvi d'identitat. Cada cohort necessita el seu perfil previst, el seu estat de credencial o inscripció, el servei d'autenticació que ha de fer servir i un contacte de suport, i cap d'aquests registres no ha de contenir un secret.
Si les rutes antiga i nova coexisteixen, delimita-les amb una data de fi. Un retrocés automàtic pot admetre un compte amb una credencial antiga després que el nou propietari hagi retirat l'accés, i això és una regressió de seguretat disfressada de disponibilitat.
Revertir no pot restaurar una credencial
Desfer la retallada deixa el directori exactament com està ara. Una contrasenya restablerta continua restablerta, un certificat revocat continua revocat i un format de credencial canviat continua canviat. Són esdeveniments al directori, i la passarel·la mai no en va ser l'origen. La recuperació s'ha de definir per esdeveniment, i res d'això no pot dependre de reconstruir un secret a partir d'un hash incompatible.
Mantén una ruta administrativa que no faci servir la connexió que es migra. Quan la nova autenticació falla, posa en pausa la cohort i fes servir la seva ruta de recuperació documentada en lloc d'afeblir l'autenticació per a tothom només per complir un termini.
Quan les cohorts estiguin cobertes, retira les credencials, els perfils i les relacions de confiança antics del backend a través dels seus propietaris. Confirma que la ruta antiga ja no admet usuaris i conserva l'assignació d'identitat a política sense secrets que suport encara necessita. Una migració s'acaba quan el nou cicle de vida funciona i ningú no entra ja per la ruta antiga, no quan la llista de comptes sembla completa.