Ordered Layer: una catena di controlli

Un Layer è un contenitore di regole. Gli Ordered Layer sono i contenitori di primo livello della Access Control Policy e il gateway li attraversa in sequenza, dall’alto verso il basso, valutando dentro ciascuno le regole in ordine.

La regola che conta è questa: dentro un Ordered Layer vale la prima corrispondenza, e l’esito decide se il traffico prosegue. Se la regola che corrisponde ha Action Drop, il pacchetto si ferma lì e nessun layer successivo lo vedrà. Se ha Action Accept, il pacchetto non è ancora ammesso in senso assoluto: ha superato quel controllo e passa al successivo Ordered Layer, dove ricomincia la ricerca della prima corrispondenza. Accept significa “prosegui”, non “sei dentro”. Se nessuna regola del layer corrisponde, viene applicata la Default Cleanup Rule esplicita.

È il motivo per cui la struttura consigliata mette in alto un layer di rete — regole che guardano source, destination e porta — e sotto un layer di Application Control e URL Filtering, e per cui la documentazione insiste sull’aggiungere in fondo a ciascun Ordered Layer una cleanup rule esplicita che scarti tutto il resto.

Inline Layer: una sotto-policy dentro una regola

Un Inline Layer è una sotto-policy indipendente dal resto della Rule Base, annidata dentro una regola del layer che la ospita. È fatta di due pezzi:

  • la regola padre, che contiene le condizioni di corrispondenza (source, destination, VPN, servizi) e ha come Action il nome dell’Inline Layer;
  • le sotto-regole, numerate come 4.1, 4.2 e così via sotto la regola 4, che decidono il traffico già filtrato dal padre.

Il percorso è semplice da ricordare con i numeri della documentazione: se un pacchetto corrisponde alla regola padre, la ricerca continua dalla regola 4.1 dell’Inline Layer; se non corrisponde al padre, la ricerca continua dalla regola 5, cioè l’Inline Layer viene saltato in blocco. Se corrisponde alla 4.1, l’azione viene eseguita e la ricerca in quel ramo si ferma.

Qui nasce la trappola più costosa del dominio: dentro l’Inline Layer c’è una implicit cleanup rule che non vedi scritta da nessuna parte. Il pacchetto entrato nell’Inline Layer viene valutato solo lì dentro e non ne esce mai, proprio perché l’Inline Layer ha una regola di cleanup implicita. Se il traffico ha corrisposto al padre ma nessuna sotto-regola lo ammette, non “torna indietro” per essere valutato dalle regole successive del layer esterno. Da qui la raccomandazione: aggiungi sempre una Cleanup Rule esplicita in fondo a ogni Inline Layer, con la stessa Action della regola di cleanup implicita, così che ciò che accade sia scritto e visibile.

Shared Layer: scrivere una volta, usarlo in più punti

Un Layer, Ordered o Inline, può essere reso condiviso selezionando nelle sue proprietà l’opzione che permette a più policy di usarlo. Un Shared Layer si riusa in Policy Package diversi, oppure in più punti dentro lo stesso Ordered Layer.

Il vantaggio è la coerenza: un blocco di regole comuni — accesso amministrativo, servizi infrastrutturali, eccezioni aziendali — si scrive e si mantiene in un solo posto. Il rovescio della medaglia è che la condivisione è reale: modificare una regola dentro un Shared Layer la modifica ovunque quel layer sia usato, e l’effetto si materializza sui gateway solo quando si installa ciascun Policy Package che lo contiene. Un layer non condiviso, invece, appartiene alla sua policy e basta.

Trappole tipiche d’esame

  • Accept in un Ordered Layer non conclude la partita. Se la domanda dice che una regola accetta il traffico ma la connessione viene comunque bloccata, cerca il layer successivo: il pacchetto è stato scartato lì. Solo Drop chiude subito.
  • La implicit cleanup rule dell’Inline Layer è la risposta più frequente. Traffico che corrisponde alla regola padre e non a nessuna sotto-regola viene deciso dentro l’Inline Layer e non prosegue verso la regola successiva del layer ospitante.
  • Regola padre non corrisposta uguale Inline Layer saltato. Non è un Drop: è un salto. Chi confonde “non entra nel layer” con “viene scartato” sbaglia entrambe le varianti della domanda.
  • Il Shared Layer si modifica in tutte le policy. Uno scenario tipico ti fa cambiare una regola per un cliente e ti chiede perché è cambiato anche l’altro: la risposta è la casella che rende il layer condiviso, non un errore di replica.
  • Condiviso non significa installato. Ogni Policy Package che usa quel layer va installato sui propri target perché la modifica abbia effetto.
  • Ordine dei layer contro ordine delle regole. Spostare una regola dentro il suo layer non serve a nulla se il problema è quale layer viene valutato per primo: leggi sempre prima la sequenza degli Ordered Layer, poi le regole.