Zajeli ste promet na gostitelju IPsec, videli pakete ESP, ki odhajajo, niste videli ničesar, kar bi se vrnilo, in sklepali, da je oddaljena stran pokvarjena. Zajem tega sklepa ne podpira. ESP ščiti eno smer pogovora in na ravni IP ničesar ne potrdi, zato lahko manjkajoči povratni ESP prav tako pomeni, da aplikacija ni imela česa povedati, kot to, da je tunel mrtev. Preberite notranjo izmenjavo in stanje na sprejemni strani, preden krivite kateri koli konec.

Mit: vsak zaščiten paket dobi odgovor

ESP ni protokol zahteva in odgovora. Šifrira in overja tisto, kar izbere politika, prejemnik pa ta notranji paket overi, dešifrira in dostavi, ne da bi sam ustvaril paket. Poizvedba UDP, ki jo cilj ignorira, ali odmev ICMP, ki ga vhodna politika zavrže, v obe smeri ustvari tišino kot pravilen izid. Obravnavanje te tišine kot transportne okvare vas pošlje iskat omrežno napako, ki je nikoli ni bilo.

Enosmerni zajem dejansko dokazuje, da je sklad pošiljatelja na tisti točki opazovanja nekaj šifriral. Nič o prihodu in nič o nameri odgovoriti. Koristno vprašanje ni „zakaj ni odgovora“, ampak „kaj bi moral notranji pogovor ustvariti“.

Dve SA, dva SPI, en pogovor

Varnostne asociacije IPsec so enosmerne, zato običajna zaščitena izmenjava izvaja vhodno asociacijo in odhodno asociacijo z ločenimi identifikatorji in neodvisnim stanjem. Iskanje povratnega prometa po SPI odhodnega paketa je zato kategorijska napaka, ker vsak odgovor potuje pod partnerjevo lastno odhodno SA z lastnim SPI. Namesto tega par povežite po izbirnikih prometa in partnerjevih naslovih.

Obnova ključa za nekaj sekund zaplete sliko, ker se staro in nadomestno stanje lahko prekrivata. Če se je simptom začel okoli obnove ključa, zberite identifikatorje asociacij in časovne žige skupaj, ne le imena povezave.

Kaj mora prejemnik storiti, preden karkoli odgovori

StageWhat to look atWrong conclusion if skipped
Sender encryptsoutbound SA packet counter"the tunnel is up"
Peer receivesinbound SA counter and replay window"the peer is down"
Inner deliverytarget host or service logs"routing is broken"
Application repliesthe app's own trace"the reply was dropped"
Protected returnthe peer's outbound SA"ESP only works one way"

Vsaka vrstica odpove neodvisno in vsaka okvara ima drugega lastnika, zato en sam zajem ne more ločiti med njimi. Vhodni števec je edini neposredni dokaz prihoda, ker se paket, ki ne prestane overjanja ali preverjanja ponovitev, zavrže brez kakršnega koli odgovora. Partner, katerega vhodni števec se ni premaknil, vam zato sploh ne daje nobene informacije o svoji politiki.

Dostava je ločen korak od dešifriranja. Stanje je lahko veljavno, paket pa nato vseeno zavrže vhodna politika ali pot, ki ne vključuje notranjega cilja, zato preverite, ali je ciljni gostitelj videl čisto besedilo, namesto da predpostavljate, da čist števec pomeni, da je paket šel tja, kamor ste hoteli.

Domači ESP ni UDP

Domači ESP je protokol IP 50, ki ni niti TCP niti UDP in sploh nima vrat. Pravilo požarnega zidu, ki dovoli IKE na UDP 500, zato ne pove ničesar o podatkovni poti, filter, napisan okoli vrat, pa lahko tunelu dovoli pogajanja in nato zavrže vse, kar se v njem prenaša. Podatkovno pot preizkusite posebej, v načinu, ki ste ga dejansko opazovali.

Za NAT se oblika spremeni: zaščiteni tovor potuje znotraj UDP, običajno na vratih 4500, kot določa RFC 3948. Zabeležite aktivni način, preden napišete katero koli pravilo, ker lahko naprava na poti domači ESP in ESP, ovit v UDP, obravnava povsem drugače, nekatere vmesne škatle pa prepustijo eno in zavržejo drugo.

Berite števce, ki pripadajo tej nezgodi

Na gostitelju strongSwan swanctl --list-sas poroča števce paketov in bajtov na asociacijo v obeh smereh, kar zadostuje za ločevanje „nikoli ni prišlo“ od „prišlo in ni bilo odgovorjeno“. V Linuxu /proc/net/xfrm_stat šteje združene napake, kot so manjkajoče stanje, manjkajoča politika in protokolarne napake. Ti seštevki se kopičijo od zagona in pripadajo enemu omrežnemu imenskemu prostoru, zato veliko število ni pripis.

Vzemite dve odčitavanji okoli okna nezgode v pravilnem imenskem prostoru in primerjajte razlike, sicer boste napake prejšnjega tedna pripisali današnji prijavi. V prijavo vpišite imenski prostor in oba časovna žiga, da bo naslednji bralec lahko ponovil primerjavo, namesto da bi zaupal seštevku.

Poimenujte stopnjo, ne osumljenca

Koristen sklep pove, kje se je paket ustavil: nikoli prejet, prejet in zavržen, dostavljen, a brez odgovora, ali odgovorjen in izgubljen na poti nazaj. Vsak od teh kaže na drugega lastnika in drug ukaz. „Ni odgovora s strežnika VPN“ stisne štiri različne okvare v en stavek, ki ga zajem nikoli ni upravičil.

Zajeme ohranjajte ozke in surovega stanja jedra ne dajajte v prijave, ker lahko nosi ključni material, ki ne bi smel zapustiti gostitelja. Razlike števcev in časovni žigi so deli, ki jih je vredno predati naslednji osebi.

Sorodni članki