]> git.piffa.net Git - doc/.git/blobdiff - source/servizi.txt
Servizi: aggiornato squid, sintassi.
[doc/.git] / source / servizi.txt
index 3d34edd6cb5f43663761d463abdfeafa0f35a1c0..1be9af2d6c06f840c107a161691435acc8522d0d 100644 (file)
@@ -7,7 +7,7 @@ Appunti sulla installazione e configurazione dei servizi di rete in ambiete Gnu/
 
   :Author: Andrea Manni
   :Copyright: GFDL
-  :Version: 0.93
+  :Version: 0.94
 
 Questa guida tratta la configurazione di base dei principali servizi di rete utilizzati con sistemi operativi *Unix* e derivati come *GNU/Linux* per gli studenti dei corsi per amministratori di rete in ambiente *GNU/Linux*. In particolare questa guida e' stata scritta usando come riferimento la distribuzione *Debian GNU/Linux*. Gli esempi presentati dovrebbero quindi essere direttamente utilizzabili anche su distribuzioni derivate da Debian come Ubuntu, per sistemi operativi diversi si presti attenzione ai percorsi dei file citati.
 
@@ -338,19 +338,18 @@ E' consigliabile impostare il proxy per apt anche in presenza di un proxy-http *
 Squid
 ======
 
-Squid e' un proxy  cache http (ma anche FTP e https) robusto e strutturato, puo' essere usato sia in situazioni relativamente semplici che in scenari piu' complessi grazie alla possibilita' di gestirne in modo granulare le risorse.  Si partira' dalle configurazioni piu' semplici per la semplice *condivisione della navigazione* internet all'interno di una rete locale, per poi poter negoziare la gestione degli accessi, il filtraggio dei contenuti (Squid e' una applicazione che si muove nel 4' livello del modello TCP/IP a differenza di un *ipfilter* limitato al 2'), nel  bilanciamento del carico tra piu' server proxy.
+Squid e' un proxy cache http (ma puo' anche gestire i protocolli FTP e https) robusto e strutturato, grazie alla sua flessibilita' puo' essere utilizzato sia in piccole reti locali che in scenari piu' complessi. E' molto semplice configurarlo per la semplice *condivisione della navigazione internet* all'interno di una rete locale, per poi poter sucessivamente implementare la autenticazione degli utenti, il filtraggio dei contenuti (Squid e' una applicazione che si muove nel 4' livello del modello TCP/IP a differenza di un *ipfilter* limitato al 2'), il bilanciamento del carico tra piu' server proxy.
 
-Inoltre Squid svolge la funzione di *anonymizer*:
-       Nasconde i client http alla rete internet:  e' solo il server proxy ad accedere ai server web frequentati dai client: questi non sono percepiti ed esposti all'esterno della rete locale ma si relazionano solo con il server proxy. Dal punto di vista della sicurezza della rete locale questo e' preferibile ad un approccio alla navigazione basato su *NAT*.
+Se il server Squid e' in grado di accedere a internet puor' permette la navigazione web a una rete basata su indirizzi IP privati (es una 192.168.0.0/24). E se la rete privata deve solo navigare in internet, non serve introdurre nella rete un NAT (si veda la sezione sui firewall) per condividere la connessione: basta il solo Squid. Per altro non servira' neanche un servizio DNS accessibile dai clients dato che sara' il solo Squid a risolvere i nomi di dominio per i suoi client http.
 
-Cosa a volte sottovalutata, Squid permette la navigazione web a una rete basata su *indirizzi IP privati* (es una 192.168.0.0/24). E se la rete privata deve *solo navigare* in internet, non serve introdurre nella rete un *NAT* (si veda la sezione sui firewall) per condividere la connessione: basta il solo Squid. Per altro non servira' neanche un servizio DNS accessibile dai clients dato che *sara' il solo Squid a risolvere i nomi di dominio* per i suoi client http.
+Inoltre Squid svolge la funzione di *anonymizer*: nasconde i client http alla rete internet: e' solo il server proxy ad accedere ai server web frequentati dai client: questi non sono percepiti ed esposti all'esterno della rete locale ma si relazionano solo con Squid. Dal punto di vista della sicurezza della rete locale questo e' preferibile ad un approccio alla navigazione basato su NAT.
 
