Capitolo 14. Esempi utilizzo delle regole di accesso

Sommario

Regole di accesso per il WEB
Regole di filtraggio per la posta

In questa sezione verranno mostrati alcuni esempi pratici su come impostare le regole di accesso al fine di regolare la politica di naviagione e invio/ricezione posta degli utenti.

Nella figura sottostante è mostrata la struttura che verrà impiegata negli esempi che seguono. La rete è costituita da un firewall che implementa il Network Address Translation (NAT) e gestisce il traffico in entrata e in uscita. La rete interna ha classe di indirizzamento 10.1.0.0/16 e la struttura è dotata di un server mail interno, nonchè di un server di relay esterno che viene impiegato per spedire la posta.

Seguono ora alcuni esempi di regole per l'accesso alle risorse, suddivisi per tipologia, ovvero regole di accesso applicate alla navigazione WEB e regole di filtraggio per la posta.

Regole di accesso per il WEB

  • Esempio #1. Si desidera garantire la navigazione libera a tutti ad eccezione della macchina A che non può navigare.

    Per impedire la navigazione alla macchina A è sufficiente anteporre una regola che vieta espressamente ad essa la navigazione (la macchina A avente indirizzo IP 10.1.1.1). Il risultato è mostrato nella tabella seguente:

    #SorgenteDestinazioneAzioneIntervallo temporaleUtente
    110.1.1.1*Blocca**
    2**Permetti**

    Quando una connessione viene ricevuta, il proxy web valuta se la prima regola è applicabile. Questo accade quando il requisito sulla sorgente è soddisfato ovvero se il client che si connette, ha indirizzo IP 10.1.1.1. Se la condizione è verificata, allora il proxy accetta la regola ed esegue l'azione associata, cioè rifiuta la richiesta della macchina A che viene pertanto bloccata.

    Se d'altro canto il client che si connette non è la macchina A, il vincolo non è soddisfatto e la regola viene saltata. Si passa dunque alla seconda regola che assorbe tutti gli altri casi e accetta tutto.

    Come risultato complessivo si ha che A non può navigare.

  • Esempio #2. Oltre a bloccare la navigazione per la macchina A, si desidera impedire che le altre macchine, ad eccezione della macchina B (che è quella dell'amministratore), possano navigare su siti pornografici e sportivi.

    A parte mantenere la prima regola dell'esempio precedente (che blocca la macchina A), occorre inserire una seconda regola subito dopo che consente tutto alla macchina B. Notare che se B si connette al proxy, la regola #2 garantisce (essendo l'unico vincolo imposto sulla sorgente) che la regola venga applicata e che quindi l'host B abbia accesso indiscriminato al WEB.

    #SorgenteDestinazioneAzioneIntervallo temporaleUtente
    110.1.1.1*Blocca**
    210.1.1.2*Permetti**
    3*cat: Pornografia, SportBlocca**
    4**Permetti**

    Per le altre macchine C,D ed E nessuna delle prime due regole può essere applicata, pertanto vi è la certezza che quando uno di questi tre client si collega, la regola C viene presa in considerazione. Ora tale regola viene applicata solamente quando il sito di destinazione è a contenuto pornografico o sportivo. Se questo accade allora l'azione associata viene eseguita e pertanto la connessione viene rifiutata.

    Se neanche la terza regola può essere applicata, il che vuol dire che il sito non è nè a carattere pornografico nè a carattere sportivo, allora l'analisi passa alla quarta regola che permette tutto (il resto).

    Il comportamento equivale dunque a quello richiesto dal quesito.

    Notare in questo caso che non è stata fatta alcuna menzione esplicita nell'ACL delle macchine C,D ed E. Il riferimento infatti è ottenuto agendo per esclusione, ovvero le macchine A e B sono gestite dalle prime due regole rispettivamente. Tutto cioè che non è nè A nè B viene gestito dalle regole che seguono. Se si aggiungesse una quinta macchina F, anch'essa erediterebbe la stessa politica riservata alle macchine C,D ed E.

  • Esempio #3. Rispetto all'esempio precedente, si vuole permettere la navigazione sui siti sportivi alle macchine C, D ed E durante il periodo di pausa che va dalle 13:00 alle 14:00 e fuori dall'orario di lavoro che comincia alle 8:00 e finisce alle 17:00. Rimane invece inalterata la politica di accesso per A e B.

    Il risultato richiesto lo si ottiene aggiungendo in terza posizione una regola che consente a tutti l'accesso ai siti sportivi negli intervalli di tempo permessi.

    #SorgenteDestinazioneAzioneIntervallo temporaleUtente
    110.1.1.1*Blocca**
    210.1.1.2*Permetti**
    3*cat: SportPermetti13:00-14:00, 17:00-8:00*
    4*cat: Pornografia, SportBlocca**
    5**Permetti**

    Da notare che la regola #3 viene applicata solamente se il sito è a carattere sportivo e l'ora corrente cade in uno degli intervalli leciti. In altre parole i vincoli sulla destinazione e sull'intervallo temporale devono essere soddisfatti entrambi affinchè la regola venga applicata.

  • Esempio #4. Cosa accade se dalla tabella nell'esempio precedente si rimuove l'ultima regola, cioè quella che permette tutto a tutti? Perchè si dice che tale regola permette tutto a tutti, se ad esempio ad A è espressamente vietato navigare?

    L'ultima regola per come è fatta assorbe tutto cioè che non è stato assorbito dalle regole precedenti. Se fosse la sola regola, allora in effetti permetterebbe tutto a tutti, ma essendo preceduta da altre regole, questa può permettere tutto solo a chi riesce a raggiungerla. A e B per esempio non possono mai raggiungerla a causa delle prime due regole che gestiscono appositamente tali macchine.

    Se viene rimossa l'ultima regola, ci sono delle situazioni in cui nessuna delle regole può essere applicata, in tal caso, esiste sempre una regola nascota che viene dopo tutte le altre, che gestisce tutti i casi non gestiti dalle regole espressamente inserite dall'amministratore e che blocca tutto.

    In altre parole è come se vi fosse come ultima regola invisibile quella che segue:

    #SorgenteDestinazioneAzioneIntervallo temporaleUtente
    1**Blocca**

    Naturalmente tale regola esiste solo al fine di rendere deterministico il comportamento del sistema, ovvero far sì che sia sempre definito il comportamento anche se le regole impostate dall'amministratore non coprono tutti i casi possibili. Nel tabella dell'esempio precedente tale regola pur esistendo risulta irraggiungibile a causa della regola #5 che assorbe e permette tutto a tutti.

    Se la regola #5 viene rimossa, il risultato finale è di permettere alle macchine C, D ed E la navigazione solo sui siti sportivi e solo negli intervalli al di fuori dall'orario di lavoro (cioè quelli espressi dalla regola #3).

    Da notare inoltre che la regola #4 (l'ultima visibile dato che la #5 si è ipotizzato di rimuoverla) diventa a questo punto inutile, poichè chiunque superi la regola #3 non può comunque navigare.

  • Esempio #5. Rispetto all'esempio #3, si desidera permettere alla postazione A di navigare dalle 10:00 alle 12:00 e si vuole vietare la pornografia anche a B (quindi a tutti).

    Per far questo è necessario inserire due regole in testa alla #1. La prima regola della nuova tabella ha il compito di vietare la pornografia a tutti, la seconda di permettere ad A di navigare nell'intervallo 13:00-14:00.

    #SorgenteDestinazioneAzioneIntervallo temporaleUtente
    1*cat: PornografiaBlocca**
    210.1.1.1*Permetti10:00-12:00*
    310.1.1.1*Blocca**
    410.1.1.2*Permetti**
    5*cat: SportPermetti13:00-14:00, 17:00-8:00*
    6*cat: SportBlocca**
    7**Permetti**

    Da notare inoltre che è stato rimosso il vincolo della pornografia dalla regola #6 perchè ridondante. Infatti se l'utente tenta di accedere ad un sito pornografico, la regola #1 provvede a bloccarlo.

    Riassumendo la tabella in questo esempio mette in pratica le seguenti regole:

    • Nessuno può visitare siti pornografici.

    • (A) può navigare solo dalle 10:00 alle 12:00.

    • (B) può navigare ovunque eccetto che sui siti pornografici.

    • (C, D e E) possono visitare i siti sportivi solo fuori dall'orario di lavoro, ma possono navigare liberamente su tutti gli altri (ad eccezione dei siti pornografici) in qualunque ora del giorno.

  • Esempio #6. Cosa succede se nella tabella dell'esempio precedente si rimuove la regola #3 che blocca A ?

    Il risultato è che A eredita gli stessi diritti delle macchine C, D ed E, con in più il privilegio di navigare su qualunque sito non pornografico dalle 10:00 alle 12:00. In altre parole A può visitare siti sportivi nell'intervallo 10:00 - 12:00, mentre a C,D ed E questo è permesso solo fuori dall'orario di lavoro (regole #5 e #6 nella tabella dell'esempio precedente).

  • Esempio #7. In riferimento allo schema principale si vuole permettere la navigazione a tutti gli utenti, purchè si autentichino all'unico dominio (MyDomain) NT/2000 in uso.

    Prima di tutto è necessario verificare se vi è un gruppo del dominio che contenga tutti e solo gli utenti che si vuol far navigare. Per esempio il gruppo Users potrebbe essere adatto, in caso contrario sarà comunque sempre possibile crearne uno ad hoc e inserirvi gli utenti necessari.

    Il secondo passo è quello di impostare la regola relativa a tale gruppo. La tabella sottostante mostra una possibile soluzione:

    #SorgenteDestinazioneAzioneIntervallo temporaleUtente
    1**Permetti*MyDomain/Users

    Da notare che la corrispondenza sulla prima regola avviene solamente se l'utente fornisce uno username e password che stanno nella lista degli utenti "Users" del dominio. Cioè se l'utente è membro del dominio.

    La regola nascosta entra in gioco qual'ora l'utente non fornisca le credenziali richieste in quanto se non vi sono le condizioni per effettuare una corrispondenza sulla prima regola, l'algoritmo che regola gli accessi passa ad analizzare la seconda regola (invisibile) che impedisce l'accesso a chiunque.

  • Esempio #8. Cosa succede se nella tabella dell'esempio precedente si impone un vincolo nella sezione "Destinazione" che preveda solo siti di News ?

    Accade che il gruppo User del dominio MyDomain può solo navigare sui siti di News e la navigazione è preclusa a tutti gli altri in qualunque sito, in virtù della regola nascosta.

  • Esempio #9. Cosa succede se rispetto all'esempio precedente si inserisce come ultima regola un: "Permetti tutto a tutti" (vedi tabella sottostante) ?

    #SorgenteDestinazioneAzioneIntervallo temporaleUtente
    1*cat: NewsPermetti*MyDomain/Users
    2**Permetti**

    Rispetto all'esempio precedente viene a mancare la regola nascosta perchè l'ultima regola visibile, di fatto, assorbe qualunque caso e impedisce che il sistema vada oltre e raggiunga la regola nascosta. In questo modo tutti gli utenti restano liberi di navigare dove desiderano.

    Da notare che per come sono disposte le regole il sistema può alle volte chiedere all'utente di autenticarsi, ma se l'utente non fornisce i dati o fornisce dati non corretti, il sistema gli consente comunque l'accesso in virtù della seconda regola.

  • Esempio #10. Sempre in riferimento allo schema principale si supponga che il dominio sia suddiviso nei gruppi "GruppoA", "GruppoB" e "GruppoC". I tre gruppi sono disgiunti, cioè ogni utente appartiene ad uno ed uno solo dei gruppi. Si desidera vietare agli untenti del GruppoA di visitare i siti sportivi e a quelli del GruppoB i siti di News. Tutto il resto è permesso.

    Prima di tutto vediamo come non bisogna fare per risolvere questo problema. La tabella che seguen mostra un modo errato di impostare le regole:

    #SorgenteDestinazioneAzioneIntervallo temporaleUtente
    1*cat: SportBlocca*MyDomain/GruppoA
    2*cat: NewsBlocca*MyDomain/GruppoB
    3**Permetti**

    Sebbene queste regole sembrino sortire l'effetto desiderato, l'amministratore deve tenere conto che l'utente non è obbligato a fornire le credenziali e quindi autenticarsi. Pertanto se ad esempio un utente del gruppoA rifiuta di autenticarsi, il sistema gli consente, saltando oltre la prima regola, di navigare dove vuole. In altre parole la prima regola blocca l'utente del gruppoA solo se quest'ultimo gli fornisce le sue credenziali e si fa quindi riconoscere, ma non avendo una policy contro la navigazione anonima sui siti di News, il controllo è facilmente aggirabile.

    Vediamo un secondo approccio che risolve il problema facendo leva sul fatto che i tre gruppi siano mutuamente disgiunti:

    #SorgenteDestinazioneAzioneIntervallo temporaleUtente
    1*cat: SportPermetti*MyDomain/GruppoB, MyDomain/GruppoC
    2*cat: NewsPermetti*MyDomain/GruppoA, MyDomain/GruppoC
    3*cat: News, SportBlocca**
    4**Permetti**

    A differenza dell'esempio precedente, se un untente del gruppo A o del gruppo B rifiuta di autenticarsi, può comunque grazie alla regola #4 navigare liberamente ad eccezione dei siti di Sport e News per le quali la regola #3 impedisce a tutti l'accesso. Tuttavia se l'utente fa parte di un gruppo avente diritto di visitare una delle due categorie di siti ed accetta di autenticarsi, le regole #1 e #2 gli consentono l'accesso. Ad esempio un utente del gruppoB può navigare sui siti sportivi in base alla regola #1.

Regole di filtraggio per la posta

Per quanto riguarda la posta elettronica, le regole di accesso concepite come nel caso del web sono disponibili solo per il modulo POP3 e rivestono in ogni caso un ruolo di secondaria importanza. Il ruolo principale viene svolto dai quattro filtri: header, allegati, spam, phishings e antivirus.

Seguono alcuni esempi di impiego dei filtri.

  • Esempio #1: si desidera attivare nel modulo SMTP solo i motori antispam, antiphishing e antivirus senza imporre alcuna restrizione sugli allegati ricevuti.

    Per fare questo è sufficiente abilitare il filtro antivirus, antispam ed antiphishing nelle relative sezioni; accertarsi che il filtro antivirus rilevi correttamente il path e i parametri da fornire al programma da linea di comando che verrà utilizzato per effettuare la scansione. Se questo non accade, fornire manualmente tali parametri.

    Per quanto riguarda l'antispam verificare che l'azione da intraprendere nel caso di rilevamento spam sia quella desiderata, vale a dire contrassegnare l'email oppure quarantenarla. E' possibile anche eliminarla direttamente, ma è altamente sconsigliato dal momento che il filtro non ha una accuratezza del 100% ed è per tanto possibile che agendo in tale modo qualche documento importante vada perduto.

  • Esempio #2: rispetto all'esempio precedente si desidera evitare che la posta proveniente dal dominio dominiosicuro.it sia catalogata come spam, a prescindere dal contenuto e che venga invece considerato sempre come spam i messaggi provenienti da spamfactory.com

    E' sufficiente aggiungere il dominio dominiosicuro.it nelle whitelist e il dominio spamfactory.com nelle blacklist nella sezione antispam del modulo SMTP.

  • Esempio #3: rispetto all'esempio precedente si desidera inoltre bloccare gli allegati contenenti programmi eseguibili a tutti gli utenti, mentre si desidera imporre un vincolo di 3Mb sulle dimensioni del messaggio, ad eccezione dei PDF e dei documenti di Office che possono passare anche se più grandi.

    Occorre impostare tre regole nella sezione allegati che nell'ordine:

    • 1: vietino gli eseguibili (i divieti quando possibile vanno sempre messi prima dei permessi).

    • 2: permettano file di tipo i .pfd e i documenti di Office.

    • 3: vietino allegati di dimensioni maggiori di 3Mb.

    La tabella di regole risultante sarà pertanto la seguente:

    #FromToCondizioneAzioneCommento
    1**Se il tipo dell'allegato uguale a Eseguibili Quarantena 
    2**Se il tipo dell'allegato uguale a PDF;Documenti Microsoft OfficeContinua 
    3**Se la dimensione del messaggio >= 3MQuarantena 

    Da notare che nella seconda riga si è espressamente assegnato un permesso sui PDF e sui documenti di Office e non su un generico tipo documento che avrebbe incluso anche altri formati. Tale permesso è di tipo Continua e non di tipo Permetti in quanto quest'ultimo consentirebbe un accesso incondizionato ai documenti anche quando questi sono (ad esempio) virati.

    Inoltre, in apparente contraddizione col suggerimento dato sopra, il vincolo sulla dimensione è stato inserito come ultimo dal momento che esso non deve valere sui PDF e sui documenti di Office.

    Infine, vale la pena notare come, a differenza delle regole di accesso, qui non vi sia una regola nascosta in fondo che blocca tutto, dal momento che terminata l'analisi del filtro allegati, l'analisi passa al motore antivirus.

    Per maggiori informazioni riguardo la differenza fra Permetti e Continua e più in generale sull'ordine di applicazione dei filtri, vedere Capitolo 13, Logica di filtraggio per le e-mail.

  • Esempio #4: rispetto all'esempio precedente si desidera permettere al gruppo support@example.com di ricevere qualunque tipo di file in allegato, anche se virato (si presume che i tecnici di quel gruppo sappiano ciò che stanno facendo e che siano in grado di gestire i file infetti).

    E' sufficiente aggiungere una regola in testa che assegni un Permetti al gruppo in questione. Le tabella pertanto si modifica come segue:

    #FromToCondizioneAzioneCommento
    1*support@example.com*Permetti 
    2**Se il tipo dell'allegato uguale a Eseguibili Quarantena 
    3**Se il tipo dell'allegato uguale a PDF;Documenti Microsoft OfficePermetti 
    4**Se la dimensione del messaggio >= 3MQuarantena