A szabály bekerül, a már meglévő terminál tovább válaszol, a következő bejelentkezés pedig elutasításra kerül. Ez a rés a teljes nehézsége annak, hogy egy tűzfalmódosítást azon a kapcsolaton keresztül tesztelj, amelyet éppen módosítasz. A kapcsolatkövetés egyszer dönt, majd abbahagyja a vizsgálódást, ezért egy létrejött folyam az egyetlen próba, amely nem látja az új szabályzatot. A következők összehasonlítják a három visszavezető utat, majd rögzítik, milyen sorrendben kell a szabályokat módosítani és ellenőrizni.

Miért a túlélő munkamenet a leggyengébb bizonyíték

Egy állapotalapú tűzfal kiértékeli egy folyam első csomagját, és ezt az ítéletet addig tartja, amíg a bejegyzés él. A később hozzáadott szabályok a később induló folyamokra vonatkoznak, ezért marad használható az az ablak, amelyben gépelsz, miközben mindenki mást elutasítanak. Amit abból megtanulsz, azt a szabályzatot írja le, amely percekkel korábban volt érvényben. Még az adott folyamon készült rögzítés is egy olyan döntést mutat, amelyet a gép már meghozott.

Tekintsd a működő munkamenetet vészkijáratnak, ne mérésnek. Minden érdemes ellenőrzésnek új folyamot kell nyitnia olyan forrásból, amelyet az új szabály ki fog értékelni, és az első ellenőrzés az legyen, amelynek kudarca a legjobban fájna. Amikor ez a munkamenet az egyetlen bejáród, a módosítás még nem kész a végrehajtásra.

Három visszavezető út, aszerint rendezve, hogy melyik mitől függ

Rangsorold a lehetőségeket aszerint, mennyire függenek a tesztelt eszköztől, mert ehhez a sorrendhez nyúlsz, amikor a szabály hibásnak bizonyul. Az a konzol, amely soha nem halad át a tűzfalon, független, a begyakorolt visszaállítás majdnem az, a már nyitott munkamenet pedig nem.

Way back inWhat it survivesWhere it fails
out-of-band or hypervisor consolea policy that blocks new loginsneeds separate access you have already tried
rollback rehearsed on that platforma rule that breaks remote accessfails when nobody ever ran it
the session that is already openthe change itselfcannot show whether new flows work

A módosítás előtt jelentkezz be a konzolon, és bizonyítsd, hogy működik, mert a sávon kívüli útvonal, amelyet soha nem használtál, ábra és nem tartalék. A visszaállítás csak az adott platformon, az adott szabálykészlettel, a jóváhagyott eljárást követve végzett gyakorlás után érdemli ki a helyét, nem pedig élő gépen rögtönözve. Írd le a lépéseket, és olvastasd fel valaki mással. Ha a sorrend befejezéséhez a memóriád kell, az nem terv.

Egy módosítás, majd egy kapcsolat, amelyet értékelni kell

Mentsd el az élő szabálykészletet és az őt birtokló fájlt, majd hajts végre egyetlen szűk szerkesztést. Tesztenként egy módosítás tulajdoníthatóvá teszi az eredményt; kettő egyszerre működő gépet hagy rád, és fogalmad sem lesz, melyik szerkesztés végezte a munkát. Ahol a platform be tudja olvasni a konfigurációt anélkül, hogy betöltené, tedd azt először, hogy az elgépelés akkor bukjon el, amikor semmi sem forog kockán.

nft list ruleset > /root/ruleset.before
nft -c -f /etc/nftables.conf

Ezután indíts új munkamenetet olyan forrásból, amelyre a módosított szabály illeszkedni fog, miközben a konzol még csatlakoztatva van. Ismételd meg egyszer, ha sikerül, mert az első próbálkozás olyan bejegyzésre futhat, amely már szerepelt a táblában. Ha nem sikerül, még mindig van bejáród és visszavonható döntésed, ami a legolcsóbb rossz kimenetel, amely elérhető.

A számlálók, az állapot és a fájl különböző kérdésekre válaszolnak

A három megfigyelés mindegyike meggyőzőnek tűnhet önmagában, és félrevezethet a másik kettővel kapcsolatban. A számlálók megmutatják, hogy a most létrehozott folyam elérte-e a szerkesztett szabályt. Az állapottábla megmutatja, mely folyamokat tart a gép már létrejöttnek, és így egy törött szabály még mindig egészségesnek tűnhet. Az elmentett fájl megmutatja, mit tesz az eszköz a következő újratöltés után, és ez nem feltétlenül az, amit a futó szabálykészlet most tesz.

ss -tn state established

A számlálókat delta és nem összeg formájában olvasd, mert az egyetlen szám, amely számít, az, amelyet a tesztfolyamod elmozdított. Egy szabály, amelynek számlálója soha nem nő, nem illeszkedik, bármilyen helyesnek tűnik papíron. Erősítsd meg az elutasítási esetet is: egy szabályzat, amely soha semmit nem utasított el, soha nem bizonyította, hogy elutasítja azt, amit blokkolni akartál. Menj végig egy interfészen minden családban, amelyet az üzembe helyezés valóban hordoz, mert a v4 szabály semmit nem mond a v6 folyamról.

Állítsd vissza az elmentett szabálykészletet, majd hozd összhangba a fájlt

Amikor a módosítás meghiúsul, töltsd be az elmentett szabálykészletet ahelyett, hogy engedélyező szabályokat adnál hozzá, amíg a bejelentkezések újra működnek. Minden további engedély csillapítja a tünetet, és olyan lyukat hagy, amely túléli az incidenst és annak emlékét. Állítsd vissza, csatlakozz újra, majd tartsd a sikertelen összehasonlítást a kísérlet feljegyzése mellett.

Sikeres módosítás után a lemezen lévő fájl írja le a futó szabálykészletet, és erősítsd meg, hogy egy újratöltés azt újratermeli. Az a futó szabálykészlet, amely eltért a saját konfigurációs fájljától, csapda a következő újraindításhoz.

Kapcsolódó cikkek