]> git.piffa.net Git - doc/.git/blobdiff - source/servizi.txt
Intro pc
[doc/.git] / source / servizi.txt
index 20c1b98f1bb4aedd833c50014f7f789db11a7963..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.
 
@@ -1150,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.
 
@@ -1173,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: 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.
+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.
 
-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``::
+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 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
 ========
 
@@ -1536,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: