Intestazione

Squid e DansGuardian
Come gestire e controllare gli accessi al Web dalle reti scolastiche
di Giancarlo Dessì, gian at cettolini.it

Accesso rapido: Inizio [1] - Precedente [2] - Successivo [3] - Ultimo [4] - Licenza [5]

Contenuto principale

15. Consultazione dei log

A prescindere da considerazioni relative alla privacy, che in ogni caso vanno prese con riserva nell'ambito di una rete scolastica, l'amministratore di sistema coscienzioso consulta sempre i log per verificare se un servizio di rete funziona correttamente, per accertare le eventuali violazioni della policy, per accertare l'esistenza di falle relative alla sicurezza. Per DansGuardian e Squid l'esame dei log è fondamentale per vari motivi e soprattutto nel primo periodo di prova.

Nel caso particolare di DansGuardian, essendo un sistema di filtering alquanto sofisticato e versatile, la configurazione deve essere adattata giorno dopo giorno proprio sulla base dei risultati ottenuti dai log nei primi tempi. L'amministratore potrà perciò valutare la necessità di potenziare i vincoli della policy aggiungendo categorie o indirizzi non compresi nella blacklist o, al contrario, rettificando le impostazioni che per qualche motivo bloccano l'accesso a risorse utili.

Il file di registro di DansGuardian