-Squid ascolta di default sulla porta 3128,  per impostare *apt* per utilizzarlo si aggiunga ad ``/etc/apt/apt.conf`` ::
+Squid ascolta di default sulla porta ``3128``, per quanto in genere la porta preferita per i servizi di caching http sia la ``8080``. Per utilizzarlo subito anche per apt si aggiunga ad ``/etc/apt/apt.conf`` ::
 
        Acquire::http::Proxy "10.10.208.254:3128";
 
 
-Per installare Squid si usino i pacchetti::
+Per installare Squid si usi il pacchetto::
 
        squid3
 
@@ -358,20 +357,23 @@ Per installare Squid si usino i pacchetti::
 Configurazione: squid.conf
 -------------------------------
 
-Segue un estratto delle direttive principali viste in aula presenti nel file di configurazione ``/etc/squid3/squid.conf`` .
+egue un estratto delle direttive principali viste in aula presenti nel file di configurazione ``/etc/squid3/squid.conf`` .
 
 Cache_dir
 ~~~~~~~~~~~~
 
-Cache dir serve per impostare dimensione e percorso della cache creata sul supporto di storaggio. Essendo la dimensione di default della cache pari a ``~100 MB`` e' altamente consigliabili aumentare questo parametro se si vuole poter utilizzare la funzione di *cache* http del software.
+Cache dir serve per impostare caratteristiche fondamentali della cache creata sul supporto di storaggio quali dimensione e percorso nel file-system. Essendo la dimensione di default della cache pari a ~``100 MB`` e' altamente consigliabili aumentare questo parametro se si vuole godere dei vantaggi della funzione di cache per piu' clients.
 
-La dimensione ovviamente dipendera' dallo spazio disponibile, dimensioni tipiche e massime degli oggetti che si vuole tenere in cache (un solo file *.iso e' circa ``700 MB``, il pacchetto *Openoffice.org* circa ``150 MB``, un pacchetto debian circa ``20 MB``), numero dei client.
+Per stabilire il dimensionamento della cache si tenga conto dello spazio disponibile, dimensioni tipiche e massime degli oggetti che si vuole tenere in cache (un solo file .iso occupa circa ``700 MB``, il pacchetto Openoffice.org circa 150 MB, un pacchetto Debian circa 20 MB), e in fine del numero dei client.
 
-Si presti poi attenzione alla natura dei dati che saranno salvati nella cache: sono tutti dati facilmente sostituibili (gli originali sono *on-line*) la cui perdita non arreca danni permanenti. Questo rende la cache di Squid un possibile candidato ad un *RAID stirpe* (livello 0) a ad un file system che prediliga le performance a scapito della consistenza, con vantaggi sia per le prestazioni (e la velocita' di navigazione e' uno dei motivi per cui si installa Squid) che per l'utilizzo estensivo dello spazio di storaggio. 
+Si presti poi attenzione alla natura dei dati che saranno salvati nella cache: sono tutti dati facilmente sostituibili (gli originali sono on-line) la cui perdita causerebbe solo la necessita' di ripopolare la cache. Questo rende la cache di Squid un possibile candidato ad un RAID stirpe (livello 0) a ad un file system che prediliga le performance a scapito della consistenza, con vantaggi sia per le prestazioni (e la velocita' di navigazione e' uno dei motivi per cui si installa Squid) che per l'utilizzo estensivo dello spazio di storaggio.
 
