## Squid - Server proxy

Squid è un potente proxy cache server che fornisce servizi proxy e cache per HTTP (Hyper Text Transport Protocol), FTP (File Transfer Protocol) e molti altri protocolli di rete. Squid può implementare servizi di caching e proxy anche per richieste SSL (Secure Sockets Layer), caching per ricerche di DNS (Domain Name Server) e fornire un caching trasparente. Squid supporta molti protocolli per il caching come ICP (Internet Cache Protocol), HTCP (Hyper Text Caching Protocol), CARP (Cache Array Routing Protocol) e WCCP (Web Cache Coordination Protocol).

Il server Squid è una valida soluzione per le necessità di caching e proxy, scala dall'utilizzo in un piccolo ufficio fino alla grande impresa, fornendo, attraverso il protocollo SNMP (Simple Network Management Protocol), un meccanismo di controllo e monitoraggio dei parametri critici molto accurato. Nella selezione di un computer da utilizzare come procy Squid dedicato, o come server cache, assicurarsi che il sistema sia equipaggiato con una grande quantità di memoria fisica, dal momento che Squid mantiene un cache in memoria per aumentare le prestazioni.

### Installazione

Per installare il server Squid, da terminale digitare:

    sudo apt-get install squid squid-common

### Configurazione

La configurazione di Squid avviene attraverso la modifica di alcune direttive presenti nel file `/etc/squid/squid.conf`. Gli esempi che seguono descrivono alcune delle direttive che possono essere modificate. Per maggiori informazioni sulla configurazione di Squid consultare la sezione «Riferimenti».

Prima di modificare il file di configurazione, è utile farne una copia e proteggerla dalla scrittura così, in caso di necessità, si può utilizzare il file originale. Copiare il file `/etc/squid/squid.conf` e proteggerlo dalla scrittura utilizzando il seguente comando:

    sudo cp /etc/squid/squid.conf /etc/squid/squid.conf.original
    sudo chmod a-w /etc/squid/squid.conf.original

- Per impostare il server Squid affinché sia in ascolto sulla porta 8888 invece che sulla porta predefinita 3128, modificare la direttiva http_port:

  http_port 8888

- Modificare la direttiva visible_hostname per dare a Squid uno specifico hostname. Questo nome non deve essere necessariamente il nome del computer. Nell'esempio seguente è impostato a weezie

  visible_hostname weezie

- Inoltre, utilizzando il sistema di controllo degli accessi di Squid, è possibile configurare l'utilizzo di alcuni servizi internet in proxy con Squid solo per alcuni utenti con specifici indirizzi IP. L'esempio seguente descrive come consentire l'accesso algi utenti della sottorete 192.168.42.0/24:

  Aggiungere quanto segue alla fine della sezione ACL del file `/etc/squid/squid.conf`:

  acl fortytwo_network src 192.168.42.0/24

  Quindi aggiungere quanto segue all'inizio della sezione http_access del file `/etc/squid/squid.conf`:

  http_access allow fortytwo_network

- Utilizzando il sistema di controllo degli accessi di Squid, è possibile configurare l'utilizzo di alcuni servizi internet in proxy con Squid in alcune fasce orarie: L'esempio seguente descrive come consentire agli utenti l'accesso al servizio dalle 9:00 alle 17:00 dal lunedì al venerd' che utilizza la sottorete 10.1.42.0/42:

  Aggiungere quanto segue alla fine della sezione ACL del file `/etc/squid/squid.conf`:

  acl biz_network src 10.1.42.0/24 acl biz_hours time M T W T F 9:00-17:00

  Quindi aggiungere quanto segue all'inizio della sezione http_access del file `/etc/squid/squid.conf`:

  http_access allow biz_network biz_hours

Una volta apportate modifiche al file `/etc/squid/squid.conf`, salvare il file e, per rendere effetivi i cambiamenti, riavviare squid utilizzando il comando:

    sudo /etc/init.d/squid restart

### Riferimenti

Sito web di Squid

HTTPD - Server web Apache2 |  | Ssitemi per il controllo della versione