IPsec ESP: què transporta i com demostrar que flueix
ESP embolcalla un paquet IP intern en mode túnel i identifica la seva associació mitjançant l’SPI. Llegeix l’estat i després observa com un flux mou els comptadors.
ESP transporta el trànsit en una VPN IPsec, i el seu runbook comença amb una regla: llegiu l’associació de seguretat abans de canviar una política. La majoria del comportament inexplicat d’ESP es remunta a un selector que no coincidia, un mode que es va suposar en lloc de llegir, o un comptador que ningú va comprovar mentre s’enviava un sol flux. Els tres passos següents estableixen què transporta què, demostren que un flux l’utilitza i deixen una reversió que no depèn de la memòria. Cada pas produeix una observació que val la pena anotar.
Conegues els camps abans de llegir-los
ESP posa una capçalera davant de les dades protegides i un tràiler darrere. La capçalera porta un índex de paràmetres de seguretat que identifica quina associació ha d’utilitzar el receptor, un número de seqüència per detectar repeticions i un farciment al tràiler que manté la càrrega útil alineada per al xifratge. El camp de capçalera següent del tràiler diu quin és el contingut protegit, i així és com el receptor sap què ha desencapsulat.
El mode canvia què hi ha dins d’aquesta protecció. En mode túnel, el material protegit és un paquet IP intern complet, i una capçalera externa nova el transporta entre els extrems. En mode transport, la protecció embolcalla la càrrega útil de la capa superior d’un paquet existent, de manera que no hi ha una segona capçalera IP per obrir. Quin mode s’utilitza és un fet de configuració, no una qüestió d’interpretació. Llegiu-lo a l’entrada d’estat en lloc d’inferir-lo d’un diagrama.
Cap dels dos modes no amaga l’adreçament extern que ha de lliurar el paquet. Això és una propietat del disseny i no una mancança, i és per això que un observador intermedi encara pot veure quines dues adreces parlen fins i tot quan la càrrega útil és opaca.
Pas u: llegiu l’estat i després la política
Les entrades d’estat guarden les claus i els comptadors; les entrades de política guarden els selectors que decideixen què els pot utilitzar. A Linux, tots dos són visibles sense capturar paquets, i llegir-los en aquest ordre manté les dues preguntes separades.
ip xfrm state
ip xfrm policy
A la sortida d’estat, comproveu l’origen i la destinació de l’associació, el mode i si l’encapsulació mostra ports UDP. Aquests ports volen dir que s’utilitza la travessa de NAT, cosa que canvia què ha de permetre un tallafoc intermedi, però no quins selectors o claus s’apliquen als extrems.
Després llegiu els selectors de la política. Un selector que anomena un prefix més estret que el trànsit que proveu és el motiu més habitual que un túnel que funciona sembli ignorar un flux, i un selector per al protocol equivocat produeix el mateix silenci.
| Field | Where it appears | What it decides |
|---|---|---|
| Security parameter index | ESP header, and the receiving state entry | Which association and keys the receiver applies |
| Sequence number | ESP header | Replay detection for that association |
| Next header | ESP trailer | What the decapsulated payload contains |
| Inner IP header | Inside tunnel-mode payload only | The original source and destination the endpoints act on |
| Traffic selectors | Policy, not the packet | Which local traffic is allowed to use the association |
Les eines dels fabricants mostren la mateixa informació en una forma més còmoda. ipsec statusall a strongSwan llista les associacions filles, els seus selectors i els seus comptadors de bytes, cosa que sovint és més ràpid que llegir la sortida xfrm crua quan ja sabeu quina filla mirar.
Pas dos: demostreu que un flux mou els comptadors
Els comptadors només tenen sentit si sabeu què els hauria d’haver mogut, així que trieu un origen i una destinació que el selector cobreixi segur i envieu una petició inofensiva. Després torneu a llegir la mateixa entrada i compareu.
ip -s xfrm state
tcpdump -ni any esp
Dues lectures expliquen històries diferents. Els paquets que incrementen a la banda de sortida però mai a la d’entrada apunten a un problema d’reenviament o de camí de tornada, no a un problema de clau, perquè el paquet es va encapsular i va marxar. Que no es mogui cap comptador vol dir que el trànsit no va coincidir mai amb la política, i el selector és on cal mirar.
La captura del mateix pas confirma l’encapsulació al cable, incloent si els paquets externs són ESP o ESP encapsulat en UDP. També us mostra les adreces que realment van transportar el flux, que de vegades difereixen de les de la configuració que estàveu llegint.
Pas tres: canvieu una cosa i conserveu una reversió
Anoteu l’origen, la destinació, el mode, els selectors i els comptadors de l’associació abans d’editar res. Si un canvi empitjora les coses, aquest registre és el que us permet restaurar l’estat anterior en lloc de reconstruir una configuració que funciona a partir d’una conjectura. Aquest registre costa un minut d’escriure i estalvia una hora més tard. També és l’únic artefacte que sobreviu a la persona que va fer el canvi.
Canvieu un selector o un paràmetre, torneu-lo a carregar i repetiu el pas dos sobre el mateix flux. Esborrar una associació trenca tots els fluxos que la fan servir, així que una edició dirigida i una recàrrega de la filla són gairebé sempre millors que buidar l’estat per veure què passa.
La reversió d’una edició de selector és restaurar la política anterior i tornar-la a carregar, amb l’advertència que l’altre extrem pot necessitar un canvi corresponent si el selector es negocia en lloc de ser local. Anoteu aquesta dependència mentre és fresca, perquè un parell mig restaurat és més difícil de raonar que qualsevol dels dos estats finals.
Finalment, manteniu l’abast honest. Una associació ESP que flueix demostra que les dues passarel·les protegeixen i lliuren el segment, i no diu res sobre si l’aplicació de dalt autentica els seus usuaris o xifra el que emmagatzema. Són controls separats amb proves separades, i el runbook només s’acaba quan la propera persona el pot repetir a partir de les notes.