Одлазни ESP без одговора не значи да је VPN мртав
ESP штити један смер по асоцијацији и ништа не потврђује. Ускладите унутрашњи разговор и долазну SA пре него што сервер прогласите неодговорним.
Снимили сте саобраћај на IPsec хосту, видели одлазне ESP пакете, нисте видели ништа што се враћа и закључили да је удаљена страна покварена. Снимак не подржава тај закључак. ESP штити један смер разговора и ништа не потврђује на IP слоју, па недостатак повратног ESP-а може једнако лако значити да апликација није имала шта да каже као и да је тунел мртав. Прочитајте унутрашњу размену и стање пријемне стране пре него што окривите било који крај.
Мит: сваки заштићени пакет добије одговор
ESP није протокол захтева и одговора. Шифрује и аутентификује све што политика одабере, а прималац валидира, дешифрује и доставља тај унутрашњи пакет без стварања сопственог пакета. UDP упит који одредиште игнорише, или ICMP јека коју долазна политика одбаци, производи тишину у оба смера као исправан исход. Третирање те тишине као транспортног квара шаље вас у потрагу за мрежним кваром којег никада није било.
Једносмерни снимак заправо доказује да је стек пошиљаоца нешто шифровао у тој тачки посматрања. Ништа о доласку и ништа о намери да се одговори. Корисно питање није „зашто нема одговора“ него „шта је унутрашњи разговор требало да произведе“.
Две SA, два SPI, један разговор
IPsec сигурносне асоцијације су једносмерне, па уобичајена заштићена размена води долазну асоцијацију и одлазну асоцијацију са одвојеним идентификаторима и независним стањем. Тражење повратног саобраћаја по SPI-ју одлазног пакета стога је категоријска грешка, јер сваки одговор путује под сопственом одлазном SA партнера са сопственим SPI. Уместо тога упарите пар по селекторима саобраћаја и адресама партнера.
Обнова кључа на неколико секунди компликује слику јер се старо и заменско стање могу преклапати. Ако је симптом почео око обнове кључа, прикупите идентификаторе асоцијација и временске ознаке заједно, а не само назив везе.
Шта прималац мора да уради пре него што ишта одговори
| Stage | What to look at | Wrong conclusion if skipped |
|---|---|---|
| Sender encrypts | outbound SA packet counter | "the tunnel is up" |
| Peer receives | inbound SA counter and replay window | "the peer is down" |
| Inner delivery | target host or service logs | "routing is broken" |
| Application replies | the app's own trace | "the reply was dropped" |
| Protected return | the peer's outbound SA | "ESP only works one way" |
Сваки ред отказује независно и сваки квар има другог власника, зато један снимак не може да их разликује. Долазни бројач једини је директни доказ доласка, јер се пакет који не прође аутентификацију или проверу понављања одбацује без икаквог одговора. Партнер чији се долазни бројач није померио стога вам уопште не даје никакву информацију о својој политици.
Достава је одвојен корак од дешифровања. Стање може бити важеће, а пакет ипак касније одбаци долазна политика или рута која не укључује унутрашње одредиште, па проверите да ли је циљни хост видео чисти текст, уместо да претпоставите да чист бројач значи да је пакет отишао камо сте хтели.
Изворни ESP није UDP
Изворни ESP је IP протокол 50, који није ни TCP ни UDP и уопште нема портова. Правило заштитног зида које дозвољава IKE на UDP 500 стога не говори ништа о путу података, а филтер написан око портова може пустити тунел да преговара и затим одбацити све што се у њему преноси. Тестирајте пут података засебно, у режиму који сте стварно посматрали.
Иза NAT-а облик се мења: заштићени терет путује унутар UDP-а, обично на порту 4500, како дефинише RFC 3948. Забележите активни режим пре писања било ког правила, јер уређај на путу може потпуно различито третирати изворни ESP и ESP инкапсулиран у UDP, а нека посредничка кутија допуштају једно док одбацују друго.
Читајте бројаче који припадају овом инциденту
На strongSwan хосту swanctl --list-sas извештава бројаче пакета и бајтова по асоцијацији у оба смера, што је довољно да се одвоји „никад није стигло“ од „стигло и није одговорено“. На Linux-у /proc/net/xfrm_stat броји агрегиране кварове попут недостајућег стања, недостајуће политике и грешака протокола. Ти збирови се накупљају од подизања система и припадају једном мрежном именском простору, па велики број није приписивање.
Узмите два очитавања око прозора инцидента у исправном именском простору и упоредите разлике, иначе ћете прошлонедељне грешке приписати данашњем налогу. Ставите именски простор и обе временске ознаке у налог како би следећи читалац могао да понови поређење уместо да верује збиру.
Именујте фазу, не осумњиченог
Користан закључак каже где се пакет зауставио: никада примљен, примљен и одбачен, достављен али без одговора, или одговорен и изгубљен на повратку. Сваки од њих упућује на другог власника и другу следећу наредбу. „Нема одговора од VPN сервера“ сажима четири различита квара у једну реченицу коју снимак никада није оправдао.
Држите снимке уске и не стављајте сирово стање кернела у налоге, јер оно може носити кључни материјал који не би требало да напусти хост. Разлике бројача и временске ознаке делови су које вреди предати следећој особи.