strongSwan trap režīms: kāpēc IPsec tunelis gaida datplūsmu
Neaktīvs pēc pieprasījuma IPsec tunelis neparāda CHILD SA, kamēr pakete neatbilst tā trap politikai. Izlasiet stāvokli, pārbaudiet trigeri un ziniet, kad start ir piemērots.
Statusa izvadē neparādās CHILD SA, tunelis izskatās miris, un tad ping uz attālo apakštīklu to paceļ. Pēc pieprasījuma IPsec iestatījumā šī secība ir dizains, nevis kļūme. Trap politika instalē selektoru un gaida, un pirmais tai atbilstošais pakete sāk IKE un CHILD SA sarunas.
Daļa neskaidrības ir vārdnīca: „up“ tiek lietots diviem dažādiem stāvokļiem. Konfigurācija ir ielādēta un kodola politika pastāv, bet datu asociācija nav. Monitorings, kas skaita tikai aktīvus SA, veselu vietni ziņos kā neaktīvu, kamēr neviens uz to nesūta datplūsmu.
Neaktīvam pēc pieprasījuma tunelim nav CHILD SA, ko parādīt
Trap ieraksts pats par sevi neko neautentificē. Tas lūdz kodolu turēt politiku atlasītajai datplūsmai un pacelt acquisition, kad paketei šī politika ir vajadzīga. Dēmons saņem acquisition, saskaņo to ar child definīciju un sarunojas no turienes. Līdz tam nav arī IKE SA, ko parādīt, tāpēc abi saraksti var būt tukši vienlaikus.
Šī secība padara žurnālus lasāmus. Vispirms nāk acquisition, pēc tam IKE_SA_INIT un IKE_AUTH, tad CHILD SA. Ja žurnāls beidzas uzreiz pēc acquisition, trigeris darbojās. Sarunas neizdevās, un nākamais jautājums ir par akreditācijas datiem, priekšlikumiem vai sasniedzamību, nevis par trap.
Ar Linux kodola backend varat redzēt politiku pirms jebkura SA pastāvēšanas. Palaidiet ip xfrm policy un meklējiet selektoru ar virzienu out un veidni, kas norāda uz savienojumu. Šis ieraksts ir pēc pieprasījuma stāvoklis, un tā esamība ir pirmais, kas jāapstiprina.
start_action izlemj, vai vispār kaut kas gaidīs
Katram child swanctl.conf ir start_action. start tiek palaists, kad tiek ielādēta konfigurācija, trap instalē politiku un gaida, un none atstāj palaišanu kaut kam citam. Tikai trap rada iepriekš aprakstīto „ping un tas paceļas“ uzvedību.
children {
office-lan {
local_ts = 192.168.50.0/24
remote_ts = 192.168.70.0/24
start_action = trap
}
}
Divi datplūsmas selektori nosaka, kas tiek uzskatīts par interesantu, un pakete no resursdatora ārpus šiem prefiksiem trap neiedarbina; tā tiek maršrutēta kā parasti. Selektoru paplašināšana, lai trigeris būtu aktīvāks, paplašina arī apjomu, ko tunelis apgalvo, ka aizsargā, tāpēc atvasiniet tos no datplūsmas, ko patiešām plānojat šifrēt.
Šeit swanctl.conf atsauce uzskaita pieņemtās vērtības kopā ar atsevišķām close un DPD darbībām, kas nosaka, kas notiek, kad SA jau pastāv.
Noskaidrojiet, vai trigeris vispār iedarbojās
Sāciet ar swanctl --list-conns un apstipriniet, ka child ir ielādēts ar paredzēto darbību. Pēc tam nosūtiet vienu paketi no resursdatora local_ts iekšienē uz adresi remote_ts iekšienē un vērojiet swanctl --list-sas. Ja izvade nemainās, neviens acquisition nav sasniedzis dēmonu.
Divi parasti klusa trap iemesli: pakete tika pakļauta source-NAT pirms politikas sasniegšanas un vairs neatbilst local_ts, vai savienojums nekad netika ielādēts sintakses vai akreditācijas datu kļūdas dēļ. Palaidiet vēlreiz swanctl --load-all un izlasiet tā izvadi pirms selektoru aizskaršanas. Savienojums, kas netika ielādēts, neinstalē politiku, tāpēc datplūsmai nav ko iedarbināt.
Virziens arī ir svarīgs: trap, kas instalēts izejošajai datplūsmai, nepalaižas ar ienākošu paketi. Ja attālajai pusei ir jāpaceļ tunelis, tai vajag savu trap, vai šai pusei vajag start.
Gaidīt pirmo paketi ne vienmēr ir pareizā maiņa
Interaktīvās sesijas jūt iestatīšanas izmaksas. Pirmais pieprasījums maksā par IKE apmaiņu un CHILD sarunām, un klients ar īsu termiņu var padoties, pirms SA pastāv. Proaktīvs start novērš šo pirmā paketes aizturi. Bet tas tur tuneli atvērtu datplūsmai, kas var nekad neienākt.
Trīs fakti izlemj izvēli: cik bieži ceļš tiek izmantots, vai pirmajam pieprasījumam ir stingrs termiņš un vai vienaudzis ir sasniedzams palaišanas laikā. Gadījuma paketes datplūsma un vienaudzis, kas palaišanas laikā var būt bezsaistē, abi atbalsta trap. Latencei jutīgs klients un vienmēr sasniedzams vienaudzis atbalsta start. Ja abas puses var iniciēt, vienojieties, kam pieder trigeris, lai nebūtu dubultu sarunu.
Instalēta politika arī nav noplūdes droša garantija. Ja prasība ir fail-closed, ugunsmūrim ir jāizmet datplūsma bez SA, un šis noteikums dzīvo ārpus child definīcijas.
Pierakstiet trīs rindas, kas pabeigs nākamo strīdu
Pierakstiet selektorus, palaišanas darbību un komandas izvadi, kas parāda politikas esamību bez SA. Šīs trīs rindas atdala „pēc pieprasījuma un neaktīvu“ no „netiek ielādēts“ nākamreiz, kad kāds ziņos tuneli kā neaktīvu. To fiksēšana aizņem minūti. Bez tām tā pati izmeklēšana sākas no nulles.
Pārbaudiet no resursdatora, kas patiešām atrodas selektora iekšienē. Ping no paša maršrutētāja bieži iet citu ceļu un neko nepierāda par politiku, kas aizsargā apakštīklu aiz tā.