Pesastatud IPsecist on lihtsam mõelda, kui kaks kihti lõpevad eri masinatel. Neli lüüsi, kaks tunnelit ja üks küsimus, mis otsustab, kas lahendus töötab: mida välimine tunnel tegelikult näeb, kui sisemine on paketiga lõpetanud? Vasta sellele ja selektorid, marsruudid ning tõrkeotsingu järjekord järgnevad. Eksid ja veedad päeva siludes tunnelit, mis on tehniliselt üleval.

Nelja lüüsi mudel

Välimised lüüsid A ja B ehitavad esimese tunneli kahe asukoha vahele. A taga asub sisemine lüüs C transiitaadressiga 10.60.0.2; B taga asub sisemine lüüs D transiitaadressiga 10.70.0.2. Rakenduste võrgud elavad C ja D taga ning kõik näites esinevad aadressid on meelega mittekattuvad.

application net -> C -> A == outer IPsec == B -> D -> application net
                       \---------- inner IPsec ----------/

C transit: 10.60.0.2      D transit: 10.70.0.2
A and B:    underlay addresses only

Kihtide jagamine nelja hosti vahel tähendab, et iga masin jõustab ühe piiri. Üks host, mis käitab mõlemat kihti, peab ühel masinal sobitama kaks poliitikakomplekti, kaks marsruutimistabelit ja kaks tõrkeviisi, mis on võimalik ja palju raskemini jälgitav.

Iga kiht eemaldab ainult oma kaitse

C krüpteerib rakenduse paketi D jaoks. Tulemus on adresseeritud C-st D-le ja just see jõuab A-ni. Kõik allavoolu sõltub sellest ümberkirjutusest.

A krüpteerib selle uuesti B jaoks. B dekrüpteerib välimise kihi, näeb paketti C-st D-le ja edastab selle endiselt krüpteerituna. D eemaldab sisemise kaitse ja toimetab rakenduse paketi kohale.

Nii näevad A ja B sisemisi lõpp-punkte ja nende metaandmeid, kuid nad ei ole pooled, kes rakenduse kasuliku koormuse dekrüpteerivad. See on disaini tegelik omadus, mitte väide, et C, D või rakenduste hostid on usaldusväärsed.

Välimised selektorid nimetavad sisemised lüüsid

Siin ebaõnnestub enamik selliseid ehitisi. Poliitikal põhineva välimise tunneli puhul peavad selektorid, mille üle läbi räägite, sisaldama aadresse, mida A ja B tegelikult käsitlevad: 10.60.0.2/32 ja 10.70.0.2/32, õiges kohalikus ja kaugjärjestuses.

Lõplike rakenduse alamlülide panemine välimistesse selektoritesse ei tööta, sest kui pakett A-ni jõuab, on sisemine kapseldus juba ümber kirjutanud selle, mida A peab kaitsma. Välimine poliitika ei sobiks siis millegagi ja tunnel tõuseks andmeid kandmata.

Ära kitsenda välimist luba UDP 500-le. Sisemisel ühendusel on oma andmetee, mis kasutab vastavalt läbiräägitule ESP või UDP kapseldust, ja välimine poliitika peab seda protokolli lubama.

Kontrolli tulemust swanctl --list-sas abil igal lüüsil ja kinnita, et laps-turbeseosed teatavad kavatsetud aadressid, mitte need, mida eeldasid. Kui nimekiri näitab rakenduse alamlülisid, on välimine poliitika kirjutatud vale kihi jaoks. Paranda selektorid enne marsruutimise silumist, sest marsruutimine näeb kena välja ja loendurid ei liigu.

Edastamine ja rekursiooni lõks

Selektorid ei asenda marsruutimist. A ja B peavad edastama liiklust C ja D vahel mõlemas suunas, mis tähendab lubatud IP-edastust, tunnelile osutavaid marsruute ja vastasküljel olemasolevat tagasiteed.

Kui välimine tunnel kasutab XFRM-liideseid, valivad marsruudid liidese, samal ajal kui läbiräägitud poliitikad piiravad endiselt seda, mida see kannab. Liides ei laienda kaitstud ala; see muudab ainult seda, kuidas kernel paketi üles korjab.

Lõks on rekursioon. A marsruut B välimise lõpp-punktini peab järgima alusvõrku, mitte tunnelit, mida A rajab, muidu üritab kapseldus liikuda iseenda sees ja ühendus ei valmi kunagi.

Uuri tõlkimist enne kihtide lisamist

Vaata mis tahes source NAT-i A ja B juures enne muu häälestamist. Reegel, mis kirjutab C aadressi ümber enne IPsec-poliitika rakendumist, võib rikkuda kokkulepitud selektorid ja võib ka muuta seda, mida D teisel pool saab.

Lai maskeerimine ei muutu turvalisemaks kahe kihi tõttu. See varjab, millist aadressi kaugpool näeb, ja just seda teavet vajad, kui tunnel on üleval ja rakendus ei tööta.

Kui NAT-reegel on tõesti vajalik, kirjuta üles, millise aadressiga kumbki pool arvab end rääkivat. See üks rida lahendab enamiku vaidlusi sellest, kas süüdi on tunnel või tõlkimine. See ütleb ka järgmisele insenerile, kuhu vaadata, kui reegel aasta hiljem eemaldatakse. Ping ei tee sellest midagi.

Tõesta fail-closed ja kontrolli MTU-d

Marsruudi kadumine ei ole iseenesest fail-closed poliitika. Teine tabel, vaikimisi marsruut või poliitikareegel võib vaikselt varuvariandi pakkuda ja ainus viis seda teada on välimine tunnel alla võtta ning jälgida, mida rakenduse liiklus teeb. Tee seda meelega, aknas, mitte avasta seda kogemata.

Kontrolli kolme olekut: välimine tunnel maas, sisemine tunnel maas ja taastumine pärast mõlema naasmist. Kasuta igal lüüsil poliitikaloendureid, sest kaks loodud IKE-seanssi tõestavad vaid seda, et juhtimistasandi läbirääkimine õnnestus.

Arvesta mõlema kapseldusega. Töötav IKE on väikeste pakettide tulemus ja täissuuruses rakenduse paketid võivad kahe päise lisamisel siiski ebaõnnestuda; testi teadaoleva kasuliku koormuse suurusega päris teel, mitte eelda, et numbrid kokku lähevad. Aritmeetika on lihtne, tee mitte.

Seotud artiklid