]> git.piffa.net Git - doc/.git/blobdiff - source/servizi.txt
Intro pc
[doc/.git] / source / servizi.txt
index 2255716139511d95b54623c042e13f2db6d7316f..4a0e9ac7061243c27e620684bfce73ce068dc7fc 100644 (file)
@@ -1,13 +1,13 @@
 ===============================
 Servizi di rete passo a passo
 ===============================
-----------------------------------------------------------
-Appunti sulla installazione e configurazione dei servizi
-----------------------------------------------------------
+------------------------------------------------------------------------------------
+Appunti sulla installazione e configurazione dei servizi di rete in ambiete Gnu/Linx
+------------------------------------------------------------------------------------
 
   :Author: Andrea Manni
   :Copyright: GFDL
-  :Version: 0.9
+  :Version: 0.91
 
 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.
 
@@ -223,20 +223,25 @@ Altri link per VIM:
 VNC
 ------------
 
-I Virtual Network Computing (o VNC) sono software di controllo remoto e servono per amministrare il proprio computer a distanza o visualizzare la sessione di lavoro di un altro computer sul proprio a scopo didattico. 
+I Virtual Network Computing (o VNC) sono software di controllo remoto e servono per amministrare un computer a distanzai.  Nel nostro caso la VNC sara'  utilizzata per visualizzare la sessione di lavoro di un altro computer sul proprio a scopo didattico. 
 
