Dos perfils, un connecta i l'altre no, i la manera ràpida de veure per què és un diff. El problema és que el mateix diff imprimeix la clau privada incrustada, la clau estàtica i qualsevol bloc de credencials que porti el fitxer, i la gent enganxa la sortida en un xat abans d'adonar-se'n. Decidir què compareu va abans d'executar l'ordre. Compareu estructura i rols en còpies protegides, i construïu un fitxer redactat a part quan algú altre l'hagi de veure.

Què porta realment un fitxer .ovpn

Un fitxer .ovpn és una configuració amb blocs incrustats opcionals. Pot contenir un certificat CA, un certificat de client, una clau privada, una clau tls-auth o tls-crypt, i directives que apunten a fitxers externs o demanen credencials. Dos fitxers poden semblar gairebé idèntics i diferir només dins d'un bloc, o en una directiva que canvia el transport del tot. El nombre de línies no us diu res de quin d'aquests casos ha passat.

Una diferència dins d'un bloc de clau no és prova pública de res. Un certificat reemès i un de rekeyat poden produir la mateixa forma de canvi, així que el desajust del bloc us diu que el material és diferent, no quina decisió el va produir. Tracteu-lo com un senyal per comparar camps, no com una troballa.

Compareu per rol, no per línia

Seguiu l'ordre propi de la connexió: primer el punt final i el transport, després la confiança i la identitat esperada, després l'autenticació d'usuari, després les rutes, el DNS i els ganxos de script. Aquesta seqüència coincideix amb el que fa el client, així que la primera diferència que trobeu és la primera cosa que podria haver trencat la connexió. Comparar alfabèticament, en canvi, escampa els paràmetres relacionats per tota la sortida.

Una passada que té en compte els camps mira aquests elements, en aquest ordre. Tot el que el client demana interactivament pertany a la fila d'autenticació, no a les files de confiança.

  • remote, proto i port, incloent-hi cada bloc de connexió.
  • ca i cert: emissor, subjecte i data de caducitat.
  • Si hi ha una clau privada, mai què conté.
  • tls-auth o tls-crypt presència i direcció de la clau.
  • Directives d'autenticació, incloent-hi qualsevol referència a un fitxer de credencials.
  • Rutes, opcions de DNS i ganxos de script que s'executen en connectar.

Quan un fitxer conté diversos blocs de connexió, manteniu cada opció amb el seu punt final. Comparar només la primera línia remote pot passar per alt l'alternativa que el client tria realment en aquesta xarxa.

Per què un diff simple és l'eina equivocada

Un diff simple està fet per a text, no per a secrets. Imprimirà encantat una clau privada a l'historial de la pantalla, i no us dirà que la directiva que mireu no té res a veure amb la fallada. Les extraccions de camps són alhora més segures i més llegibles, perquè el material del certificat es pot comparar com a metadades en lloc de bytes.

openssl x509 -in ca.crt -noout -subject -issuer -enddate
openssl x509 -in client.crt -noout -subject -issuer -enddate
grep -E '^(remote|proto|port|tls-auth|tls-crypt|route|dhcp-option)' profile.ovpn

Les dues primeres ordres imprimeixen identitat i validesa sense tocar la clau, així que la seva sortida es pot enganxar sense risc. El grep imprimeix noms i valors de directives però mai els cossos dels blocs, cosa que el converteix en la primera passada correcta quan sospiteu una diferència de transport o d'encaminament. Si cal comparar un bloc, compareu-ne el hash en lloc del contingut.

Construïu una còpia redactada per al tiquet

Traieu els secrets reals i els identificadors innecessaris mantenint els noms dels camps i prou estructura per explicar la diferència. Un marcador de la mateixa forma encara revela on és el material i quant feia, així que decidiu si fins i tot això és acceptable. Reviseu el mateix adjunt final en lloc de confiar en l'ordre que recordeu haver executat. No editeu l'original de treball només per produir un exemple, perquè un perfil redactat no és necessàriament executable i no s'ha de reimportar mai.

Manteniu els originals identificables pel nom de fitxer i el hash en lloc de copiar-los en tres directoris amb noms semblants. Una cadena de hash n'hi ha prou per demostrar quin fitxer es va revisar i no costa res si es filtra. Suprimiu les còpies quan es tanqui el canvi, perquè la persona següent hereti un sol fitxer autoritatiu.

Manteniu la comparació lligada a una fallada

Una comparació val la pena quan respon una pregunta sobre una importació o una fallada de connexió. Anomeneu primer el pas que falla i després compareu només els camps dels quals depèn; recollir totes les credencials del client en un sol directori fa més probable la propera filtració i més lenta la propera diagnosi. Com més estreta és la pregunta, més curta és la llista de camps que la poden respondre.

Si un fitxer nou ve de l'operador, confirmeu-ne la via de distribució abans de substituir material de confiança. Després del canvi, inspeccioneu la còpia importada que el client va triar realment i el resultat negociat, perquè una directiva pot ser ignorada o llegida de manera diferent per una altra versió del client. El fitxer al disc no és prova de la connexió que es va executar. La semàntica de les directives és al manual d'OpenVPN 2.6.

Articles relacionats