ESP prenosi saobraćaj u IPsec VPN-u, a njegov runbook počinje jednim pravilom: pročitajte sigurnosnu asocijaciju prije nego što promijenite politiku. Većina neobjašnjenog ponašanja ESP-a svodi se na selektor koji se nije poklopio, režim koji je pretpostavljen umjesto pročitan, ili brojač koji niko nije provjerio dok je slan jedan tok. Tri koraka ispod utvrđuju šta šta prenosi, dokazuju da jedan tok to koristi, i ostavljaju vraćanje koje ne zavisi od pamćenja. Svaki korak daje jedno zapažanje koje vrijedi zapisati.

Upoznajte polja prije nego što ih pročitate

ESP stavlja zaglavlje ispred zaštićenih podataka i privezak iza njih. Zaglavlje nosi indeks sigurnosnih parametara koji identifikuje koju asocijaciju primalac treba koristiti, redni broj za otkrivanje ponavljanja i dopunu u privesku koja drži korisni teret poravnat za šifru. Polje sljedećeg zaglavlja u privesku kaže šta je zaštićeni sadržaj i tako primalac zna šta je dekapsulirao.

Režim mijenja ono što stoji unutar te zaštite. U tunelskom režimu zaštićeni materijal je kompletan unutrašnji IP paket, a novo vanjsko zaglavlje ga prenosi između krajnjih tačaka. U transportnom režimu zaštita obavija korisni teret gornjeg sloja postojećeg paketa, pa nema drugog IP zaglavlja za otvaranje. Koji je režim u upotrebi je činjenica konfiguracije, a ne stvar tumačenja. Pročitajte je iz unosa stanja umjesto da je izvodite iz dijagrama.

Nijedan režim ne skriva vanjsko adresiranje koje mora dostaviti paket. To je svojstvo dizajna, a ne nedostatak, i zato posmatrač u sredini i dalje vidi koje dvije adrese razgovaraju čak i kada je korisni teret neproziran.

Prvi korak: pročitajte stanje, pa politiku

Unosi stanja drže ključeve i brojače; unosi politike drže selektore koji odlučuju šta ih smije koristiti. Na Linuxu su oba vidljiva bez hvatanja paketa, a čitanje u tom redu drži dva pitanja odvojenim.

ip xfrm state
ip xfrm policy

U izlazu stanja provjerite izvor i odredište asocijacije, režim i to pokazuje li enkapsulacija UDP portove. Ti portovi znače da se koristi NAT prolaz, što mijenja šta srednji firewall mora dopustiti, ali ne i koji selektori ili ključevi važe na krajnjim tačkama.

Zatim pročitajte selektore u politici. Selektor koji navodi uži prefiks od saobraćaja koji testirate najčešći je razlog zašto se čini da radni tunel ignoriše tok, a selektor za pogrešan protokol daje istu tišinu.

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

Alati proizvođača ispisuju iste informacije u preglednijem obliku. ipsec statusall na strongSwan-u navodi podređene asocijacije, njihove selektore i brojače bajtova, što je često brže od čitanja sirovog xfrm izlaza kada već znate koju podređenu asocijaciju gledati.

Drugi korak: dokažite da jedan tok pomjera brojače

Brojači imaju smisla samo ako znate šta ih je trebalo pomjeriti, zato odaberite izvor i odredište koje selektor sigurno pokriva i pošaljite jedan bezopasan zahtjev. Zatim ponovo pročitajte isti unos i uporedite.

ip -s xfrm state
tcpdump -ni any esp

Dva čitanja pričaju različite priče. Paketi koji rastu na izlaznoj strani ali nikad na ulaznoj ukazuju na problem s prosljeđivanjem ili povratnim putem, a ne s ključem, jer je paket enkapsuliran i otišao. Ako se nijedan brojač ne pomjera, saobraćaj nikad nije ni odgovarao politici, a selektor je mjesto gdje treba gledati.

Hvatanje u istom koraku potvrđuje enkapsulaciju na žici, uključujući to jesu li vanjski paketi ESP ili ESP enkapsuliran u UDP. Ono vam takođe pokazuje adrese koje su zaista prenijele tok, a one se ponekad razlikuju od onih u konfiguraciji koju ste čitali.

Treći korak: promijenite jednu stvar i zadržite vraćanje

Zapišite izvor, odredište, režim, selektore i brojače asocijacije prije nego što bilo šta uredite. Ako promjena pogorša stvari, taj zapis vam omogućava da vratite prethodno stanje umjesto da radnu konfiguraciju ponovo gradite iz nagađanja. Taj zapis traje minut da se napiše i štedi sat kasnije. To je i jedini artefakt koji nadživi osobu koja je napravila promjenu.

Promijenite jedan selektor ili jedan parametar, ponovo ga učitajte i ponovite drugi korak na istom toku. Brisanje asocijacije ruši svaki tok koji je koristi, pa su ciljana izmjena i ponovno učitavanje podređene asocijacije gotovo uvijek bolji od pražnjenja stanja da vidite šta će se dogoditi.

Vraćanje nakon izmjene selektora znači obnoviti prethodnu politiku i ponovo je učitati, uz napomenu da partneru može trebati odgovarajuća promjena ako se selektor pregovara, a nije lokalni. Zapišite tu zavisnost dok je svježa, jer je napola obnovljen par teže razumjeti od bilo kojeg od dva krajnja stanja.

Na kraju, držite obim iskrenim. Tok ESP-a koji protiče dokazuje da dva gejta štite i dostavljaju segment, i ne govori ništa o tome da li aplikacija iznad autentifikuje svoje korisnike ili šifruje ono što čuva. To su odvojene kontrole s odvojenim dokazima, a runbook je završen tek kada sljedeća osoba može da ga ponovi iz bilješki.

Povezani članci