-Scaricare il pacchetto ``xtightvncviewer`` e lo script ``guarda.sh`` in una posizione (collocazione nel *path* degli utenti, es ``echo $PATH`` per visualizzare l'attuale path ) comoda per gli utenti ( in genere ``/bin`` ), rendere eseguibile lo script.
+Per collegarvi al server del docente usate lo script ``guarda.sh`` che dovrebbe gia essere disponibili sui sistemi preconfigurati, oppure potete invocare direttamente il collegamento con::
+
+       xtightvncviewer -viewonly 10.10.208.177:1
+
+
+Se il comando non fosse disponibile installate il pacchetto ``xtightvncviewer``. Potete anche scaricare lo script ``guarda.sh`` e renderlo eseguibile, ed eventualmente creare una voce nel menu di KDE per richiamarlo.
 
 Procedura::
 
     su root
-    cd /bin
+    cd /usr/local/bin
     wget http://bender/guarda.sh
     chmod +x guarda.sh
     exit
 
 
-Per eseguire lo script digitare semplicemente ``guarda.sh``, oppure creare un link / collegamento sul Desktop allo script ``/bin/guarda.sh``.
+Per eseguire lo script digitare semplicemente ``guarda.sh``, oppure creare un link / collegamento sul Desktop allo script ``/usr/local/bin/guarda.sh``.
 
 Le impostazioni del server VNC sono:
 
@@ -288,26 +293,29 @@ Gli archivi sono generalmente:
     # esempio di accesso a un CDROM:
     # cdrom:[Debian GNU/Linux 5.0.1 _Lenny_ - Official i386 kde-CD Binary-1 20090$
     
-    # Archivio principale debian via http su piffa.net,
-    # non funziona al di fuori dell'aula dei corsi
-    deb http://debian.piffa.net/debian/ lenny main
+    # ftp.it.debian.org viene rediretto su un mirror interno
+    # quando vi trovate nella rete interna piffa.net
+    deb http://ftp.it.debian.org/debian/ lenny main
     # Sono disponibili anche i rami non-free contrib
-    # deb http://debian.piffa.net/debian/ lenny  non-free contrib
+    # deb http://ftp.it.debian.org/debian/ lenny  non-free contrib
     # Sono disponibili anche le release unstable e testing
-    # deb http://debian.piffa.net/debian/ testing  main non-free contrib
-    # deb http://debian.piffa.net/debian/ sid  main non-free contrib
+    # deb http://ftp.it.debian.org/debian/ testing  main non-free contrib
+    # deb http://ftp.it.debian.org/debian/ sid  main non-free contrib
+    
+    # Sorgenti dei pacchetti:
+    # deb-src http://ftp.bononia.it/debian/ lenny main
     
     # Mirror da kernel.org europa da usare a casa:
     deb http://mirrors.eu.kernel.org/debian/ lenny main
     
     # Security dal sito principale
     deb http://security.debian.org/ lenny/updates main
-    deb-src http://security.debian.org/ lenny/updates main
+    deb-src http://security.debian.org/ lenny/updates main
     
-    # Debian volatile per le cose soggette a cambiamenti non legati
-    # a dinamiche di sicurezza
+    # Debian volatile per i pacchetti soggetti a frequanti cambiamenti
+    # non legati a dinamiche di sicurezza
     deb http://volatile.debian.org/debian-volatile Lenny/volatile main
-    deb-src http://volatile.debian.org/debian-volatile Lenny/volatile main
+    deb-src http://volatile.debian.org/debian-volatile Lenny/volatile main
     
     # Esempio di accesso a un file system locale contenente i pacchetti:
     # Potete scaricarei in aula con debmirror  da debian.piffa.net
@@ -322,7 +330,7 @@ Questo file contiene le opzioni di apt, come ad esempio il proxy::
 
     Acquire::http::Proxy "http://10.10.208.248:3128";
 
-Si tenga conto che se si imposta un proxy per apt sul proprio portatile e tornati a casa propria si vuole scaricare nuovi pacchetti si dovra' disabilitare il proxy commentando la riga con ";" (''punto-e-virgola'')::
+Si tenga conto che se si imposta un proxy per apt sul proprio portatile e tornati a casa propria si vuole scaricare nuovi pacchetti si dovra' disabilitare il proxy commentando la riga con ";" (''punto-e-virgola''). Su un portatile vi conviene tracciare il mirror ``ftp.it.debian.org`` senza impostare il proxy: in aula verra' rediretto al mirror locale e a casa vi appoggerete al mirror ufficiale.
 
 E' consigliabile impostare il proxy per apt anche in presenza di un proxy-http *trasparente*.
 
@@ -330,7 +338,7 @@ 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 reti 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, 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 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.
 
 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*.
@@ -448,6 +456,8 @@ 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.
+
 TAG: minimum_object_size::
 
        #  TAG: minimum_object_size     (bytes)
@@ -561,10 +571,28 @@ Si puo' controllare il corretto funzionamento del server seguendo i log di acces
 In oltre e' possibile configurare diversi *analizzatori di log* come ``Webalizer`` per studiare i log di Squid.
 
 
+Tiny proxy
+==========
+
+Se avete l'esigenza di un proxy server per la condivisione della connessione ad internet ma non avete la necessita' o le risorse di un *caching* proxy come Squid potete considerare **tinyproxy**, questo e' molto piu' leggero (utilizza circa ~2MB di RAM e ovviamente non deve accedere continuamente ad un file system per lo storaggio della cache) e risulta piu' semplice nella configurazione.
+
+TinyProxy puo' essere utilizzato come sostituto di emergenza in una rete in cui Squid e' momentaneamente non disponibile.
+
+File di configurazione: ``/etc/tinyproxy/tinyproxy.conf`` ::
+       
+       # Porta su cui ascoltare
+       Port 3128
+       # IP su cui ascoltare
+       Listen 10.10.208.160
+       # Negoziazione accessi
+       Allow 10.10.208.0/24
+
+
+
 Apache
 ========
 
-Apache HTTP Server, o piu' comunemente Apache, e' il nome dato alla piattaforma server Web modulare piu' diffusa (ma anche al gruppo di lavoro open source che ha creato, sviluppato e aggiornato il software server), in grado di operare da sistemi operativi UNIX-Linux e Microsoft.
+Apache HTTP Server, o piu' comunemente Apache (*a patchy NCSA web server* ), e' il server web modulare piu' diffuso e strutturato disponibile con licenza libera, in grado di operare da sistemi operativi UNIX/Linux e Microsoft.
 
 Un server web e' un processo, e per estensione il computer su cui e' in esecuzione, che si occupa di fornire, su richiesta del browser, una pagina web (spesso scritta in HTML). Le informazioni inviate dal server web viaggiano in rete trasportate dal protocollo HTTP. L'insieme di server web da' vita al World Wide Web, uno dei servizi piu' utilizzati di Internet.
 
@@ -573,7 +601,7 @@ Pacchetti da installare::
 
         apache2 apache2-doc
 
-Con la release 2.0 di Apache viene automaticamente resa disponibile anche la versione SSL (Secure Socket Layer, connessioni criptate ) del web server.
+Con la release 2.0 di Apache viene automaticamente resa disponibile anche la versione SSL (Secure Socket Layer, connessioni criptate ) del web server senza che ci sia la necessita' di installare altri pacchetti.
 
 
 Configurazione di Apache
@@ -621,6 +649,7 @@ Server-Pool Size Regulation
 AccessFileName
          Il nome del file che viene onorato per modificare le impostazioni per una singola directory, legato alla direttiva AllowOverride .
 
+
 Installazione di PHP
 ---------------------
 
@@ -635,8 +664,8 @@ Creare nella cartella ``/var/www`` (o altra cartella visibile) un file con esten
 
 Questa funzione di php generera' la tipica pagina con le impostazioni attuali per PHP. Richiamando la pagina (es: ``http://localhost/info.php`` ) verra' generata dall'interprete PHP la pagina HTML e resa disponibile tramite Apache ai client HTTP, a prova del corretto funzionamento del modulo di PHP e della sua integrazione con il server web Apache.  In caso contrario se il client http proporra' di scaricare la pagina invece che visualizzarla nel browser: non funziona l'interprete di php o sono mal configurati i MIME-type. prima di tutto assicurarsi di aver fatto ripartire Apache.
 
-Installazione del supporto per Mysql
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Installazione del supporto per Mysql a PHP
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 Installare i pacchetti::
 
@@ -645,14 +674,14 @@ Installare i pacchetti::
 Controllare tramite la pagina php.info che sia abilitato il supporto per Mysql (ripartito Apache, ricaricare la pagina e cercare con CTRL+f ``mysql``).
 
 phpmyadmin
-~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~
 
 L'interfaccia web Phpmyadmin non richiede necessariamente la presenza di un database Mysql locale, puo' infatti essere utilizzata per gestire database remoti (il suo file di configurazione: ``/etc/phpmyadmin/config.inc.php`` ). Nel caso si voglia installare localmente Mysql si utilizzi il pacchetto ``mysql-server`` .
 
 Phpmyadmin dovrebbe essere disponibile all'URL: ``http://localhost/phpmyadmin/``, se cosi non fosse controllare che sia incluso il file ``/etc/phpmyadmin/apache.conf`` in ``/etc/apache2/conf.d/`` .
 
-Installazione del supporto per Postgresql
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Installazione del supporto per Postgresql a PHP
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 Installare i pacchetti::
 
@@ -690,19 +719,24 @@ Gestione DNS
 
 Prima di tutto per poter impostare i virtual hosts dovete avere un server DNS che risolva i vostri nomi di dominio sull'indirizzo IP del server. Questo si puo' ottenere in vari modi, ad es:
 
-        *Bind* (DNS server)
-         Impostare i campi A nelle proprie zone gestite dal server DNS Bind. Ad es: ``papo            A       212.22.136.248``
 
-        *Servizio DNS dinamico on line*.
-         Utilizzare un servizio come ad es: https://www.dyndns.com/ per mappare nomi di dominio sul proprio indirizzo IP, comodo ad esempio se si dispone di un indirizzo IP pubblico (anche se dinamico) per la propria connessione ad internet.
+        ``/etc/hosts``
+         Per prove sul proprio sistema potete impostare i nomi dei vostri virtual server nel file /etc/hosts .
 
         *Dnsmasq* (DNS server)
          Utilizzabile al livello della rete locale per fare dei test, utilizzando direttive come: ``address=/davide.piffa.net/10.10.208.178``
 
-        ``/etc/hosts``
-         Per prove sul proprio sistema potete impostare i nomi dei vostri virtual server nel file /etc/hosts .
+        *Servizio DNS dinamico on line*.
+         Utilizzare un servizio come ad es: https://www.dyndns.com/ per mappare nomi di dominio sul proprio indirizzo IP, comodo ad esempio se si dispone di un indirizzo IP pubblico (anche se dinamico) per la propria connessione ad internet.
 
-Query DNS con ``dig``::
+        *Bind* (DNS server)
+         Impostare i campi A nelle proprie zone gestite dal server DNS Bind. Ad es: ``papo            A       212.22.136.248``
+
+
+Eseguire una query DNS con ``dig``::
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Per testare la corretta risoluzione dei vostri nomi di dominio sui relaivi indirizzi IP si usi dig (o altre utlity, vedere la sezione relativa i DNS). Dig e' contenuto nel pacchetto ``dnsutils``. 
 
     # dig 177.piffa.net
 
@@ -717,11 +751,16 @@ Query DNS con ``dig``::
     
     ;; ANSWER SECTION:
     177.piffa.net.          0       IN      A       10.10.208.177
+
+    ;; SERVER: 10.10.208.248#53(10.10.28.248)
     
 
 La parte interessante e' l'*ANSWER SECTION*: ``177.piffa.net.          0       IN      A       10.10.208.177`` . Il nome di dominio 177.piffa.net viene risolto sull'ip 10.10.208.177 , nel nostro Apache (che risponde all'ip 10.10.208.177 ) dovra' essere disponibile un virtual host che corrisponde al nome ``177.piffa.net`` (``ServerName``) .
 
