ESP perneša srautą IPsec VPN, o jo runbook pradedamas viena taisykle: perskaitykite saugos asociaciją prieš keisdami politiką. Dauguma nepaaiškinamo ESP elgesio kyla iš selektoriaus, kuris nesutapo, režimo, kuris buvo numatytas, o ne perskaitytas, ar skaitiklio, kurio niekas nepatikrino, kol buvo siunčiamas vienas srautas. Trys žingsniai žemiau nustato, kas ką perneša, įrodo, kad vienas srautas jį naudoja, ir palieka atsukimą, kuris nepriklauso nuo atminties. Kiekvienas žingsnis duoda vieną pastebėjimą, kurį verta užsirašyti.

Prieš skaitydami žinokite laukus

ESP deda antraštę prieš apsaugotus duomenis ir pėdsaką po jų. Antraštė neša saugos parametrų indeksą, kuris nurodo, kurią asociaciją turi naudoti gavėjas, sekos numerį pakartojimams aptikti, o pėdsake – užpildą, kuri palaiko naudingąją apkrovą sulygiuotą šifrui. Kito antraštės laukas pėdsake nurodo, kas yra apsaugotas turinys, ir taip gavėjas žino, ką išapsaugojo.

Režimas keičia tai, kas yra tos apsaugos viduje. Tunelio režimu apsaugota medžiaga yra visas vidinis IP paketas, o nauja išorinė antraštė perneša jį tarp galinių taškų. Transporto režimu apsauga apgaubia esamo paketo viršutinio sluoksnio naudingąją apkrovą, todėl antros IP antraštės atidaryti nereikia. Kuris režimas naudojamas, yra konfigūracijos faktas, o ne interpretacijos klausimas. Skaitykite jį iš būsenos įrašo, o ne spėkite iš diagramos.

Nė vienas režimas neslepia išorinio adresavimo, kuris turi pristatyti paketą. Tai dizaino savybė, o ne trūkumas, ir todėl tarpinis stebėtojas vis dar mato, kurie du adresai kalba, net kai naudingoji apkrova nepermatoma.

Pirmas žingsnis: perskaitykite būseną, tada politiką

Būsenos įrašai laiko raktus ir skaitiklius; politikos įrašai laiko selektorius, kurie nusprendžia, kam leidžiama juos naudoti. Linux sistemoje abu matomi be paketų fiksavimo, ir skaitymas šia tvarka palieka du klausimus atskirai.

ip xfrm state
ip xfrm policy

Būsenos išvestyje patikrinkite asociacijos šaltinį ir paskirties vietą, režimą ir ar inkapsuliavimas rodo UDP prievadus. Šie prievadai reiškia, kad naudojamas NAT prasiskverbimas, o tai keičia, ką turi leisti tarpinė ugniasienė, bet ne tai, kurie selektoriai ar raktai galioja galiniuose taškuose.

Tada perskaitykite politikos selektorius. Selektorius, nurodantis siauresnį priešdėlį nei jūsų testuojamas srautas, yra dažniausia priežastis, kodėl veikiantis tunelis atrodo ignoruojantis srautą, o neteisingo protokolo selektorius duoda tą pačią tylą.

FieldWhere it appearsWhat it decides
Security parameter indexESP header, and the receiving state entryWhich association and keys the receiver applies
Sequence numberESP headerReplay detection for that association
Next headerESP trailerWhat the decapsulated payload contains
Inner IP headerInside tunnel-mode payload onlyThe original source and destination the endpoints act on
Traffic selectorsPolicy, not the packetWhich local traffic is allowed to use the association

Gamintojų įrankiai spausdina tą pačią informaciją patogesne forma. ipsec statusall strongSwan atveju jis išvardija vaikines asociacijas, jų selektorius ir baitų skaitiklius, o tai dažnai greičiau nei skaityti neapdorotą xfrm išvestį, kai jau žinote, į kurią vaikinę žiūrėti.

Antras žingsnis: įrodykite, kad vienas srautas judina skaitiklius

Skaitikliai turi prasmę tik tada, kai žinote, kas juos turėjo pajudinti, todėl pasirinkite šaltinį ir paskirties vietą, kuriuos selektorius tikrai apima, ir nusiųskite vieną nekenksmingą užklausą. Tada dar kartą perskaitykite tą patį įrašą ir palyginkite.

ip -s xfrm state
tcpdump -ni any esp

Du nuskaitymai pasakoja skirtingas istorijas. Paketai, kurie didėja išėjimo pusėje, bet niekada įėjimo, rodo perdavimo ar grįžimo kelio problemą, o ne rakto problemą, nes paketas buvo inkapsuliuotas ir iškeliavo. Jei nė vienas skaitiklis nejuda, srautas niekada neatitiko politikos, o selektorius yra vieta, kur žiūrėti.

To paties žingsnio fiksavimas patvirtina inkapsuliavimą laide, įskaitant tai, ar išoriniai paketai yra ESP, ar UDP inkapsuliuotas ESP. Jis taip pat parodo adresus, kurie iš tikrųjų pernešė srautą, ir jie kartais skiriasi nuo tų, kurie buvo skaitomoje konfigūracijoje.

Trečias žingsnis: pakeiskite vieną dalyką ir išsaugokite atsukimą

Užsirašykite asociacijos šaltinį, paskirties vietą, režimą, selektorius ir skaitiklius prieš ką nors redaguodami. Jei pakeitimas pablogina padėtį, būtent tas įrašas leidžia atkurti ankstesnę būseną, o ne perrinkti veikiančią konfigūraciją iš spėjimo. Įrašas užima minutę ir sutaupo valandą vėliau. Tai taip pat vienintelis artefaktas, kuris išlieka po žmogaus, atlikusio pakeitimą.

Pakeiskite vieną selektorių arba vieną parametrą, įkelkite iš naujo ir pakartokite antrą žingsnį tam pačiam srautui. Asociacijos trynimas sugriauna kiekvieną ją naudojantį srautą, todėl tikslingas redagavimas ir vaikinės įkėlimas iš naujo beveik visada geresni nei būsenos išvalymas norint pamatyti, kas nutiks.

Selektoriaus redagavimo atsukimas yra ankstesnės politikos atkūrimas ir įkėlimas iš naujo, su išlyga, kad partneriui gali prireikti atitinkamo pakeitimo, jei selektorius derinamas, o ne vietinis. Užsirašykite tą priklausomybę, kol ji šviežia, nes pusiau atkurtą porą sunkiau apgalvoti nei bet kurią iš dviejų galinių būsenų.

Galiausiai laikykite apimtį sąžiningą. Tekanti ESP asociacija įrodo, kad du šliuzai saugo ir pristato segmentą, ir nieko nesako apie tai, ar viršuje esanti programa autentifikuoja savo naudotojus, ar šifruoja tai, ką saugo. Tai atskiros kontrolės su atskirais įrodymais, o runbook baigtas tik tada, kai kitas žmogus gali jį pakartoti iš užrašų.

Susiję straipsniai