IPsec ESP: mitä se kuljettaa ja miten todistaa, että se virtaa
ESP käärii sisemmän IP-paketin tunnelitilassa ja tunnistaa liitoksensa SPI:n avulla. Lue tila ja seuraa sitten, miten yksi virtaus liikuttaa laskureita.
ESP kuljettaa liikennettä IPsec-VPN:ssä, ja sen runbook alkaa yhdellä säännöllä: lue tietoturvaliitos ennen kuin muutat käytäntöä. Suurin osa selittämättömästä ESP-käyttäytymisestä palautuu valitsimeen, joka ei täsmännyt, tilaan, joka oletettiin lukemisen sijaan, tai laskuriin, jota kukaan ei tarkistanut, kun yhtä virtausta lähetettiin. Alla olevat kolme vaihetta selvittävät, mikä kuljettaa mitä, todistavat, että yksi virtaus käyttää sitä, ja jättävät peruutuksen, joka ei riipu muistista. Jokainen vaihe tuottaa yhden havainnon, joka kannattaa kirjata.
Tunne kentät ennen kuin luet ne
ESP asettaa otsakkeen suojattujen tietojen eteen ja peräosan niiden taakse. Otsake kuljettaa tietoturvaparametri-indeksin, joka määrittää, mitä liitosta vastaanottajan pitäisi käyttää, järjestysnumeron toiston havaitsemiseksi ja peräosassa täytteen, joka pitää hyötykuorman salaimen kannalta kohdistettuna. Peräosan seuraavan otsakkeen kenttä kertoo, mikä suojattu sisältö on, ja niin vastaanottaja tietää, mitä se purki kapseloinnista.
Tila muuttaa sitä, mikä on suojauksen sisällä. Tunnelitilassa suojattu materiaali on täydellinen sisempi IP-paketti, ja uusi ulompi otsake kuljettaa sitä päätepisteiden välillä. Siirtotilassa suojaus käärii olemassa olevan paketin ylemmän kerroksen hyötykuorman, joten toista IP-otsaketta ei ole avattavana. Kumpi tila on käytössä, on kokoonpanon tosiasia, ei tulkintakysymys. Lue se tilamerkinnästä sen sijaan, että päättelet sen kaaviosta.
Kumpikaan tila ei piilota ulompaa osoitteistusta, jonka on toimitettava paketti. Se on suunnittelun ominaisuus eikä puute, ja siksi välissä oleva tarkkailija näkee yhä, mitkä kaksi osoitetta puhuvat, vaikka hyötykuorma olisi läpinäkymätön.
Vaihe yksi: lue tila ja sitten käytäntö
Tilamerkinnät pitävät avaimet ja laskurit; käytäntömerkinnät pitävät valitsimet, jotka päättävät, mikä saa käyttää niitä. Linuxissa molemmat näkyvät ilman pakettien sieppausta, ja niiden lukeminen tässä järjestyksessä pitää kaksi kysymystä erillään.
ip xfrm state
ip xfrm policy
Tarkista tulosteesta liitoksen lähde ja kohde, tila ja se, näyttääkö kapselointi UDP-portteja. Nuo portit tarkoittavat, että NAT-läpäisyä käytetään, mikä muuttaa sitä, mitä välissä olevan palomuurin on sallittava, mutta ei sitä, mitkä valitsimet tai avaimet pätevät päätepisteissä.
Lue sitten käytännön valitsimet. Valitsin, joka nimeää kapeamman etuliitteen kuin testaamasi liikenne, on yleisin syy siihen, että toimiva tunneli näyttää jättävän virtauksen huomiotta, ja väärän protokollan valitsin tuottaa saman hiljaisuuden.
| 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 |
Valmistajien työkalut tulostavat samat tiedot ystävällisemmässä muodossa. ipsec statusall strongSwanissa se luettelee alaliitokset, niiden valitsimet ja niiden tavulaskurit, mikä on usein nopeampaa kuin raa'an xfrm-tulosteen lukeminen, kun jo tiedät, mitä alaliitosta katsoa.
Vaihe kaksi: todista, että yksi virtaus liikuttaa laskureita
Laskurit ovat mielekkäitä vain, jos tiedät, mikä niitä olisi pitänyt liikuttaa, joten valitse lähde ja kohde, jotka valitsin varmasti kattaa, ja lähetä yksi vaaraton pyyntö. Lue sitten sama merkintä uudelleen ja vertaa.
ip -s xfrm state
tcpdump -ni any esp
Kaksi lukemaa kertovat eri tarinat. Paketit, jotka kasvavat lähtevällä puolella mutta eivät koskaan saapuvalla, viittaavat edelleenlähetyksen tai paluupolun ongelmaan eivätkä avainongelmaan, koska paketti kapseloitiin ja lähti. Jos yksikään laskuri ei liiku, liikenne ei koskaan täsmännyt käytäntöön, ja valitsin on paikka, johon katsoa.
Samassa vaiheessa tehty sieppaus vahvistaa kapseloinnin johdolla, mukaan lukien sen, ovatko ulommat paketit ESP vai UDP:hen kapseloitu ESP. Se näyttää myös osoitteet, jotka todella kuljettivat virtauksen, ja ne eroavat joskus niistä, jotka olivat lukemassasi kokoonpanossa.
Vaihe kolme: muuta yhtä asiaa ja pidä peruutus
Kirjaa liitoksen lähde, kohde, tila, valitsimet ja laskurit ennen kuin muokkaat mitään. Jos muutos pahentaa asioita, juuri se kirjaus antaa sinun palauttaa edellisen tilan sen sijaan, että rakentaisit toimivan kokoonpanon uudelleen arvauksesta. Kirjaus vie minuutin ja säästää tunnin myöhemmin. Se on myös ainoa artefakti, joka jää muutoksen tehneen henkilön jälkeen.
Muuta yhtä valitsinta tai yhtä parametria, lataa se uudelleen ja toista vaihe kaksi samaa virtausta vastaan. Liitoksen poistaminen repii alas jokaisen sitä käyttävän virtauksen, joten kohdennettu muokkaus ja alaliitoksen uudelleenlataus ovat lähes aina parempia kuin tilan tyhjentäminen sen näkemiseksi, mitä tapahtuu.
Valitsimen muokkauksen peruutus on edellisen käytännön palauttaminen ja uudelleenlataus, sillä varauksella, että vastapuoli voi tarvita vastaavan muutoksen, jos valitsimesta neuvotellaan eikä se ole paikallinen. Kirjoita tuo riippuvuus muistiin tuoreeltaan, sillä puoliksi palautettua paria on vaikeampi hahmottaa kuin kumpaakaan lopputilaa.
Pidä lopuksi laajuus rehellisenä. Virtaava ESP-liitos todistaa, että kaksi yhdyskäytävää suojaa ja toimittaa segmentin, eikä se kerro mitään siitä, todentaako ylempi sovellus käyttäjänsä vai salaako se tallentamansa. Ne ovat erillisiä kontrolleja erillisine todisteineen, ja runbook on valmis vasta, kun seuraava henkilö voi toistaa sen muistiinpanoista.