## 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

### 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é stia 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. In Nell'esempio seguente è impostato a weezie

      visible_hostname weezie

- Utilizzando il controllo sugli accessi di Squid, è possibile configurare l'uso dei servizi Internet via proxy attraverso Squid affinché siano disponibili agli utenti con un determinato indirizzi IP. Come esempio viene descritto un caso di accesso di utenti di una sotto-rete 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 sotto rete 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 le modifiche al file `/etc/squid/squid.conf`, salvarlo e, per rendere effettivi i cambiamenti, riavviare squid utilizzando il comando:

    sudo /etc/init.d/squid restart

### Riferimenti

Sito web di Squid

PHP5 - Linguaggio di scripting |  | Ruby on Rails