-Virtual host
+Il server DNS utilizzato dal sistema e' evidenziato dalla stringa: ``;; SERVER: 10.10.28.248#53(10.10.28.248)`` che dovrebbe corrispondere a quanto impostato nel vostro ``/etc/resolv.conf``. Se il vostro browser web utilizza un proxy http sara questo a risolvere i nomi di dominio, tipicamente potete disabilitare l'uso del proxy per determinati domini nella sezione di configurazione del browser.
+
+
+Virtual hosts
 ~~~~~~~~~~~~~~
 
 Esempio di Virtual host::
@@ -744,7 +783,7 @@ Quelle che abbiamo appena visto sono le direttive essenziali per definire un sit
        Log degli errori separato dai restanti siti web ospitati dal server.
        
 * ``LogLevel warn``
-       Livello di importanza degli eventi loggati= warning *attenzione* . 
+       Livello di importanza degli eventi loggati: warning *attenzione* . 
 
 * ``CustomLog /var/log/apache2/177.piffa.net/access.log combined``
        Log di accesso separati dagli altri siti, utile anche qua per statistiche di accesso per il solo sito virtuale.
@@ -801,6 +840,8 @@ Ora l'IP 192.168.0.1 non potra' piu' accedere ai materiali dell'intero sito virt
 In questo modo solo la classe IP ``192.168.0.0/24`` potra' accedere alla directory ``/limitata``
 Si tenga pero' conto che e' relativamente facile per un malintenzionato cambiare il proprio indirizzo IP, oppure collegarsi da un altra zona. Meno facile e' accedere ad una classe privata trovandosi all'esterno di questa, ma ci sono comunque soluzioni piu' eleganti.
 
