IPsec ESP: што пренесува и како да докажете дека тече
ESP во тунелски режим обвива внатрешен IP пакет и ја идентификува својата асоцијација преку SPI. Прочитајте ја состојбата, потоа гледајте како еден тек ги поместува бројачите.
ESP го пренесува сообраќајот во IPsec VPN, а неговиот runbook започнува со едно правило: прочитајте ја безбедносната асоцијација пред да промените политика. Повеќето необјаснето однесување на ESP се сведува на селектор што не се совпаднал, режим што бил претпоставен наместо прочитан, или бројач што никој не го проверил додека се праќал еден тек. Трите чекори подолу утврдуваат што што пренесува, докажуваат дека еден тек го користи и оставаат враќање што не зависи од меморијата. Секој чекор дава едно набљудување што вреди да се запише.
Запознајте ги полињата пред да ги прочитате
ESP става заглавие пред заштитените податоци и опашка зад нив. Заглавието носи индекс на безбедносни параметри што одредува која асоцијација треба да ја користи примачот, редоследен број за откривање повторувања, а во опашката полнење што го држи носивиот товар порамнет за шифрата. Полето за следно заглавие во опашката кажува што е заштитената содржина, и така примачот знае што декапсулирал.
Режимот менува што стои внатре во таа заштита. Во тунелски режим заштитениот материјал е целосен внатрешен IP пакет, а ново надворешно заглавие го пренесува меѓу крајните точки. Во транспортниот режим заштитата го обвива носивиот товар од горниот слој на постоечки пакет, така што нема второ IP заглавие за отворање. Кој режим се користи е факт од конфигурацијата, а не прашање на толкување. Прочитајте го од записот за состојба наместо да го изведувате од дијаграм.
Ниту еден режим не го крие надворешното адресирање што мора да го достави пакетот. Тоа е својство на дизајнот, а не недостаток, и затоа посредниот набљудувач сѐ уште гледа кои две адреси разговараат, дури и кога носивиот товар е непровиден.
Прв чекор: прочитајте ја состојбата, потоа политиката
Записите за состојба ги држат клучевите и бројачите; записите за политика ги држат селекторите што одлучуваат што смее да ги користи. На Linux двете се видливи без фаќање пакети, а читањето по тој ред ги држи двете прашања одделени.
ip xfrm state
ip xfrm policy
Во излезот за состојба проверете го изворот и одредиштето на асоцијацијата, режимот и дали инкапсулацијата покажува UDP порти. Тие порти значат дека се користи NAT пробив, што менува што мора да дозволи посредниот firewall, но не и кои селектори или клучеви важат на крајните точки.
Потоа прочитајте ги селекторите во политиката. Селектор што именува потесен префикс од сообраќајот што го тестирате е најчестата причина зошто работен тунел изгледа како да игнорира тек, а селектор за погрешен протокол дава исто молчење.
| 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 |
Алатките на производителите ги печатат истите информации во поудобен облик. ipsec statusall на strongSwan ги наведува детските асоцијации, нивните селектори и нивните бајтни бројачи, што често е побрзо од читање на суров xfrm излез кога веќе знаете која детска да ја гледате.
Втор чекор: докажете дека еден тек ги поместува бројачите
Бројачите имаат смисла само ако знаете што требало да ги помести, затоа изберете извор и одредиште што селекторот сигурно ги покрива и пратете едно безопасно барање. Потоа прочитајте го истиот запис повторно и споредете.
ip -s xfrm state
tcpdump -ni any esp
Две читања кажуваат различни приказни. Пакетите што растат на излезната страна но никогаш на влезната упатуваат на проблем со препраќањето или повратниот пат, а не со клучот, бидејќи пакетот бил инкапсулиран и заминал. Ако ниту еден бројач не се помести, сообраќајот никогаш не се совпаднал со политиката, а селекторот е местото каде што треба да се гледа.
Фаќањето во истиот чекор ја потврдува инкапсулацијата на жицата, вклучително дали надворешните пакети се ESP или ESP инкапсулиран во UDP. Исто така ви ги покажува адресите што навистина го пренеле текот, а тие понекогаш се разликуваат од оние во конфигурацијата што ја читавте.
Трет чекор: сменете една работа и задржете враќање
Запишете ги изворот, одредиштето, режимот, селекторите и бројачите на асоцијацијата пред да уредувате нешто. Ако промената ја влоши состојбата, токму тој запис ви овозможува да ја вратите претходната состојба наместо да ја градите одново работната конфигурација од претпоставка. Записот трае една минута и штеди еден час подоцна. Тој е и единствениот артефакт што го надживува човекот што ја направил промената.
Сменете еден селектор или еден параметар, вчитајте го повторно и повторете го вториот чекор на истиот тек. Бришењето асоцијација урнува секој тек што ја користи, затоа насоченото уредување и повторното вчитување на детската се речиси секогаш подобри од празнење на состојбата за да видите што ќе се случи.
Враќањето при уредување на селектор е враќање на претходната политика и нејзино повторно вчитување, со оглед на тоа што партнерот може да бара соодветна промена ако селекторот се преговара, а не е локален. Запишете ја таа зависност додека е свежа, бидејќи половично вратен пар е потешко да се размисли од која било од двете крајни состојби.
На крајот, држете го опфатот чесен. Текот на ESP што тече докажува дека двата порти го штитат и доставуваат сегментот, и не кажува ништо за тоа дали апликацијата над него ги автентицира своите корисници или го шифрира она што го чува. Тоа се одделни контроли со одделни докази, а runbook е завршен само кога следниот човек може да го повтори од белешките.