]> git.piffa.net Git - doc/.git/blobdiff - servizi.html
Aggiunto esempio della ocnf di rete
[doc/.git] / servizi.html
index fe6b7411869c01990e83d5d137da3d6222764878..b0afe3b0e3cd1d9821253d8d59e1f4d988480b2a 100644 (file)
@@ -10,7 +10,7 @@
   <meta name="generator" content=
   "Docutils 0.5: http://docutils.sourceforge.net/">
 
-  <title>Servizi Di rete passo a passo</title>
+  <title>Servizi di rete passo a passo</title>
   <style type="text/css">
 
   /*
 
 <body>
   <div class="document" id="servizi-di-rete-passo-a-passo">
-    <h1 class="title">Servizi Di rete passo a passo</h1>
+    <h1 class="title">Servizi di rete passo a passo</h1>
 
     <h2 class="subtitle" id=
     "appunti-sulla-installazione-e-configurazione-dei-servizi">
           <tr class="field">
             <th class="field-name">Version:</th>
 
-            <td class="field-body">0.3</td>
+            <td class="field-body">0.7</td>
           </tr>
         </tbody>
       </table>
       <ul class="auto-toc simple">
         <li>
           <a class="reference internal" href=
-          "#configurazione-sistema" id="id5" name=
-          "id5">1&nbsp;&nbsp;&nbsp;Configurazione sistema</a>
+          "#configurazione-sistema" id="id6" name=
+          "id6">1&nbsp;&nbsp;&nbsp;Configurazione sistema</a>
 
           <ul class="auto-toc">
             <li><a class="reference internal" href=
-            "#solo-per-uso-interno" id="id6" name=
-            "id6">1.1&nbsp;&nbsp;&nbsp;Solo per uso
+            "#solo-per-uso-interno" id="id7" name=
+            "id7">1.1&nbsp;&nbsp;&nbsp;Solo per uso
             interno</a></li>
 
-            <li><a class="reference internal" href="#rete" id="id7"
-            name="id7">1.2&nbsp;&nbsp;&nbsp;Rete</a></li>
+            <li><a class="reference internal" href="#rete" id="id8"
+            name="id8">1.2&nbsp;&nbsp;&nbsp;Rete</a></li>
 
             <li><a class="reference internal" href=
-            "#bash-completion" id="id8" name=
-            "id8">1.3&nbsp;&nbsp;&nbsp;Bash completion</a></li>
+            "#bash-completion" id="id9" name=
+            "id9">1.3&nbsp;&nbsp;&nbsp;Bash completion</a></li>
 
-            <li><a class="reference internal" href="#vim" id="id9"
-            name="id9">1.4&nbsp;&nbsp;&nbsp;Vim</a></li>
+            <li><a class="reference internal" href="#vim" id="id10"
+            name="id10">1.4&nbsp;&nbsp;&nbsp;Vim</a></li>
 
-            <li><a class="reference internal" href="#vnc" id="id10"
-            name="id10">1.5&nbsp;&nbsp;&nbsp;VNC</a></li>
+            <li><a class="reference internal" href="#vnc" id="id11"
+            name="id11">1.5&nbsp;&nbsp;&nbsp;VNC</a></li>
 
             <li><a class="reference internal" href=
-            "#lista-dei-pacchetti-di-base" id="id11" name=
-            "id11">1.6&nbsp;&nbsp;&nbsp;Lista dei pacchetti di
+            "#lista-dei-pacchetti-di-base" id="id12" name=
+            "id12">1.6&nbsp;&nbsp;&nbsp;Lista dei pacchetti di
             base</a></li>
 
             <li>
               <a class="reference internal" href=
-              "#apt-configurazione" id="id12" name=
-              "id12">1.7&nbsp;&nbsp;&nbsp;Apt configurazione</a>
+              "#apt-configurazione" id="id13" name=
+              "id13">1.7&nbsp;&nbsp;&nbsp;Apt configurazione</a>
 
               <ul class="auto-toc">
                 <li><a class="reference internal" href=
-                "#sources-list" id="id13" name=
-                "id13">1.7.1&nbsp;&nbsp;&nbsp;sources.list</a></li>
+                "#sources-list" id="id14" name=
+                "id14">1.7.1&nbsp;&nbsp;&nbsp;sources.list</a></li>
 
                 <li><a class="reference internal" href=
-                "#etc-apt-apt-conf" id="id14" name=
-                "id14">1.7.2&nbsp;&nbsp;&nbsp;/etc/apt/apt.conf</a></li>
+                "#etc-apt-apt-conf" id="id15" name=
+                "id15">1.7.2&nbsp;&nbsp;&nbsp;/etc/apt/apt.conf</a></li>
               </ul>
             </li>
           </ul>
         </li>
 
-        <li><a class="reference internal" href="#squid" id="id15"
-        name="id15">2&nbsp;&nbsp;&nbsp;Squid</a></li>
+        <li>
+          <a class="reference internal" href="#squid" id="id16"
+          name="id16">2&nbsp;&nbsp;&nbsp;Squid</a>
+
+          <ul class="auto-toc">
+            <li>
+              <a class="reference internal" href=
+              "#configurazione-squid-conf" id="id17" name=
+              "id17">2.1&nbsp;&nbsp;&nbsp;Configurazione:
+              squid.conf</a>
+
+              <ul class="auto-toc">
+                <li><a class="reference internal" href="#cache-dir"
+                id="id18" name=
+                "id18">2.1.1&nbsp;&nbsp;&nbsp;Cache_dir</a></li>
+
+                <li><a class="reference internal" href=
+                "#tag-maximum-object-size" id="id19" name=
+                "id19">2.1.2&nbsp;&nbsp;&nbsp;TAG:
+                maximum_object_size</a></li>
+
+                <li><a class="reference internal" href=
+                "#tag-cache-mem" id="id20" name=
+                "id20">2.1.3&nbsp;&nbsp;&nbsp;TAG:
+                cache_mem</a></li>
+
+                <li><a class="reference internal" href=
+                "#tag-minimum-object-size" id="id21" name=
+                "id21">2.1.4&nbsp;&nbsp;&nbsp;TAG:
+                minimum_object_size</a></li>
+              </ul>
+            </li>
+
+            <li>
+              <a class="reference internal" href=
+              "#negoziazione-degli-accesi-al-servizio" id="id22"
+              name="id22">2.2&nbsp;&nbsp;&nbsp;Negoziazione degli
+              accesi al servizio</a>
+
+              <ul class="auto-toc">
+                <li><a class="reference internal" href=
+                "#acl-e-http-access" id="id23" name=
+                "id23">2.2.1&nbsp;&nbsp;&nbsp;ACL e http
+                access</a></li>
+              </ul>
+            </li>
+
+            <li>
+              <a class="reference internal" href="#testare-squid"
+              id="id24" name="id24">2.3&nbsp;&nbsp;&nbsp;Testare
+              Squid</a>
+
+              <ul class="auto-toc">
+                <li><a class="reference internal" href=
+                "#client-wgetrc" id="id25" name=
+                "id25">2.3.1&nbsp;&nbsp;&nbsp;Client:
+                ~/.wgetrc</a></li>
+
+                <li><a class="reference internal" href=
+                "#server-access-log" id="id26" name=
+                "id26">2.3.2&nbsp;&nbsp;&nbsp;Server:
+                access.log</a></li>
+              </ul>
+            </li>
+          </ul>
+        </li>
 
         <li>
-          <a class="reference internal" href="#apache" id="id16"
-          name="id16">3&nbsp;&nbsp;&nbsp;Apache</a>
+          <a class="reference internal" href="#apache" id="id27"
+          name="id27">3&nbsp;&nbsp;&nbsp;Apache</a>
 
           <ul class="auto-toc">
             <li><a class="reference internal" href=
-            "#configurazione-di-apache" id="id17" name=
-            "id17">3.1&nbsp;&nbsp;&nbsp;Configurazione di
+            "#pacchetti-da-installare" id="id28" name=
+            "id28">3.1&nbsp;&nbsp;&nbsp;Pacchetti da
+            installare::</a></li>
+
+            <li><a class="reference internal" href=
+            "#configurazione-di-apache" id="id29" name=
+            "id29">3.2&nbsp;&nbsp;&nbsp;Configurazione di
             Apache</a></li>
 
             <li><a class="reference internal" href="#apache-conf"
-            id="id18" name=
-            "id18">3.2&nbsp;&nbsp;&nbsp;apache.conf</a></li>
+            id="id30" name=
+            "id30">3.3&nbsp;&nbsp;&nbsp;apache.conf</a></li>
 
             <li>
               <a class="reference internal" href=
-              "#installazione-di-php" id="id19" name=
-              "id19">3.3&nbsp;&nbsp;&nbsp;Installazione di PHP</a>
+              "#installazione-di-php" id="id31" name=
+              "id31">3.4&nbsp;&nbsp;&nbsp;Installazione di PHP</a>
 
               <ul class="auto-toc">
                 <li><a class="reference internal" href=
-                "#test-del-modulo-php" id="id20" name=
-                "id20">3.3.1&nbsp;&nbsp;&nbsp;Test del modulo
+                "#test-del-modulo-php" id="id32" name=
+                "id32">3.4.1&nbsp;&nbsp;&nbsp;Test del modulo
                 php</a></li>
 
                 <li><a class="reference internal" href=
-                "#installazione-del-supporto-per-mysql" id="id21"
-                name="id21">3.3.2&nbsp;&nbsp;&nbsp;Installazione
+                "#installazione-del-supporto-per-mysql" id="id33"
+                name="id33">3.4.2&nbsp;&nbsp;&nbsp;Installazione
                 del supporto per Mysql</a></li>
 
                 <li><a class="reference internal" href=
-                "#phpmyadmin" id="id22" name=
-                "id22">3.3.3&nbsp;&nbsp;&nbsp;phpmyadmin</a></li>
+                "#phpmyadmin" id="id34" name=
+                "id34">3.4.3&nbsp;&nbsp;&nbsp;phpmyadmin</a></li>
 
                 <li><a class="reference internal" href=
                 "#installazione-del-supporto-per-postgresql" id=
-                "id23" name=
-                "id23">3.3.4&nbsp;&nbsp;&nbsp;Installazione del
+                "id35" name=
+                "id35">3.4.4&nbsp;&nbsp;&nbsp;Installazione del
                 supporto per Postgresql</a></li>
+
+                <li><a class="reference internal" href=
+                "#phppgadmin" id="id36" name=
+                "id36">3.4.5&nbsp;&nbsp;&nbsp;phppgadmin</a></li>
               </ul>
             </li>
 
             <li>
               <a class="reference internal" href="#virtual-hosts"
-              id="id24" name="id24">3.4&nbsp;&nbsp;&nbsp;Virtual
+              id="id37" name="id37">3.5&nbsp;&nbsp;&nbsp;Virtual
               hosts</a>
 
               <ul class="auto-toc">
                 <li><a class="reference internal" href=
-                "#gestione-dns" id="id25" name=
-                "id25">3.4.1&nbsp;&nbsp;&nbsp;Gestione DNS</a></li>
+                "#gestione-dns" id="id38" name=
+                "id38">3.5.1&nbsp;&nbsp;&nbsp;Gestione DNS</a></li>
 
                 <li><a class="reference internal" href=
-                "#virtual-host" id="id26" name=
-                "id26">3.4.2&nbsp;&nbsp;&nbsp;Virtual host</a></li>
+                "#virtual-host" id="id39" name=
+                "id39">3.5.2&nbsp;&nbsp;&nbsp;Virtual host</a></li>
               </ul>
             </li>
 
-            <li><a class="reference internal" href=
-            "#user-authentication" id="id27" name=
-            "id27">3.5&nbsp;&nbsp;&nbsp;User
-            Authentication</a></li>
+            <li>
+              <a class="reference internal" href=
+              "#negoziazione-accessi" id="id40" name=
+              "id40">3.6&nbsp;&nbsp;&nbsp;Negoziazione accessi</a>
+
+              <ul class="auto-toc">
+                <li><a class="reference internal" href=
+                "#limiti-su-base-ip" id="id41" name=
+                "id41">3.6.1&nbsp;&nbsp;&nbsp;Limiti su base
+                ip</a></li>
+              </ul>
+            </li>
+
+            <li>
+              <a class="reference internal" href=
+              "#user-authentication" id="id42" name=
+              "id42">3.7&nbsp;&nbsp;&nbsp;User Authentication</a>
+
+              <ul class="auto-toc">
+                <li><a class="reference internal" href=
+                "#definire-la-cartella" id="id43" name=
+                "id43">3.7.1&nbsp;&nbsp;&nbsp;Definire la
+                cartella</a></li>
+
+                <li><a class="reference internal" href=
+                "#creazione-del-database-delle-passwords" id="id44"
+                name="id44">3.7.2&nbsp;&nbsp;&nbsp;Creazione del
+                database delle passwords</a></li>
+
+                <li><a class="reference internal" href="#id3" id=
+                "id45" name=
+                "id45">3.7.3&nbsp;&nbsp;&nbsp;Configurazione di
+                Apache</a></li>
+              </ul>
+            </li>
 
             <li><a class="reference internal" href="#cavets" id=
-            "id28" name="id28">3.6&nbsp;&nbsp;&nbsp;Cavets</a></li>
+            "id46" name="id46">3.8&nbsp;&nbsp;&nbsp;Cavets</a></li>
           </ul>
         </li>
 
         <li>
           <a class="reference internal" href="#domain-name-system"
-          id="id29" name="id29">4&nbsp;&nbsp;&nbsp;Domain Name
+          id="id47" name="id47">4&nbsp;&nbsp;&nbsp;Domain Name
           System</a>
 
           <ul class="auto-toc">
             <li><a class="reference internal" href=
-            "#informazioni-di-base-sul-servizio-dns" id="id30"
-            name="id30">4.1&nbsp;&nbsp;&nbsp;Informazioni di base
-            sul servizio DNS.</a></li>
+            "#nomi-di-dominio" id="id48" name=
+            "id48">4.1&nbsp;&nbsp;&nbsp;Nomi di dominio</a></li>
 
             <li><a class="reference internal" href=
-            "#nomi-di-dominio" id="id31" name=
-            "id31">4.2&nbsp;&nbsp;&nbsp;Nomi di dominio</a></li>
-
-            <li><a class="reference internal" href=
-            "#tipologie-di-record" id="id32" name=
-            "id32">4.3&nbsp;&nbsp;&nbsp;Tipologie di
+            "#tipologie-di-record" id="id49" name=
+            "id49">4.2&nbsp;&nbsp;&nbsp;Tipologie di
             record</a></li>
 
             <li><a class="reference internal" href="#utilizzo" id=
-            "id33" name=
-            "id33">4.4&nbsp;&nbsp;&nbsp;Utilizzo</a></li>
+            "id50" name=
+            "id50">4.3&nbsp;&nbsp;&nbsp;Utilizzo</a></li>
 
             <li><a class="reference internal" href=
-            "#risoluzione-dei-nomi-di-dominio" id="id34" name=
-            "id34">4.5&nbsp;&nbsp;&nbsp;Risoluzione dei nomi di
+            "#risoluzione-dei-nomi-di-dominio" id="id51" name=
+            "id51">4.4&nbsp;&nbsp;&nbsp;Risoluzione dei nomi di
             dominio</a></li>
+
+            <li><a class="reference internal" href="#dig" id="id52"
+            name="id52">4.5&nbsp;&nbsp;&nbsp;Dig</a></li>
+
+            <li><a class="reference internal" href="#resolv-conf"
+            id="id53" name=
+            "id53">4.6&nbsp;&nbsp;&nbsp;resolv.conf</a></li>
+
+            <li><a class="reference internal" href="#etc-hosts" id=
+            "id54" name=
+            "id54">4.7&nbsp;&nbsp;&nbsp;/etc/hosts</a></li>
+
+            <li><a class="reference internal" href="#hostname" id=
+            "id55" name=
+            "id55">4.8&nbsp;&nbsp;&nbsp;Hostname</a></li>
           </ul>
         </li>
 
-        <li><a class="reference internal" href="#dnsmasq" id="id35"
-        name="id35">5&nbsp;&nbsp;&nbsp;DNSmasq</a></li>
+        <li>
+          <a class="reference internal" href="#dnsmasq" id="id56"
+          name="id56">5&nbsp;&nbsp;&nbsp;DNSmasq</a>
+
+          <ul class="auto-toc">
+            <li><a class="reference internal" href=
+            "#configurazione" id="id57" name=
+            "id57">5.1&nbsp;&nbsp;&nbsp;Configurazione</a></li>
+
+            <li><a class="reference internal" href="#dhcp" id=
+            "id58" name="id58">5.2&nbsp;&nbsp;&nbsp;DHCP</a></li>
+
+            <li><a class="reference internal" href="#dns-cache" id=
+            "id59" name="id59">5.3&nbsp;&nbsp;&nbsp;DNS
+            cache</a></li>
+
+            <li><a class="reference internal" href="#dhcpd" id=
+            "id60" name="id60">5.4&nbsp;&nbsp;&nbsp;DHCPd</a></li>
+          </ul>
+        </li>
 
         <li>
-          <a class="reference internal" href="#samba" id="id36"
-          name="id36">6&nbsp;&nbsp;&nbsp;Samba</a>
+          <a class="reference internal" href="#samba" id="id61"
+          name="id61">6&nbsp;&nbsp;&nbsp;Samba</a>
 
           <ul class="auto-toc">
             <li><a class="reference internal" href="#pacchetti" id=
-            "id37" name=
-            "id37">6.1&nbsp;&nbsp;&nbsp;Pacchetti</a></li>
+            "id62" name=
+            "id62">6.1&nbsp;&nbsp;&nbsp;Pacchetti</a></li>
 
             <li><a class="reference internal" href=
-            "#passwords-e-autenticazione" id="id38" name=
-            "id38">6.2&nbsp;&nbsp;&nbsp;Passwords e
+            "#passwords-e-autenticazione" id="id63" name=
+            "id63">6.2&nbsp;&nbsp;&nbsp;Passwords e
             autenticazione</a></li>
 
             <li><a class="reference internal" href=
-            "#creazione-utenti" id="id39" name=
-            "id39">6.3&nbsp;&nbsp;&nbsp;Creazione Utenti</a></li>
+            "#creazione-utenti" id="id64" name=
+            "id64">6.3&nbsp;&nbsp;&nbsp;Creazione Utenti</a></li>
 
             <li>
               <a class="reference internal" href=
-              "#creare-la-condivisione" id="id40" name=
-              "id40">6.4&nbsp;&nbsp;&nbsp;Creare la
+              "#creare-la-condivisione" id="id65" name=
+              "id65">6.4&nbsp;&nbsp;&nbsp;Creare la
               condivisione</a>
 
               <ul class="auto-toc">
                 <li><a class="reference internal" href=
                 "#sicurezza-permessi-di-esecuzione-sul-server" id=
-                "id41" name=
-                "id41">6.4.1&nbsp;&nbsp;&nbsp;Sicurezza: permessi
+                "id66" name=
+                "id66">6.4.1&nbsp;&nbsp;&nbsp;Sicurezza: permessi
                 di esecuzione sul server</a></li>
               </ul>
             </li>
 
             <li><a class="reference internal" href=
             "#configurazione-dell-applicativo-samba-vero-e-proprio"
-            id="id42" name=
-            "id42">6.5&nbsp;&nbsp;&nbsp;Configurazione
+            id="id67" name=
+            "id67">6.5&nbsp;&nbsp;&nbsp;Configurazione
             dell'applicativo Samba vero e proprio.</a></li>
 
             <li><a class="reference internal" href=
-            "#testare-il-servizio" id="id43" name=
-            "id43">6.6&nbsp;&nbsp;&nbsp;Testare il
+            "#testare-il-servizio" id="id68" name=
+            "id68">6.6&nbsp;&nbsp;&nbsp;Testare il
             Servizio</a></li>
           </ul>
         </li>
 
-        <li><a class="reference internal" href="#note" id="id44"
-        name="id44">7&nbsp;&nbsp;&nbsp;NOTE</a></li>
+        <li>
+          <a class="reference internal" href=
+          "#server-di-posta-postfix" id="id69" name=
+          "id69">7&nbsp;&nbsp;&nbsp;Server di posta: Postfix</a>
+
+          <ul class="auto-toc">
+            <li>
+              <a class="reference internal" href="#imap-e-pop" id=
+              "id70" name="id70">7.1&nbsp;&nbsp;&nbsp;Imap e
+              pop</a>
+
+              <ul class="auto-toc">
+                <li><a class="reference internal" href=
+                "#web-client" id="id71" name=
+                "id71">7.1.1&nbsp;&nbsp;&nbsp;Web client</a></li>
+              </ul>
+            </li>
+          </ul>
+        </li>
+
+        <li>
+          <a class="reference internal" href="#firewall" id="id72"
+          name="id72">8&nbsp;&nbsp;&nbsp;Firewall</a>
+
+          <ul class="auto-toc">
+            <li><a class="reference internal" href="#links" id=
+            "id73" name="id73">8.1&nbsp;&nbsp;&nbsp;Links</a></li>
+
+            <li><a class="reference internal" href="#ipfilter" id=
+            "id74" name=
+            "id74">8.2&nbsp;&nbsp;&nbsp;Ipfilter</a></li>
+
+            <li>
+              <a class="reference internal" href=
+              "#progettazione-di-un-firewall" id="id75" name=
+              "id75">8.3&nbsp;&nbsp;&nbsp;Progettazione di un
+              firewall</a>
+
+              <ul class="auto-toc">
+                <li><a class="reference internal" href=
+                "#collocazione" id="id76" name=
+                "id76">8.3.1&nbsp;&nbsp;&nbsp;Collocazione</a></li>
+
+                <li><a class="reference internal" href=
+                "#policy-di-default" id="id77" name=
+                "id77">8.3.2&nbsp;&nbsp;&nbsp;Policy di
+                default</a></li>
+
+                <li><a class="reference internal" href="#hardware"
+                id="id78" name=
+                "id78">8.3.3&nbsp;&nbsp;&nbsp;Hardware</a></li>
+              </ul>
+            </li>
+
+            <li><a class="reference internal" href=
+            "#percorso-dei-pacchetti-tra-tabelle-e-catene" id=
+            "id79" name="id79">8.4&nbsp;&nbsp;&nbsp;Percorso dei
+            pacchetti tra tabelle e catene</a></li>
+
+            <li>
+              <a class="reference internal" href=
+              "#concetti-di-base" id="id80" name=
+              "id80">8.5&nbsp;&nbsp;&nbsp;Concetti di base</a>
+
+              <ul class="auto-toc">
+                <li><a class="reference internal" href=
+                "#tabelle-catene-regole" id="id81" name=
+                "id81">8.5.1&nbsp;&nbsp;&nbsp;Tabelle, catene,
+                regole</a></li>
+
+                <li><a class="reference internal" href="#match" id=
+                "id82" name=
+                "id82">8.5.2&nbsp;&nbsp;&nbsp;Match</a></li>
+
+                <li><a class="reference internal" href="#targets"
+                id="id83" name=
+                "id83">8.5.3&nbsp;&nbsp;&nbsp;Targets</a></li>
+              </ul>
+            </li>
+
+            <li><a class="reference internal" href=
+            "#tabella-filter" id="id84" name=
+            "id84">8.6&nbsp;&nbsp;&nbsp;Tabella Filter</a></li>
+
+            <li><a class="reference internal" href=
+            "#flush-automatico-per-macchine-remote" id="id85" name=
+            "id85">8.7&nbsp;&nbsp;&nbsp;Flush automatico per
+            macchine remote</a></li>
+
+            <li><a class="reference internal" href=
+            "#gestione-regole-rules" id="id86" name=
+            "id86">8.8&nbsp;&nbsp;&nbsp;Gestione regole
+            (rules)</a></li>
+
+            <li>
+              <a class="reference internal" href=
+              "#salvataggio-regole" id="id87" name=
+              "id87">8.9&nbsp;&nbsp;&nbsp;Salvataggio regole</a>
+
+              <ul class="auto-toc">
+                <li><a class="reference internal" href=
+                "#iptables-save" id="id88" name=
+                "id88">8.9.1&nbsp;&nbsp;&nbsp;Iptables-save</a></li>
+
+                <li><a class="reference internal" href=
+                "#iptables-restore" id="id89" name=
+                "id89">8.9.2&nbsp;&nbsp;&nbsp;Iptables-restore</a></li>
+              </ul>
+            </li>
+          </ul>
+        </li>
+
+        <li><a class="reference internal" href="#note" id="id90"
+        name="id90">9&nbsp;&nbsp;&nbsp;NOTE</a></li>
       </ul>
     </div>
 
 
     <div class="section" id="configurazione-sistema">
       <h1><a class="toc-backref" href=
-      "#id5">1&nbsp;&nbsp;&nbsp;Configurazione sistema</a></h1>
+      "#id6">1&nbsp;&nbsp;&nbsp;Configurazione sistema</a></h1>
 
       <div class="section" id="solo-per-uso-interno">
         <h2><a class="toc-backref" href=
-        "#id6">1.1&nbsp;&nbsp;&nbsp;Solo per uso interno</a></h2>
+        "#id7">1.1&nbsp;&nbsp;&nbsp;Solo per uso interno</a></h2>
 
         <p>Impostazioni di base per la configurazione del sistema
         operativo e della rete nel laboratorio 208 facente parte
 
         <p>Qui riportati per comodita' degli studenti (e del
         docente che non sara' <strong>mai piu'</strong> costretto a
-        ripeterli! )</p>
+        ripeterli continuamente! ). Gli altri lettori potranno
+        tenerli presenti per cercare di comprendere gli esempi nel
+        testo. Ad esempio: quando leggerete <tt class=
+        "docutils literal"><span class=
+        "pre">10.10.208.254:3128</span></tt> saprete che si tratta
+        del nostro <em>proxy http</em>, stara' quindi a voi
+        sostituire i dati con gli <em>ip</em> della vostra
+        rete.</p>
       </div>
 
       <div class="section" id="rete">
         <h2><a class="toc-backref" href=
-        "#id7">1.2&nbsp;&nbsp;&nbsp;Rete</a></h2>
+        "#id8">1.2&nbsp;&nbsp;&nbsp;Rete</a></h2>
 
         <p>Parametri della rete attualmente in uso:</p>
 
         <table border="1" class="docutils">
           <colgroup>
-            <col width="45%">
-            <col width="55%">
+            <col width="42%">
+            <col width="58%">
           </colgroup>
 
           <tbody valign="top">
 
               <td>10.10.208.250 persistente</td>
             </tr>
+
+            <tr>
+              <td>proxy http</td>
+
+              <td>10.10.208.254:3128</td>
+            </tr>
           </tbody>
         </table>
 
         Andrea non e' in aula (o ancora peggio non c'e' il suo
         portatile Net) gli studenti dovranno darsi un indirizzo ip
         manualmente e disabilitare il proxy (che pero' e
-        trasparente, quindi fate pure come se non ci fosse ;) .</p>
+        trasparente, quindi fate pure come se non ci fosse ;) .
+        Questo in attesa che si sappia se sara' nuovamente
+        utilizzabile il vecchio server Bender.</p>
       </div>
 
       <div class="section" id="bash-completion">
         <h2><a class="toc-backref" href=
-        "#id8">1.3&nbsp;&nbsp;&nbsp;Bash completion</a></h2>
+        "#id9">1.3&nbsp;&nbsp;&nbsp;Bash completion</a></h2>
 
         <p>Il completamento automatico della shell (che si attiva
         premendo il tasto tab una o due volte mentre si sta
@@ -716,7 +975,7 @@ umask 022
 
       <div class="section" id="vim">
         <h2><a class="toc-backref" href=
-        "#id9">1.4&nbsp;&nbsp;&nbsp;Vim</a></h2>
+        "#id10">1.4&nbsp;&nbsp;&nbsp;Vim</a></h2>
 
         <p>Vim e' l'editor di testo preferito dai sistemisti,
         quindi sara' conveniente impostare fin da subito alcune
@@ -791,7 +1050,7 @@ e modificare il file di configurazione generale ``/etc/vim/vimrc`` ::
 
       <div class="section" id="vnc">
         <h2><a class="toc-backref" href=
-        "#id10">1.5&nbsp;&nbsp;&nbsp;VNC</a></h2>
+        "#id11">1.5&nbsp;&nbsp;&nbsp;VNC</a></h2>
 
         <p>I Virtual Network Computing (o VNC) sono software di
         controllo remoto e servono per amministrare il proprio
@@ -849,7 +1108,7 @@ exit
 
       <div class="section" id="lista-dei-pacchetti-di-base">
         <h2><a class="toc-backref" href=
-        "#id11">1.6&nbsp;&nbsp;&nbsp;Lista dei pacchetti di
+        "#id12">1.6&nbsp;&nbsp;&nbsp;Lista dei pacchetti di
         base</a></h2>
 
         <p>I pacchetti installati generalmente <a class=
@@ -888,7 +1147,7 @@ kde-core kdm kde-i18n-it xorg vim less xtightvncviewer
 
       <div class="section" id="apt-configurazione">
         <h2><a class="toc-backref" href=
-        "#id12">1.7&nbsp;&nbsp;&nbsp;Apt configurazione</a></h2>
+        "#id13">1.7&nbsp;&nbsp;&nbsp;Apt configurazione</a></h2>
 
         <p>Vediamo i due file principali di apt:</p>
 
@@ -902,7 +1161,7 @@ kde-core kdm kde-i18n-it xorg vim less xtightvncviewer
 
         <div class="section" id="sources-list">
           <h3><a class="toc-backref" href=
-          "#id13">1.7.1&nbsp;&nbsp;&nbsp;sources.list</a></h3>
+          "#id14">1.7.1&nbsp;&nbsp;&nbsp;sources.list</a></h3>
 
           <p>Questo file contiene i sorgenti da cui <em>apt</em>
           preleva i pacchetti da installare tramite <em>dpkg</em>,
@@ -967,12 +1226,12 @@ deb-src http://volatile.debian.org/debian-volatile Lenny/volatile main
 
         <div class="section" id="etc-apt-apt-conf">
           <h3><a class="toc-backref" href=
-          "#id14">1.7.2&nbsp;&nbsp;&nbsp;/etc/apt/apt.conf</a></h3>
+          "#id15">1.7.2&nbsp;&nbsp;&nbsp;/etc/apt/apt.conf</a></h3>
 
           <p>Questo file contiene le opzioni di apt, come ad
           esempio il proxy:</p>
           <pre class="literal-block">
-Acquire::http::Proxy "http://10.10.208.254:3128"
+Acquire::http::Proxy "http://10.10.208.254:3128";
 </pre>
 
           <p>Si tenga conto che se si imposta un proxy per apt sul
@@ -985,25 +1244,475 @@ Acquire::http::Proxy "http://10.10.208.254:3128"
 
     <div class="section" id="squid">
       <h1><a class="toc-backref" href=
-      "#id15">2&nbsp;&nbsp;&nbsp;Squid</a></h1>
+      "#id16">2&nbsp;&nbsp;&nbsp;Squid</a></h1>
+
+      <p>Squid e' un proxy cache http (ma anche FTP e https)
+      robusto e strutturato, puo' essere usato sia in reti
+      relativamente piccole grazie alla semplicita' di
+      configurazione che in scenari piu' complessi grazie alla
+      possibilita' di gestirne in modo granulare le risorse
+      partendo dalle configurazioni piu' semplici per la semplice
+      <em>condivisione della navigazione</em> internet, 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 <em>ipfilter</em> limitato al 2') nel l
+      bilanciamento del carico tra piu' hosts.</p>
+
+      <dl class="docutils">
+        <dt>Inoltre svolge la funzione di <em>anonymizer</em>:</dt>
+
+        <dd>nasconde i client http alla rete internet: risulta solo
+        il server proxy nei log dei server web frequentati dagli
+        utenti di Squid.</dd>
+      </dl>
+
+      <p>Cosa a volte sottovalutata, squid permette la navigazione
+      web a una rete basata su <em>indirizzi ip privati</em> (es
+      una 192.168.0.0/24). E se la rete privata deve <em>solo
+      navigare</em> in internet, non serve un <em>NAT</em> od
+      altro, basta il solo Squid. Per altro non servira' neanche un
+      servizio DNS dato che <em>sara' il solo squid a risolvere i
+      nomi di dominio</em> per i suoi client http.</p>
+
+      <p>Squid ascolta di default sulla porta 3128, per impostare
+      <em>apt</em> per utilizzarlo si aggiunga ad <tt class=
+      "docutils literal"><span class=
+      "pre">/etc/apt/apt.conf</span></tt></p>
+      <pre class="literal-block">
+Acquire::http::Proxy "10.10.208.254:3128";
+</pre>
+
+      <p>Per installare Squid si usino i pacchetti:</p>
+      <pre class="literal-block">
+squid3
+</pre>
+
+      <div class="section" id="configurazione-squid-conf">
+        <h2><a class="toc-backref" href=
+        "#id17">2.1&nbsp;&nbsp;&nbsp;Configurazione:
+        squid.conf</a></h2>
+
+        <p>Segue un estratto delle direttive principali viste in
+        aula presenti nel file di configurazione <tt class=
+        "docutils literal"><span class=
+        "pre">/etc/squid3/squid.conf</span></tt> .</p>
+
+        <div class="section" id="cache-dir">
+          <h3><a class="toc-backref" href=
+          "#id18">2.1.1&nbsp;&nbsp;&nbsp;Cache_dir</a></h3>
+
+          <p>Cache dir serve per impostare dimensione e percorso
+          della cache creata sul supporto di storaggio. Essendo la
+          dimensione di default della cache pari a <tt class=
+          "docutils literal"><span class="pre">~100</span>
+          <span class="pre">MB</span></tt> e' altamente
+          consigliabili aumentare questo parametro se si vuole
+          poter utilizzare la funzione di <em>cache</em> http del
+          software.</p>
+
+          <p>La dimensione ovviamente dipendera' dallo spazio
+          disponibile, dimensioni tipiche e massime degli oggetti
+          che si vuole tenere in cache (un solo file <em>.iso e'
+          circa ``700 MB``, il pacchetto *Openoffice.org</em> cira
+          <tt class="docutils literal"><span class="pre">150</span>
+          <span class="pre">MB</span></tt>, un pacchetto debian
+          circa <tt class="docutils literal"><span class=
+          "pre">20</span> <span class="pre">MB</span></tt>), numero
+          dei client.</p>
+
+          <p>Si presti poi attenzione alla natura dei dati che
+          saranno salvati nella cache: sono tutti dati facilmenti
+          sostituibili (gli originali sono <em>on-line</em>) la cui
+          perdita non arreca danni permanenti. Questo rende la
+          cache di Squid un possibile candidato ad un <em>RAID
+          stripe</em> (livello 0), 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
+          <em>garantire la disponibilita' del servizio</em> (se il
+          RAID stripe dovesse rompersi gli utenti non potrebbero
+          piu' navigare, cosa che per natura dello stripe e'
+          maggiormente probabile rispetto ad un <em>mirror</em> o a
+          un filesytem <em>normale</em>) con un RAID mirror o
+          5.</p>
+
+          <p>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 <em>noatime</em> per renderlo piu' veloce,
+          che si usi o meno il journal dipende dalle preferenze:
+          affidabilita' oppure prestazioni):</p>
+
+          <p>/etc/fstab</p>
+          <pre class="literal-block">
+...
+# Filesystem per Squid http cache
+/dev/md3/       /var/spool/squid/       ext3,noexec,nosuid,noatime  0 3
+</pre>
+
+          <p>Ora possiamo impostare la cache direttamente nel file
+          <tt class="docutils literal"><span class=
+          "pre">/etc/squid3/squid.conf</span></tt>:</p>
+          <pre class="literal-block">
+#TAG: cache_dir (riga 1628)
+#       Usage:
+#
+#       cache_dir Type Directory-Name Fs-specific-data [options]
+#
+#       You can specify multiple cache_dir lines to spread the
+#       cache among different disk partitions.
+#       ...
+#Default:
+# cache_dir ufs /var/spool/squid3 100 16 256
+cache_dir aufs /var/spool/squid3 300 24 256
+#         algoritmo
+#              path della cache
+#                                dimensione in MB
+#                                    directory primo livello
+#                                       secondo livello di directory
+</pre>
+
+          <p>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 (per lo meno se si <em>aumenta il numero delle
+          directory di primo o secondo livello). Tipicamente e'
+          opportuno cancellare (se si ha *ridotto</em> il numero
+          delle diectory) la vecchia cache e poi generare una nuova
+          struttura. Se si vuole <em>star nel sicuro</em> ogni
+          volta che si modifica l'impostazione delle directory
+          <em>si svuoti la vecchia cache e se ne generi una
+          nuova</em></p>
+          <pre class="literal-block">
+# /etc/init.d/squid3 stop
+# rm -r /var/spool/squid3/??
+# squid3 -z
+# /etc/init.d/squid3 start
+</pre>
+        </div>
+
+        <div class="section" id="tag-maximum-object-size">
+          <h3><a class="toc-backref" href=
+          "#id19">2.1.2&nbsp;&nbsp;&nbsp;TAG:
+          maximum_object_size</a></h3>
+
+          <p>Questa direttiva imposta la dimensione massima degli
+          oggetti che vengono slvati sul supporto di storaggio,
+          oggetti di dimensioni superiori saranno comunque
+          scaricati ma non tenuti in cache.</p>
+
+          <p>TAG: maximum_object_size (1760):</p>
+          <pre class="literal-block">
+# TAG: maximum_object_size (1760)
+#       Objects larger than this size will NOT be saved on disk.  The
+#       value is specified in kilobytes, and the default is 4MB.  If
+#       you wish to get a high BYTES hit ratio, you should probably
+#       increase this (one 32 MB object hit counts for 3200 10KB
+#       hits).  If you wish to increase speed more than your want to
+#       save bandwidth you should leave this low.
+#
+#       NOTE: if using the LFUDA replacement policy you should increase
+#       this value to maximize the byte hit rate improvement of LFUDA!
+#       See replacement_policy below for a discussion of this policy.
+#
+#Default:
+# maximum_object_size 4096 KB
+maximum_object_size 150 MB
+</pre>
+        </div>
+
+        <div class="section" id="tag-cache-mem">
+          <h3><a class="toc-backref" href=
+          "#id20">2.1.3&nbsp;&nbsp;&nbsp;TAG: cache_mem</a></h3>
+
+          <p><em>Cache_mem</em> 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
+          iimportanti girano sulla stessa macchina?). Questo
+          paramentro influisce sulle prestazioni e sul degrado dei
+          supporti di storaggio (sopratutto se magnetici).</p>
+
+          <p>Se si stesse pensando di usare dell'hardware
+          <em>embedded</em> a basse prestazioni / consumo per
+          realizzare un server gateway / NAT / Squid si tenga
+          presente che Squid e' relativamente esoso di risorse:
+          avra' bisogno di una macchina con <tt class=
+          "docutils literal"><span class="pre">~25MB</span></tt>
+          (MegaByte) di RAM e <em>~150MHZ di CPU ARM</em> per
+          servire decorosamente una decina di client http su una
+          rete ethernet 10/100. In questo caso non fate scendere
+          <tt class="docutils literal"><span class=
+          "pre">cache_mem</span></tt> sotto i <tt class=
+          "docutils literal"><span class="pre">2/4</span>
+          <span class="pre">MB</span></tt> pena un accesso continuo
+          al supporto di storaggio.</p>
+
+          <p>Se invece si disponesse di una macchina dedicata a
+          Squid con gigabytes di RAM non si esiti a dedicarne buona
+          parte a <em>cache_mem</em>.</p>
+
+          <p>TAG: cache_mem (1566):</p>
+          <pre class="literal-block">
+#       'cache_mem' specifies the ideal amount of memory to be used
+#       for:
+#               * In-Transit objects
+#               * Hot Objects
+#               * Negative-Cached objects
+#Default:
+# cache_mem 8 M
+cache_mem 100 M
+</pre>
+        </div>
+
+        <div class="section" id="tag-minimum-object-size">
+          <h3><a class="toc-backref" href=
+          "#id21">2.1.4&nbsp;&nbsp;&nbsp;TAG:
+          minimum_object_size</a></h3>
+
+          <p>Questo parametro imposta la dimensione minima degli
+          oggetti salvati nella cache. Settato a <tt class=
+          "docutils literal"><span class="pre">0</span></tt> o a
+          valori molto piccoli puo' influire negativamente sulla
+          deframmentazione del filesytem e consumare un numero
+          elevato di <em>inode</em> (cosa non piu' importante con
+          ext4 o altri filesytem).</p>
+
+          <p>TAG: minimum_object_size:</p>
+          <pre class="literal-block">
+#  TAG: minimum_object_size     (bytes)
+#       Objects smaller than this size will NOT be saved on disk.  The
+#       value is specified in kilobytes, and the default is 0 KB, which
+#       means there is no minimum.
+#
+#Default:
+# minimum_object_size 0 KB
+minimum_object_size 0 KB
+</pre>
+        </div>
+      </div>
+
+      <div class="section" id=
+      "negoziazione-degli-accesi-al-servizio">
+        <h2><a class="toc-backref" href=
+        "#id22">2.2&nbsp;&nbsp;&nbsp;Negoziazione degli accesi al
+        servizio</a></h2>
+
+        <p>Squid e' uno di quei servizi soggetto a problemi di tipo
+        <em>open relay</em> , si deve quindi limitare la rete che
+        puo' accedere al servizio.</p>
+
+        <dl class="docutils">
+          <dt>Open Relay:</dt>
+
+          <dd>Un servizio a cui possono accedere tutti
+          indiscriminatamente. La cosa puo' andare bene per servizi
+          come i server web, che aspirano per loro natura al
+          maggior numero possibile di utenti, ma non a servizi come
+          i proxy http oppure ai server di posta elettronica (che
+          permetterebbero l'invio di SPAM).</dd>
+        </dl>
+
+        <p>Generalmente non volete che il vostro proxy http venga
+        usato da persone sconosciute le quali sostanzialmente
+        <em>navigherebbero sotto l'identita' del vostro proxy</em>
+        (probabilmente per visionare materiali che non vorrebbero
+        fossero ricondotti direttamente a loro, per motivi che sta
+        a voi prendere in considerazione) consumando traffico e
+        banda della vostra connessione a internet. Tenere Squid in
+        modalita' <em>Open relay</em> e' al giorno d'oggi un buon
+        modo per essere inseriti in una <em>black list</em>.</p>
+
+        <p>Per poter limitare gli accessi a Squid dal punto di
+        vista dell'applicazione (quarto livello TCP/IP) si
+        identifichera' inizialmente l'entita' <em>rete locale</em>
+        (es: <tt class="docutils literal"><span class=
+        "pre">localnet</span></tt>) con una ACL di tipo
+        <em>src</em> (indirizi IP sorgenti) indicando la <em>classe
+        / range di ip</em> della nostra rete.</p>
+
+        <blockquote>
+          Dopodiche l'accesso (<tt class=
+          "docutils literal"><span class=
+          "pre">http_access</span></tt>) si concedera'
+          (<em>allow</em>) a questa entita' (es: <tt class=
+          "docutils literal"><span class=
+          "pre">localnet</span></tt>) negando chiunque altro.
+        </blockquote>
+
+        <p>Per maggiori dettagli sulla sintassi utilizzabile per
+        esprimere i range di ip: <a class="reference external"
+        href="http://www.visolve.com/squid/squid24s1/access_controls.php">
+        http://www.visolve.com/squid/squid24s1/access_controls.php</a></p>
+
+        <div class="section" id="acl-e-http-access">
+          <h3><a class="toc-backref" href=
+          "#id23">2.2.1&nbsp;&nbsp;&nbsp;ACL e http access</a></h3>
+
+          <p>Si proceda a creare una <tt class=
+          "docutils literal"><span class="pre">ACL</span></tt> di
+          tipo <tt class="docutils literal"><span class=
+          "pre">src</span></tt> per identificare la lostra rete
+          locale, poi si abiliti l'accesso a questa con la
+          direttiva <tt class="docutils literal"><span class=
+          "pre">http_access</span></tt>. Tutto quanto non e'
+          espressamente autorizzato viene poi negato da un
+          <tt class="docutils literal"><span class=
+          "pre">http_access</span> <span class="pre">deny</span>
+          <span class="pre">all</span></tt> finale.</p>
+          <pre class="literal-block">
+#  TAG: acl
+#       Defining an Access List
+#
+#       Every access list definition must begin with an aclname and acltype,
+#       followed by either type-specific arguments or a quoted filename that
+#       they are read from.
+#       ...
+#       ***** ACL TYPES AVAILABLE *****
+#
+#       acl aclname src ip-address/netmask ...          # clients IP address
+# riga 588
+
+# Example rule allowing access from your local networks.
+# Adapt to list your (internal) IP networks from where browsing
+# should be allowed
+#acl localnet src 10.0.0.0/8    # RFC1918 possible internal network
+#acl localnet src 172.16.0.0/12 # RFC1918 possible internal network
+#acl localnet src 192.168.0.0/16        # RFC1918 possible internal network
+#
+acl localnet src 10.10.208.0/24
+
+# Riga 606
+#  TAG: http_access
+#       Allowing or Denying access based on defined access lists
+#
+#       Access to the HTTP port:
+#       http_access allow|deny [!]aclname ...
+#
+#       NOTE on default values:
+#
+#       If there are no "access" lines present, the default is to deny
+#       the request.
+
+# Riga 643
+# INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR CLIENTS
+
+# Example rule allowing access from your local networks.
+# Adapt localnet in the ACL section to list your (internal) IP networks
+# from where browsing should be allowed
+#http_access allow localnet
+http_access allow localnet
+</pre>
+        </div>
+      </div>
+
+      <div class="section" id="testare-squid">
+        <h2><a class="toc-backref" href=
+        "#id24">2.3&nbsp;&nbsp;&nbsp;Testare Squid</a></h2>
+
+        <p>Configurato squid e' fondamentale testarne il corretto
+        funzionamento per assicurarsi di non aver creato un
+        <em>open-relay</em>. Per fare dei test significativi serve
+        utilizzare degli host remoti: ci si connetta via ssh a
+        questi per poi utilizzare <tt class=
+        "docutils literal"><span class="pre">wget</span></tt> da
+        riga di comando.</p>
+
+        <div class="section" id="client-wgetrc">
+          <h3><a class="toc-backref" href=
+          "#id25">2.3.1&nbsp;&nbsp;&nbsp;Client: ~/.wgetrc</a></h3>
+
+          <p>Nel file <tt class="docutils literal"><span class=
+          "pre">.wgetrc</span></tt> (si noti il punto iniziale: e'
+          un file nascosto) si puo' impostare il proxy per wget. Si
+          utililizzi l'indirizzo ip del server che si vuole
+          testare, e si seguano i log <tt class=
+          "docutils literal"><span class=
+          "pre">/var/log/squid3/access.log</span></tt> sul
+          server.</p>
+
+          <p>Da notare che la prova va' fatta su una macchina della
+          rete che si vuole testare, non da <em>localhost</em>. Per
+          altro se si utilizzasse <em>direttamente</em> <tt class=
+          "docutils literal"><span class=
+          "pre">localhost</span></tt> non si testerebbe la
+          <em>ACL</em> predisposta, dato che si si rientrerebbe
+          nella ACL (pre-configurata di default) <tt class=
+          "docutils literal"><span class=
+          "pre">localhost</span></tt>.</p>
+
+          <dl class="docutils">
+            <dt>.wgetrc</dt>
+
+            <dd>http_proxy=10.10.208.178:3128</dd>
+          </dl>
+
+          <p>Si proceda a scaricare dal client scelto con un
+          wget:</p>
+          <pre class="literal-block">
+wget http://www.google.it
+</pre>
+        </div>
+
+        <div class="section" id="server-access-log">
+          <h3><a class="toc-backref" href=
+          "#id26">2.3.2&nbsp;&nbsp;&nbsp;Server:
+          access.log</a></h3>
+
+          <p>Si puo' controllare il corretto funzionamento del
+          server seguendo i log di accesso a Squid:</p>
+          <pre class="literal-block">
+# tail -f /var/log/squid3/access.log
+</pre>
+
+          <p>In oltre e' possibile configurare diversi
+          <em>analizzatori di log</em> come <tt class=
+          "docutils literal"><span class=
+          "pre">Webalizer</span></tt> per studiare i log di
+          Squid.</p>
+        </div>
+      </div>
     </div>
 
     <div class="section" id="apache">
       <h1><a class="toc-backref" href=
-      "#id16">3&nbsp;&nbsp;&nbsp;Apache</a></h1>
+      "#id27">3&nbsp;&nbsp;&nbsp;Apache</a></h1>
+
+      <p>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.</p>
+
+      <p>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
+      dÃ&nbsp; vita al World Wide Web, uno dei servizi piu'
+      utilizzati di Internet.</p>
+
+      <div class="section" id="pacchetti-da-installare">
+        <h2><a class="toc-backref" href=
+        "#id28">3.1&nbsp;&nbsp;&nbsp;Pacchetti da
+        installare::</a></h2>
 
-      <p>Pacchetti da installare:</p>
-      <pre class="literal-block">
-apache2 apache2-doc
-</pre>
+        <blockquote>
+          apache2 apache2-doc
+        </blockquote>
 
-      <p>Con la release 2.0 di Apache viene automaticamente resa
-      disponibile anche la versione SSL (Secure Socket Layer,
-      cpnnessioni criptate ) del web server.</p>
+        <p>Con la release 2.0 di Apache viene automaticamente resa
+        disponibile anche la versione SSL (Secure Socket Layer,
+        cpnnessioni criptate ) del web server.</p>
+      </div>
 
       <div class="section" id="configurazione-di-apache">
         <h2><a class="toc-backref" href=
-        "#id17">3.1&nbsp;&nbsp;&nbsp;Configurazione di
+        "#id29">3.2&nbsp;&nbsp;&nbsp;Configurazione di
         Apache</a></h2>
 
         <p>I file di configurazione di apache si trovano nella
@@ -1016,10 +1725,14 @@ apache2 apache2-doc
         <dl class="docutils">
           <dt>apache2.conf</dt>
 
-          <dd>File di configurazione principale del servizio
-          httpd.conf e' il vecchio file di configurazione di
-          Apache1, presente per motivi di retrocompatibilita' e'
-          generalemente vuoto.</dd>
+          <dd>
+            <p class="first">File di configurazione principale del
+            servizio.</p>
+
+            <p class="last">httpd.conf e' il vecchio file di
+            configurazione di Apache1, presente per motivi di
+            retrocompatibilita' e' generalemente vuoto.</p>
+          </dd>
 
           <dt>ports.conf</dt>
 
@@ -1058,7 +1771,7 @@ apache2 apache2-doc
 
       <div class="section" id="apache-conf">
         <h2><a class="toc-backref" href=
-        "#id18">3.2&nbsp;&nbsp;&nbsp;apache.conf</a></h2>
+        "#id30">3.3&nbsp;&nbsp;&nbsp;apache.conf</a></h2>
 
         <p>File di configurazione del servizio Apache, contiene le
         impostazioni generiche (ad esempio utilizzo della RAM e
@@ -1070,7 +1783,7 @@ apache2 apache2-doc
         <p>Guardiamo alcune direttive interessanti:</p>
 
         <dl class="docutils">
-          <dt>timeout</dt>
+          <dt>Timeout</dt>
 
           <dd>Numero di secondi da aspettare prima di chiudere la
           connessione con il client. Questo parametro serve a
@@ -1085,9 +1798,9 @@ apache2 apache2-doc
           alle connessioni persistenti (http 1.1) permettono al
           server di rispondere a piu' richieste dei client mediante
           la stessa connessione. Il protocoll http per sua natura
-          e' connectio-less e senza stato, quindi ogni risorsa
-          richiesta (per pagine web si pensi ad esempio alle
-          immagini) dal client necessita di una connessione
+          e' senza stato (<em>statelessi</em> ), quindi ogni
+          risorsa richiesta (per pagine web si pensi ad esempio
+          alle immagini) dal client necessita di una connessione
           autonoma. Keep-alive permette di ottimizzare la
           connessione anche fino al 50% a seconda delle situazioni
           e contenuti.</dd>
@@ -1115,7 +1828,7 @@ apache2 apache2-doc
 
       <div class="section" id="installazione-di-php">
         <h2><a class="toc-backref" href=
-        "#id19">3.3&nbsp;&nbsp;&nbsp;Installazione di PHP</a></h2>
+        "#id31">3.4&nbsp;&nbsp;&nbsp;Installazione di PHP</a></h2>
 
         <p>Pacchetti da installare: <tt class=
         "docutils literal"><span class="pre">php5</span>
@@ -1123,7 +1836,7 @@ apache2 apache2-doc
 
         <div class="section" id="test-del-modulo-php">
           <h3><a class="toc-backref" href=
-          "#id20">3.3.1&nbsp;&nbsp;&nbsp;Test del modulo
+          "#id32">3.4.1&nbsp;&nbsp;&nbsp;Test del modulo
           php</a></h3>
 
           <p>Creare nella cartella <tt class=
@@ -1137,21 +1850,23 @@ apache2 apache2-doc
 </pre>
 
           <p>Questa funzione di php generera' la tipica pagina con
-          le impostazioni attuali per php, se richiamando la pagina
+          le impostazioni attuali per PHP. Richiamando la pagina
           (es: <tt class="docutils literal"><span class=
           "pre">http://localhost/info.php</span></tt> ) verra
-          generata la pagina e resa disponibile tramite apache agli
-          utenti allora l'integrazione tra PHP e Apache sara'
-          corretta. 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.</p>
+          generata dall'interprete PHP la pagina HTML e resa
+          disponibile tramite Apache ai utclient HTTP, a prova del
+          correto funzionamento del modulo di PHP e della sua
+          integrazione con il serv 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 fatoo ripartire Apache.</p>
         </div>
 
         <div class="section" id=
         "installazione-del-supporto-per-mysql">
           <h3><a class="toc-backref" href=
-          "#id21">3.3.2&nbsp;&nbsp;&nbsp;Installazione del supporto
+          "#id33">3.4.2&nbsp;&nbsp;&nbsp;Installazione del supporto
           per Mysql</a></h3>
 
           <p>Installare i pacchetti:</p>
@@ -1168,7 +1883,7 @@ php5-mysql phpmyadmin
 
         <div class="section" id="phpmyadmin">
           <h3><a class="toc-backref" href=
-          "#id22">3.3.3&nbsp;&nbsp;&nbsp;phpmyadmin</a></h3>
+          "#id34">3.4.3&nbsp;&nbsp;&nbsp;phpmyadmin</a></h3>
 
           <p>L'interfaccia web Phpmyadmin non richede
           necessariamente la presenza di un database Mysql locale,
@@ -1193,7 +1908,7 @@ php5-mysql phpmyadmin
         <div class="section" id=
         "installazione-del-supporto-per-postgresql">
           <h3><a class="toc-backref" href=
-          "#id23">3.3.4&nbsp;&nbsp;&nbsp;Installazione del supporto
+          "#id35">3.4.4&nbsp;&nbsp;&nbsp;Installazione del supporto
           per Postgresql</a></h3>
 
           <p>Installare i pacchetti:</p>
@@ -1207,11 +1922,35 @@ php5-pgsql phppgadmin
           "docutils literal"><span class=
           "pre">pgsql</span></tt>).</p>
         </div>
+
+        <div class="section" id="phppgadmin">
+          <h3><a class="toc-backref" href=
+          "#id36">3.4.5&nbsp;&nbsp;&nbsp;phppgadmin</a></h3>
+
+          <p>L'interfaccia web Phppgadmin per il database server
+          PostgreSQL non richede necessariamente la presenza di un
+          database locale, puo' infatti essere utilizzata per
+          gestire databases remoti (il suo file di configurazione:
+          <tt class="docutils literal"><span class=
+          "pre">/etc/phppgadmin/config.inc.php</span></tt> ). Nel
+          caso si voglia installare localmente Mysql si utilizzi il
+          pacchetto <tt class="docutils literal"><span class=
+          "pre">postgresql</span></tt> .</p>
+
+          <p>Phpmyadmin dovrebbe essere disponibile all'URL:
+          <tt class="docutils literal"><span class=
+          "pre">http://localhost/phppgadmin/</span></tt>, se cosi
+          non fosse controllare che sia incluso il file <tt class=
+          "docutils literal"><span class=
+          "pre">/etc/phppgadmin/apache.conf</span></tt> in
+          <tt class="docutils literal"><span class=
+          "pre">/etc/apache2/conf.d/</span></tt> .</p>
+        </div>
       </div>
 
       <div class="section" id="virtual-hosts">
         <h2><a class="toc-backref" href=
-        "#id24">3.4&nbsp;&nbsp;&nbsp;Virtual hosts</a></h2>
+        "#id37">3.5&nbsp;&nbsp;&nbsp;Virtual hosts</a></h2>
 
         <blockquote>
           <ul class="simple">
@@ -1225,20 +1964,23 @@ php5-pgsql phppgadmin
         </blockquote>
 
         <p>I virtual host permettono di avere piu' siti internet
-        disponibile tramite lo stesso server web, eventualmente
+        disponibili tramite lo stesso server web, eventualmente
         mappati su un solo indirizzo ip. Sono generalemente di due
         tipi:</p>
 
         <blockquote>
           <ul class="simple">
-            <li>Basati su indirizzi ip diversi. Se si ha la
+            <li>Basati su <em>indirizzi ip</em>. Se si ha la
             possibilita' di avere piu' indirizzi ip dedicati per i
-            diversi siti che si vuole servire. ES: &lt;VirtualHost
-            192.168.0.2:80&gt; . Soluzione dispendiosa, si tende ad
-            usarla solo se servono certificati di sicurezza (SSL )
-            dedicati per ogni sito.</li>
-
-            <li>Basati su nomi di dominio diversi che puntano allo
+            diversi siti che si vuole servire. ES: <tt class=
+            "docutils literal"><span class=
+            "pre">&lt;VirtualHost</span> <span class=
+            "pre">192.168.0.2:80&gt;</span></tt> . Soluzione
+            dispendiosa, si tende ad usarla solo se servono
+            certificati di sicurezza (SSL ) dedicati per ogni
+            sito.</li>
+
+            <li>Basati su <em>nomi di dominio</em> che puntano allo
             stesso ip. Soluzione piu' economica e diffusa che si
             basa sulle funzionalita' di http 1.1 .</li>
           </ul>
@@ -1249,7 +1991,7 @@ php5-pgsql phppgadmin
 
         <div class="section" id="gestione-dns">
           <h3><a class="toc-backref" href=
-          "#id25">3.4.1&nbsp;&nbsp;&nbsp;Gestione DNS</a></h3>
+          "#id38">3.5.1&nbsp;&nbsp;&nbsp;Gestione DNS</a></h3>
 
           <p>Prima di tutto per poter impostare i virtual hosts
           dovete avere un server DNS che risolva i vostri nomi di
@@ -1257,38 +1999,42 @@ php5-pgsql phppgadmin
           ottenere in vari modi, ad es:</p>
 
           <blockquote>
-            <ul class="simple">
-              <li>Bind Impostare i campi A nelle proprie zone
-              gestite dal server dns Bind. Ad es: <tt class=
+            <dl class="docutils">
+              <dt><em>Bind</em> (DNS server)</dt>
+
+              <dd>Impostare i campi A nelle proprie zone gestite
+              dal server dns Bind. Ad es: <tt class=
               "docutils literal"><span class=
               "pre">papo</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
               <span class=
               "pre">A</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-              <span class="pre">212.22.136.248</span></tt></li>
+              <span class="pre">212.22.136.248</span></tt></dd>
 
-              <li>Servizio DNS dinamico on line. Utilizzare un
-              servizio come ad es: <a class="reference external"
-              href=
+              <dt><em>Servizio DNS dinamico on line</em>.</dt>
+
+              <dd>Utilizzare un servizio come ad es: <a class=
+              "reference external" href=
               "https://www.dyndns.com/">https://www.dyndns.com/</a>
               per mappare nomi di dominio sul proprio indirizzo ip,
               comodo ad esempio se si dispone di un indirzzo ip
               pubblico (anche se dinamico) per la propria
-              connessione ad internet.</li>
+              connessione ad internet.</dd>
+
+              <dt><em>Dnsmasq</em> (DNS server)</dt>
 
-              <li>Dnsmasq Utilizzabile a livello locale per fare
-              dei test, utilizzando direttive come: <tt class=
+              <dd>Utilizzabile a livello locale per fare dei test,
+              utilizzando direttive come: <tt class=
               "docutils literal"><span class=
-              "pre">address=/davide.piffa.net/10.10.208.178</span></tt></li>
+              "pre">address=/davide.piffa.net/10.10.208.178</span></tt></dd>
 
-              <li>/etc/hosts Per prove <em>strettamente a livello
-              locale</em> potete impostare i nomi dei vostri
-              virtual server nel file /etc/hosts .</li>
-            </ul>
-          </blockquote>
+              <dt><tt class="docutils literal"><span class=
+              "pre">/etc/hosts</span></tt></dt>
 
-          <p>Testare con dig (disponibile nel pacchetto <tt class=
-          "docutils literal"><span class="pre">dnsutils</span></tt>
-          ) il nome di dominio che si vuole utilizzare:</p>
+              <dd>Per prove <em>strettamente a livello locale</em>
+              potete impostare i nomi dei vostri virtual server nel
+              file /etc/hosts .</dd>
+            </dl>
+          </blockquote>
           <pre class="literal-block">
 # dig 177.piffa.net
 
@@ -1328,23 +2074,334 @@ php5-pgsql phppgadmin
 
         <div class="section" id="virtual-host">
           <h3><a class="toc-backref" href=
-          "#id26">3.4.2&nbsp;&nbsp;&nbsp;Virtual host</a></h3>
+          "#id39">3.5.2&nbsp;&nbsp;&nbsp;Virtual host</a></h3>
 
-          <p>Esempio di Virtual host</p>
-        </div>
-      </div>
+          <p>Esempio di Virtual host:</p>
+          <pre class="literal-block">
+&lt;VirtualHost *:80 &gt;
+    ServerName 177.piffa.net
+    DocumentRoot /var/www/177.piffa.net/
+    ServerAdmin webmaster@177.piffa.net
+&lt;/VirtualHost&gt;
+</pre>
 
-      <div class="section" id="user-authentication">
-        <h2><a class="toc-backref" href=
-        "#id27">3.5&nbsp;&nbsp;&nbsp;User Authentication</a></h2>
+          <ol class="arabic simple">
+            <li><tt class="docutils literal"><span class=
+            "pre">&lt;VirtualHost</span> <span class=
+            "pre">\*:80</span> <span class="pre">&gt;</span></tt>
+            La prima riga indica l'inizio della stanza relativa al
+            nostro virtual host, che ascolotera' su qualunque
+            indirizzo ip (nel caso il server abbia piu' indirizzi
+            dai quali e' raggiungibile) sulla porta <tt class=
+            "docutils literal"><span class=
+            "pre">80</span></tt>.</li>
+
+            <li><tt class="docutils literal"><span class=
+            "pre">Server/name</span></tt> precisa quale sara' il
+            nome di dominio a cui verra' associato questo sito
+            rispetto ad altri eventualmenti presenti sullo stesso
+            server web.</li>
+
+            <li><tt class="docutils literal"><span class=
+            "pre">DocumentRoot</span></tt> : il path della
+            directory che contiene le pagine del sito.</li>
+
+            <li><tt class="docutils literal"><span class=
+            "pre">ServerAdmin</span></tt>: l'indirizzo del
+            webmaster, in modo da poterlo contattare in caso di
+            problemi col sito.</li>
+
+            <li><tt class="docutils literal"><span class=
+            "pre">&lt;/VirtualHost&gt;</span></tt>: <em>tag</em> di
+            chiusura della stanza di definizione del virtual
+            host.</li>
+          </ol>
+
+          <p>Quelle che abbiamo appena visto sono le direttive
+          essenziali per definire un sito virtuale, potrebbe essere
+          utile aggiungene altre:</p>
+
+          <ul>
+            <li>
+              <dl class="first docutils">
+                <dt><tt class="docutils literal"><span class=
+                "pre">ErrorLog</span> <span class=
+                "pre">/var/log/apache2/177.piffa.net/error.log</span></tt></dt>
+
+                <dd>
+                  <p class="first last">Log degli errori separato
+                  dai restanti siti web ospitati dal server.</p>
+                </dd>
+              </dl>
+            </li>
+
+            <li>
+              <dl class="first docutils">
+                <dt><tt class="docutils literal"><span class=
+                "pre">LogLevel</span> <span class=
+                "pre">warn</span></tt></dt>
+
+                <dd>
+                  <p class="first last">Livello di importanza degli
+                  eventi loggati= warning <em>attenzione</em> .</p>
+                </dd>
+              </dl>
+            </li>
+
+            <li>
+              <dl class="first docutils">
+                <dt><tt class="docutils literal"><span class=
+                "pre">CustomLog</span> <span class=
+                "pre">/var/log/apache2/177.piffa.net/access.log</span>
+                <span class="pre">combined</span></tt></dt>
+
+                <dd>
+                  <p class="first last">Log di accesso separati
+                  dagli altri siti, utile anche qua per statistiche
+                  di accesso per il solo sito virtuale.</p>
+                </dd>
+              </dl>
+            </li>
+          </ul>
+
+          <p>Potrebbe essere utile modificare le impostazioni di
+          una intera directory, ad esempio per abilitare
+          l'<tt class="docutils literal"><span class=
+          "pre">AuthConfig</span></tt>:</p>
+          <pre class="literal-block">
+&lt;Directory "/var/www/miosito.net/privata"&gt;
+        AllowOverride AuthConfig
+        Options ExecCGI Indexes MultiViews FollowSymLinks
+        Order allow,deny
+        Allow from all
+&lt;/Directory&gt;
+</pre>
+
+          <p><tt class="docutils literal"><span class=
+          "pre">AllowOverride</span> <span class=
+          "pre">AuthConfig</span></tt> ora vale per l'intera
+          directory, come le altre opzioni.</p>
+        </div>
+      </div>
+
+      <div class="section" id="negoziazione-accessi">
+        <h2><a class="toc-backref" href=
+        "#id40">3.6&nbsp;&nbsp;&nbsp;Negoziazione accessi</a></h2>
+
+        <p>Tipicamente quando si installa un server web il proprio
+        desiderio e' di dare accesso ai materiali disponibili al
+        maggior numero di visitatori possibile. Talvolta pero' puo
+        essere utile o necessario limitare gli accessi, ad esempio
+        per escludere un <em>bot</em> indesiderato che scansiona
+        ininterottamente le nostre pagine o per creare una <em>Area
+        Riservata</em> i cui materiali non devono essere
+        disponibile a tutti.</p>
+
+        <div class="section" id="limiti-su-base-ip">
+          <h3><a class="toc-backref" href=
+          "#id41">3.6.1&nbsp;&nbsp;&nbsp;Limiti su base ip</a></h3>
+
+          <p>La forma piu' semplice di restrizine degli accessi e'
+          su base degli indirizzi IP dei client: tipicamente i siti
+          web sono settati per dare accesso a chiunque:</p>
+          <pre class="literal-block">
+&lt;VirtualHost *:80 &gt;
+       # ...
+       &lt;Directory "/var/www/177.piffa.net"&gt;
+       Order allow,deny
+       Allow from all
+       &lt;/Directory&gt;
+&lt;/VirtualHost&gt;
+</pre>
+
+          <p>Potremmo negare l'accesso a uno o piu' indirizzi IP in
+          questo modo:</p>
+          <pre class="literal-block">
+&lt;VirtualHost *:80 &gt;
+       &lt;Directory "/var/www/177.piffa.net"&gt;
+       Order allow,deny
+       Allow from all
+       Deny from 192.168.0.1
+       &lt;/Directory&gt;
+&lt;/VirtualHost&gt;
+</pre>
+
+          <p>Ora l'IP 192.168.0.1 non potra' piu' accedere ai
+          materiali dell'intero sito virtuale, oppure potremmo
+          lavorare su una sola directory:</p>
+          <pre class="literal-block">
+&lt;Directory "/var/www/miosito.net/limitata"&gt;
+       Order allow,deny
+       Allow from 192.168.0.0./24
+       Deny from all
+&lt;/Directory&gt;
+</pre>
+
+          <p>In questo modo solo la classe IP <tt class=
+          "docutils literal"><span class=
+          "pre">192.168.0.0/24</span></tt> potra' accedere alla
+          directory <tt class="docutils literal"><span class=
+          "pre">/limitata</span></tt> Si tenga pero' conto che e'
+          relativamente facile per un malintenzionato cambiare il
+          propio indirizzo ip, oppure collegarsi da un altra zona.
+          Meno facile e' accedere ad una classe privata trovandosi
+          all'esterno di questa, ma e' comunque possibile mandare
+          delle richieste <tt class="docutils literal"><span class=
+          "pre">GET</span></tt> per cercare di mandare in Denial Of
+          Service il webserver.</p>
+        </div>
+      </div>
+
+      <div class="section" id="user-authentication">
+        <h2><a class="toc-backref" href=
+        "#id42">3.7&nbsp;&nbsp;&nbsp;User Authentication</a></h2>
+
+        <p>A volte conviene negoziare gli accessi ad un area di un
+        sito tramite autenticazione basata sull'accopiata <em>nome
+        utente / password</em>. Questo puo' venire utile per creare
+        una area download <em>intranet</em>, alla quale possano
+        accedere solo gli utenti previsti a prescindere dagli
+        indirizzi IP dei loro client. Per quanto esistano soluzioni
+        piu' granulari e sofisticate per ottenere questo,
+        <em>mod-auth</em> puo'essere sufficente. E mod auth non
+        richiede l'installazione di software aggiuntivi.</p>
 
         <p>link: <a class="reference external" href=
         "http://www.apacheweek.com/features/userauth">http://www.apacheweek.com/features/userauth</a></p>
+
+        <div class="section" id="definire-la-cartella">
+          <h3><a class="toc-backref" href=
+          "#id43">3.7.1&nbsp;&nbsp;&nbsp;Definire la
+          cartella</a></h3>
+
+          <p>Decidere quale sara' il <em>path</em> della cartella
+          da sottoporre ad autentizazione:(e creiamo la
+          cartella):</p>
+
+          <blockquote>
+            <tt class="docutils literal"><span class=
+            "pre">mkdir</span> <span class=
+            "pre">/var/www/177.piffa.net/privata</span></tt>
+          </blockquote>
+        </div>
+
+        <div class="section" id=
+        "creazione-del-database-delle-passwords">
+          <h3><a class="toc-backref" href=
+          "#id44">3.7.2&nbsp;&nbsp;&nbsp;Creazione del database
+          delle passwords</a></h3>
+
+          <p>Un modo semplice per gestire una database di
+          <em>user-id / passwords</em> e' utilizzare l'utility
+          <tt class="docutils literal"><span class=
+          "pre">htpasswd</span></tt> di Apache. Questa crea un file
+          in cui un <em>crypt</em> delle password viene associato
+          agli utenti.</p>
+
+          <p>Si dovra' decidere dove tenere questo file, la cosa
+          importante e' che non sia visibile nel sito web: non deve
+          essere scaricabile dai visitatori. Deve essere cioe'
+          all'esterno della <em>DocumentRoot</em>: un buon posto
+          potrebbe essere la /home dell'utente.</p>
+
+          <p>Creiamo (con il <em>flag</em> <tt class=
+          "docutils literal"><span class="pre">-c</span></tt>) il
+          file <tt class="docutils literal"><span class=
+          "pre">/home/utente/passwords</span></tt> con l'utente
+          <tt class="docutils literal"><span class=
+          "pre">luca</span></tt>:</p>
+          <pre class="literal-block">
+htpasswd -c /home/utente/passwords luca
+</pre>
+
+          <p><tt class="docutils literal"><span class=
+          "pre">htpasswd</span></tt> ci chedera' la password da
+          associare all'utente <tt class=
+          "docutils literal"><span class="pre">luca</span></tt>.
+          Per sucessive modifiche della password o aggiunta di
+          nuovi utenti non sara' necessario usare il flag
+          <tt class="docutils literal"><span class=
+          "pre">-c</span></tt>.</p>
+        </div>
+
+        <div class="section" id="id3">
+          <h3><a class="toc-backref" href=
+          "#id45">3.7.3&nbsp;&nbsp;&nbsp;Configurazione di
+          Apache</a></h3>
+
+          <p>Ora possiamo passare alla configurazione vera e
+          propria di Apache, ma con una novita': andremo a inserire
+          la voce in un <tt class="docutils literal"><span class=
+          "pre">.htaccess</span></tt> invece che modificare il file
+          di impostazione del virtual-host.</p>
+
+          <p>Questo per motivi pratici: solo l'utente <em>root</em>
+          puo' modificare l'impostazione del virtual host nel file
+          <tt class="docutils literal"><span class=
+          "pre">/etc/apache2/sites-enabled/177.piffa.net</span></tt>,
+          ma spesso il motivo per cui creiamo i virtual hosts e'
+          ospitare i siti di altri utenti, che possono solo
+          pubblicare (generalmente tramite <em>FTP</em>) i loro
+          documenti nella loro <em>DocumentRoot</em>, senza poter
+          quindi modificare in alcun modo la configurazione del
+          virtual host.</p>
+
+          <p>Dando agli utenti la possibilita' di modificare
+          (<em>AllowOverride</em>) autonomamente alcuni parametri
+          (in questo caso solo l'<em>AuthConfig</em>) relativi al
+          funzionamenteo del loro spazio web ci togliera'
+          l'incombenza di dover intervenire suii vari virtual
+          host.</p>
+
+          <p>Abilitiamo l'AllowOverride nel file di configurazione
+          del virtual host per la sola directory <tt class=
+          "docutils literal"><span class=
+          "pre">privata</span></tt>:</p>
+          <pre class="literal-block">
+&lt;VirtualHost *:80 &gt;
+    ServerName 177.piffa.net
+    DocumentRoot /var/www/177.piffa.net/
+    ServerAdmin webmaster@177.piffa.net
+    &lt;Directory "/var/www/177.piffa.net/privata"&gt;
+        AllowOverride AuthConfig
+    &lt;/Directory&gt;
+&lt;/VirtualHost&gt;
+</pre>
+
+          <p>Per rendere il cambiamento effettivo sara' necessario
+          fare un restart / reload di Apache.</p>
+
+          <p>Ora sara' possibile, anche per l'utente di sistema,
+          creare un fie <tt class="docutils literal"><span class=
+          "pre">.htaccess</span></tt> che sara' onorato da
+          Apache.</p>
+
+          <p>/var/www/177.piffa.net/privata/.htaccess</p>
+          <pre class="literal-block">
+# Questo file viene incluso
+# nella configurazione del sito web
+# Messaggio visualizzato al prompt per l'autenticazione
+AuthName "Area privata soggetta ad autentizazione"
+# tipo di autenticazione da usarsi
+AuthType Basic
+# File generato precedentemente con htpasswd
+AuthUserFile  /home/utente/passwords
+
+# Negoziazione degli accessi
+# valid users permette l'accesso agli utenti specificati
+# nel file generato da htpasswd
+require valid-user
+</pre>
+
+          <p>Si noti che non e' necessario fare ripartire Apache
+          per onorare i cambiamenti (un utente non avrebbe la
+          possibilita' di farlo!).</p>
+        </div>
       </div>
 
       <div class="section" id="cavets">
         <h2><a class="toc-backref" href=
-        "#id28">3.6&nbsp;&nbsp;&nbsp;Cavets</a></h2>
+        "#id46">3.8&nbsp;&nbsp;&nbsp;Cavets</a></h2>
 
         <p>Problemi di cache:</p>
 
@@ -1360,7 +2417,7 @@ php5-pgsql phppgadmin
             <li>Provare con un altro browser, o cercare di svuotare
             la cache chiudere/riaprire l'applicativo. Provare a
             fermare Apache, ricaricare la pagina (operazione che
-            fallira'), far ripartire il Apache, ricaricare la
+            fallira'), far ripartire Apache, ricaricare la
             pagina.</li>
           </ul>
         </blockquote>
@@ -1369,61 +2426,54 @@ php5-pgsql phppgadmin
 
     <div class="section" id="domain-name-system">
       <h1><a class="toc-backref" href=
-      "#id29">4&nbsp;&nbsp;&nbsp;Domain Name System</a></h1>
-
-      <div class="section" id=
-      "informazioni-di-base-sul-servizio-dns">
-        <h2><a class="toc-backref" href=
-        "#id30">4.1&nbsp;&nbsp;&nbsp;Informazioni di base sul
-        servizio DNS.</a></h2>
+      "#id47">4&nbsp;&nbsp;&nbsp;Domain Name System</a></h1>
 
-        <p>Domain Name System (spesso indicato con DNS) è un
-        servizio utilizzato per la risoluzione di nomi di host in
-        indirizzi IP e viceversa. Il servizio è realizzato tramite
-        un database distribuito, costituito dai server DNS.</p>
+      <p>Domain Name System (spesso indicato con DNS) e' un
+      servizio utilizzato per la risoluzione di nomi di host in
+      indirizzi IP e viceversa. Il servizio e' realizzato tramite
+      un database distribuito, costituito dai server DNS.</p>
 
-        <p>Il nome DNS denota anche il protocollo che regola il
-        funzionamento del servizio, i programmi che lo
-        implementano, i server su cui questi girano, l'insieme di
-        questi server che cooperano per fornire il servizio.</p>
+      <p>Il nome DNS denota anche il protocollo che regola il
+      funzionamento del servizio, i programmi che lo implementano,
+      i server su cui questi girano, l'insieme di questi server che
+      cooperano per fornire il servizio.</p>
 
-        <p>I nomi DNS, o "nomi di dominio", sono una delle
-        caratteristiche più visibili di Internet.</p>
+      <p>I nomi DNS, o "nomi di dominio", sono una delle
+      caratteristiche piu' visibili di Internet.</p>
 
-        <p>C'è confusione in merito alla definizione
-        dell'acronimo: la S spesso viene interpretata come service,
-        ma la definizione corretta è system.</p>
+      <p>C'e' confusione in merito alla definizione dell'acronimo:
+      la S spesso viene interpretata come service, ma la
+      definizione corretta e' system.</p>
 
-        <p>L'operazione di convertire un nome in un indirizzo è
-        detta risoluzione DNS, convertire un indirizzo IP in nome
-        è detto risoluzione inversa.</p>
-      </div>
+      <p>L'operazione di convertire un nome in un indirizzo e'
+      detta risoluzione DNS, convertire un indirizzo IP in nome e'
+      detto risoluzione inversa.</p>
 
       <div class="section" id="nomi-di-dominio">
         <h2><a class="toc-backref" href=
-        "#id31">4.2&nbsp;&nbsp;&nbsp;Nomi di dominio</a></h2>
+        "#id48">4.1&nbsp;&nbsp;&nbsp;Nomi di dominio</a></h2>
 
-        <p>Un nome a dominio è costituito da una serie di stringhe
+        <p>Un nome a dominio e' costituito da una serie di stringhe
         separate da punti, ad esempio it.wikipedia.org. A
-        differenza degli indirizzi IP, dove la parte più
-        importante del numero è la prima partendo da sinistra, in
-        un nome DNS la parte più importante è la prima partendo
-        da destra. Questa è detta dominio di primo livello (o TLD,
+        differenza degli indirizzi IP, dove la parte piu'
+        importante del numero e' la prima partendo da sinistra, in
+        un nome DNS la parte piu' importante e' la prima partendo
+        da destra. Questa e' detta dominio di primo livello (o TLD,
         Top Level Domain), per esempio .org o .it.</p>
 
         <p>Un dominio di secondo livello consiste in due parti, per
-        esempio wikipedia.org, e così via. Ogni ulteriore elemento
+        esempio wikipedia.org, e cosi' via. Ogni ulteriore elemento
         specifica un'ulteriore suddivisione. Quando un dominio di
         secondo livello viene registrato all'assegnatario, questo
-        è autorizzato a usare i nomi di dominio relativi ai
+        e' autorizzato a usare i nomi di dominio relativi ai
         successivi livelli come it.wikipedia.org (dominio di terzo
         livello) e altri come some.other.stuff.wikipedia.org
-        (dominio di quinto livello) e così via.</p>
+        (dominio di quinto livello) e cosi' via.</p>
       </div>
 
       <div class="section" id="tipologie-di-record">
         <h2><a class="toc-backref" href=
-        "#id32">4.3&nbsp;&nbsp;&nbsp;Tipologie di record</a></h2>
+        "#id49">4.2&nbsp;&nbsp;&nbsp;Tipologie di record</a></h2>
 
         <p>Ad un nome DNS possono corrispondere diversi tipi di
         informazioni. Per questo motivo, esistono diversi tipi di
@@ -1432,7 +2482,7 @@ php5-pgsql phppgadmin
 
         <ul class="simple">
           <li>Record A - Indica la corrispondenza tra un nome ed
-          uno (o più) indirizzi IP (per la precisione indirizzi
+          uno (o piu') indirizzi IP (per la precisione indirizzi
           IPv4, ovvero la versione attualmente in uso).</li>
 
           <li>Record MX - (Mail eXchange) indica a quali server
@@ -1441,8 +2491,8 @@ php5-pgsql phppgadmin
 
           <li>Record CNAME - Sono usati per creare un alias, ovvero
           per fare in modo che lo stesso calcolatore sia noto con
-          più nomi. Uno degli utilizzi di questo tipo di record
-          consiste nell'attribuire ad un host che offre più
+          piu' nomi. Uno degli utilizzi di questo tipo di record
+          consiste nell'attribuire ad un host che offre piu'
           servizi un nome per ciascun servizio. In questo modo, i
           servizi possono poi essere spostati su altri host senza
           dover riconfigurare i client, ma modificando solo il
@@ -1478,7 +2528,7 @@ php5-pgsql phppgadmin
 
       <div class="section" id="utilizzo">
         <h2><a class="toc-backref" href=
-        "#id33">4.4&nbsp;&nbsp;&nbsp;Utilizzo</a></h2>
+        "#id50">4.3&nbsp;&nbsp;&nbsp;Utilizzo</a></h2>
 
         <p>I computer vengono identificati in rete grazie agli
         indirizzi <em>IP</em>, questi pero' non sono comodi per gli
@@ -1495,7 +2545,7 @@ PING www.l.google.com (74.125.43.104) 56(84) bytes of data.
 
       <div class="section" id="risoluzione-dei-nomi-di-dominio">
         <h2><a class="toc-backref" href=
-        "#id34">4.5&nbsp;&nbsp;&nbsp;Risoluzione dei nomi di
+        "#id51">4.4&nbsp;&nbsp;&nbsp;Risoluzione dei nomi di
         dominio</a></h2>
 
         <p>Ci sono vari strumenti per interrogare i server DNS e
@@ -1503,59 +2553,289 @@ PING www.l.google.com (74.125.43.104) 56(84) bytes of data.
         interessa:</p>
         <pre class="literal-block">
 $ host www.piffa.net
- www.piffa.net is an alias for piffa.net.
- piffa.net has address 65.98.21.97
- piffa.net mail is handled by 10 65.98.21.97
+www.piffa.net is an alias for piffa.net.
+piffa.net has address 65.98.21.97
+piffa.net mail is handled by 10 65.98.21.97
 
 
 $ nslookup www.piffa.net
- Server:         192.168.0.10
- Address:        192.168.0.10#53
-
- Non-authoritative answer:
- www.piffa.net   canonical name = piffa.net.
- Name:   piffa.net
- Address: 65.98.21.97
-
-
- $ dig www.piffa.net
-
- ; &lt;&lt;&gt;&gt; DiG 9.6.0-P1 &lt;&lt;&gt;&gt; www.piffa.net
- ;; global options: +cmd
- ;; Got answer:
- ;; -&gt;&gt;HEADER&lt;&lt;- opcode: QUERY, status: NOERROR, id: 47751
- ;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 4, ADDITIONAL: 4
-
- ;; QUESTION SECTION:
- ;www.piffa.net.                 IN      A
-
- ;; ANSWER SECTION:
- www.piffa.net.          3489    IN      CNAME   piffa.net.
- piffa.net.              3489    IN      A       65.98.21.97
-
- ;; AUTHORITY SECTION:
- piffa.net.              86289   IN      NS      ns2.mydomain.com.
- piffa.net.              86289   IN      NS      ns1.mydomain.com.
- piffa.net.              86289   IN      NS      ns4.mydomain.com.
- piffa.net.              86289   IN      NS      ns3.mydomain.com.
-
- ;; ADDITIONAL SECTION:
- ns1.mydomain.com.       96208   IN      A       64.94.117.193
- ns2.mydomain.com.       96208   IN      A       64.94.31.67
- ns3.mydomain.com.       96208   IN      A       66.150.161.137
- ns4.mydomain.com.       96208   IN      A       63.251.83.74
-
- ;; Query time: 1 msec
- ;; SERVER: 192.168.0.10#53(192.168.0.10)
- ;; WHEN: Sun May 10 21:23:11 2009
- ;; MSG SIZE  rcvd: 209
+Server:         192.168.0.10
+Address:        192.168.0.10#53
+
+Non-authoritative answer:
+www.piffa.net   canonical name = piffa.net.
+Name:   piffa.net
+Address: 65.98.21.97
+
+
+$ dig www.piffa.net
+
+; &lt;&lt;&gt;&gt; DiG 9.6.0-P1 &lt;&lt;&gt;&gt; www.piffa.net
+;; global options: +cmd
+;; Got answer:
+;; -&gt;&gt;HEADER&lt;&lt;- opcode: QUERY, status: NOERROR, id: 47751
+;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 4, ADDITIONAL: 4
+
+;; QUESTION SECTION:
+;www.piffa.net.                 IN      A
+
+;; ANSWER SECTION:
+www.piffa.net.          3489    IN      CNAME   piffa.net.
+piffa.net.              3489    IN      A       65.98.21.97
+
+;; AUTHORITY SECTION:
+piffa.net.              86289   IN      NS      ns2.mydomain.com.
+piffa.net.              86289   IN      NS      ns1.mydomain.com.
+piffa.net.              86289   IN      NS      ns4.mydomain.com.
+piffa.net.              86289   IN      NS      ns3.mydomain.com.
+
+;; ADDITIONAL SECTION:
+ns1.mydomain.com.       96208   IN      A       64.94.117.193
+ns2.mydomain.com.       96208   IN      A       64.94.31.67
+ns3.mydomain.com.       96208   IN      A       66.150.161.137
+ns4.mydomain.com.       96208   IN      A       63.251.83.74
+
+;; Query time: 1 msec
+;; SERVER: 192.168.0.10#53(192.168.0.10)
+;; WHEN: Sun May 10 21:23:11 2009
+;; MSG SIZE  rcvd: 209
+</pre>
+
+        <p>Lo strumento piu' esaustivo e' <tt class=
+        "docutils literal"><span class="pre">dig</span></tt>,
+        installabile con il pacchetto <tt class=
+        "docutils literal"><span class="pre">dnsutils</span></tt>
+        .</p>
+      </div>
+
+      <div class="section" id="dig">
+        <h2><a class="toc-backref" href=
+        "#id52">4.5&nbsp;&nbsp;&nbsp;Dig</a></h2>
+
+        <p>Vediamo alcune opzioni utili nell'utilizzo di <tt class=
+        "docutils literal"><span class="pre">dig</span></tt> per
+        l'inerrogazione dei DNS Server:</p>
+        <pre class="literal-block">
+$ dig www.google.it
+
+; &lt;&lt;&gt;&gt; DiG 9.6.0-P1 &lt;&lt;&gt;&gt; www.google.it
+;; global options: +cmd
+;; Got answer:
+;; -&gt;&gt;HEADER&lt;&lt;- opcode: QUERY, status: NOERROR, id: 18816
+;; flags: qr rd ra; QUERY: 1, ANSWER: 6, AUTHORITY: 7, ADDITIONAL: 0
+
+;; QUESTION SECTION:
+;www.google.it.                 IN      A
+
+;; ANSWER SECTION:
+www.google.it.          250683  IN      CNAME   www.google.com.
+www.google.com.         334819  IN      CNAME   www.l.google.com.
+www.l.google.com.       186     IN      A       74.125.43.103
+www.l.google.com.       186     IN      A       74.125.43.104
+www.l.google.com.       186     IN      A       74.125.43.147
+www.l.google.com.       186     IN      A       74.125.43.99
+
+;; AUTHORITY SECTION:
+l.google.com.           80856   IN      NS      f.l.google.com.
+l.google.com.           80856   IN      NS      d.l.google.com.
+l.google.com.           80856   IN      NS      b.l.google.com.
+l.google.com.           80856   IN      NS      c.l.google.com.
+l.google.com.           80856   IN      NS      a.l.google.com.
+l.google.com.           80856   IN      NS      e.l.google.com.
+l.google.com.           80856   IN      NS      g.l.google.com.
+
+;; Query time: 1 msec
+;; SERVER: 192.168.0.10#53(192.168.0.10)
+;; WHEN: Sun May 10 21:34:47 2009
+;; MSG SIZE  rcvd: 255
+</pre>
+
+        <dl class="docutils">
+          <dt>$ dig</dt>
+
+          <dd>(semza opzioni o oggetti) Fornisce l'elenco dei
+          <em>root servers</em> utilizzati. I root server sono i
+          server che mantengono le informazioni sui domini di primo
+          livello (TLD) e sono quindi il punto di partenza per
+          scorrere nella directory dei DNS per recuperare le
+          informazioni (tipicamente un campo <tt class=
+          "docutils literal"><span class="pre">A</span></tt> per un
+          indirizzo IP) che ci servono per raggiungere un certo
+          servizio.</dd>
+        </dl>
+
+        <p>$ dig</p>
+
+        <blockquote>
+          <p>...</p>
+
+          <p>;; ANSWER SECTION: . 192032 IN NS C.ROOT-SERVERS.NET.
+          . 192032 IN NS E.ROOT-SERVERS.NET. . 192032 IN NS
+          B.ROOT-SERVERS.NET. . 192032 IN NS L.ROOT-SERVERS.NET. .
+          192032 IN NS A.ROOT-SERVERS.NET. . 192032 IN NS
+          F.ROOT-SERVERS.NET. . 192032 IN NS H.ROOT-SERVERS.NET. .
+          192032 IN NS G.ROOT-SERVERS.NET. . 192032 IN NS
+          K.ROOT-SERVERS.NET. . 192032 IN NS M.ROOT-SERVERS.NET. .
+          192032 IN NS I.ROOT-SERVERS.NET. . 192032 IN NS
+          J.ROOT-SERVERS.NET. . 192032 IN NS
+          D.ROOT-SERVERS.NET.</p>
+
+          <p>...</p>
+        </blockquote>
+
+        <dl class="docutils">
+          <dt>dig @nome_dns</dt>
+
+          <dd>Permette di fare una query ad un server dns
+          particolare. Es: <tt class=
+          "docutils literal"><span class="pre">dig</span>
+          <span class="pre">@151.99.25.1</span> <span class=
+          "pre">www.google.it</span></tt></dd>
+
+          <dt>dig MX www.google.it</dt>
+
+          <dd>Chiede un campo in particolare, in questo caso il
+          campo MX</dd>
+
+          <dt>dig ANY www.google.it</dt>
+
+          <dd>Chiede tutti i campi, non solo i campi
+          <em>a</em></dd>
+
+          <dt>dig -x 74.125.43.104</dt>
+
+          <dd>Effettua una richiesta inversa: dall'ip al PTR
+          associato.</dd>
+        </dl>
+      </div>
+
+      <div class="section" id="resolv-conf">
+        <h2><a class="toc-backref" href=
+        "#id53">4.6&nbsp;&nbsp;&nbsp;resolv.conf</a></h2>
+
+        <p>Il file <tt class="docutils literal"><span class=
+        "pre">/etc/resolv.conf</span></tt> contiene le impostazioni
+        sul dns usato dal sistema, in genere anche altre
+        applicazioni che devono effettuare query DNS leggono
+        resolv.conf per conoscere l'ubicazione del DNS.</p>
+
+        <p>/etc/resolv.conf:</p>
+
+        <blockquote>
+          <ul class="simple">
+            <li><tt class="docutils literal"><span class=
+            "pre">nameserver</span></tt>: indica il nameserver da
+            utilizzare, indicato con l'indirizzo ip.</li>
+
+            <li><tt class="docutils literal"><span class=
+            "pre">domain</span></tt>: indica il nome di dominio
+            della rete attuale, vedi voce sucessiva.</li>
+
+            <li><tt class="docutils literal"><span class=
+            "pre">search</span></tt>: nome di dominio usato dalla
+            rete sul quale cercare gli hosts. Ad esempio se
+            impostato su <tt class="docutils literal"><span class=
+            "pre">piffa.net</span></tt> pingando l'host <tt class=
+            "docutils literal"><span class="pre">bender</span></tt>
+            viene automaticamente fatto un tentativo di ricerca per
+            <tt class="docutils literal"><span class=
+            "pre">bender.piffa.net</span></tt>.</li>
+          </ul>
+        </blockquote>
+
+        <p>Si veda anche la pagina man di resolv.conf.</p>
+
+        <p>Attenzione: se si usa un client DHCP o simile questo
+        file potra' essere riscritto automaticamente in base a
+        quanto ottenuto dal DHCP. Si veda la documentazione del
+        pacchtto <tt class="docutils literal"><span class=
+        "pre">resolvconf</span></tt>.</p>
+      </div>
+
+      <div class="section" id="etc-hosts">
+        <h2><a class="toc-backref" href=
+        "#id54">4.7&nbsp;&nbsp;&nbsp;/etc/hosts</a></h2>
+
+        <p>Tabella statica per l'associazione tra IP e nomi di
+        dominio:</p>
+        <pre class="literal-block">
+# cat /etc/hosts
+</pre>
+
+        <blockquote>
+          127.0.0.1 localhost.localdomain localhost 10.10.208.162
+          daniela daniela.piffa.net 10.10.208.254 mirror
+          mirror.piffa.net 91.191.138.15 thepiratebay.org
+          192.168.0.11 chrome chrome.mydomain.com
+        </blockquote>
+
+        <p>Il contenuto e' un associazione tra un <em>IP</em> e
+        stringhe di testo (anche piu' di una es: <tt class=
+        "docutils literal"><span class="pre">mirror</span></tt> e
+        <tt class="docutils literal"><span class=
+        "pre">mirror.piffa.net</span></tt>), un record per
+        riga.</p>
+
+        <p>Il problema e' la gestione di questo file: quando gli
+        host cambiano IP si devono aggiornare i records, e c'e' poi
+        il problema di distribuire questo file tra i vari hosts
+        della propia LAN. Un metodo semplice per distribuire questo
+        file e' utilizzare <tt class=
+        "docutils literal"><span class="pre">Dnsmasq</span></tt>:
+        questo infatti legge e onora il file <tt class=
+        "docutils literal"><span class="pre">hosts</span></tt>
+        locale e lo <em>distribuisce</em> ai clients.</p>
+
+        <p>Modificare (riconducendola a un ip interno, cosi'
+        annullandola) la risoluzione di un nome di dominio e' un
+        modo drastico e funzionale per <em>annullarlo</em>
+        rendendolo indisponibile alla propia rete locale, ad
+        esempio aggiungere al file <tt class=
+        "docutils literal"><span class=
+        "pre">/etc/hosts</span></tt>:</p>
+        <pre class="literal-block">
+127.0.0.1       www.facebook.com
+</pre>
+
+        <p>Impedira' agli utenti della LAN di raggiungere
+        <em>facebook</em>, ora reindirizzato a i``localhost``.</p>
+      </div>
+
+      <div class="section" id="hostname">
+        <h2><a class="toc-backref" href=
+        "#id55">4.8&nbsp;&nbsp;&nbsp;Hostname</a></h2>
+
+        <p>Ogni computer ha un <em>propio nome</em> visualizzabile
+        (e modificabile) con il comando <tt class=
+        "docutils literal"><span class=
+        "pre">hostname</span></tt>.</p>
+
+        <p>Per modificare in modo permanente il nome del computer
+        si modifichi il contenuto del file <tt class=
+        "docutils literal"><span class=
+        "pre">/etc/hostname</span></tt>.</p>
+
+        <p>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 <em>PTR</em> dell'ip. Nel caso
+        di <em>servizi virtuali</em> ci sara' un <em>nome
+        server</em> principale associato al <em>PTR</em> 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:</p>
+        <pre class="literal-block">
+* Squid: ``visible_hostname``
+
+* Postfix: ``myhostname``
 </pre>
       </div>
     </div>
 
     <div class="section" id="dnsmasq">
       <h1><a class="toc-backref" href=
-      "#id35">5&nbsp;&nbsp;&nbsp;DNSmasq</a></h1>
+      "#id56">5&nbsp;&nbsp;&nbsp;DNSmasq</a></h1>
 
       <p>Dnsmasq puo' svolgere le funzioni di un DNS cache /
       forwarder e un server DHCP caratterizzato dalla facilita' di
@@ -1590,11 +2870,136 @@ $ nslookup www.piffa.net
       Molto utile per scopi didattici, sopratutto per testare
       server SMTP impostando al volo i campi MX per nomi di dominio
       fittizi.</p>
+
+      <div class="section" id="configurazione">
+        <h2><a class="toc-backref" href=
+        "#id57">5.1&nbsp;&nbsp;&nbsp;Configurazione</a></h2>
+
+        <p>Vediamo alcune direttive di basi del file di
+        configurazione <tt class="docutils literal"><span class=
+        "pre">/etc/dnsmasq.conf</span></tt> utili per la
+        configurazione sia del DNS cache che per il DHCP
+        server:</p>
+
+        <dl class="docutils">
+          <dt>domain-needed</dt>
+
+          <dd>Non inoltrare query ai server DNS esterni per nomi
+          semplici (es andrea, portatile, pippo) che verranno
+          risolti solo in locale o causeranno direttamente una
+          risposta <em>not found</em> .</dd>
+
+          <dt>bogus-priv</dt>
+
+          <dd>Simile alla voce precedente ma per i reverse
+          look-up.</dd>
+
+          <dt>domain</dt>
+
+          <dd>Nome di dominio della rete da passare ai client.</dd>
+
+          <dt>expand_hosts</dt>
+
+          <dd>Aggiunge il <tt class="docutils literal"><span class=
+          "pre">nome</span> <span class="pre">host</span></tt> (
+          <tt class="docutils literal"><span class=
+          "pre">/etc/hostname</span></tt>) dei client al nome di
+          dominio per qualificarli in rete, senza bisogno di dover
+          comporre a un elenco statico di record nel file
+          <tt class="docutils literal"><span class=
+          "pre">/etc/hosts</span></tt> o nello stesso file di
+          configurazione di dnsmasq. Es: se un vostro client si
+          chiama <tt class="docutils literal"><span class=
+          "pre">chrome</span></tt> e il vostro dominio <tt class=
+          "docutils literal"><span class=
+          "pre">piffa.net</span></tt> dnsmasq rendera' disponibile
+          il campo <em>A</em> per il dominio <tt class=
+          "docutils literal"><span class=
+          "pre">chrome.piffa.net</span></tt> diretto all'ip che
+          verra' assegnato al client.</dd>
+        </dl>
+      </div>
+
+      <div class="section" id="dhcp">
+        <h2><a class="toc-backref" href=
+        "#id58">5.2&nbsp;&nbsp;&nbsp;DHCP</a></h2>
+
+        <p>Per attivare il demone DHCP di dnsmaq basta aggiungere
+        al file di configurazione il <em>range</em> degli ip che si
+        vuole assegnare ai client con il <em>lease time</em> (tempo
+        di rilascio: quanto a lungo saranno validi gli ip
+        assegnati) espresso in ore.</p>
+
+        <p>Si faccia <em>attenzione</em>: in una rete puo' esseere
+        presente <strong>un solo server DHCP</strong>, o per meglio
+        dire qualunque server DHCP ascolta sul broadcast <tt class=
+        "docutils literal"><span class=
+        "pre">255.255.255.255</span></tt> e potrebbe rispondere a
+        un pacchetto di richesta DHCP. Quindi non fate partire
+        inavvertitamente un server DHCP in una rete gia' servita e
+        <strong>non vi azzardate ad andare in giro con un portatile
+        con un server DHCP attivo</strong> nelle reti altrui.
+        Questo vale anche per i laboratori di informatica dei corsi
+        di reti: non fate partire il vostro server DHCP se siete
+        collegati alla rete interna!</p>
+
+        <p>/etc/dnsmasq.conf (riga 118):</p>
+        <pre class="literal-block">
+dhcp-range=192.168.0.20,192.168.0.50,24h
+</pre>
+      </div>
+
+      <div class="section" id="dns-cache">
+        <h2><a class="toc-backref" href=
+        "#id59">5.3&nbsp;&nbsp;&nbsp;DNS cache</a></h2>
+
+        <p>Aggiungere al file <tt class=
+        "docutils literal"><span class=
+        "pre">/etc/resolv.conif</span></tt> il nameserver localhost
+        in cima alla lista dei <em>nameserver</em> disponibili.
+        Dnsmasq usera' la propia cache e in caso non abbia
+        disponibile il <em>record DNS</em> richiesto fara' partire
+        una query al primo DNS:</p>
+        <pre class="literal-block">
+nameserver      127.0.0.1
+</pre>
+
+        <p>Questo pero' potrebbe essere problematico se un altro
+        servizio, ad esempio il DHCP client, riscrive il contenuto
+        del file <tt class="docutils literal"><span class=
+        "pre">/etc/resolv.conf</span></tt>. Per superare il
+        problema si aggiunga (riga 20) al file di configurazione
+        <tt class="docutils literal"><span class=
+        "pre">/etc/dhcp3/dhclient.conf</span></tt></p>
+        <pre class="literal-block">
+prepend domain-name-servers 127.0.0.1;
+</pre>
+
+        <p>Oppure potrebbe essere il nostro <em>PPP client</em>
+        (per la connessione ADSL) a intervenire sul file <tt class=
+        "docutils literal"><span class=
+        "pre">//etc/resolv.conf</span></tt>, si modifichi quindi
+        <tt class="docutils literal"><span class=
+        "pre">/etc/ppp/peers/dsl-provider</span></tt> commentando
+        <tt class="docutils literal"><span class=
+        "pre">usepeerdns</span></tt>. Se la vostra connessione ad
+        internet e' ADSL raramente dovreste aver bisogno di
+        cambiare i DNS una volta impostati (a meno che non usiate
+        un portatile!).</p>
+      </div>
+
+      <div class="section" id="dhcpd">
+        <h2><a class="toc-backref" href=
+        "#id60">5.4&nbsp;&nbsp;&nbsp;DHCPd</a></h2>
+
+        <p>Dnsmasq puo' lavorare anche come DHCP server per la
+        vostra LAN.</p>
+      </div>
     </div>
 
     <div class="section" id="samba">
       <h1><a class="toc-backref" href=
-      "#id36">6&nbsp;&nbsp;&nbsp;Samba</a></h1>
+      "#id61">6&nbsp;&nbsp;&nbsp;Samba</a></h1>
 
       <p>Samba e' un progetto libero che fornisce servizi di
       condivisione di file e stampanti a client SMB/CIFS.</p>
@@ -1615,11 +3020,11 @@ $ nslookup www.piffa.net
 
       <div class="section" id="pacchetti">
         <h2><a class="toc-backref" href=
-        "#id37">6.1&nbsp;&nbsp;&nbsp;Pacchetti</a></h2>
+        "#id62">6.1&nbsp;&nbsp;&nbsp;Pacchetti</a></h2>
 
         <p>Pacchetti da installare per utilizzare Samba in
-        modalita' client <a class="footnote-reference" href="#id4"
-        id="id3" name="id3">[2]</a></p>
+        modalita' client <a class="footnote-reference" href="#id5"
+        id="id4" name="id4">[2]</a></p>
         <pre class="literal-block">
 samba-client
 </pre>
@@ -1630,7 +3035,7 @@ samba-client
 samba smbfs smbclient
 </pre>
 
-        <table class="docutils footnote" frame="void" id="id4"
+        <table class="docutils footnote" frame="void" id="id5"
         rules="none">
           <colgroup>
             <col class="label">
@@ -1640,7 +3045,7 @@ samba smbfs smbclient
           <tbody valign="top">
             <tr>
               <td class="label"><a class="fn-backref" href=
-              "#id3">[2]</a></td>
+              "#id4">[2]</a></td>
 
               <td>Anche se nato per i sistemi Windows, Samba puo'
               essere usato anche per montare cartelle sotto
@@ -1668,7 +3073,7 @@ dpkg-reconfigure samba-common
 
       <div class="section" id="passwords-e-autenticazione">
         <h2><a class="toc-backref" href=
-        "#id38">6.2&nbsp;&nbsp;&nbsp;Passwords e
+        "#id63">6.2&nbsp;&nbsp;&nbsp;Passwords e
         autenticazione</a></h2>
 
         <p>Per poter configurare Samba in modo che usi un sistema
@@ -1729,7 +3134,7 @@ dpkg-reconfigure samba-common
 
       <div class="section" id="creazione-utenti">
         <h2><a class="toc-backref" href=
-        "#id39">6.3&nbsp;&nbsp;&nbsp;Creazione Utenti</a></h2>
+        "#id64">6.3&nbsp;&nbsp;&nbsp;Creazione Utenti</a></h2>
 
         <p>Creiamo per primo l'utente sotto GNU/Linux, facendo
         attenzione a <em>non dargli una shell di sistema</em>. Gli
@@ -1766,7 +3171,7 @@ smbpasswd  sambo
 
       <div class="section" id="creare-la-condivisione">
         <h2><a class="toc-backref" href=
-        "#id40">6.4&nbsp;&nbsp;&nbsp;Creare la
+        "#id65">6.4&nbsp;&nbsp;&nbsp;Creare la
         condivisione</a></h2>
 
         <p>La condivisione altro non e' che una cartella sul server
@@ -1793,7 +3198,7 @@ smbpasswd  sambo
         <div class="section" id=
         "sicurezza-permessi-di-esecuzione-sul-server">
           <h3><a class="toc-backref" href=
-          "#id41">6.4.1&nbsp;&nbsp;&nbsp;Sicurezza: permessi di
+          "#id66">6.4.1&nbsp;&nbsp;&nbsp;Sicurezza: permessi di
           esecuzione sul server</a></h3>
 
           <p>Bisognerebbe notare sul server i permessi di
@@ -1823,7 +3228,7 @@ smbpasswd  sambo
       <div class="section" id=
       "configurazione-dell-applicativo-samba-vero-e-proprio">
         <h2><a class="toc-backref" href=
-        "#id42">6.5&nbsp;&nbsp;&nbsp;Configurazione
+        "#id67">6.5&nbsp;&nbsp;&nbsp;Configurazione
         dell'applicativo Samba vero e proprio.</a></h2>
 
         <p>Avendo preparato gli utenti (ancora una volta: non si
@@ -1863,7 +3268,7 @@ smbpasswd  sambo
 
       <div class="section" id="testare-il-servizio">
         <h2><a class="toc-backref" href=
-        "#id43">6.6&nbsp;&nbsp;&nbsp;Testare il Servizio</a></h2>
+        "#id68">6.6&nbsp;&nbsp;&nbsp;Testare il Servizio</a></h2>
 
         <p>Come testare il servizio</p>
 
@@ -1901,9 +3306,714 @@ mount -t smbfs //localhost/sambo_share /mnt/sambo_mount/ --verbose -o user=sambo
       </div>
     </div>
 
+    <div class="section" id="server-di-posta-postfix">
+      <h1><a class="toc-backref" href=
+      "#id69">7&nbsp;&nbsp;&nbsp;Server di posta: Postfix</a></h1>
+
+      <p>Il server di posta che prenderemo in considerazione e'
+      Postfix, a seguire un estratto di un file do configurazione
+      <em>semplie</em> con l'abilizazione delle <em>Maildir</em>
+      nelle <tt class="docutils literal"><span class=
+      "pre">/home</span></tt> degli utenti per la consegna della
+      posta:</p>
+
+      <p><tt class="docutils literal"><span class=
+      "pre">/etc/postfix/main.cf</span></tt>:</p>
+      <pre class="literal-block">
+# ...segue dalla riga ~30
+myhostname = 162.piffa.net
+alias_maps = hash:/etc/aliases
+alias_database = hash:/etc/aliases
+myorigin = 162.piffa.net
+mydestination = 162.piffa.net, localhost
+# Se non avete un ip pubblico e statico, con un adeguato record PTR
+# dovrete usare un realy host per l'invio della posta
+relayhost = smtp.piffa.net
+mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
+
+# Per effettuare lo storaggio della posta nelle home directory degli utenti
+# in una Maildir invece che la Mailbox in /var/mail/utente
+# si disabiliti procmail
+#mailbox_command = procmail -a "$EXTENSION"
+
+# Storaggio della posta nella _cartella_ Maildir/ (si noti lo slash)
+# nella home dell'utente:
+home_mailbox = Maildir/
+mailbox_size_limit = 0
+recipient_delimiter = +
+inet_interfaces = all
+</pre>
+
+      <div class="section" id="imap-e-pop">
+        <h2><a class="toc-backref" href=
+        "#id70">7.1&nbsp;&nbsp;&nbsp;Imap e pop</a></h2>
+
+        <p>Postfix e' un server SMTP, di conseguenza se volete che
+        i vostri utenti possano <em>scaricare</em> in locale la
+        posta generalemtne volete mettere a loro disposizione un
+        server <em>POP3</em> o ancora meglio <em>IMAP</em>. Oppure
+        entrambi.</p>
+
+        <dl class="docutils">
+          <dt>Pacchetti da installare</dt>
+
+          <dd>courier-imap courier-pop</dd>
+        </dl>
+
+        <p>i noti che IMAP necessita delle Maildir, non funziona
+        con le Mailbox in <tt class="docutils literal"><span class=
+        "pre">/var/mail/</span></tt> .</p>
+
+        <div class="section" id="web-client">
+          <h3><a class="toc-backref" href=
+          "#id71">7.1.1&nbsp;&nbsp;&nbsp;Web client</a></h3>
+
+          <p>Per mettere a disposizione degli utenti un client web
+          per gestire la propia posta si installi il pacchetto:
+          <tt class="docutils literal"><span class=
+          "pre">squirrelmail</span></tt> . Ci sono tanti altri
+          client web disponibili: questo e' particolarmente
+          semplice. Naturalemte dovrete aver installato: <tt class=
+          "docutils literal"><span class="pre">php5</span>
+          <span class="pre">apache2</span></tt> .</p>
+
+          <p>L'interfaccia dovrebbe essere disponibile all'url:
+          <tt class="docutils literal"><span class=
+          "pre">http://localhost/squirrelmail</span></tt> . Se
+          cosi' non fosse assicuratevi che Apache abbia incluso il
+          file di configurazione di squirrelmail:</p>
+
+          <blockquote>
+            cd /etc/apache2/conf.d/ ln -s
+            /etc/squirrelmail/apache.conf ./
+          </blockquote>
+        </div>
+      </div>
+    </div>
+
+    <div class="section" id="firewall">
+      <h1><a class="toc-backref" href=
+      "#id72">8&nbsp;&nbsp;&nbsp;Firewall</a></h1>
+
+      <p>In Informatica, nell'ambito delle reti di computer, un
+      firewall (termine inglese dal significato originario di
+      parete refrattaria, muro tagliafuoco, muro ignifugo; in
+      italiano anche parafuoco o parafiamma) e' un componente
+      passivo di difesa perimetrale che può anche svolgere
+      funzioni di collegamento tra due o piu' tronconi di rete.
+      Usualmente la rete viene divisa in due sottoreti: una, detta
+      esterna, comprende l'intera Internet mentre l'altra interna,
+      detta LAN (Local Area Network), comprende una sezione piu' o
+      meno grande di un insieme di computer locali. In alcuni casi
+      e' possibile che si crei l'esigenza di creare una terza
+      sottorete detta DMZ (o zona demilitarizzata) atta a contenere
+      quei sistemi che devono essere isolati dalla rete interna ma
+      devono comunque essere protetti dal firewall.</p>
+
+      <p>Una prima definizione chiusa di firewall è la
+      seguente:</p>
+
+      <p>Apparato di rete hardware o software che filtra tutti i
+      pacchetti entranti ed uscenti, da e verso una rete o un
+      computer, applicando regole che contribuiscono alla sicurezza
+      della stessa.</p>
+
+      <p>In realtÃ&nbsp; un firewall può essere realizzato con un
+      normale computer (con almeno due schede di rete e software
+      apposito), può essere una funzione inclusa in un router o
+      può essere un apparato specializzato. Esistono inoltre i
+      cosiddetti "firewall personali", che sono programmi
+      installati sui normali calcolatori, che filtrano solamente i
+      pacchetti che entrano ed escono da quel calcolatore; in tal
+      caso viene utilizzata una sola scheda di rete.</p>
+
+      <p>La funzionalitÃ&nbsp; principale in sostanza Ã¨ quella di
+      creare un filtro sulle connessioni entranti ed uscenti, in
+      questo modo il dispositivo innalza il livello di sicurezza
+      della rete e permette sia agli utenti interni che a quelli
+      esterni di operare nel massimo della sicurezza. Il firewall
+      agisce sui pacchetti in transito da e per la zona interna
+      potendo eseguire su di essi operazioni di: controllo modifica
+      monitoraggio</p>
+
+      <p>Questo grazie alla sua capacitÃ&nbsp; di "aprire" il
+      pacchetto IP per leggere le informazioni presenti sul suo
+      header, e in alcuni casi anche di effettuare verifiche sul
+      contenuto del pacchetto.</p>
+
+      <div class="section" id="links">
+        <h2><a class="toc-backref" href=
+        "#id73">8.1&nbsp;&nbsp;&nbsp;Links</a></h2>
+
+        <ul class="simple">
+          <li><a class="reference external" href=
+          "http://openskill.info/topic.php?ID=124">http://openskill.info/topic.php?ID=124</a></li>
+
+          <li><a class="reference external" href=
+          "http://iptables-tutorial.frozentux.net/iptables-tutorial.html">
+          http://iptables-tutorial.frozentux.net/iptables-tutorial.html</a></li>
+        </ul>
+      </div>
+
+      <div class="section" id="ipfilter">
+        <h2><a class="toc-backref" href=
+        "#id74">8.2&nbsp;&nbsp;&nbsp;Ipfilter</a></h2>
+
+        <p>Link: <a class="reference external" href=
+        "http://iptables-tutorial.frozentux.net/iptables-tutorial.html#IPFILTERING">
+        http://iptables-tutorial.frozentux.net/iptables-tutorial.html#IPFILTERING</a></p>
+
+        <p>Natura di un firewall ip: su cosa lavora (livello 2 e un
+        po' del 3) e su cosa <em>non</em> lavora (livello 4).
+        Netfilter lavora anche su parti del livello 3 (TCP, UDP,
+        etc) e del livello 1 (MAC source address). Iptables
+        comunque permette di fare il <em>connection-tracking</em>,
+        mediante il quale possiamo implementare il Network Address
+        Translation.</p>
+
+        <p>Netfilter non ricostruisce il flusso di dati tra
+        pacchetti, non puo' quindi rilevare la presenza di virus o
+        simili che si trasmettono su pacchetti separati:
+        ricomporre, analizzare e tornare a scomporre i frammenti
+        rtichiederebbe troppa RAM e risorse di sistema, con il
+        conseguente rischio di saturare il firewall fino
+        all'abbandono dei nuovi pacchetti in transito. Ci sono
+        altri software piu' adatti a questi compiti, ad esempio un
+        proxy HTTP come Squid che e' appunto una applicazione di
+        quarto livello, progettata e strutturata per analizzare e
+        modificare i flussi di dati (il <em>contenuto</em> dei
+        pacchetti, non le sole <em>inestazioni</em>) facendo
+        abbondate uso delle risorse RAM e di calcolo del sistema.
+        Non a caso su macchine embedded dalle prestazioni molto
+        ridotte (CPU ARM ~250Mhz con ~30MB di RAM) Squid sfrutta al
+        massimo le risorse di sistema per gestire il traffico di
+        una rete 10/100, mentre il lavoro tipico svolto da
+        netfilter e' quasi irrilevante.</p>
+      </div>
+
+      <div class="section" id="progettazione-di-un-firewall">
+        <h2><a class="toc-backref" href=
+        "#id75">8.3&nbsp;&nbsp;&nbsp;Progettazione di un
+        firewall</a></h2>
+
+        <p>Per implementare un firewall bisogna decidere un aio di
+        cose: la collocazione e l'approccio (inclusivo o esclusivo)
+        al filtraggio, il tipo di hardware.</p>
+
+        <div class="section" id="collocazione">
+          <h3><a class="toc-backref" href=
+          "#id76">8.3.1&nbsp;&nbsp;&nbsp;Collocazione</a></h3>
+
+          <p>DMZ e MZ, internet, intranet, extranet. Frammentazione
+          della rete, decidere se diversi reparti di una azienda si
+          possano vedere tra loro e in che misura.</p>
+
+          <p>Collocazione:</p>
+
+          <blockquote>
+            <ol class="arabic simple">
+              <li>sul router</li>
+
+              <li>tra router e servers / LAN</li>
+
+              <li>Unico server / router / firewall e connessi
+              rischi. considerare l'acquisto di un router hardware
+              dedicato.</li>
+            </ol>
+          </blockquote>
+
+          <dl class="docutils">
+            <dt>Layeed security:</dt>
+
+            <dd>Implementare piu' device / software sui diversi
+            livelli: <a class="reference external" href=
+            "http://iptables-tutorial.frozentux.net/iptables-tutorial.html#HOWTOPLANANIPFILTER">
+            http://iptables-tutorial.frozentux.net/iptables-tutorial.html#HOWTOPLANANIPFILTER</a></dd>
+          </dl>
+        </div>
+
+        <div class="section" id="policy-di-default">
+          <h3><a class="toc-backref" href=
+          "#id77">8.3.2&nbsp;&nbsp;&nbsp;Policy di default</a></h3>
+
+          <p>Drop o Accept: conseguenze per sicurezza, facilita' di
+          gestione.</p>
+        </div>
+
+        <div class="section" id="hardware">
+          <h3><a class="toc-backref" href=
+          "#id78">8.3.3&nbsp;&nbsp;&nbsp;Hardware</a></h3>
+
+          <p>Sostanzialmente potremmo distinquere due tipologie di
+          hardware:</p>
+
+          <dl class="docutils">
+            <dt>Network appliance dedicata::</dt>
+
+            <dd>Un dispositivo hardware dedicato alla funzione di
+            Firewall, ad es un Cisco / Fortigate. Si noti che molti
+            firewall economici altro non sono che Linux box molto
+            striminzite.</dd>
+
+            <dt>Server / Personal computer:</dt>
+
+            <dd>Un server sul quale viene fatto girare Netfilter ad
+            uso del server stesso e della rete connessa.</dd>
+          </dl>
+
+          <p>Vantaggi e svantaggi: consumo elettrico, efficenza,
+          flessibilita', strumenti di gestione, sicurezza,
+          OpenBSD.</p>
+        </div>
+      </div>
+
+      <div class="section" id=
+      "percorso-dei-pacchetti-tra-tabelle-e-catene">
+        <h2><a class="toc-backref" href=
+        "#id79">8.4&nbsp;&nbsp;&nbsp;Percorso dei pacchetti tra
+        tabelle e catene</a></h2>
+
+        <p>link: <a class="reference external" href=
+        "http://iptables-tutorial.frozentux.net/iptables-tutorial.html#TRAVERSINGOFTABLES">
+        http://iptables-tutorial.frozentux.net/iptables-tutorial.html#TRAVERSINGOFTABLES</a></p>
+      </div>
+
+      <div class="section" id="concetti-di-base">
+        <h2><a class="toc-backref" href=
+        "#id80">8.5&nbsp;&nbsp;&nbsp;Concetti di base</a></h2>
+
+        <div class="section" id="tabelle-catene-regole">
+          <h3><a class="toc-backref" href=
+          "#id81">8.5.1&nbsp;&nbsp;&nbsp;Tabelle, catene,
+          regole</a></h3>
+
+          <p>Iptables lavora su 3 tabelle (tables) di default:</p>
+
+          <ul class="simple">
+            <li>filter - Regola il firewalling: quali pacchetti
+            accettare, quali bloccare</li>
+
+            <li>nat - Regola le attivitÃ&nbsp; di natting</li>
+
+            <li>mangle - Interviene sulla alterazione dei
+            pacchetti.</li>
+          </ul>
+
+          <p>Ogni tabella ha delle catene (chains) predefinite
+          (INPUT, OUTPUT, FORWARD ... ) a cui possono essere
+          aggiunte catene custom. Ogni catena è composta da un
+          elenco di regole (rules) che identificano pacchetti di
+          rete secono criteri diversi (es: -p tcp --dport 80 -d
+          10.0.0.45) Ogni regola termina con una indicazione
+          (target) su cosa fare dei pacchetti identificati dalla
+          regola stessa (es: -j ACCEPT, -j DROP ...)</p>
+        </div>
+
+        <div class="section" id="match">
+          <h3><a class="toc-backref" href=
+          "#id82">8.5.2&nbsp;&nbsp;&nbsp;Match</a></h3>
+
+          <p>I Match di una regola (rule) servono a testare un
+          pacchetto per valutare se corrisponda a certe
+          caratteriscttiche. I match di possono servire a
+          controllare se un pacchetto e' destinato a una porta
+          particolare o utilizza un protocollo particolare.</p>
+
+          <p>Alcuni esempi:</p>
+
+          <dl class="docutils">
+            <dt>-p [!] proto</dt>
+
+            <dd>Protocollo IP. Secondo IP number o nome (es: tcp,
+            udp, gre, ah...)</dd>
+
+            <dt>-s [!] address[/mask]</dt>
+
+            <dd>Indirizzo IP sorgente (o network con maschera di
+            sottorete)</dd>
+
+            <dt>-d [!] address[/mask]</dt>
+
+            <dd>Indirizzo IP destinazione (o network)</dd>
+
+            <dt>-i [!] interface[+]</dt>
+
+            <dd>Interfaccia di rete di entrata ([+] wildcard)</dd>
+
+            <dt>-o [!] interface[+]</dt>
+
+            <dd>Interfaccia di rete di uscita ([+] wildcard)</dd>
+          </dl>
+
+          <table class="docutils option-list" frame="void" rules=
+          "none">
+            <col class="option">
+            <col class="description">
+
+            <tbody valign="top">
+              <tr>
+                <td class="option-group"><kbd><span class=
+                "option">-f</span></kbd></td>
+
+                <td>Frammento di pacchetto</td>
+              </tr>
+            </tbody>
+          </table>
+        </div>
+
+        <div class="section" id="targets">
+          <h3><a class="toc-backref" href=
+          "#id83">8.5.3&nbsp;&nbsp;&nbsp;Targets</a></h3>
+
+          <p>Se un pacchetto soddisfa le condizioni del Match
+          <em>salta</em> (jump) su uno dei target possibili, in
+          caso contrario continua il suo percorso tra regole catene
+          e tabelle.</p>
+
+          <p>Target principali:</p>
+
+          <dl class="docutils">
+            <dt><em>-j ACCEPT</em></dt>
+
+            <dd>Il pachetto matchato viene accettato e procede
+            verso la sua destinazione. Si usa per definire il
+            traffico permesso.</dd>
+
+            <dt><em>-j DROP</em></dt>
+
+            <dd>Il pacchetto viene rifiutato e scartato, senza
+            alcuna notifica al mittente. Si usa, in alternativa a
+            REJECT, per bloccare traffico.</dd>
+
+            <dt><em>-j REJECT</em></dt>
+
+            <dd>Il pacchetto viene rifiutato. Al mittente viene
+            mandato un pacchetto (configurabile) di notifica tipo
+            ICMP port-unreachable (--reject-with
+            icmp-port-unreachable)</dd>
+          </dl>
+
+          <table class="docutils option-list" frame="void" rules=
+          "none">
+            <col class="option">
+            <col class="description">
+
+            <tbody valign="top">
+              <tr>
+                <td class="option-group"><kbd><span class=
+                "option">-t <var>LOG</var></span></kbd></td>
+
+                <td>Il pacchetto viene loggato via syslog e procede
+                l'attraversamento della catena. Opzioni:
+                (--log-level, --log-prefix, --log-tcp-sequence,
+                --log-tcp-options, --log-ip-options)</td>
+              </tr>
+
+              <tr>
+                <td class="option-group"><kbd><span class=
+                "option">-j <var>DNAT</var></span></kbd></td>
+
+                <td>Viene modificato l'IP di destinazione del
+                pacchetto. Target disponibile solo in nat /
+                PREROUTING e nat / OUTPUT. L'opzione
+                --to-destination IP:porta definisce il nuovo IP di
+                destinazione. Si usa tipicamente su network
+                firewall che nattano server di una DMZ</td>
+              </tr>
+
+              <tr>
+                <td class="option-group"><kbd><span class=
+                "option">-j <var>SNAT</var></span></kbd></td>
+
+                <td>Viene modificato l'IP sorgente. Solo in nat /
+                POSTROUTING. Prevede l'opzione --to-source
+                IP:porta. Si usa per permettere l'accesso a
+                Internet da una rete locale con IP privati.</td>
+              </tr>
+
+              <tr>
+                <td class="option-group"><kbd><span class=
+                "option">-j <var>MASQUERADE</var></span></kbd></td>
+
+                <td>Simile a SNAT, si applica quando i pacchetti
+                escono da interfacce con IP dinamico (dialup, adsl,
+                dhcp...). Si usa solo in nat / POSTROUTING e
+                prevede l'opzione --to-ports porte.</td>
+              </tr>
+
+              <tr>
+                <td class="option-group"><kbd><span class=
+                "option">-j <var>REDIRECT</var></span></kbd></td>
+
+                <td>Redirige il pacchetto ad una porta locale.
+                Usabile solo in nat / PREROUTING e nat / OUTPUT è
+                previsto per fare un transparent proxy (con proxy
+                server in esecuzione sulla macchina con
+                iptables)</td>
+              </tr>
+
+              <tr>
+                <td class="option-group"><kbd><span class=
+                "option">-j <var>RETURN</var></span></kbd></td>
+
+                <td>Interrompe l'attraversamento della catena. Se
+                questa è una secondaria, il pacchetto torna ad
+                attraversare la catena madre da punto in cui aveva
+                fatto il salto nella secondaria. Se il RETURN è in
+                una delle catene di default, il pacchetto
+                interrompe l'attraversamento e segue la policy di
+                default.</td>
+              </tr>
+
+              <tr>
+                <td class="option-group"><kbd><span class=
+                "option">-j <var>TOS</var></span></kbd></td>
+
+                <td>Usabile solo nella tabella mangle, permette di
+                cambiare il TOS (Type Of Service) di un pacchetto
+                con l'opzione --set-tos. Per un elenco dei
+                parametri disponibili: iptables -j TOS -h</td>
+              </tr>
+
+              <tr>
+                <td class="option-group"><kbd><span class=
+                "option">-j <var>MIRROR</var></span></kbd></td>
+
+                <td>Curioso e sperimentale, questo target invia un
+                pacchetto speculare al mittente. In pratica è come
+                se facesse da specchio per tutti i pacchetti
+                ricevuti. Da usare con cautela, per evitare
+                attacchi DOS indiretti.</td>
+              </tr>
+            </tbody>
+          </table>
+        </div>
+      </div>
+
+      <div class="section" id="tabella-filter">
+        <h2><a class="toc-backref" href=
+        "#id84">8.6&nbsp;&nbsp;&nbsp;Tabella Filter</a></h2>
+
+        <p>E' quella implicita e predefinita (-t filter) Riguarda
+        le attivitÃ&nbsp; di filtraggio del traffico. Ha 3 catene
+        di default: INPUT - Riguarda tutti i pacchetti destinati al
+        sistema. In entrata da ogni interfaccia. OUTPUT - Riguarda
+        i pacchetti che sono originati dal sistema e destinati ad
+        uscire. FORWARD - Riguarda i pacchetti che attraversano il
+        sistema, con IP sorgente e destinazione esterni.</p>
+
+        <p>Esempio per permettere accesso alla porta 80 locale:
+        iptables -t filter -I INPUT -p tcp --dport 80 -j ACCEPT
+        Analoga a: iptables -I INPUT -p tcp --dport 80 -j
+        ACCEPT</p>
+
+        <p>Esempio per permettere ad un pacchetto con IP sorgente
+        10.0.0.4 di raggiungere il server 192.168.0.1 attraversando
+        il firewall: iptables -I FORWARD -s 10.0.0.4 -d 192.168.0.1
+        -j ACCEPT</p>
+      </div>
+
+      <div class="section" id=
+      "flush-automatico-per-macchine-remote">
+        <h2><a class="toc-backref" href=
+        "#id85">8.7&nbsp;&nbsp;&nbsp;Flush automatico per macchine
+        remote</a></h2>
+
+        <p>Se state provando una configurazione del firewall per
+        una macchina remota e' buona norma per evitare brutte
+        figure attivare uno script che faccia il <em>flush</em>
+        delle regole dopo qualche minuto. Potreste infatti
+        inavvertitamente impostare una regola che vi impedisca di
+        raggiungere la macchina remota, cosi' da non poter neanche
+        eliminare quella regola e ripristinare la situazioe
+        precedente.</p>
+
+        <p><em>Veramnete</em>, prima di lavorare sul firewall di
+        una macchina remota inpostate almeno un <tt class=
+        "docutils literal"><span class="pre">at</span> <span class=
+        "pre">now</span> <span class="pre">+5</span> <span class=
+        "pre">min</span></tt> o con un'oretta di margine per fare
+        il <em>flush</em> delle regole (su tutte le tabelle):</p>
+        <pre class="literal-block">
+    at now +5 min
+at&gt; /sbin/iptables -F
+at&gt; [CTR+d]
+</pre>
+      </div>
+
+      <div class="section" id="gestione-regole-rules">
+        <h2><a class="toc-backref" href=
+        "#id86">8.8&nbsp;&nbsp;&nbsp;Gestione regole
+        (rules)</a></h2>
+
+        <p>Il comando iptables viene usato per ogni attivitÃ&nbsp;
+        di gestione e configurazione.</p>
+
+        <p>Inserimento regole:</p>
+
+        <dl class="docutils">
+          <dt>iptables -A CATENA ...</dt>
+
+          <dd>Aggiunge una regola alla fine della catena
+          indicata</dd>
+
+          <dt>iptables -I CATENA [#] ...</dt>
+
+          <dd>Inserisce alla riga # (default 1) una regola nella
+          catena indicata</dd>
+
+          <dt>iptables -N CATENA</dt>
+
+          <dd>Crea una nuova catena custom</dd>
+
+          <dt>iptables -P CATENA TARGET</dt>
+
+          <dd>Imposta il target di default per la catena
+          indicata</dd>
+        </dl>
+
+        <p>Rimozione regole e azzeramenti:</p>
+
+        <dl class="docutils">
+          <dt>iptables -F [catena]</dt>
+
+          <dd>Ripulisce tutte le catene (o quella indicata)</dd>
+
+          <dt>iptables -X [catena]</dt>
+
+          <dd>Ripulisce tutte le catene custom (o quella
+          indicata)</dd>
+
+          <dt>iptables -Z [catena]</dt>
+
+          <dd>Azzera i contatori sulle catene</dd>
+
+          <dt>iptables -D catena #</dt>
+
+          <dd>Cancella la regola numero # dalla catena
+          indicata</dd>
+        </dl>
+
+        <p>Interrogazione:</p>
+
+        <dl class="docutils">
+          <dt>iptables -L</dt>
+
+          <dd>Elenca le regole esistenti</dd>
+
+          <dt>iptables -L -n -v</dt>
+
+          <dd>Elenca, senza risolvere gli host, in modo verboso le
+          regole esistenti</dd>
+        </dl>
+      </div>
+
+      <div class="section" id="salvataggio-regole">
+        <h2><a class="toc-backref" href=
+        "#id87">8.9&nbsp;&nbsp;&nbsp;Salvataggio regole</a></h2>
+
+        <p>Il comando <tt class="docutils literal"><span class=
+        "pre">iptables</span></tt> serve per interagire con il
+        framework <tt class="docutils literal"><span class=
+        "pre">Netfilter</span></tt> ch gestisce il firewall di
+        Linux al livello del kernel. Questo comporta, in modo
+        analogo a quando avvene col comando <tt class=
+        "docutils literal"><span class="pre">ifconfig</span></tt>,
+        che i cambiameti impostati siano in <em>tempo reale,
+        RAM</em>, non persistenti nel sistema: al boot sucessivo
+        del sistema tutto tornera' alle impostazioni di base (in
+        questo caso <em>nulle</em>, con policy di default settate
+        su <tt class="docutils literal"><span class=
+        "pre">ACCEPT</span></tt> per tutto).</p>
+
+        <p>Le varie invocazioni di iptables potrebbero essere
+        richiamate da degli scripts dedicati, ma fortunatamente e'
+        stata predisposta una apposita utility per gestire questi
+        scripts in modo da avere a disposizione un <em>formato
+        standard</em> per il salvataggio e il ripristino delle
+        regole del firewall.</p>
+
+        <p>Altro problema: decidere quando attivare / disattivare
+        queste regole. Utilizzare i <em>runlevels</em> non e' una
+        soluzione adeguata: le regole del firewall sono legate
+        all'attivita' delle schede di rete (e un host con diverse
+        schede di rete puo' attivarle a secondo delle esigenze di
+        routing, partenza di servizi es file_sharing per un
+        back-up...): il sistema operativo Debian permette di legare
+        l'esecuzione di comandi alla attivazione di una device di
+        rete (<tt class="docutils literal"><span class=
+        "pre">up</span></tt>), dopo la sua attivazione (<tt class=
+        "docutils literal"><span class="pre">post-up</span></tt>,
+        utile per devices che richiedono un certo tempo per
+        inizializzarsi: come un tunnel o una connessione punto a
+        punto), prima della sua attivazione (<tt class=
+        "docutils literal"><span class="pre">pre-up</span></tt>).
+        Allo stesso modo sono disponibili eventi analoghi per
+        accompagnare la disattivazione dei device di rete: si veda
+        la pagina man di <tt class="docutils literal"><span class=
+        "pre">interfaces</span></tt>.</p>
+
+        <p>Nel nostro caso avremo per una possibile scheda
+        <tt class="docutils literal"><span class=
+        "pre">eth0</span></tt>:</p>
+
+        <p><tt class="docutils literal"><span class=
+        "pre">/etc/network/interfaces</span></tt></p>
+        <pre class="literal-block">
+iface eth1 inet static
+        up /sbin/iptables-restore /root/firewall/basic_fw
+        # Seguno i soliti parametri della scheda di rete
+        address 10.10.208.21
+</pre>
+
+        <div class="section" id="iptables-save">
+          <h3><a class="toc-backref" href=
+          "#id88">8.9.1&nbsp;&nbsp;&nbsp;Iptables-save</a></h3>
+
+          <p>Per salvare le regole di iptables attualmente presenti
+          nel kernel si usi il comando:</p>
+          <pre class="literal-block">
+# iptables-save &gt;&gt; /root/firewall/basic_fw
+</pre>
+
+          <p>Il contenuto del file dovrebbe essere
+          <em>comprensibile</em>: sostanzialmente sono regole di
+          iptables, senza il comando iptables ripetuto, suddivisi
+          per le varie tabelle. Potete comunque correggere
+          eventuali parametri con un edito di testo.</p>
+
+          <p>Se non avete un'idea migliore potreste voler tenere
+          gli script dei firewall in una cartella <tt class=
+          "docutils literal"><span class=
+          "pre">~/firewall</span></tt> nella home directory
+          dell'utente <tt class="docutils literal"><span class=
+          "pre">root</span></tt>.</p>
+        </div>
+
+        <div class="section" id="iptables-restore">
+          <h3><a class="toc-backref" href=
+          "#id89">8.9.2&nbsp;&nbsp;&nbsp;Iptables-restore</a></h3>
+
+          <p>Per ripristinare un set di regole prcedentemente
+          salvate con <tt class="docutils literal"><span class=
+          "pre">iptables-save</span></tt> si utilizzi <tt class=
+          "docutils literal"><span class=
+          "pre">iptables-restore</span></tt>. Se questo deve essere
+          fatto in modalita' <em>non interattiva</em>, ad esempio
+          deve essere eseguito dal demone che si occupa di
+          inizializzare le schede di rete, oppure un <em>cron</em>
+          o altro, e' buona norma richiamare i percorsi completi
+          sia dei comandi che dei file:</p>
+          <pre class="literal-block">
+/sbin/iptables-restore /root/firewall/basic_fw
+</pre>
+        </div>
+      </div>
+    </div>
+
     <div class="section" id="note">
       <h1><a class="toc-backref" href=
-      "#id44">7&nbsp;&nbsp;&nbsp;NOTE</a></h1>
+      "#id90">9&nbsp;&nbsp;&nbsp;NOTE</a></h1>
 
       <ul class="simple">
         <li>controllare apache</li>