Nell'installazione predefinita, il registro degli accessi di DansGuardian è il file /var/log/dansguardian/access.log. Il registro può essere letto da una console con il comando tail usando l'opzione -x per specificare il numero di eventi da mostrare sullo schermo (se non si specifica l'opzione tail visualizza solo le ultime dieci righe). Un esempio di output è riportato qui di seguito:

gian@gian:˜$ tail -4 /var/log/dansguardian/access.log

2005.11.13 23:36:44 - 192.168.100.201 http://gian GET 1788
2005.11.13 23:36:44 - 192.168.100.201 http://gian/favicon.ico GET 285
2005.11.13 23:36:46 - 192.168.100.201 http://www.playboy.com *DENIED* Sito vietato: playboy.com GET 0
2005.11.13 23:36:56 - 192.168.100.201 http://www.playboy.com/favicon.ico *DENIED* Sito vietato: playboy.com GET 0
gian@gian:˜$

Come si può notare dall'esempio, il sistema registra la data e l'ora dell'accesso, l'indirizzo di rete della postazione client, la risorsa richiesta e gli estremi di connessione. In caso di accesso negato registra la parola chiave DENIED, racchiusa fra due asterischi, e il motivo del rifiuto (nell'esempio si tratta di un sito segnalato nella blacklist). In definitiva, con la configurazione predefinita, il filtro mantiene traccia di tutti gli eventi offrendo all'amministratore tutte le informazioni necessarie per poter apportare eventuali modifiche alla configurazione.

In rete sono in ogni caso disponibili strumenti di amministrazione che possono essere utilizzati per la lettura e l'analisi del log in modo più agevole rispetto al comando tail. In alternativa si può aprire il file di registro anche con un editor di testo dell'interfaccia grafica come ad esempio Kwrite o Gedit.

Il file di registro di Squid

Il registro degli accessi di Squid, nell'installazione predefinita, è invece il file /usr/local/squid/var/logs/access.log. Anche in questo caso si può ricorrere al comando tail per la lettura degli eventi.

gian@gian:˜$ tail /usr/local/squid/var/logs/access.log
1131825601.183      4 127.0.0.1 TCP_SWAPFAIL_MISS/304 320 GET http://gian/ - DIRECT/192.168.100.201 -
1131825601.392      0 127.0.0.1 TCP_NEGATIVE_IT/404 508 GET http://gian/favicon.ico - NONE/- text/html
1131825852.344 239710 127.0.0.1 TCP_MISS/504 1338 GET http:www.cettolini.it/ - NONE/- text/html
1131829274.034 119915 127.0.0.1 TCP_MISS/000 0 CONNECT update.mozilla.org:443 - NONE/- -
1131829394.117 120000 127.0.0.1 TCP_MISS/000 0 CONNECT update.mozilla.org:443 - NONE/- -
1131829514.024 119908 127.0.0.1 TCP_MISS/000 0 CONNECT update.mozilla.org:443 - NONE/- -
1131829514.117      0 127.0.0.1 TCP_MISS/404 0 CONNECT update.mozilla.org:443 - DIRECT/- -
1131921404.672     91 127.0.0.1 TCP_SWAPFAIL_MISS/200 2268 GET http://gian/ - DIRECT/192.168.100.201 text/html
1131921405.680     21 127.0.0.1 TCP_SWAPFAIL_MISS/200 2611 GET http://gian/apache_pb.gif - DIRECT/192.168.100.201 image/gif
1131921406.121      1 127.0.0.1 TCP_MISS/404 500 GET http://gian/favicon.ico - DIRECT/192.168.100.201 text/html
gian@gian:˜$

Come si può osservare, il formato del log degli accessi di Squid è tale da non rendere agevole la lettura immediata. Innanzitutto, chi desidera una migliore impaginazione copi e incolli l'esempio in un editor di testo: anche visualizzando questa pagina su un'unica colonna alcune righe saranno sicuramente rimandate a capo a meno che non si riduca la dimensione dei caratteri.

In ogni caso, ogni evento registrato da Squid è composto di due parti. A sinistra ci sono gli estremi della connessione dal client: data e ora di accesso, dimensioni della transazione e indirizzo di rete del client. A destra sono registrati gli estremi relativi all'azione eseguita dal proxy, ad esempio il prelievo dalla cache o la connessione al server Web, il metodo di transazione, l'indirizzo di rete del server. Limitiamoci ad esaminare gli estremi relativi alla transazione con il client.

Innanzitutto si osservi che le richieste provengono tutte dall'interfaccia di loopback (indirizzo 127.0.0.1). E' quanto dovremo attenderci dal momento che le richieste al proxy provengono tutte da DansGuardian nel caso sia installato sullo stesso host. In effetti, ai fini della gestione della policy il log degli accessi di Squid diventa di secondaria importanza se usiamo DansGuardian e ci limiteremo a consultarlo solo per diagnosticare eventuali problemi nel servizio effettivo di cache proxy.

Una peculiarità del log degli accessi di Squid è il formato codificato della data e dell'ora relative all'evento. Se vogliamo saperne di più è necessario ricorrere ad un analizzatore di log per ottenere la data e l'ora in un formato leggibile.

Analisi dei log con Sarg

Sarg è un prodotto libero e open source scaricabile dal sito http://sarg.sourceforge.net. Questo programma, concepito per gli amministratori di un proxy server basato su Squid, può essere usato per analizzare i log sia di Squid sia del content filtering integrato (SquidGuard e DansGuardian). Il pregio di questo programma è che possiamo utilizzarlo per analizzare i log attraverso un browser Web se nel sistema abbiamo installato anche il server Web Apache.

In questa guida mi limito però solo a menzionare questa possibilità: personalmente ritengo poco utile e soprattutto sconsigliabile, per ragioni di sicurezza, mantenere in esecuzione sul server di connessione anche un Web server solo per leggere comodamente un registro degli accessi quando possiamo farlo direttamente con l'interfaccia a caratteri. In effetti Sarg può essere lanciato anche con un semplice comando dalla console permettendoci comunque di leggere il log degli accessi di Squid con la conversione della data in un formato accessibile:

gian@gian:˜$ sarg -d 13/11/2005 -convert
11/13/2005 23:36:44     91 127.0.0.1 TCP_SWAPFAIL_MISS/200 2268 GET http://gian/ - DIRECT/192.168.100.201 text/html
11/13/2005 23:36:45     21 127.0.0.1 TCP_SWAPFAIL_MISS/200 2611 GET http://gian/apache_pb.gif - DIRECT/192.168.100.201 image/gif
11/13/2005 23:36:46      1 127.0.0.1 TCP_MISS/404 500 GET http://gian/favicon.ico - DIRECT/192.168.100.201 text/html
gian@gian:˜$

Come si può osservare, è possibile esaminare gli eventi a partire da un determinato momento, associando al comando sarg l'opzione -d giorno/mese/anno e ottenere la data e l'ora in un formato leggibile, usando l'opzione -convert.


Torna su

Note aggiuntive sull'accessibilità