+* Mod_access:  http://httpd.apache.org/docs/2.0/mod/mod_access.html
+* mod_authz_hosti(Available in Apache 2.1 and later):  http://httpd.apache.org/docs/2.2/mod/mod_authz_host.html
 
 User Authentication
 ---------------------
@@ -1109,9 +1150,9 @@ Il file ``/etc/resolv.conf`` contiene le impostazioni sul dns usato dal sistema,
 
        - ``search``: nome di dominio usato dalla rete sul quale cercare gli hosts. Ad esempio se impostato su ``piffa.net`` pingando l' host ``bender`` viene automaticamente fatto un tentativo di ricerca per ``bender.piffa.net``.
 
-Predisponendo l'infrastruttura di rete della vostra LAN e' consigliabile impostare sempre un DNS cache sul vostro server locale per i vari client. In questo modo in caso di malfunzionamento del DNS o necessita' di intervenire / sostituire i DNS non sara' piu' necessario dover reimpostare ogni singolo client della LAN: bastera' modificare l'impostazione del server DNS cache, ad esempio per utilizzare un nuovo forwarder, o modificare al volo un record DNS. La modifica, anche detta *mascheramento*, di un record come il *server smtp* o un *MX* potrebbe tirarvi rapidamente fuori dai guai nel caso di un problema improvviso con la posta elettronica o qualunque altro servizio che possiate reindirizzare col DNS.
+Predisponendo l'infrastruttura di rete della vostra LAN e' consigliabile impostare sempre almeno un DNS cache sul vostro server locale per i vari client. In questo modo in caso di malfunzionamento del DNS o necessita' di intervenire / sostituire i DNS non sara' piu' necessario dover reimpostare ogni singolo client della LAN: bastera' intervenire sul server DNS cache, ad esempio per utilizzare un nuovo forwarder, o modificare al volo un record DNS. La modifica, anche detta *mascheramento*, di un record come il *server smtp* o un *MX* potrebbe tirarvi rapidamente fuori dai guai nel caso di un problema improvviso con la posta elettronica o qualunque altro servizio che possiate reindirizzare col DNS.
 
