Testovanie zmien firewallu bez toho, aby ste sa zamkli vonku
Zoraďte si záchranné cesty skôr, než pravidlo vstúpi, a potom overujte tokom, ktorý musí nová politika vyhodnotiť, nie reláciou, ktorá prežila.
Pravidlo vstúpi, terminál, ktorý už máte, ďalej odpovedá, a nasledujúce prihlásenie je odmietnuté. Presne táto medzera je celá obtiažnosť testovania zmeny firewallu cez spojenie, ktoré meníte. Sledovanie spojení rozhodne raz a potom prestane hľadieť, takže nadviazaný tok je jediná sonda, ktorá novú politiku nevidí. Nasledujúci text porovnáva tri cesty späť a potom určuje poradie, v ktorom sa pravidlá menia a kontrolujú.
Prečo je prežívajúca relácia najslabší dôkaz
Stavový firewall vyhodnotí prvý paket toku a tento verdikt si drží, kým záznam existuje. Pravidlá pridané neskôr platia pre toky, ktoré začínajú neskôr, a preto okno, do ktorého píšete, zostáva použiteľné, zatiaľ čo všetci ostatní sú odmietaní. Čo sa z neho dozviete, opisuje politiku, ktorá platila pred niekoľkými minútami. Aj záznam zachytený na tomto toku ukazuje rozhodnutie, ktoré stroj už urobil.
Berte fungujúcu reláciu ako únikový východ, nie ako meranie. Každá kontrola, ktorá stojí za to, musí otvoriť nový tok zo zdroja, ktorý nové pravidlo vyhodnotí, a prvá kontrola má byť tá, ktorej zlyhanie by bolelo najviac. Keď je táto relácia vašou jedinou cestou dnu, zmena ešte nie je pripravená.
Tri cesty späť, zoradené podľa toho, na čom každá závisí
Zoraďte možnosti podľa toho, ako veľmi závisia od testovaného zariadenia, pretože na toto poradie siahnite, keď sa pravidlo ukáže ako chybné. Konzola, ktorá nikdy neprechádza firewallom, je nezávislá, nacvičený rollback takmer tiež a už otvorená relácia nie.
| 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 |
Pred zmenou sa prihláste cez konzolu a dokážte, že funguje, pretože mimopásmová cesta, ktorú ste nikdy nepoužili, je diagram a nie záloha. Rollback si svoje miesto zaslúži až po nácviku na tej platforme, s tým súborom pravidiel, podľa schváleného postupu namiesto improvizácie na živom stroji. Zapíšte kroky a nechajte ich niekoho iného prečítať späť. Ak postup potrebuje na dokončenie vašu pamäť, nie je to plán.
Jedna zmena, potom spojenie, ktoré sa musí vyhodnotiť
Uložte živú sadu pravidiel a súbor, ktorý ju vlastní, a potom urobte jednu úzku úpravu. Jedna zmena na test udržiava výsledok priraditeľný; dve naraz vám nechajú funkčný stroj a žiadnu predstavu, ktorá úprava prácu urobila. Kde platforma dokáže analyzovať konfiguráciu bez jej načítania, urobte to najprv, aby preklep zlyhal, kým nič nie je v stávke.
nft list ruleset > /root/ruleset.before
nft -c -f /etc/nftables.conf
Potom spustite novú reláciu zo zdroja, ktorému bude zmenené pravidlo zodpovedať, kým je konzola ešte pripojená. Ak sa to podarí, raz to zopakujte, pretože prvý pokus môže pristáť na zázname, ktorý tabuľka už držala. Ak zlyhá, stále máte cestu dnu a rozhodnutie na vrátenie, a to je najlacnejší zlý výsledok, ktorý je k dispozícii.
Počítadlá, stav a súbor odpovedajú na rôzne otázky
Každé z troch pozorovaní môže samo o sebe vyzerať presvedčivo a pomýliť vás ohľadom ostatných dvoch. Počítadlá ukazujú, či tok, ktorý ste práve vytvorili, dosiahol pravidlo, ktoré ste upravili. Tabuľka stavov ukazuje, ktoré toky stroj považuje za už nadviazané, a tak môže poškodené pravidlo stále vyzerať zdravo. Uložený súbor ukazuje, čo zariadenie urobí po nasledujúcom načítaní, a to nemusí byť to, čo bežiaca sada pravidiel robí teraz.
ss -tn state established
Čítajte počítadlá ako rozdiel, nie ako súčet, pretože jediné číslo, na ktorom záleží, je to, ktoré posunul váš testovací tok. Pravidlo, ktorého počítadlo nikdy nerastie, sa nezhoduje, nech na papieri vyzerá akokoľvek správne. Potvrďte aj prípad odmietnutia: politika, ktorá nikdy nič neodmietla, nikdy nedokázala, že odmieta to, čo ste chceli blokovať. Prejdite jedno rozhranie v každej rodine, ktorú nasadenie skutočne nesie, pretože pravidlo v4 nehovorí nič o toku v6.
Obnovte z uloženej sady pravidiel a potom zlaďte súbor
Keď zmena zlyhá, načítajte uloženú sadu pravidiel namiesto pridávania povoľujúcich pravidiel, kým prihlásenia znova nefungujú. Každé ďalšie povolenie utíši príznak a zanechá dieru, ktorá prežije incident aj spomienku naň. Obnovte, pripojte sa znova a potom držte neúspešné porovnanie vedľa záznamu o tom, čo ste skúsili.
Po úspešnej zmene nechajte súbor na disku opisovať bežiacu sadu pravidiel a potvrďte, že načítanie ju reprodukuje. Živá sada pravidiel, ktorá sa rozišla s vlastným konfiguračným súborom, je pasca nastražená na ďalší reštart.