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

7. Avvio di Squid

L'avvio del servizio si effettua assumendo i privilegi di amministratore e digitando un comando che ha la seguente forma:

# /usr/local/squid/sbin/squid [opzioni]

Un elenco delle opzioni si ottiene digitando il comando con l'opzione -h. In questa sede concentriamo l'attenzione sulle seguenti opzioni:

-h
Stampa sullo schermo l'elenco delle opzioni disponibili e una breve descrizione.
-k reconfigure
Riavvia Squid facendo rileggere la configurazione, pertanto va eseguito dopo ogni modifica del file squid.conf.
-k check
Verifica il funzionamento di Squid e la correttezza del file di configurazione.
-D
Avvia Squid disabilitando il controllo iniziale del DNS. Questa opzione può essere utile in caso di problemi quando si avvia Squid per la prima volta: nella sua configurazione è prevista la verifica del DNS, perciò Squid tenterà di contattare gli indirizzi di alcuni domini. Il fallimento di una sola di queste chiamate farebbe arrestare il servizio.
-z
E' un'opzione indispensabile quando si avvia il servizio per la prima volta perché Squid dovrà costruire l'albero delle directory swap in /usr/local/squid/var/cache.

Per verificare se il servizio è in esecuzione si può lanciare il seguente comando:

$ pstree -p

Il comando stampa sullo schermo l'albero dei processi in esecuzione fra i quali dovremo trovare i riferimenti a Squid e ai due processi figli:

  |-scsi_eh_1(1623)
  |-squid(1446)---squid(1448)---unlinkd(1450)
  |-syslogd(78)
  |-udevd(175)

Se Squid o i suoi processi figli non sono in esecuzione, il processo è stato abortito per qualche errore. La causa dell'errore si accerta consultando i file di registro:

1. Per consultare il registro di Squid lanciare il comando:

$ tail /usr/local/squid/var/logs/cache.log

2. Per consultare il registro di sistema lanciare il comando:

$ tail /var/log/syslog

Ecco alcuni possibili errori che possono verificarsi al primo avvio di Squid.

Errore 1

Nov 7 23:17:37 gian (squid): ipcache_init: DNS name lookup tests failed

All'avvio Squid effettua un test della risoluzione dei nomi di dominio interrogando il DNS sui nomi elencati nella direttiva dns_testnames. Questa operazione fallisce se il server DNS a cui si appoggia Squid non riesce a risolvere uno dei nomi oppure se il server di connessione non è collegato ad Internet.

Una delle possibili soluzioni è avviare Squid con l'opzione -D. Se si sta avviando il servizio per la prima volta è necessario applicare anche l'opzione -z:

# /usr/local/squid/sbin/squid -zD

Errore 2

Nov 7 23:49:56 gian (squid): Cannot open '/usr/local/squid/var/logs/access.log' for writing. The parent directory must be writeable by the user 'nobody', which is the cache_effective_user set in squid.conf.

Come impostazione predefinita il processo squid è avviato come utente nobody e non ha i permessi di scrittura nelle directory di sistema (nella fattispecie /usr/local). Squid non può pertanto inizializzare il sistema di cache proxy creando i file di registro e l'albero delle directory swap.

La soluzione più semplice consiste nell'assegnare la proprietà della directory /usr/local/squid/var all'utente nobody e riavviare il servizio. Trattandosi di una directory di sistema l'assegnazione della proprietà deve essere fatta dall'amministratore:

# chown -R nobody:nogroup /usr/local/squid/var
# /usr/local/squid/sbin/squid -zD

Errore 3

Nov 8 00:12:16 gian (squid): Failed to verify one of the swap directories. Check cache.log for details. Run 'squid -z' to create swap directories if needed, or if running Squid for the first time.

All'avvio Squid verifica l'esistenza dell'albero delle directory swap in /usr/local/squid/var/cache. Se si avvia Squid per la prima volta, la cache deve essere inizializzata con la creazione delle directory swap. Per risolvere il problema avviare Squid con l'opzione -z:

# /usr/local/squid/sbin/squid -zD

Torna su

Note aggiuntive sull'accessibilità