-Un server DHCP e un DNS cache come ``Dnsmasq`` possono permettervi di risolvere al volo (o per lo meno reindirizzare) molte delle problematiche relative alla configurazione della rete della vostra LAN: dover intervenire manualmente su decine di client per modificare le impostazioni di SMTP | gateway | SMTP | proxy.
+Utilizzare un server DHCP e una DNS cache come ``Dnsmasq`` possono permettervi di risolvere al volo molte delle problematiche relative alla configurazione della vostra LAN: ad esempio dover intervenire manualmente su decine di client per modificare le impostazioni di SMTP | gateway | DNS | proxy.
 
 Si veda anche la pagina man di resolv.conf.
 
@@ -1132,33 +1173,44 @@ Tabella statica per l'associazione tra IP e nomi di dominio::
         91.191.138.15   thepiratebay.org
         192.168.0.11    chrome  chrome.mydomain.com
 
-Il contenuto e' un associazione tra un *IP* e stringhe di testo (anche piu' di una per IP) es: ``mirror`` e ``mirror.piffa.net``.
+Il contenuto del file e' un associazione tra un *IP* e stringhe di testo (anche piu' di una per IP) es: ``mirror`` o  veri e propi nomi di dominio ``mirror.piffa.net``. Si puo inserire un nome semplice come *casa* per riferirsi ad un host che si ha necessita' di contattare spesso, oppure mappare un nome di dominio completo su un indirizzo IP.
+
+Il problema e' la gestione di questo file su molti hosts: quando gli host cambiano IP si devono aggiornare manualmente i records, operazione in se' non particolarmente gravosa ma che andra' fatta per ogni client della vostra LAN. Un metodo semplice per distribuire questo file e' utilizzare ``Dnsmasq``: questo infatti legge e onora il file ``hosts`` che avete prodotto e lo rende disponibile ai clients tramite le query DNS.
 
-Il problema e' la gestione di questo file: quando gli host cambiano IP si devono aggiornare i records, e poi c'e' il problema di distribuire questo file tra i vari hosts della propria LAN. Un metodo semplice per distribuire questo file e' utilizzare ``Dnsmasq``: questo infatti legge e onora il file ``hosts`` che avete prodotto e lo *distribuisce* ai clients tramite le normali query DNS.
+Dnsmasq lavora come un server DNS, i vostri client lo interrogheranno per tradurre nomi di host e domini in indirizzi IP, risolvendo il problema della *distribuzione* del file ``hosts`` tra molteplici clients. Infatti il servizio DNS indica appunto una *directory distribuita* per la risoluzione dei nomi di dominio, risolvendo i problemi dell'aggiornamento e diffusione dei continui cambiamenti di questa.
 
