Provar canvis de tallafocs sense quedar-se fora
Ordeneu les vostres vies de recuperació abans que entri la regla, i després verifiqueu amb un flux que la nova política ha d'avaluar, no amb la sessió que ha sobreviscut.
La regla entra, el terminal que ja teniu continua responent i el següent inici de sessió es rebutja. Aquest buit és tota la dificultat de provar un canvi de tallafocs per la connexió que esteu canviant. El seguiment de connexions decideix un cop i després deixa de mirar, així que un flux establert és l'única sonda que no pot veure la nova política. El que segueix compara les tres maneres de tornar, i després fixa l'ordre en què cal canviar i comprovar les regles.
Per què la sessió que sobreviu és l'evidència més feble
Un tallafocs amb estat avalua el primer paquet d'un flux i conserva aquell veredicte mentre l'entrada visqui. Les regles afegides després s'apliquen als fluxos que comencen més tard, i per això la finestra on escriviu continua sent utilitzable mentre tots els altres són rebutjats. Tot el que n'apreneu descriu la política que estava en vigor fa minuts. Fins i tot una captura presa en aquell flux mostra una decisió que la màquina ja havia pres.
Tracteu la sessió que funciona com una sortida d'emergència i no com una mesura. Cada comprovació que val la pena ha de obrir un flux nou des d'una font que la nova regla avaluarà, i la primera comprovació hauria de ser la que més mal faria si falla. Quan aquesta sessió és la vostra única via d'entrada, el canvi no està a punt per fer-se.
Tres maneres de tornar, ordenades pel que depèn cadascuna
Ordeneu les opcions per quant depenen del dispositiu en proves, perquè aquest és l'ordre al qual recorreu quan la regla resulta errònia. Una consola que no passa mai pel tallafocs és independent, una reversió assajada ho és gairebé, i la sessió ja oberta no ho és.
| 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 |
Abans del canvi, entreu per la consola i demostreu que funciona, perquè una via fora de banda que no heu fet servir mai és un diagrama i no un pla B. Una reversió guanya el seu lloc només després d'un assaig en aquella plataforma, amb aquell conjunt de regles, seguint el procediment aprovat en lloc d'improvisar en una màquina en producció. Escriviu els passos i feu que algú altre us els llegeixi. Si la seqüència necessita la vostra memòria per completar-se, no és un pla.
Un canvi, després una connexió que ha de ser avaluada
Desa el conjunt de regles viu i el fitxer que el posseeix, i després fes una única modificació estreta. Un canvi per prova manté el resultat atribuïble; dos alhora us deixen una màquina que funciona i cap idea de quina modificació ha fet la feina. On la plataforma pugui analitzar una configuració sense carregar-la, feu-ho primer, perquè una errata falli quan no hi ha res en joc.
nft list ruleset > /root/ruleset.before
nft -c -f /etc/nftables.conf
Després inicieu una sessió nova des d'una font que la regla canviada farà coincidir, mentre la consola encara és connectada. Repetiu-ho un cop si té èxit, perquè el primer intent pot caure en una entrada que la taula ja tenia. Si falla, encara teniu una via d'entrada i una decisió per revertir, que és el pitjor resultat barat disponible.
Els comptadors, l'estat i el fitxer responen a preguntes diferents
Cadascuna de les tres observacions pot semblar convincent per si sola i enganyar-vos sobre les altres dues. Els comptadors mostren si el flux que acabeu de crear ha arribat a la regla que heu editat. La taula d'estat mostra quins fluxos creu la màquina que ja estan establerts, i així una regla trencada encara pot semblar saludable. El fitxer desat mostra què farà el dispositiu després de la propera recàrrega, i potser no és el que fa ara el conjunt de regles en execució.
ss -tn state established
Llegiu els comptadors com un delta i no com un total, perquè l'únic número que importa és el que ha mogut el vostre flux de prova. Una regla el comptador de la qual no s'incrementa mai no coincideix, per bé que sembli correcta sobre el paper. Confirmeu també el cas de rebuig: una política que mai no ha rebutjat res no ha demostrat mai que rebutja el que volíeu bloquejar. Passeu per una interfície de cada família que el desplegament porta realment, perquè una regla v4 no diu res sobre un flux v6.
Restaureu des del conjunt de regles desat i feu que el fitxer hi coincideixi
Quan el canvi falla, carregueu el conjunt de regles desat en lloc d'afegir regles permissives fins que els inicis de sessió tornin a funcionar. Cada permís extra calma el símptoma i deixa un forat que sobreviu a l'incident i al record que en queda. Restaureu, reconnecteu i després guardeu la comparació fallida al costat del registre del que heu provat.
Després d'un canvi correcte, feu que el fitxer del disc descrigui el conjunt de regles que s'executa, i confirmeu que una recàrrega el reprodueix. Un conjunt de regles viu que s'ha desviat del seu propi fitxer de configuració és una trampa parada per al proper reinici.