Režim trap v strongSwan: prečo IPsec tunel čaká na prevádzku
Neaktívny IPsec tunel na požiadanie nezobrazí CHILD SA, kým paket nezodpovedá jeho politike trap. Prečítajte si stav, skontrolujte spúšťač a vedzte, kedy sa hodí start.
Vo výstupe stavu sa neobjaví CHILD SA, tunel vyzerá mŕtvy, a potom ho ping do vzdialenej podsiete zdvihne. V nastavení IPsec na požiadanie je tento sled zámer, nie porucha. Politika trap nainštaluje selektor a čaká, a prvý paket, ktorý jej zodpovedá, spustí IKE a vyjednávanie CHILD SA.
Časť zmätku je v slovníku: „up“ sa používa pre dva rôzne stavy. Konfigurácia je načítaná a politika jadra existuje, ale dátová asociácia nie. Monitor, ktorý počíta len aktívne SA, bude hlásiť zdravé miesto ako nedostupné, kým tam nikto neposiela prevádzku.
Neaktívny tunel na požiadanie nemá CHILD SA, ktorý by ukázal
Záznam trap sám o sebe nič neautentizuje. Žiada jadro, aby držalo politiku pre vybranú prevádzku a aby zdvihlo acquisition, keď paket túto politiku potrebuje. Démon acquisition prijme, spáruje ho s definíciou child a odtiaľ vyjednáva. Do tej doby nie je na zobrazenie ani IKE SA, a preto môžu byť oba zoznamy prázdne zároveň.
Práve toto poradie robí logy čitateľné. Najprv príde acquisition, potom IKE_SA_INIT a IKE_AUTH, potom CHILD SA. Ak log končí hneď po acquisition, spúšťač fungoval. Vyjednávanie zlyhalo a ďalšia otázka je o prihlasovacích údajoch, návrhoch alebo dostupnosti, nie o trap.
S jadrom Linux ako backendom môžete politiku vidieť skôr, než existuje akýkoľvek SA. Spustite ip xfrm policy a hľadajte selektor so smerom out a šablónou ukazujúcou na spojenie. Tento záznam je stav na požiadanie a jeho prítomnosť je prvá vec na potvrdenie.
start_action rozhoduje, či vôbec niečo bude čakať
Každý child v swanctl.conf nesie start_action. start sa spustí pri načítaní konfigurácie, trap nainštaluje politiku a čaká a none necháva spustenie na niečom inom. Len trap vytvára správanie „ping a ono sa zdvihne“ opísané vyššie.
children {
office-lan {
local_ts = 192.168.50.0/24
remote_ts = 192.168.70.0/24
start_action = trap
}
}
Dva selektory prevádzky určujú, čo sa počíta ako zaujímavé, a paket z hostiteľa mimo tieto prefixy trap nespustí; smeruje sa ako obvykle. Rozšírenie selektorov, aby bol spúšťač dychtivejší, rozširuje aj rozsah, ktorý tunel tvrdí, že chráni, takže ich odvodzujte z prevádzky, ktorú skutočne chcete šifrovať.
Referenčná príručka swanctl.conf uvádza prijímané hodnoty spolu so samostatnými akciami close a DPD, ktoré riadia, čo sa stane, keď SA existuje.
Zistite, či sa spúšťač vôbec aktivoval
Začnite s swanctl --list-conns a potvrďte, že child je načítaný s akciou, ktorú ste zamýšľali. Potom pošlite jeden paket z hostiteľa vnútri local_ts na adresu vnútri remote_ts a sledujte swanctl --list-sas. Ak sa výstup nezmení, žiadny acquisition sa k démonovi nedostal.
Dva obvyklé dôvody tichého trap: paket prešiel source-NAT skôr, než sa dostal k politike, a už nezodpovedá local_ts, alebo sa spojenie nikdy nenačítalo kvôli syntaktickej chybe či chybe údajov. Spustite znova swanctl --load-all a prečítajte si jeho výstup, než sa dotknete selektorov. Spojenie, ktoré sa nenačítalo, neinštaluje žiadnu politiku, takže prevádzka nemá čo spustiť.
Smer tiež rozhoduje: trap nainštalovaný pre odchádzajúcu prevádzku sa nespustí prichádzajúcim paketom. Ak má tunel zdvihnúť vzdialená strana, potrebuje vlastný trap, alebo táto strana potrebuje start.
Čakanie na prvý paket nie je vždy správna výmena
Interaktívne relácie pocítia náklady na nastavenie. Prvá požiadavka platí za výmenu IKE a vyjednávanie CHILD a klient s krátkym termínom to môže vzdať skôr, než SA existuje. Proaktívny start toto oneskorenie prvého paketu odstráni. Ale drží tunel zdvihnutý pre prevádzku, ktorá možno nikdy nepríde.
Tri fakty rozhodujú: ako často sa cesta používa, či má prvá požiadavka tesný termín a či je peer pri štarte dostupný. Občasná dávková prevádzka a peer, ktorý môže byť pri štarte offline, oboje uprednostňujú trap. Klient citlivý na latenciu a peer, ktorý je vždy dostupný, uprednostňujú start. Ak môžu obe strany iniciovať, dohodnite sa, kto spúšťač vlastní, aby ste nemali duplicitné vyjednávanie.
Nainštalovaná politika tiež nie je zárukou proti úniku. Ak je požiadavka fail-closed, firewall musí zahadzovať prevádzku bez SA a toto pravidlo žije mimo definície child.
Zapíšte tri riadky, ktoré ukončia najbližší spor
Zapíšte selektory, akciu pri štarte a výstup príkazu, ktorý ukazuje politiku prítomnú bez SA. Tie tri riadky oddeľujú „na požiadanie a neaktívny“ od „nenačítava sa“, keď niekto nabudúce nahlási tunel ako nedostupný. Zachytenie trvá minútu. Bez nich to isté vyšetrovanie začína od nuly.
Testujte z hostiteľa, ktorý je skutočne vnútri selektora. Ping zo samotného routera často ide inou cestou a nič nedokazuje o politike chrániacej podsietu za ním.