-Modificare (riconducendola a un IP interno, cosi' annullandola) la risoluzione di un nome di dominio e' un modo drastico e funzionale per *annullarlo* rendendolo indisponibile alla propria rete locale, ad esempio aggiungere al file ``/etc/hosts``::
+Modificare la risoluzione di un nome di dominio esistente (ad esempio riconducendola a un IP interno)  e' un modo drastico e funzionale per *annullarlo* rendendolo non disponibile alla propria rete locale. Ad esempio aggiungere al file ``/etc/hosts``::
        
         127.0.0.1       www.facebook.com 
 
-Impedira' agli utenti della LAN di raggiungere *facebook*, ora reindirizzato a i``localhost``.
+Impedira' agli utenti della LAN di raggiungere *facebook*, ora reindirizzato a ``localhost``.
 
+Oppure si potrebbe ricondurre l'indirizzo IP di un server HTTP pubblico usato per i downloads (ad esempio un mirror della propia distribuzione come ``ftp.it.debian.org``) a un equivalente mirror creato all'interno della rete locale, riducendo il traffico verso l'esterno e aumentando notevolmente la velocita' di scaricamento.
 
 Hostname
 ------------
 
-Ogni computer ha un *proprio nome* visualizzabile (e modificabile) con il comando ``hostname``.
+Ogni computer ha un *proprio nome* visualizzabile (e modificabile) con il comando ``hostname``. Quando utilizzate a una shell su un host in genere l'hostname compare nel prompt della shell.
 
-Per modificare in modo permanente il nome del computer si modifichi il contenuto del file ``/etc/hostname``.
+Per visualizzare il nome dell'host su cui si sta operando si digiti semplicemnte ``hostname``, lo stesso comando con un oggetto modifica temporaneamente il nome dell'host. Per modificare in modo permanente il nome del computer si modifichi il contenuto del file ``/etc/hostname``.
 
-Tipicamente si vuole mantenere una correlazione tra il nome dell' host, o meglio la stringa con cui il server si qualifica all'esterno, e il *PTR* dell'IP. Nel caso di *servizi virtuali* ci sara' un *nome server* principale associato al *PTR* condiviso.
-Non e' automatico che un servizio, ad esempio un server di posta, si qualifichi leggendo il contenuto di questo file e magari aggiungendo come suffisso il dominio di cui fa parte l' host: a volte questo parametro puo' essere specificato nel file di configurazione del servizio::
+Si faccia attenzione a non aver un hostname puramente numerico: ad es. ``161``. E' opportuno che il nome sia comunque un alfanumerico: ``host-161`` o simile.
 
-        * Squid: ``visible_hostname``
+FQDN
+~~~~~~~~~
 
-        * Postfix: ``myhostname``
+Per semplicita' gli host sono generalemente raggiungibili dall'esterno mappando il loro IP su un nome di dominio FQDN: fully qualified domain name, composto generalmente da *hostname*.``domain-name``, ad es. *bender*.``piffa.net``.
 
-Si faccia attenzione a non aver un hostname puramente numerico: ad es. ``161``. E' opportuno che il nome sia comunque un alfanumerico: ``host-161`` o simile.
-        
+Alcuni servizi internet fanno affidamento sul PTR dell'IP del server per cercare una conferma che il *servizio* sia veramente chi afferma di essere (ad esempio STMP).
+
+Non e' automatico che un servizio, ad esempio un server di posta, si qualifichi leggendo il contenuto del file ``hostname`` aggiungendo come suffisso il dominio della rete di cui fa parte l' host: a volte questo parametro puo' essere specificato nel file di configurazione del servizio::
+
+        * Squid (HTTP proxy): ``visible_hostname``
+
+        * Postfix (SMTP server): ``myhostname``
+
+I motivi sono diversi, senza entrare nel dettaglio dei vari protocolli si pensi comunque che un host ha sempre un solo nome, ma puo' avere un numero variabile di *device di rete* sia fisici che virtuali con relativi *indirizzi IP*, e piu' servizi in ascolto sui vari IP.
+  
 DNSmasq
 ========
 
@@ -1495,9 +1547,36 @@ Ora possiamo provare dal client a effettuare l'iserimento di un record per testa
        
        > send
 
-Per comprendere meglio l'uso dell'utility ``nsupdate`` si consiglia la lettura della relativa pagina man. Nella prima riga viene invocato il comando ``nsupdate`` impostando col *flag* ``-k`` la chiave *privata* generata precedentemente, con ``server`` si imposta quale server NS autoritario della zona (che abbiamo precedentemente configurato per ricevere gli aggiornamenti) vogliamo contattare. Alla riga sucessiva ``update`` viene aggiunto un record ``A`` per la il dominio ``home.piffa.net`` indirizzato all'IP ``192.168.0.2``, poi ``show`` mostra quanto ci si prepara a comunicare al server con il finale ``send`` .
+Per comprendere meglio l'uso dell'utility ``nsupdate`` si consiglia la lettura della relativa pagina man. Nella prima riga viene invocato il comando ``nsupdate`` impostando col flag ``-k`` la chiave privata generata precedentemente, con ``server`` si imposta quale server NS autoritario della zona (che abbiamo precedentemente configurato per ricevere gli aggiornamenti) vogliamo contattare. Alla riga sucessiva ``update`` viene aggiunto un record ``A`` per la il dominio ``home.piffa.net`` indirizzato all'IP ``192.168.0.2``, poi ``show`` mostra quanto ci si prepara a comunicare al server con il finale ``send`` .
+
+Si noti che in questo modo *l'intera zona* piffa.net e suscettibile di essere modificata dal client, che potra' eliminare e inserire qualunque record. E' possibile gestire in modo piu' granulare la zona, ad esempio concedendo al client i privilegi per gestire solo una parte della zona o i tipo di record da gestire.
+
+Automatizzare l'aggiornamento dinamico
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Nsupdate risulta comodo per tenere aggiornati i record DNS degli host connessi ad internet con indirizzi IP dinamici (pubblici) assegnati dal provider. Il client deve essere in grado di contattare autonomamente il server DNS per comunicare un cambiamento del suo ip. Vediamo innanzi tutto un primo script per nsupdate::
+
+       #!/bin/bash
+       # Diamo al demone ppp un po' di tempo per negoziare la connessione
+       # prima di leggere l'IP ottenuto
+       sleep 15
+       IPADDR=$(/sbin/ifconfig ppp0 | awk '/inet/ { print $2 } ' | sed -e s/addr://)
+       
+       nsupdate  -k /root/dns/Khome.piffa.net.+157+04331.private <<-EOF
+               server 192.168.0.254
+               zone home.piffa.net.
+               update delete home.piffa.net. A
+               update delete home.piffa.net. MX
+               update add home.piffa.net. 432000 A $IPADDR
+               update add home.piffa.net. 432000 MX 10  home.piffa.net.
+               show
+               send
+               EOF
+
+
+Questo script legge il valore del device di rete ``ppp0`` creato dal `pppoe` di una connessione ADSL per ottenere l'indirizzo IP ottenuto dal provider (prima di farlo aspetta 15 secondi per dare il tempo al ``pppoe`` di negoziare la connessione).Vengono poi eliminati gli esistenti valori ``A`` e ``MX`` per ``home.piffa.net`` (si noti il punto finale dopo *net*) e inseriti quelli attuali. 
 
-Si noti che in questo modo *l'intera* zona piffa.net e suscettibile di essere modificata dal client, che potra' eliminare e inserire qualunque record. E' possibile gestire in modo piu' granulare la zona, ad esempio concedendo al client i privilegi per gestire solo una parte della zona o i tipo di record da gestire.
+Resta da decidere quando richiamare questo script: l'evento che causa l'assegnazione del nuovo IP in questo caso e una nuova connessione ``pppoe``, quindi sarebbe consigliabile inserire lo script nelle routine comprese in ``/etc/ppp/ip-up.d`` (si veda la documentazione di ppp), nel caso questo non desse i risultati sperati (per problemi di connessione) come via estrema si consideri di mettere lo script nella routine del demone ``cron`` in modo che venga eseguito periodicamente (ad esempio ogni giorno).
 
 
 Link suggeriti: