Palomuurimuutosten testaaminen lukitsematta itseäsi ulos
Järjestä palautumisreittisi ennen kuin sääntö viedään sisään, ja varmenna sitten virtauksella, jonka uusi käytäntö joutuu arvioimaan, älä henkiin jääneellä istunnolla.
Sääntö viedään sisään, jo olemassa oleva pääte vastaa edelleen ja seuraava kirjautuminen hylätään. Juuri tuo aukko on koko sen vaikeus, kun testataan palomuurimuutosta yhteyden yli, jota ollaan muuttamassa. Yhteyksien seuranta päättää kerran ja lakkaa sitten katsomasta, joten vakiintunut virtaus on ainoa koe, joka ei näe uutta käytäntöä. Seuraavassa verrataan kolmea paluutietä ja määritetään sitten järjestys, jossa säännöt muutetaan ja tarkistetaan.
Miksi henkiin jäänyt istunto on heikoin todiste
Tilallinen palomuuri arvioi virtauksen ensimmäisen paketin ja pitää tuon päätöksen niin kauan kuin merkintä elää. Myöhemmin lisätyt säännöt koskevat virtauksia, jotka alkavat myöhemmin, minkä vuoksi ikkuna, johon kirjoitat, pysyy käyttökelpoisena, kun taas kaikki muut hylätään. Se, mitä siitä opit, kuvaa käytäntöä, joka oli voimassa minuutteja sitten. Jopa tuolta virtaukselta otettu kaappaus näyttää päätöksen, jonka kone on jo tehnyt.
Kohtele toimivaa istuntoa hätäpoistumisena, älä mittauksena. Jokaisen testaamisen arvoisen tarkistuksen on avattava uusi virtaus lähteestä, jonka uusi sääntö arvioi, ja ensimmäisen tarkistuksen tulisi olla se, jonka epäonnistuminen sattuisi eniten. Kun tuo istunto on ainoa tiesi sisään, muutos ei ole valmis tehtäväksi.
Kolme paluutietä järjestettynä sen mukaan, mistä kukin riippuu
Järjestä vaihtoehdot sen mukaan, kuinka paljon ne riippuvat testattavasta laitteesta, sillä tuohon järjestykseen turvaudut, kun sääntö osoittautuu vääräksi. Konsoli, joka ei koskaan kulje palomuurin läpi, on riippumaton, harjoiteltu palautus on lähes sitä, ja jo avoinna oleva istunto ei ole.
| Way back in | What it survives | Where it fails |
|---|---|---|
| out-of-band or hypervisor console | a policy that blocks new logins | needs separate access you have already tried |
| rollback rehearsed on that platform | a rule that breaks remote access | fails when nobody ever ran it |
| the session that is already open | the change itself | cannot show whether new flows work |
Kirjaudu ennen muutosta konsolin kautta ja todista, että se toimii, sillä kaistan ulkopuolinen reitti, jota et ole koskaan käyttänyt, on kaavio eikä varasuunnitelma. Palautus ansaitsee paikkansa vasta harjoituksen jälkeen tuolla alustalla, tuolla sääntöjoukolla ja hyväksyttyä menettelyä seuraten improvisoinnin sijaan elävällä koneella. Kirjoita vaiheet muistiin ja pyydä jotakuta toista lukemaan ne ääneen. Jos järjestys tarvitsee muistisi tullakseen valmiiksi, se ei ole suunnitelma.
Yksi muutos, sitten yhteys, joka on arvioitava
Tallenna käynnissä oleva sääntöjoukko ja tiedosto, joka omistaa sen, ja tee sitten yksi kapea muutos. Yksi muutos testiä kohden pitää tuloksen kohdennettavana; kaksi kerralla jättää sinulle toimivan koneen ja ei aavistustakaan siitä, mikä muutos teki työn. Missä alusta voi jäsentää kokoonpanon lataamatta sitä, tee se ensin, jotta kirjoitusvirhe epäonnistuu, kun mitään ei ole vaakalaudalla.
nft list ruleset > /root/ruleset.before
nft -c -f /etc/nftables.conf
Aloita sitten uusi istunto lähteestä, johon muutettu sääntö osuu, kun konsoli on vielä kytkettynä. Toista se kerran, jos se onnistuu, sillä ensimmäinen yritys voi osua merkintään, joka taulussa oli jo. Jos se epäonnistuu, sinulla on vielä tie sisään ja päätös peruutettavana, mikä on halvin huono lopputulos, joka on saatavilla.
Laskurit, tila ja tiedosto vastaavat eri kysymyksiin
Jokainen kolmesta havainnosta voi näyttää yksinään vakuuttavalta ja johtaa sinua harhaan kahden muun suhteen. Laskurit näyttävät, saavuttiko juuri luotu virtaus muokkaamasi säännön. Tilataulu näyttää, mitkä virtaukset kone uskoo jo vakiintuneiksi, ja niin rikkinäinen sääntö voi näyttää edelleen terveeltä. Tallennettu tiedosto näyttää, mitä laite tekee seuraavan uudelleenlatauksen jälkeen, eikä se ehkä ole se, mitä käynnissä oleva sääntöjoukko tekee nyt.
ss -tn state established
Lue laskureita deltana älä summana, sillä ainoa merkitsevä luku on se, jota testivirtauksesi siirsi. Sääntö, jonka laskuri ei koskaan kasva, ei täsmää, niin oikealta kuin se paperilla näyttääkin. Vahvista myös hylkäystapaus: käytäntö, joka ei ole koskaan hylännyt mitään, ei ole koskaan todistanut hylkäävänsä sitä, mitä halusit estää. Käy läpi yksi liitäntä jokaisessa perheessä, jota käyttöönotto todella kantaa, sillä sääntö v4 ei kerro mitään virtauksesta v6.
Palauta tallennetusta sääntöjoukosta ja saata sitten tiedosto sopusointuun
Kun muutos epäonnistuu, lataa tallennettu sääntöjoukko sen sijaan, että lisäisit sallivia sääntöjä, kunnes kirjautumiset toimivat taas. Jokainen ylimääräinen sallinta vaimentaa oireen ja jättää reiän, joka elää pidempään kuin tapaus ja sen muisto. Palauta, yhdistä uudelleen ja pidä sitten epäonnistunut vertailu sen rinnalla, mitä yritit.
Onnistuneen muutoksen jälkeen anna levyllä olevan tiedoston kuvata käynnissä oleva sääntöjoukko ja vahvista, että uudelleenlataus toistaa sen. Käynnissä oleva sääntöjoukko, joka on ajautunut pois omasta kokoonpanotiedostostaan, on seuraavaa uudelleenkäynnistystä varten asetettu ansa.