-Questo fino al momento in cui per voi non sia piu' importante *garantire la disponibilita' del servizio*, ad esempio con un RAID *mirror* o 5 (se il RAID stripe dovesse rompersi gli utenti non potrebbero piu' navigare, cosa che per natura dello stripe e' maggiormente probabile rispetto  ad un *mirror* o a un filesytem *normale*).
+Questo fino al momento in cui per voi non sia piu' importante garantire la disponibilita' del servizio: se il RAID stripe dovesse rompersi gli utenti non potrebbero piu' navigare, cosa che per natura dello stripe e' piu' probabile rispetto ad un filesytem normale.
 
-Altra considerazione: i dati del proxy vengono slavati sul filesytem del server dietro richiesta di utenti esterni talvolta sconosciuti. Come per i servizi di file sharing o per la posta elettronica non c'e' motivo che il filesystem su cui sono ospitati questi dati abbia i privilegi di eseguibilita' o suid (in genere si puo' anche usare *noatime* per renderlo piu' veloce, che si usi o meno il journal dipende dalle preferenze: affidabilita' oppure prestazioni):
+Opzioni del file system
+`````````````````````````
+
+I dati che compongono la cache vengono salvati sul filesytem del server dietro richiesta dei client http degli utenti della rete locale. Come per i servizi di file sharing o per la posta elettronica non c'e' motivo che il filesystem su cui sono ospitati questi dati abbiano i privilegi di eseguibilita' o suid (in genere si possono anche usare opzioni come noatime per rendere i file-systems piu' veloci, scegliere di utilizzare un journal dipende dalla dimesione della cache dalle preferenze: affidabilita' oppure prestazioni):
 
 /etc/fstab ::
 
@@ -379,6 +381,10 @@ Altra considerazione: i dati del proxy vengono slavati sul filesytem del server
        # Filesystem per Squid http cache
        /dev/md3/       /var/spool/squid/       ext2,noexec,nosuid,noatime  0 3
 
+
+Configurazioni di Cache_dir
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
 Ora possiamo impostare la cache nel file di configurazione ``/etc/squid3/squid.conf``::
 
        #TAG: cache_dir (riga 1628)
@@ -398,7 +404,7 @@ Ora possiamo impostare la cache nel file di configurazione ``/etc/squid3/squid.c
        #         |    path della cache
        #         algoritmo
 
-Se si modifica la struttura del filesytem della cache di Squid, ad esempio variando il numero delle directory, puo' essere opportuno rigenerare la struttura della cache di squid. Tipicamente e' consigliabile cancellare (se si ha *ridotto* il numero delle directory) la vecchia cache e poi generare una nuova struttura. Se si vuole *star nel sicuro* ogni volta che si modifica l'impostazione delle directory *si svuoti la vecchia cache e se ne generi una nuova* ::
+Se si modifica la struttura della cache di Squid, ad esempio variando il numero delle directory, puo' essere opportuno cancellare e rigenerare la cache. Tipicamente e' consigliabile cancellare (se si ha ridotto il numero delle directory) la vecchia cache e poi generare una nuova struttura. Se si vuole star nel sicuro ogni volta che si modifica l'impostazione delle directory si svuoti la vecchia cache e se ne generi una nuova::
 
        # /etc/init.d/squid3 stop
        # rm -r /var/spool/squid3/??
@@ -431,9 +437,9 @@ TAG: maximum_object_size (1760)::
 TAG: cache_mem
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
-*Cache_mem* imposta quanta memoria RAM venga utilizzata per la cache di Squid. 
-Questo dipendera' dalla RAM disponibile sul sistema, e da quanta di questa volete mettere a disposizione di Squid (altri servizi importanti girano sulla stessa macchina? ).
-Questo parametro influisce sulle prestazioni e sul degrado dei supporti di storaggio (sopratutto se magnetici).
+**Cache_mem** imposta quanta memoria RAM venga dedicata alla cache di Squid. Si consideri non solo quanta RAM sia disponibile sul sistema, ma anche quale sia l'utilizzo tipico di questo: altri servizi fondamentali necessitano di molta memoria?
+
+Questo parametro per altro influisce sulle prestazioni e sul degrado dei supporti di storaggio (sopratutto se magnetici). Ad esempio se si stanno utilizzando dischi rigidi esterni USB per la cache sara' preferibile cercare di usare quanta piu' RAM possibile per evitare il sovraccarico computazionale dovuto alla gestione dello stack USB, fenomeno evidente sui sistemi embedded come NAS.
 
 Se si stesse pensando di usare dell'hardware *embedded* a basse prestazioni / consumo per realizzare un server gateway / NAT / Squid si tenga presente che Squid e' relativamente esoso di risorse rispetto agli altri servizi: avra' bisogno di  ``~25MB`` (MegaByte) di RAM e *~150MHZ di CPU ARM* per servire decorosamente una decina di client http su una rete ethernet 10/100. In questo caso non fate scendere ``cache_mem`` sotto i ``2/4 MB`` pena un accesso continuo al supporto di storaggio.
 
@@ -456,7 +462,7 @@ TAG: minimum_object_size
 
 Questo parametro imposta la dimensione minima degli oggetti salvati nella cache. Settato a ``0`` o a valori molto piccoli puo' influire negativamente sulla frammentazione del filesytem e consumare un numero elevato di *inode* (cosa non piu' importante con ext4 o altri filesytem).
 
-In  scenari con connessioni molto veloci ( >~10Mb), pochi client (una decina) e server poco performanti nella velocita' di accesso ai filesystem ( ~20MB/s, per quanto il limte sia piuttosto il *seek-time* ) tenere in cache i file piu' piccoli aumenta la latenza della navigazione.
+In  scenari con connessioni molto veloci ( >~10Mb), pochi client (una decina) e server poco performanti nella velocita' di accesso ai filesystem ( ~20MB/s, per quanto il limte sia piuttosto il *seek-time* ) tenere in cache i file piu' piccoli finisce per aumentare la latenza della navigazione.
 
 TAG: minimum_object_size::
 
@@ -472,7 +478,7 @@ TAG: minimum_object_size::
 Negoziazione degli accesi al servizio
 ---------------------------------------
 
-Squid e' uno di quei servizi soggetto a problemi di tipo *open relay* , si deve quindi limitare la rete che puo' accedere al servizio. 
+Squid fa parte di quei servizi suscettibili di diventare un open relay, sara' quindi necessario prestare attenzione a delimitare la rete che puo' accedere al servizio.
 
 Open Relay:
        Un servizio a cui possono accedere tutti indiscriminatamente.
@@ -489,7 +495,7 @@ Per poter limitare gli accessi a Squid dal punto di vista dell'applicazione (qua
 Per maggiori dettagli sulla sintassi utilizzabile per esprimere i range di IP: 
 http://www.visolve.com/squid/squid24s1/access_controls.php
 
-E' poi sempre possibile tenere il proxy in ascolto su un solo indirizzo IP, nel caso si disponga di piu' devicei di rete, oppure settare un firewall per limitare il traffico dai primi livelli del TCP/IP.
+E' poi sempre possibile tenere il proxy in ascolto su un solo indirizzo IP, nel caso si disponga di piu' device di rete, oppure settare un IP firewall per limitare il traffico in base al protocollo IP.
 
 
 
@@ -544,7 +550,7 @@ Si proceda a creare una ``ACL`` di tipo ``src`` per identificare la nostra rete
 Testare Squid
 ---------------
 
-Configurato squid e' fondamentale testarne il corretto funzionamento per assicurarsi di non aver creato un *open-relay*. Per fare dei test significativi serve utilizzare degli host remoti: ci si connetta via ssh a questi per poi utilizzare ``wget`` da riga di comando.
+Dopo aver configurato squid e' fondamentale testarne il corretto funzionamento per assicurarsi di non aver creato un *open-relay*. Per fare dei test significativi serve utilizzare degli host remoti: ci si connetta via ssh a questi e si usi ``wget`` da riga di comando.
 
 
 Client: ~/.wgetrc