Tunnelit ovat kertakäyttöisiä; käytäntö ei saisi olla. Linux-yhdyskäytävällä nftables-sääntö, joka sovittaa tunnelin rajapinnan nimen perusteella, voidaan ladata kerran, ja se jatkaa voimassaoloa aina, kun kyseinen rajapinta ilmestyy. Rajapinnalla on silti elinkaari: se luodaan, se katoaa, ja sen ympärillä olevat reitit ja käännökset seuraavat omaa aikatauluaan. Juuri näiden omistajien erottaminen pitää pääsyn vakaana uudelleenyhdistämisen aikana.

Nimisovitus elää rajapintaa pidempään

nftables tarjoaa numeeriset rajapintaindeksin sovitukset ja dynaamiset nimisovitukset iifname ja oifname. Näitä nimiä käyttävät säännöt latautuvat puhtaasti, vaikka tunnelilaitetta ei vielä olisi luotu, mikä on juuri se, mitä sääntöjoukko käynnistyksessä tarvitsee. Sovitus lakkaa, jos rajapinta nimetään uudelleen, ja jatkuu, kun uusi rajapinta ottaa nimen. Numeeriselta indeksiltä tämä ominaisuus puuttuu, siksi nimimuoto on tunnelille tavallinen valinta.

Nimi on sovitusavain, ei todiste siitä, kuka on toisessa päässä. Vastapuolen todennus pysyy VPN:n tehtävänä.

Lue ketju ennen sääntöjen lisäämistä

Katso, mitä sääntöjoukko nyt sisältää ja mihin uusi sääntö sijoittuisi, koska järjestys ratkaisee tuloksen.

nft list ruleset
nft -c -f /etc/nftables.conf

Listaus näyttää ketjut, säännöt ja kahvat, ja tarkistustila validoi ehdokastiedoston lataamatta sitä. Vain tunnelia koskeva sallinta, joka sijoitetaan samaa virtaa koskevan aiemman hyväksynnän jälkeen, ei muuta mitään, koska ensimmäinen täsmäävä sääntö voittaa. Siksi myöhäinen sääntö voi näyttää oikealta eikä vaikuta mitään. Lue ketju järjestyksessä ja varmista, että asiakkaasta ylävirtaan suuntautuvan liikenteen kielto tulee edelleen ennen kaikkea laajempaa.

Reiteillä, käännöksellä ja virroilla on toiset omistajat

Rajapinnan läsnäolo ei luo reittejä eikä todenna vastapuolta. Ne kuuluvat VPN-hallinnalle, kun taas käännöksellä on kolmas elinkaari.

conntrack -L -s 10.20.0.0/24 | head
ip route show dev vpn0

conntrack-listaus näyttää olemassa olevat virrat niiden alkuperäisine ja käännettyine arvoineen, ja reittilistaus näyttää, mitä hallinta asensi rajapinnalle. NAT-säännöt luovat yhteydenseurannan tilan ensimmäisestä paketista, joten muodostettu virta säilyttää käännöksensä myös säännön muuttuessa. Siksi päivitettävä sääntö ja uutta polkua käyttävä virta ovat kaksi eri väitettä. Päätä, mitkä istunnot on yhdistettävä uudelleen, ja jätä asiaankuulumattomat virrat rauhaan.

Hyväksy kylmäkäynnistys, menetys ja palautuminen

Testaa yhdyskäytävää, kun tunneli puuttuu käynnistyksessä, sitten kun se on läsnä, ja lopuksi katkoksen ja paluun jälkeen. Varmista, että kielletty edelleenlähetys pysyy kiellettynä tunnelin puuttuessa, että uusi sallittu virta toimii, kun vastapuoli on todennettu, ja että palautuminen ei vaadi asiaankuulumattoman tilan poistamista. Älä tyhjennä koko POSTROUTING-ketjua tai jokaista conntrack-merkintää yhden profiilin pysäytystoimenpiteenä, koska muut palvelut jakavat ne. Kirjaa, mikä komponentti muutti rajapinnan, reitin ja käytännön, eikä vain sitä, että käynnistyskoukku palautti nollan.

Käytäntö, joka kestää uudelleenyhdistämisen, on sellainen, jonka omistajat on nimetty ja jonka säännöt on testattu tunnelin ollessa sekä alhaalla että ylhäällä. Koukku, joka ilmoittaa onnistumisesta, todistaa vain, että koukku ajettiin.

Aiheeseen liittyvät artikkelit