]> git.piffa.net Git - doc/.git/blobdiff - servizi.html
Servizi di rete: typos e correzioni
[doc/.git] / servizi.html
index fe6b7411869c01990e83d5d137da3d6222764878..ca0a83282716ec486aa90c12256dcfd28e914ac2 100644 (file)
 <html lang="it">
 <head>
   <meta name="generator" content=
-  "HTML Tidy for Linux/x86 (vers 7 December 2008), see www.w3.org">
+  "HTML Tidy for Linux/x86 (vers 25 March 2009), see www.w3.org">
   <meta http-equiv="Content-Type" content=
   "text/html; charset=iso-8859-1">
   <meta name="generator" content=
-  "Docutils 0.5: http://docutils.sourceforge.net/">
+  "Docutils 0.6: http://docutils.sourceforge.net/">
 
-  <title>Servizi Di rete passo a passo</title>
+  <title>Servizi di rete passo a passo</title>
   <style type="text/css">
 
   /*
-  :Author: David Goodger (goodger@python.org)
-  :Id: $Id: html4css1.css 5196 2007-06-03 20:25:28Z wiemann $
-  :Copyright: This stylesheet has been placed in the public domain.
-
-  Default cascading style sheet for the HTML output of Docutils.
-
-  See http://docutils.sf.net/docs/howto/html-stylesheets.html for how to
-  customize this style sheet.
+  Author: Peter Parente
+  Date: 2008/01/22
+  Version: 1.0
+  Copyright: This stylesheet has been placed in the public domain - free to edit and use for all uses.
   */
 
-  /* used to remove borders from tables and images */
-  .borderless, table.borderless td, table.borderless th {
-  border: 0 }
+  body {
+  font: 100% sans-serif;
+  background: #ffffff;
+  color: black;
+  margin: 2em;
+  padding: 0em 2em;
+  }
+  pre.literal-block {
+         overflow: auto;
+    padding: 5px;
+    background-color: #eeffcc;
+    color: #333333;
+    line-height: 120%;
+    border: 1px solid #ac9;
+    border-left: none;
+    border-right: none;
+  }
 
-  table.borderless td, table.borderless th {
-  /* Override padding for "table.docutils td" with "! important".
-     The right padding separates the table cells. */
-  padding: 0 0.5em 0 0 ! important }
-
-  .first {
-  /* Override more specific margin styles with "! important". */
-  margin-top: 0 ! important }
+  p.topic-title {
+  font-weight: bold;
+  }
 
-  .last, .with-subtitle {
-  margin-bottom: 0 ! important }
+  table.docinfo {
+  text-align: left;
+  margin: 2em 0em;
+  }
 
-  .hidden {
-  display: none }
+  a[href] {
+  color: #436976;
+  background-color: transparent;
+  }
 
   a.toc-backref {
-  text-decoration: none ;
-  color: black }
-
-  blockquote.epigraph {
-  margin: 2em 5em ; }
-
-  dl.docutils dd {
-  margin-bottom: 0.5em }
-
-  /* Uncomment (and remove this text!) to get bold-faced definition list terms
-  dl.docutils dt {
-  font-weight: bold }
-  */
-
-  div.abstract {
-  margin: 2em 5em }
-
-  div.abstract p.topic-title {
-  font-weight: bold ;
-  text-align: center }
-
-  div.admonition, div.attention, div.caution, div.danger, div.error,
-  div.hint, div.important, div.note, div.tip, div.warning {
-  margin: 2em ;
-  border: medium outset ;
-  padding: 1em }
-
-  div.admonition p.admonition-title, div.hint p.admonition-title,
-  div.important p.admonition-title, div.note p.admonition-title,
-  div.tip p.admonition-title {
-  font-weight: bold ;
-  font-family: sans-serif }
-
-  div.attention p.admonition-title, div.caution p.admonition-title,
-  div.danger p.admonition-title, div.error p.admonition-title,
-  div.warning p.admonition-title {
-  color: red ;
-  font-weight: bold ;
-  font-family: sans-serif }
-
-  /* Uncomment (and remove this text!) to get reduced vertical space in
-   compound paragraphs.
-  div.compound .compound-first, div.compound .compound-middle {
-  margin-bottom: 0.5em }
-
-  div.compound .compound-last, div.compound .compound-middle {
-  margin-top: 0.5em }
-  */
-
-  div.dedication {
-  margin: 2em 5em ;
-  text-align: center ;
-  font-style: italic }
-
-  div.dedication p.topic-title {
-  font-weight: bold ;
-  font-style: normal }
-
-  div.figure {
-  margin-left: 2em ;
-  margin-right: 2em }
-
-  div.footer, div.header {
-  clear: both;
-  font-size: smaller }
-
-  div.line-block {
-  display: block ;
-  margin-top: 1em ;
-  margin-bottom: 1em }
+  text-decoration: none;
+  }
+
+  h1 a[href] {
+  color: #003a6b;
+  text-decoration: none;
+  background-color: transparent;
+  }
+
+  a.strong {
+  font-weight: bold;
+  }
+
+  img {
+  margin: 0;
+  border: 0;
+  }
+
+  p {
+  margin: 0.5em 0 1em 0;
+  text-align: justify;
+  line-height: 1.5em;
+  }
+
+
+  p a:visited {
+  color: purple;
+  background-color: transparent;
+  }
+
+  p a:active {
+  color: red;
+  background-color: transparent;
+  }
+
+  a:hover {
+  text-decoration: none;
+  }
+
+  p img {
+  border: 0;
+  margin: 0;
+  }
 
-  div.line-block div.line-block {
-  margin-top: 0 ;
-  margin-bottom: 0 ;
-  margin-left: 1.5em }
-
-  div.sidebar {
-  margin: 0 0 0.5em 1em ;
-  border: medium outset ;
-  padding: 1em ;
-  background-color: #ffffee ;
-  width: 40% ;
-  float: right ;
-  clear: right }
-
-  div.sidebar p.rubric {
-  font-family: sans-serif ;
-  font-size: medium }
-
-  div.system-messages {
-  margin: 5em }
-
-  div.system-messages h1 {
-  color: red }
-
-  div.system-message {
-  border: medium outset ;
-  padding: 1em }
-
-  div.system-message p.system-message-title {
-  color: red ;
-  font-weight: bold }
-
-  div.topic {
-  margin: 2em }
-
-  h1.section-subtitle, h2.section-subtitle, h3.section-subtitle,
-  h4.section-subtitle, h5.section-subtitle, h6.section-subtitle {
-  margin-top: 0.4em }
+  p.rubric {
+  font-weight: bold;
+  font-style: italic;
+  }
 
   h1.title {
-  text-align: center }
+  color: #003a6b;
+  font-size: 250%;
+  margin-bottom: 0em;
+  }
 
   h2.subtitle {
-  text-align: center }
-
-  hr.docutils {
-  width: 75% }
-
-  img.align-left {
-  clear: left }
-
-  img.align-right {
-  clear: right }
-
-  ol.simple, ul.simple {
-  margin-bottom: 1em }
-
-  ol.arabic {
-  list-style: decimal }
-
-  ol.loweralpha {
-  list-style: lower-alpha }
+  color: #003a6b;
+  border-bottom: 0px;
+  }
+
+  h1, h2, h3, h4, h5, h6 {
+  color: #555;
+  background-color: transparent;
+  margin: 0em;
+  padding-top: 0.5em;
+  }
+
+  h1 {
+  font-size: 160%;
+  margin-bottom: 0.5em;
+  border-bottom: 2px solid #aaa;
+  }
+
+  h2 {
+  font-size: 140%;
+  margin-bottom: 0.5em;
+  border-bottom: 1px solid #aaa;
+  }
+
+  h3 {
+  font-size: 130%;
+  margin-bottom: 0.5em;
+  }
+
+  h4 {
+  font-size: 110%;
+  font-weight: bold;
+  margin-bottom: 0.5em;
+  }
+
+  h5 {
+  font-size: 105%;
+  font-weight: bold;
+  margin-bottom: 0.5em;
+  }
+
+  h6 {
+  font-size: 100%;
+  font-weight: bold;
+  margin-bottom: 0.5em;
+  }
+
+  dt {
+  font-style: italic;
+  }
+
+  dd {
+  margin-bottom: 1.5em;
+  }
+
+  div.admonition, div.note, div.tip, div.caution, div.important {
+  margin: 2em 2em;
+  padding: 0em 1em;
+  border-top: 1px solid #aaa;
+  border-left: 1px solid #aaa;
+  border-bottom: 2px solid #555;
+  border-right: 2px solid #555;
+  }
+
+  div.important {
+  background: transparent url('../images/important.png') 10px 2px no-repeat;
+  }
+
+  div.caution {
+  background: transparent url('../images/caution.png') 10px 2px no-repeat;
+  }
+
+  div.note {
+  background: transparent url('../images/note.png') 10px 2px no-repeat;
+  }
+
+  div.tip {
+  background: transparent url('../images/tip.png') 10px 2px no-repeat;
+  }
+
+  div.admonition-example {
+  background: transparent url('../images/tip.png') 10px 2px no-repeat;
+  }
+
+  div.admonition-critical-example {
+  background: transparent url('../images/important.png') 10px 2px no-repeat;
+  }
+
+  p.admonition-title {
+  font-weight: bold;
+  border-bottom: 1px solid #aaa;
+  padding-left: 30px;
+  }
 
-  ol.upperalpha {
-  list-style: upper-alpha }
-
-  ol.lowerroman {
-  list-style: lower-roman }
-
-  ol.upperroman {
-  list-style: upper-roman }
-
-  p.attribution {
-  text-align: right ;
-  margin-left: 50% }
+  table.docutils {
+  text-align: left;
+  border: 1px solid gray;
+  border-collapse: collapse;
+  width: 100%;
+  margin: 1.5em 0em;
+  }
 
-  p.caption {
-  font-style: italic }
+  table.docutils caption {
+  font-style: italic;
+  }
 
-  p.credits {
-  font-style: italic ;
-  font-size: smaller }
+  table.docutils td, table.docutils th {
+  padding: 0.25em 0.5em;
+  }
 
-  p.label {
-  white-space: nowrap }
+  table.docutils th {
+  background-color: #dddddd;
+  }
 
-  p.rubric {
-  font-weight: bold ;
-  font-size: larger ;
-  color: maroon ;
-  text-align: center }
+  div.sidebar {
+  width: 33%;
+  float: right;
+  margin: 0em 2em;
+  padding: 0em 1em;
+  border-top: 1px solid #aaa;
+  border-left: 1px solid #aaa;
+  border-bottom: 2px solid #555;
+  border-right: 2px solid #555;
+  }
 
   p.sidebar-title {
-  font-family: sans-serif ;
-  font-weight: bold ;
-  font-size: larger }
+  margin-bottom: 0em;
+  color: #003a6b;
+  border-bottom: 1px solid #aaa;
+  font-weight: bold;
+  }
 
   p.sidebar-subtitle {
-  font-family: sans-serif ;
-  font-weight: bold }
-
-  p.topic-title {
-  font-weight: bold }
-
-  pre.address {
-  margin-bottom: 0 ;
-  margin-top: 0 ;
-  font-family: serif ;
-  font-size: 100% }
-
-  pre.literal-block, pre.doctest-block {
-  margin-left: 2em ;
-  margin-right: 2em }
-
-  span.classifier {
-  font-family: sans-serif ;
-  font-style: oblique }
-
-  span.classifier-delimiter {
-  font-family: sans-serif ;
-  font-weight: bold }
-
-  span.interpreted {
-  font-family: sans-serif }
-
-  span.option {
-  white-space: nowrap }
-
-  span.pre {
-  white-space: pre }
-
-  span.problematic {
-  color: red }
-
-  span.section-subtitle {
-  /* font-size relative to parent (h1..h6 element) */
-  font-size: 80% }
-
-  table.citation {
-  border-left: solid 1px gray;
-  margin-left: 1px }
-
-  table.docinfo {
-  margin: 2em 4em }
-
-  table.docutils {
-  margin-top: 0.5em ;
-  margin-bottom: 0.5em }
-
-  table.footnote {
-  border-left: solid 1px black;
-  margin-left: 1px }
-
-  table.docutils td, table.docutils th,
-  table.docinfo td, table.docinfo th {
-  padding-left: 0.5em ;
-  padding-right: 0.5em ;
-  vertical-align: top }
-
-  table.docutils th.field-name, table.docinfo th.docinfo-name {
-  font-weight: bold ;
-  text-align: left ;
-  white-space: nowrap ;
-  padding-left: 0 }
-
-  h1 tt.docutils, h2 tt.docutils, h3 tt.docutils,
-  h4 tt.docutils, h5 tt.docutils, h6 tt.docutils {
-  font-size: 100% }
-
-  ul.auto-toc {
-  list-style-type: none }
+  margin-top: 0em;
+  font-style: italic;
+  color: #003a6b;
+  }
 
   </style>
 </head>
 
 <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">
-    Appunti sulla installazione e configurazione dei servizi</h2>
+    "appunti-sulla-installazione-e-configurazione-dei-servizi-di-rete-in-ambiete-gnu-linx">
+    Appunti sulla installazione e configurazione dei servizi di
+    rete in ambiete Gnu/Linx</h2>
 
     <blockquote>
       <table class="docutils field-list" frame="void" rules="none">
           <tr class="field">
             <th class="field-name">Version:</th>
 
-            <td class="field-body">0.3</td>
+            <td class="field-body">0.92</td>
           </tr>
         </tbody>
       </table>
     </blockquote>
 
-    <p>Questa guida e' dedicata agli studenti delle lezioni di
-    informatica tenute da Andrea nel lab208. Nella parte iniziale
-    sono presenti alcuni richiami alle impostazioni di rete e di
-    installazione del laboratorio 208 (lab208) dove generalmente si
-    tengono le lezioni. Questi parametri non sono interessanti per
-    chiunque si trovasse al di fuori della rete piffa.net .</p>
+    <p>Questa guida tratta la configurazione di base dei principali
+    servizi di rete utilizzati con sistemi operativi <em>Unix</em>
+    e derivati come <em>GNU/Linux</em> per gli studenti dei corsi
+    per amministratori di rete in ambiente <em>GNU/Linux</em>. In
+    particolare questa guida e' stata scritta usando come
+    riferimento la distribuzione <em>Debian GNU/Linux</em>. Gli
+    esempi presentati dovrebbero quindi essere direttamente
+    utilizzabili anche su distribuzioni derivate da Debian come
+    Ubuntu, per sistemi operativi diversi si presti attenzione ai
+    percorsi dei file citati.</p>
 
     <div class="contents topic" id="indice-degli-argomenti">
       <p class="topic-title first">Indice degli argomenti</p>
       <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="id9" name=
+          "id9">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="id10" name=
+            "id10">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="id11"
+              name="id11">1.2&nbsp;&nbsp;&nbsp;Rete</a>
+
+              <ul class="auto-toc">
+                <li><a class="reference internal" href=
+                "#interfaces" id="id12" name=
+                "id12">1.2.1&nbsp;&nbsp;&nbsp;interfaces</a></li>
+              </ul>
+            </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="id13" name=
+            "id13">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="id14"
+            name="id14">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="id15"
+            name="id15">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="id16" name=
+            "id16">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="id17" name=
+              "id17">1.7&nbsp;&nbsp;&nbsp;Apt configurazione</a>
+
+              <ul class="auto-toc">
+                <li><a class="reference internal" href=
+                "#sources-list" id="id18" name=
+                "id18">1.7.1&nbsp;&nbsp;&nbsp;sources.list</a></li>
+
+                <li><a class="reference internal" href=
+                "#etc-apt-apt-conf" id="id19" name=
+                "id19">1.7.2&nbsp;&nbsp;&nbsp;/etc/apt/apt.conf</a></li>
+              </ul>
+            </li>
+          </ul>
+        </li>
+
+        <li>
+          <a class="reference internal" href="#squid" id="id20"
+          name="id20">2&nbsp;&nbsp;&nbsp;Squid</a>
+
+          <ul class="auto-toc">
+            <li>
+              <a class="reference internal" href=
+              "#configurazione-squid-conf" id="id21" name=
+              "id21">2.1&nbsp;&nbsp;&nbsp;Configurazione:
+              squid.conf</a>
+
+              <ul class="auto-toc">
+                <li><a class="reference internal" href="#cache-dir"
+                id="id22" name=
+                "id22">2.1.1&nbsp;&nbsp;&nbsp;Cache_dir</a></li>
+
+                <li><a class="reference internal" href=
+                "#tag-maximum-object-size" id="id23" name=
+                "id23">2.1.2&nbsp;&nbsp;&nbsp;TAG:
+                maximum_object_size</a></li>
+
+                <li><a class="reference internal" href=
+                "#tag-cache-mem" id="id24" name=
+                "id24">2.1.3&nbsp;&nbsp;&nbsp;TAG:
+                cache_mem</a></li>
+
+                <li><a class="reference internal" href=
+                "#tag-minimum-object-size" id="id25" name=
+                "id25">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="id26"
+              name="id26">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="id27" name=
+                "id27">2.2.1&nbsp;&nbsp;&nbsp;ACL e http
+                access</a></li>
+              </ul>
+            </li>
+
+            <li>
+              <a class="reference internal" href="#testare-squid"
+              id="id28" name="id28">2.3&nbsp;&nbsp;&nbsp;Testare
+              Squid</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>
+                "#client-wgetrc" id="id29" name=
+                "id29">2.3.1&nbsp;&nbsp;&nbsp;Client:
+                ~/.wgetrc</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>
+                "#server-access-log" id="id30" name=
+                "id30">2.3.2&nbsp;&nbsp;&nbsp;Server:
+                access.log</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="#tiny-proxy" id=
+        "id31" name="id31">3&nbsp;&nbsp;&nbsp;Tiny proxy</a></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="id32"
+          name="id32">4&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="id33" name=
+            "id33">4.1&nbsp;&nbsp;&nbsp;Pacchetti da
+            installare::</a></li>
+
+            <li><a class="reference internal" href=
+            "#configurazione-di-apache" id="id34" name=
+            "id34">4.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="id35" name=
+            "id35">4.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="id36" name=
+              "id36">4.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="id37" name=
+                "id37">4.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
-                del supporto per Mysql</a></li>
+                "#installazione-del-supporto-per-mysql-a-php" id=
+                "id38" name=
+                "id38">4.4.2&nbsp;&nbsp;&nbsp;Installazione del
+                supporto per Mysql a PHP</a></li>
+
+                <li><a class="reference internal" href=
+                "#phpmyadmin" id="id39" name=
+                "id39">4.4.3&nbsp;&nbsp;&nbsp;phpmyadmin</a></li>
 
                 <li><a class="reference internal" href=
-                "#phpmyadmin" id="id22" name=
-                "id22">3.3.3&nbsp;&nbsp;&nbsp;phpmyadmin</a></li>
+                "#installazione-del-supporto-per-postgresql-a-php"
+                id="id40" name=
+                "id40">4.4.4&nbsp;&nbsp;&nbsp;Installazione del
+                supporto per Postgresql a PHP</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
-                supporto per Postgresql</a></li>
+                "#phppgadmin" id="id41" name=
+                "id41">4.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="id42" name="id42">4.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="id43" name=
+                "id43">4.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>
+                "#eseguire-una-query-dns-con-dig" id="id44" name=
+                "id44">4.5.2&nbsp;&nbsp;&nbsp;Eseguire una query
+                DNS con <tt class=
+                "docutils literal">dig</tt>::</a></li>
+
+                <li><a class="reference internal" href="#id3" id=
+                "id45" name="id45">4.5.3&nbsp;&nbsp;&nbsp;Virtual
+                hosts</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="id46" name=
+              "id46">4.6&nbsp;&nbsp;&nbsp;Negoziazione accessi</a>
+
+              <ul class="auto-toc">
+                <li><a class="reference internal" href=
+                "#limiti-su-base-ip" id="id47" name=
+                "id47">4.6.1&nbsp;&nbsp;&nbsp;Limiti su base
+                IP</a></li>
+              </ul>
+            </li>
+
+            <li>
+              <a class="reference internal" href=
+              "#user-authentication" id="id48" name=
+              "id48">4.7&nbsp;&nbsp;&nbsp;User Authentication</a>
+
+              <ul class="auto-toc">
+                <li><a class="reference internal" href=
+                "#definire-la-cartella" id="id49" name=
+                "id49">4.7.1&nbsp;&nbsp;&nbsp;Definire la
+                cartella</a></li>
+
+                <li><a class="reference internal" href=
+                "#creazione-del-database-delle-passwords" id="id50"
+                name="id50">4.7.2&nbsp;&nbsp;&nbsp;Creazione del
+                database delle passwords</a></li>
+
+                <li><a class="reference internal" href="#id4" id=
+                "id51" name=
+                "id51">4.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>
+            "id52" name="id52">4.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="id53" name="id53">5&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>
+            "#risoluzione-inversa" id="id54" name=
+            "id54">5.1&nbsp;&nbsp;&nbsp;Risoluzione
+            Inversa</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>
+            "#nomi-di-dominio" id="id55" name=
+            "id55">5.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="id56" name=
+            "id56">5.3&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>
+            "id57" name=
+            "id57">5.4&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="id58" name=
+            "id58">5.5&nbsp;&nbsp;&nbsp;Risoluzione dei nomi di
             dominio</a></li>
+
+            <li><a class="reference internal" href="#dig" id="id59"
+            name="id59">5.6&nbsp;&nbsp;&nbsp;Dig</a></li>
+
+            <li><a class="reference internal" href="#resolv-conf"
+            id="id60" name=
+            "id60">5.7&nbsp;&nbsp;&nbsp;resolv.conf</a></li>
+
+            <li><a class="reference internal" href="#etc-hosts" id=
+            "id61" name=
+            "id61">5.8&nbsp;&nbsp;&nbsp;/etc/hosts</a></li>
+
+            <li>
+              <a class="reference internal" href="#hostname" id=
+              "id62" name="id62">5.9&nbsp;&nbsp;&nbsp;Hostname</a>
+
+              <ul class="auto-toc">
+                <li><a class="reference internal" href="#fqdn" id=
+                "id63" name=
+                "id63">5.9.1&nbsp;&nbsp;&nbsp;FQDN</a></li>
+              </ul>
+            </li>
+          </ul>
+        </li>
+
+        <li>
+          <a class="reference internal" href="#dnsmasq" id="id64"
+          name="id64">6&nbsp;&nbsp;&nbsp;DNSmasq</a>
+
+          <ul class="auto-toc">
+            <li><a class="reference internal" href=
+            "#configurazione" id="id65" name=
+            "id65">6.1&nbsp;&nbsp;&nbsp;Configurazione</a></li>
+
+            <li><a class="reference internal" href="#dhcp" id=
+            "id66" name="id66">6.2&nbsp;&nbsp;&nbsp;DHCP</a></li>
+
+            <li><a class="reference internal" href="#dns-cache" id=
+            "id67" name="id67">6.3&nbsp;&nbsp;&nbsp;DNS
+            cache</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=
+          "#bind-dns-autoritativo" id="id68" name=
+          "id68">7&nbsp;&nbsp;&nbsp;Bind : DNS Autoritativo</a>
+
+          <ul class="auto-toc">
+            <li><a class="reference internal" href="#id5" id="id69"
+            name="id69">7.1&nbsp;&nbsp;&nbsp;DNS cache</a></li>
+
+            <li>
+              <a class="reference internal" href=
+              "#ospitare-una-zona" id="id70" name=
+              "id70">7.2&nbsp;&nbsp;&nbsp;Ospitare una zona</a>
+
+              <ul class="auto-toc">
+                <li><a class="reference internal" href=
+                "#named-conf-local" id="id71" name=
+                "id71">7.2.1&nbsp;&nbsp;&nbsp;named.conf.local</a></li>
+
+                <li>
+                  <a class="reference internal" href=
+                  "#configurazione-della-zona" id="id72" name=
+                  "id72">7.2.2&nbsp;&nbsp;&nbsp;Configurazione
+                  della zona</a>
+
+                  <ul class="auto-toc">
+                    <li><a class="reference internal" href=
+                    "#soa-start-of-authority-record" id="id73"
+                    name="id73">7.2.2.1&nbsp;&nbsp;&nbsp;SOA: Start
+                    of Authority Record</a></li>
+
+                    <li><a class="reference internal" href=
+                    "#altri-campi" id="id74" name=
+                    "id74">7.2.2.2&nbsp;&nbsp;&nbsp;Altri
+                    campi:</a></li>
+                  </ul>
+                </li>
+              </ul>
+            </li>
+
+            <li><a class="reference internal" href="#dns-slave" id=
+            "id75" name="id75">7.3&nbsp;&nbsp;&nbsp;DNS
+            slave</a></li>
+
+            <li>
+              <a class="reference internal" href=
+              "#aggiornamento-dinamico-nsupdate" id="id76" name=
+              "id76">7.4&nbsp;&nbsp;&nbsp;Aggiornamento dinamico:
+              nsupdate</a>
+
+              <ul class="auto-toc">
+                <li><a class="reference internal" href=
+                "#configurazione-client-nsupdate" id="id77" name=
+                "id77">7.4.1&nbsp;&nbsp;&nbsp;Configurazione client
+                (nsupdate)</a></li>
+
+                <li><a class="reference internal" href=
+                "#configurazione-server-riconoscimento-chiave" id=
+                "id78" name=
+                "id78">7.4.2&nbsp;&nbsp;&nbsp;Configurazione
+                server: riconoscimento chiave</a></li>
+
+                <li><a class="reference internal" href=
+                "#server-gestione-dell-intera-zona" id="id79" name=
+                "id79">7.4.3&nbsp;&nbsp;&nbsp;Server: gestione
+                dell'intera zona</a></li>
+
+                <li><a class="reference internal" href=
+                "#automatizzare-l-aggiornamento-dinamico" id="id80"
+                name="id80">7.4.4&nbsp;&nbsp;&nbsp;Automatizzare
+                l'aggiornamento dinamico</a></li>
+              </ul>
+            </li>
+
+            <li><a class="reference internal" href=
+            "#link-suggeriti" id="id81" name=
+            "id81">7.5&nbsp;&nbsp;&nbsp;Link suggeriti:</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="id82"
+          name="id82">8&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>
+            "id83" name=
+            "id83">8.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="id84" name=
+            "id84">8.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="id85" name=
+            "id85">8.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="id86" name=
+              "id86">8.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
+                "id87" name=
+                "id87">8.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
-            dell'applicativo Samba vero e proprio.</a></li>
+            <li>
+              <a class="reference internal" href=
+              "#configurazione-dell-applicativo-samba-vero-e-proprio"
+              id="id88" name=
+              "id88">8.5&nbsp;&nbsp;&nbsp;Configurazione
+              dell'applicativo Samba vero e proprio.</a>
+
+              <ul class="auto-toc">
+                <li><a class="reference internal" href=
+                "#creazione-di-un-gruppo" id="id89" name=
+                "id89">8.5.1&nbsp;&nbsp;&nbsp;Creazione di un
+                gruppo</a></li>
+              </ul>
+            </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="id90" name=
+            "id90">8.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>
-      </ul>
-    </div>
+        <li>
+          <a class="reference internal" href=
+          "#server-di-posta-postfix" id="id91" name=
+          "id91">9&nbsp;&nbsp;&nbsp;Server di posta: Postfix</a>
 
-    <p>Generato con: <a class="reference external" href=
-    "http://docutils.sourceforge.net/rst.html">http://docutils.sourceforge.net/rst.html</a></p>
+          <ul class="auto-toc">
+            <li>
+              <a class="reference internal" href=
+              "#test-del-server-smtp" id="id92" name=
+              "id92">9.1&nbsp;&nbsp;&nbsp;Test del server smtp</a>
 
-    <div class="section" id="configurazione-sistema">
-      <h1><a class="toc-backref" href=
-      "#id5">1&nbsp;&nbsp;&nbsp;Configurazione sistema</a></h1>
+              <ul class="auto-toc">
+                <li><a class="reference internal" href="#swaks" id=
+                "id93" name=
+                "id93">9.1.1&nbsp;&nbsp;&nbsp;Swaks</a></li>
+              </ul>
+            </li>
 
-      <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>
+            <li><a class="reference internal" href="#imap-e-pop"
+            id="id94" name="id94">9.2&nbsp;&nbsp;&nbsp;Imap e
+            pop</a></li>
 
-        <p>Impostazioni di base per la configurazione del sistema
-        operativo e della rete nel laboratorio 208 facente parte
-        della rete piffa.net .</p>
+            <li>
+              <a class="reference internal" href=
+              "#client-a-riga-di-comando" id="id95" name=
+              "id95">9.3&nbsp;&nbsp;&nbsp;Client a riga di
+              comando</a>
 
-        <p>Qui riportati per comodita' degli studenti (e del
-        docente che non sara' <strong>mai piu'</strong> costretto a
-        ripeterli! )</p>
-      </div>
+              <ul class="auto-toc">
+                <li><a class="reference internal" href="#mailx" id=
+                "id96" name=
+                "id96">9.3.1&nbsp;&nbsp;&nbsp;mailx</a></li>
 
-      <div class="section" id="rete">
-        <h2><a class="toc-backref" href=
-        "#id7">1.2&nbsp;&nbsp;&nbsp;Rete</a></h2>
+                <li><a class="reference internal" href="#mutt" id=
+                "id97" name=
+                "id97">9.3.2&nbsp;&nbsp;&nbsp;Mutt</a></li>
 
-        <p>Parametri della rete attualmente in uso:</p>
+                <li><a class="reference internal" href=
+                "#web-client" id="id98" name=
+                "id98">9.3.3&nbsp;&nbsp;&nbsp;Web client</a></li>
+              </ul>
+            </li>
 
-        <table border="1" class="docutils">
-          <colgroup>
-            <col width="45%">
-            <col width="55%">
-          </colgroup>
+            <li>
+              <a class="reference internal" href="#graylisting" id=
+              "id99" name=
+              "id99">9.4&nbsp;&nbsp;&nbsp;Graylisting</a>
 
-          <tbody valign="top">
-            <tr>
-              <td colspan="2">Parametri della rete</td>
-            </tr>
+              <ul class="auto-toc">
+                <li><a class="reference internal" href=
+                "#abilitazione-in-postfix" id="id100" name=
+                "id100">9.4.1&nbsp;&nbsp;&nbsp;Abilitazione in
+                Postfix</a></li>
 
-            <tr>
-              <td>rete</td>
+                <li><a class="reference internal" href="#test" id=
+                "id101" name=
+                "id101">9.4.2&nbsp;&nbsp;&nbsp;Test</a></li>
 
-              <td>10.10.208.0/24</td>
-            </tr>
+                <li><a class="reference internal" href=
+                "#statistiche" id="id102" name=
+                "id102">9.4.3&nbsp;&nbsp;&nbsp;Statistiche</a></li>
+              </ul>
+            </li>
+          </ul>
+        </li>
 
-            <tr>
-              <td>netmask</td>
+        <li>
+          <a class="reference internal" href="#firewall" id="id103"
+          name="id103">10&nbsp;&nbsp;&nbsp;Firewall</a>
 
-              <td>255.255.255.0</td>
-            </tr>
+          <ul class="auto-toc">
+            <li><a class="reference internal" href="#links" id=
+            "id104" name=
+            "id104">10.1&nbsp;&nbsp;&nbsp;Links</a></li>
 
-            <tr>
-              <td>broadcast</td>
+            <li><a class="reference internal" href="#ipfilter" id=
+            "id105" name=
+            "id105">10.2&nbsp;&nbsp;&nbsp;Ipfilter</a></li>
 
-              <td>10.10.208.255</td>
-            </tr>
+            <li>
+              <a class="reference internal" href=
+              "#progettazione-di-un-firewall" id="id106" name=
+              "id106">10.3&nbsp;&nbsp;&nbsp;Progettazione di un
+              firewall</a>
 
-            <tr>
-              <td>gateway</td>
+              <ul class="auto-toc">
+                <li><a class="reference internal" href=
+                "#collocazione" id="id107" name=
+                "id107">10.3.1&nbsp;&nbsp;&nbsp;Collocazione</a></li>
 
-              <td>10.10.208.254</td>
-            </tr>
+                <li><a class="reference internal" href=
+                "#policy-di-default" id="id108" name=
+                "id108">10.3.2&nbsp;&nbsp;&nbsp;Policy di
+                default</a></li>
 
-            <tr>
-              <td>gateway</td>
+                <li><a class="reference internal" href="#hardware"
+                id="id109" name=
+                "id109">10.3.3&nbsp;&nbsp;&nbsp;Hardware</a></li>
+              </ul>
+            </li>
 
-              <td>10.10.208.250 persistente</td>
-            </tr>
+            <li><a class="reference internal" href=
+            "#percorso-dei-pacchetti-tra-tabelle-e-catene" id=
+            "id110" name="id110">10.4&nbsp;&nbsp;&nbsp;Percorso dei
+            pacchetti tra tabelle e catene</a></li>
 
-            <tr>
-              <td>DNS</td>
+            <li>
+              <a class="reference internal" href=
+              "#concetti-di-base" id="id111" name=
+              "id111">10.5&nbsp;&nbsp;&nbsp;Concetti di base</a>
 
-              <td>10.10.208.254</td>
+              <ul class="auto-toc">
+                <li><a class="reference internal" href=
+                "#tabelle-catene-regole" id="id112" name=
+                "id112">10.5.1&nbsp;&nbsp;&nbsp;Tabelle, catene,
+                regole</a></li>
+
+                <li><a class="reference internal" href="#match" id=
+                "id113" name=
+                "id113">10.5.2&nbsp;&nbsp;&nbsp;Match</a></li>
+
+                <li><a class="reference internal" href="#targets"
+                id="id114" name=
+                "id114">10.5.3&nbsp;&nbsp;&nbsp;Targets</a></li>
+              </ul>
+            </li>
+
+            <li><a class="reference internal" href=
+            "#tabella-filter" id="id115" name=
+            "id115">10.6&nbsp;&nbsp;&nbsp;Tabella Filter</a></li>
+
+            <li><a class="reference internal" href=
+            "#flush-automatico-per-macchine-remote" id="id116"
+            name="id116">10.7&nbsp;&nbsp;&nbsp;Flush automatico per
+            macchine remote</a></li>
+
+            <li><a class="reference internal" href=
+            "#gestione-regole-rules" id="id117" name=
+            "id117">10.8&nbsp;&nbsp;&nbsp;Gestione regole
+            (rules)</a></li>
+
+            <li>
+              <a class="reference internal" href=
+              "#salvataggio-regole" id="id118" name=
+              "id118">10.9&nbsp;&nbsp;&nbsp;Salvataggio regole</a>
+
+              <ul class="auto-toc">
+                <li><a class="reference internal" href=
+                "#iptables-save" id="id119" name=
+                "id119">10.9.1&nbsp;&nbsp;&nbsp;Iptables-save</a></li>
+
+                <li><a class="reference internal" href=
+                "#iptables-restore" id="id120" name=
+                "id120">10.9.2&nbsp;&nbsp;&nbsp;Iptables-restore</a></li>
+              </ul>
+            </li>
+
+            <li>
+              <a class="reference internal" href="#esempi" id=
+              "id121" name=
+              "id121">10.10&nbsp;&nbsp;&nbsp;Esempi</a>
+
+              <ul class="auto-toc">
+                <li><a class="reference internal" href=
+                "#bloccare-i-ping-dall-esterno" id="id122" name=
+                "id122">10.10.1&nbsp;&nbsp;&nbsp;Bloccare i ping
+                dall'esterno</a></li>
+
+                <li><a class="reference internal" href=
+                "#masquerading-snat" id="id123" name=
+                "id123">10.10.2&nbsp;&nbsp;&nbsp;Masquerading
+                (sNAT)</a></li>
+
+                <li><a class="reference internal" href=
+                "#brute-force" id="id124" name=
+                "id124">10.10.3&nbsp;&nbsp;&nbsp;Brute
+                force</a></li>
+              </ul>
+            </li>
+          </ul>
+        </li>
+
+        <li>
+          <a class="reference internal" href="#ftp-server" id=
+          "id125" name="id125">11&nbsp;&nbsp;&nbsp;FTP Server</a>
+
+          <ul class="auto-toc">
+            <li><a class="reference internal" href="#id8" id=
+            "id126" name=
+            "id126">11.1&nbsp;&nbsp;&nbsp;Pacchetti</a></li>
+
+            <li><a class="reference internal" href="#sessioni-ftp"
+            id="id127" name="id127">11.2&nbsp;&nbsp;&nbsp;Sessioni
+            ftp</a></li>
+
+            <li><a class="reference internal" href=
+            "#configurazione-iniziale" id="id128" name=
+            "id128">11.3&nbsp;&nbsp;&nbsp;Configurazione
+            iniziale</a></li>
+
+            <li><a class="reference internal" href=
+            "#abilitare-gli-utenti-locali" id="id129" name=
+            "id129">11.4&nbsp;&nbsp;&nbsp;Abilitare gli utenti
+            locali</a></li>
+
+            <li><a class="reference internal" href="#jail-chroot"
+            id="id130" name="id130">11.5&nbsp;&nbsp;&nbsp;Jail
+            chroot</a></li>
+
+            <li><a class="reference internal" href=
+            "#permessi-sul-filesystem" id="id131" name=
+            "id131">11.6&nbsp;&nbsp;&nbsp;Permessi sul
+            filesystem</a></li>
+
+            <li><a class="reference internal" href="#altre-opzioni"
+            id="id132" name="id132">11.7&nbsp;&nbsp;&nbsp;Altre
+            opzioni</a></li>
+          </ul>
+        </li>
+      </ul>
+    </div>
+
+    <p>Generato il 2010-02-03 con: <a class="reference external"
+    href=
+    "http://docutils.sourceforge.net/rst.html">http://docutils.sourceforge.net/rst.html</a></p>
+
+    <div class="section" id="configurazione-sistema">
+      <h1><a class="toc-backref" href=
+      "#id9">1&nbsp;&nbsp;&nbsp;Configurazione sistema</a></h1>
+
+      <div class="section" id="solo-per-uso-interno">
+        <h2><a class="toc-backref" href=
+        "#id10">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
+        della rete piffa.net .</p>
+
+        <p>Sono qui riportati i parametri della rete locale per
+        comodita' degli studenti, gli altri lettori possono
+        considerarli come riferimento per comprendere i valori
+        espressi nei vari file di configurazione. Ad esempio:
+        quando leggerete <tt class=
+        "docutils literal">10.10.208.248:3128</tt> saprete che si
+        tratta del nostro <em>proxy http</em> in ascolto sulla
+        porta <cite>3128</cite>, stara' quindi a voi sostituire i
+        dati con gli equivalenti <em>IP</em> della vostra rete.</p>
+      </div>
+
+      <div class="section" id="rete">
+        <h2><a class="toc-backref" href=
+        "#id11">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%">
+          </colgroup>
+
+          <tbody valign="top">
+            <tr>
+              <td colspan="2">Parametri della rete</td>
+            </tr>
+
+            <tr>
+              <td>rete</td>
+
+              <td>10.10.208.0/24</td>
+            </tr>
+
+            <tr>
+              <td>netmask</td>
+
+              <td>255.255.255.0</td>
+            </tr>
+
+            <tr>
+              <td>broadcast</td>
+
+              <td>10.10.208.255</td>
+            </tr>
+
+            <tr>
+              <td>gateway</td>
+
+              <td>10.10.208.248</td>
             </tr>
 
             <tr>
               <td>DNS</td>
 
-              <td>10.10.208.250 persistente</td>
+              <td>10.10.208.248</td>
             </tr>
           </tbody>
         </table>
 
-        <p>Sul portatile di Andrea, corrispondente all'ip 254, gira
-        un DHCP, proxy http e mirror di Debian ( <a class=
-        "reference external" href=
-        "http://debian.piffa.net">http://debian.piffa.net</a>). Se
-        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>
+        <p>Dal server locale degli studeti,
+        <strong>Bender</strong>, corrispondente all'IP <tt class=
+        "docutils literal">10.10.208.248</tt>, vengono erogati i
+        servizi DHCP, DNS, gateway (con NAT), proxy http e mirror
+        della distribuzione Debian ( <a class="reference external"
+        href=
+        "http://debian.piffa.net">http://debian.piffa.net</a>).
+        Altri servizi in esecuzione sul server:</p>
+
+        <ul class="simple">
+          <li>Rsync server e altri software di aggiornamento /
+          installazione di massa</li>
+
+          <li>Server imap / pop3 / webmail / smtp</li>
+
+          <li>Server ssh per i test degli studenti</li>
+
+          <li>File server Samba, NFS e controller di qualsiasi
+          altro FS distribuito</li>
+
+          <li>Print server per la gestione delle stampanti</li>
+
+          <li>DNS server</li>
+
+          <li>Mirror locale delle *.iso dei sistemi operativi e dei
+          vari software usati durante le lezioni</li>
+
+          <li>Spazi web con PHP, MySQL, Postgresql (altri DB o
+          framework vengono attivati a seconda dei corsi
+          attivi)</li>
+        </ul>
+
+        <p>Durante il corso delle lezioni e' opportuno che le
+        macchine degli studenti si appoggino al server Bender
+        (ottetto finale <tt class="docutils literal">248</tt>), nel
+        caso questo non fosse raggiungibile (ad esempio per
+        permettere impostazioni di DHCP / routing diverse) sara'
+        comunque disponibile il <tt class=
+        "docutils literal">10.10.208.254</tt> come gateway | DNS
+        per la rete <tt class=
+        "docutils literal">10.10.208.10</tt>.</p>
+
+        <p><strong>Non e' piu' possibile</strong> raggiungere
+        Bender tramite l'IP pubblico <tt class=
+        "docutils literal">212.22.136.248</tt> o <em>qualsiasi
+        altro ip</em> della classe <tt class="docutils literal">C
+        212.22.136.0/24</tt> precedentemente disponibile.</p>
+
+        <p>Il computer del docente con il server VNC e' sempre
+        configurato con l'ottetto finale: <tt class=
+        "docutils literal">177</tt> della rete utilizzata durante
+        le lezioni (quindi generalmente la VNC sara' disponibile
+        sul <tt class="docutils literal">10.10.208.177:1</tt>.</p>
+
+        <p>Gli studenti sono pregati di non impedire l'accesso SSH
+        alla propria macchina dal computer del docente, e non
+        modificare la password dell'utente <tt class=
+        "docutils literal">root</tt> del sistema operativo
+        <em>pre-istallato</em> (ad es: <em>Diurno</em>).</p>
+
+        <div class="section" id="interfaces">
+          <h3><a class="toc-backref" href=
+          "#id12">1.2.1&nbsp;&nbsp;&nbsp;interfaces</a></h3>
+
+          <p>Segue un esempio del file di configurazione della
+          scheda di rete con configurazione statica:</p>
+
+          <p>/etc/network/interfaces:</p>
+          <pre class="literal-block">
+# /etc/network/interfaces -- configuration file for ifup(8), ifdown(8)
+
+# The loopback interface
+iface lo inet loopback
+
+# La prima scheda di rete (se si chiama eth0)
+iface etho inet static
+  # esempio con dhcp:
+  # iface etho inet dhcp
+address 10.10.208.101
+netmask 255.255.255.0
+network 10.10.208.0
+broadcast 10.10.208.255
+gateway 10.10.208.254
+
+# Quali interfaccie devono partire automaticamente:
+auto lo eth0
+</pre>
+
+          <p>Controllare il nome della propria scheda di rete: a
+          volte <em>udev</em> rinomina la prima scheda a <tt class=
+          "docutils literal">eth1</tt>, oppure potreste avere piu'
+          di una scheda di rete (anche un'interfaccia
+          <em>firewire</em> puo' essere automaticamente abilitata
+          come scheda di rete).</p>
+
+          <p>Se si usano <em>schede di rete virtuali</em> ( eth0:1
+          , eth0:1 , ...) ricordarsi che queste dipendono dalla
+          scheda fisica a cui sono associate: abbattere con
+          <tt class="docutils literal">ifconfig down eth0</tt> la
+          scheda principale fara' cadere anche queste. Tornando ad
+          attivare la scada principale con <tt class=
+          "docutils literal">ifconfig eth0 up</tt> la virtuale
+          tornera' attiva: nel caso voleste disabilitarla dovrete
+          quindi sempre abbattere manualmente la scheda virtuale
+          <em>prima</em> della scheda reale.</p>
+
+          <p>I DNS vanno indicati nel file <tt class=
+          "docutils literal">/etc/resolv.conf</tt> , la cui
+          sintassi e' spiegata al punto 4.6 . Come DNS si
+          <em>deve</em> usare il server Bender, alcuni parametri
+          dei software di installazione, risoluzione dei mirror,
+          vengono opportunamente modificatia da questo DNS.</p>
+        </div>
       </div>
 
       <div class="section" id="bash-completion">
         <h2><a class="toc-backref" href=
-        "#id8">1.3&nbsp;&nbsp;&nbsp;Bash completion</a></h2>
+        "#id13">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
         automatico con i nomi dei pacchetti e oggetti dei comandi:
         ad es. volendo digitare <tt class=
         "docutils literal"><span class="pre">apt-get</span>
-        <span class="pre">inst[TAB]</span> <span class=
-        "pre">xtigh[TAB]</span></tt> ora verra' completatato
+        inst[TAB] xtigh[TAB]</tt> ora verra' completato
         automaticamente sia la parola <tt class=
-        "docutils literal"><span class="pre">install</span></tt>
-        che il nome del pacchetto <tt class=
-        "docutils literal"><span class=
-        "pre">xtightvncviewer</span></tt>.</p>
+        "docutils literal">install</tt> che il nome del pacchetto
+        <tt class="docutils literal">xtightvncviewer</tt>.</p>
 
         <p>Abilitare /etc/bash_completion nel file <tt class=
-        "docutils literal"><span class=
-        "pre">/etc/bash.bashrc</span></tt> oppure includerlo nel
-        proprio <tt class="docutils literal"><span class=
+        "docutils literal">/etc/bash.bashrc</tt> oppure includerlo
+        nel proprio <tt class="docutils literal"><span class=
         "pre">~/.bashrc</span></tt> (che sarebbe il file
         <em>nascosto</em>, quindi con un punto all'inizio del nome
         del file, di configurazione della shell bash per ogni
@@ -673,7 +1198,7 @@ echo ". /etc/bash_completion" &gt;&gt; ~/.bashrc
 export PS1='\h:\w\$ '
 umask 022
 
-# Decommentare le seguenti righr per abilitare la colorazione dei
+# De-commentare le seguenti righe per abilitare la colorazione dei
 # nomi dei file:
  export LS_OPTIONS='--color=auto'
  eval "`dircolors`"
@@ -681,7 +1206,7 @@ umask 022
  alias ll='ls $LS_OPTIONS -l'
  alias l='ls $LS_OPTIONS -lA'
 
-# Some more alias to avoid making mistakes:
+# Abilitare i seguenti alias per impostare la conferma per cancellare file
 # alias rm='rm -i'
 # alias cp='cp -i'
 # alias mv='mv -i'
@@ -690,16 +1215,15 @@ umask 022
 . /etc/bash_completion
 </pre>
 
-        <p>Il file <tt class="docutils literal"><span class=
-        "pre">/etc/bash_completion</span></tt> deve essere presente
-        nel sistema, in caso contrario installare il pacchetto:
-        <tt class="docutils literal"><span class=
+        <p>Il file <tt class=
+        "docutils literal">/etc/bash_completion</tt> deve essere
+        presente nel sistema, in caso contrario installare il
+        pacchetto: <tt class="docutils literal"><span class=
         "pre">bash-completion</span></tt>. Generalmente l'utente
-        <tt class="docutils literal"><span class=
-        "pre">root</span></tt> ha un file <tt class=
-        "docutils literal"><span class="pre">.bashrc</span></tt>
-        preimpostato analogo a quello citato sopra, a differenza
-        dei normali utenti di sistema.</p>
+        <tt class="docutils literal">root</tt> ha un file
+        <tt class="docutils literal">.bashrc</tt> preimpostato
+        analogo a quello citato sopra, a differenza dei normali
+        utenti di sistema.</p>
 
         <p>Links:</p>
 
@@ -711,121 +1235,192 @@ umask 022
           <li><a class="reference external" href=
           "http://www.caliban.org/bash/">Working more productively
           with bash 2.x/3.x</a></li>
+
+          <li>UNIX / Linux Shell Scripting Tutorial: <a class=
+          "reference external" href=
+          "http://steve-parker.org/sh/sh.shtml">http://steve-parker.org/sh/sh.shtml</a></li>
         </ul>
       </div>
 
       <div class="section" id="vim">
         <h2><a class="toc-backref" href=
-        "#id9">1.4&nbsp;&nbsp;&nbsp;Vim</a></h2>
+        "#id14">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
         impostazioni per renderlo piu' comodo.</p>
 
         <p>Assicurarsi che sia installata nel sistema la versione
-        completa dell'editor <tt class=
-        "docutils literal"><span class="pre">vim</span></tt>
-        nstallando il pacchetto vimi:</p>
+        completa dell'editor installando il pacchetto <tt class=
+        "docutils literal">vim</tt>:</p>
+        <pre class="literal-block">
+# apt-get install vim
+</pre>
+
+        <p>Modificare poi il file di configurazione generale
+        <tt class="docutils literal">/etc/vim/vimrc</tt></p>
         <pre class="literal-block">
-       # apt-get install vim
-
-e modificare il file di configurazione generale ``/etc/vim/vimrc`` ::
-
-   " All system-wide defaults are set in $VIMRUNTIME/debian.vim (usually just
-   " /usr/share/vim/vimcurrent/debian.vim) and sourced by the call to :runtime
-   " you can find below.  If you wish to change any of those settings, you should
-   " do it in this file (/etc/vim/vimrc), since debian.vim will be overwritten
-   " everytime an upgrade of the vim packages is performed.  It is recommended to
-   " make changes after sourcing debian.vim since it alters the value of the
-   " 'compatible' option.
-
-   " This line should not be removed as it ensures that various options are
-   " properly set to work with the Vim-related packages available in Debian.
-   runtime! debian.vim
-
-   " Uncomment the next line to make Vim more Vi-compatible
-   " NOTE: debian.vim sets 'nocompatible'.  Setting 'compatible' changes numerous
-   " options, so any other options should be set AFTER setting 'compatible'.
-   "set compatible
-
-   " Vim5 and later versions support syntax highlighting. Uncommenting the next
-   " line enables syntax highlighting by default.
-   syntax on
-
-   " If using a dark background within the editing area and syntax highlighting
-   " turn on this option as well
-   set background=dark
-
-   " Uncomment the following to have Vim jump to the last position when
-   " reopening a file
-
-   if has("autocmd")
-     au BufReadPost * if line("'\"") &gt; 0 &amp;&amp; line("'\"") &lt;= line("$")
-       \| exe "normal! g'\"" | endif
-   endif
-
-   " Uncomment the following to have Vim load indentation rules and plugins
-   " according to the detected filetype.
-   if has("autocmd")
-     filetype plugin indent on
-   endif
-
-   " The following are commented out as they cause vim to behave a lot
-   " differently from regular Vi. They are highly recommended though.
-   set showcmd             " Show (partial) command in status line.
-   "set showmatch          " Show matching brackets.
-   set ignorecase          " Do case insensitive matching
-   "set smartcase          " Do smart case matching
-   "set incsearch          " Incremental search
-   set autowrite           " Automatically save before commands like :next and :make
-   "set hidden             " Hide buffers when they are abandoned
-   "set mouse=a            " Enable mouse usage (all modes) in terminals
-
-   " Source a global configuration file if available
-   " XXX Deprecated, please move your changes here in /etc/vim/vimrc
-   if filereadable("/etc/vim/vimrc.local")
-     source /etc/vim/vimrc.local
-   endif
+" All system-wide defaults are set in $VIMRUNTIME/debian.vim (usually just
+" /usr/share/vim/vimcurrent/debian.vim) and sourced by the call to :runtime
+" you can find below.  If you wish to change any of those settings, you should
+" do it in this file (/etc/vim/vimrc), since debian.vim will be overwritten
+" everytime an upgrade of the vim packages is performed.  It is recommended to
+" make changes after sourcing debian.vim since it alters the value of the
+" 'compatible' option.
+
+" This line should not be removed as it ensures that various options are
+" properly set to work with the Vim-related packages available in Debian.
+runtime! debian.vim
+
+" Uncomment the next line to make Vim more Vi-compatible
+" NOTE: debian.vim sets 'nocompatible'.  Setting 'compatible' changes numerous
+" options, so any other options should be set AFTER setting 'compatible'.
+"set compatible
+
+" Vim5 and later versions support syntax highlighting. Uncommenting the next
+" line enables syntax highlighting by default.
+syntax on
+
+" If using a dark background within the editing area and syntax highlighting
+" turn on this option as well.
+set background=dark
+
+" Uncomment the following to have Vim jump to the last position when
+" reopening a file
+
+if has("autocmd")
+  au BufReadPost * if line("'\"") &gt; 0 &amp;&amp; line("'\"") &lt;= line("$")
+    \| exe "normal! g'\"" | endif
+endif
+
+" Uncomment the following to have Vim load indentation rules and plugins
+" according to the detected filetype.
+" This is not recommanded if you often copy and paste into vim,
+" as it messes all the indentation.
+if has("autocmd")
+  filetype plugin indent on
+endif
+
+" This goes for comments folding: use co to expnad and zc to compress,
+" zi to toggle on/off
+set fdm=expr
+set fde=getline(v:lnum)=~'^\\s*#'?1:getline(prevnonblank(v:lnum))=~'^\\s*#'?1:getline(nextnonblank(v:lnum))=~'^\\s*#'?1:0
+
+" The following are commented out as they cause vim to behave a lot
+" differently from regular Vi. They are highly recommended though.
+set showcmd             " Show (partial) command in status line.
+"set showmatch          " Show matching brackets.
+# Ignorecase is quite userfull
+set ignorecase          " Do case insensitive matching
+"set smartcase          " Do smart case matching
+"set incsearch          " Incremental search
+set autowrite           " Automatically save before commands like :next and :make
+"set hidden             " Hide buffers when they are abandoned
+"set mouse=a            " Enable mouse usage (all modes) in terminals
+
+" Source a global configuration file if available
+" XXX Deprecated, please move your changes here in /etc/vim/vimrc
+if filereadable("/etc/vim/vimrc.local")
+  source /etc/vim/vimrc.local
+endif
 </pre>
+
+        <p>I principianti faranno bene ad esercitarsi con
+        <tt class="docutils literal">vimtutor it</tt>.</p>
+
+        <p>Altri link per VIM:</p>
+
+        <ul class="simple">
+          <li>Vim Introduction and Tutorial: <a class=
+          "reference external" href=
+          "http://blog.interlinked.org/tutorials/vim_tutorial.html">
+          http://blog.interlinked.org/tutorials/vim_tutorial.html</a></li>
+
+          <li><a class="reference external" href=
+          "http://blog.smr.co.in/category/vim/">http://blog.smr.co.in/category/vim/</a></li>
+
+          <li><a class="reference external" href=
+          "http://vimdoc.sourceforge.net/">http://vimdoc.sourceforge.net/</a></li>
+        </ul>
       </div>
 
       <div class="section" id="vnc">
         <h2><a class="toc-backref" href=
-        "#id10">1.5&nbsp;&nbsp;&nbsp;VNC</a></h2>
+        "#id15">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
-        computer a distanza o visuallizare la sessione di lavoro di
-        un altro computer sul proprio a scopo didattico.
-        Installando un server VNC sulla propria macchina ed
-        impostando una opportuna password si consente ai client VNC
-        di ricevere una immagine dello schermo ed eventualmente di
-        inviare input di tastiera e mouse al computer server
-        (durante le lezioni questo non e' possibile per gli
-        studenti, solo Andrea esegue i comandi). In pratica si puรฒ
-        gestire il computer server da un'altra postazione, come se
-        fosse il proprio computer fisico.</p>
-
-        <p>Scaricare il pacchetto <tt class=
-        "docutils literal"><span class=
-        "pre">xtightvncviewer</span></tt> e lo script <tt class=
-        "docutils literal"><span class="pre">guarda.sh</span></tt>
-        in una posizione (collocazione nel <em>path</em> degli
-        utenti, es <tt class="docutils literal"><span class=
-        "pre">echo</span> <span class="pre">$PATH</span></tt> per
-        visualizzare l'attuale path ) comoda per gli utenti ( in
-        genere <tt class="docutils literal"><span class=
-        "pre">/bin</span></tt> ), rndere eseguibile lo script.</p>
+        controllo remoto e servono per amministrare un computer a
+        distanzai. Nel nostro caso la VNC sara' utilizzata per
+        visualizzare la sessione di lavoro di un altro computer sul
+        proprio a scopo didattico.</p>
+
+        <p>Per collegarvi al server del docente usate lo script
+        <tt class="docutils literal">guarda.sh</tt> che dovrebbe
+        gia essere disponibili sui sistemi preconfigurati, oppure
+        potete invocare direttamente il collegamento con:</p>
+        <pre class="literal-block">
+xtightvncviewer -viewonly 10.10.208.177:1
+</pre>
+
+        <p>Se il comando non fosse disponibile installate il
+        pacchetto <tt class=
+        "docutils literal">xtightvncviewer</tt>. Potete anche
+        scaricare lo script <tt class=
+        "docutils literal">guarda.sh</tt> e renderlo eseguibile, ed
+        eventualmente creare una voce nel menu di KDE per
+        richiamarlo.</p>
 
         <p>Procedura:</p>
         <pre class="literal-block">
 su root
-cd /bin
-wget http://debian.piffa.net/guarda.sh
+cd /usr/local/bin
+wget http://bender/guarda.sh
 chmod +x guarda.sh
 exit
 </pre>
 
+        <p>Per eseguire lo script digitare semplicemente <tt class=
+        "docutils literal">guarda.sh</tt>, oppure creare un link /
+        collegamento sul Desktop allo script <tt class=
+        "docutils literal">/usr/local/bin/guarda.sh</tt>.</p>
+
+        <p>Le impostazioni del server VNC sono:</p>
+
+        <table border="1" class="docutils">
+          <colgroup>
+            <col width="55%">
+            <col width="45%">
+          </colgroup>
+
+          <thead valign="bottom">
+            <tr>
+              <th class="head">Parametro</th>
+
+              <th class="head">Valore</th>
+            </tr>
+          </thead>
+
+          <tbody valign="top">
+            <tr>
+              <td>IP</td>
+
+              <td>10.10.208.177:1</td>
+            </tr>
+
+            <tr>
+              <td>Server grafico</td>
+
+              <td>:1</td>
+            </tr>
+
+            <tr>
+              <td>password</td>
+
+              <td>password</td>
+            </tr>
+          </tbody>
+        </table>
+
         <p>Si noti che non e' possibile lanciare un applicativo sul
         server grafico di un utente da una shell in cui si sta
         lavorando come altro utente, anche se root. E' quindi
@@ -833,23 +1428,18 @@ exit
         inizialmente nella sessione grafica per poter lanciare lo
         script guarda.sh da una shell.</p>
 
-        <p>Controllare con <tt class=
-        "docutils literal"><span class="pre">whoami</span></tt> di
-        essere l'utente normale (es <tt class=
-        "docutils literal"><span class="pre">utente</span>
-        <span class="pre">|</span> <span class=
-        "pre">studente</span> <span class="pre">|</span>
-        <span class="pre">proprio</span> <span class=
-        "pre">nome</span></tt> ), in caso si sia assunta una altra
-        <tt class="docutils literal"><span class=
-        "pre">id</span></tt> si apra un altra shell o si esca da
-        quella attuale con <tt class=
-        "docutils literal"><span class="pre">exit</span></tt> .</p>
+        <p>Controllare con <tt class="docutils literal">whoami</tt>
+        di essere l'utente normale (es <tt class=
+        "docutils literal">utente | studente | proprio nome</tt> ),
+        in caso si sia assunta una altra <tt class=
+        "docutils literal">id</tt> si apra un altra shell o si esca
+        da quella attuale con <tt class=
+        "docutils literal">exit</tt> .</p>
       </div>
 
       <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
+        "#id16">1.6&nbsp;&nbsp;&nbsp;Lista dei pacchetti di
         base</a></h2>
 
         <p>I pacchetti installati generalmente <a class=
@@ -873,14 +1463,13 @@ kde-core kdm kde-i18n-it xorg vim less xtightvncviewer
 
               <td><tt class="docutils literal"><span class=
               "pre">kde-core</span></tt> e' piu' leggero del
-              pacchetto <tt class="docutils literal"><span class=
-              "pre">kde</span></tt>, esiste anche un equivalente
-              <tt class="docutils literal"><span class=
-              "pre">gnome-core</span> <span class=
-              "pre">gnome</span></tt> e il log-in manager
-              <tt class="docutils literal"><span class=
-              "pre">gdm</span></tt> per il l'ambiente grafico
-              Gnome.</td>
+              pacchetto <tt class="docutils literal">kde</tt>.
+              Esiste un equivalente <tt class=
+              "docutils literal"><span class=
+              "pre">gnome-core</span></tt> per chi preferisce
+              Gnome, nel caso si potrebbe installare il log-in
+              manager <cite>gdm</cite> al posto di
+              <cite>kdm</cite>.</td>
             </tr>
           </tbody>
         </table>
@@ -888,46 +1477,41 @@ 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>
+        "#id17">1.7&nbsp;&nbsp;&nbsp;Apt configurazione</a></h2>
 
         <p>Vediamo i due file principali di apt:</p>
 
         <ul class="simple">
-          <li><tt class="docutils literal"><span class=
-          "pre">/etc/apt/sources.list</span></tt></li>
+          <li><tt class=
+          "docutils literal">/etc/apt/sources.list</tt></li>
 
-          <li><tt class="docutils literal"><span class=
-          "pre">/etc/apt/apt.conf</span></tt></li>
+          <li><tt class=
+          "docutils literal">/etc/apt/apt.conf</tt></li>
         </ul>
 
         <div class="section" id="sources-list">
           <h3><a class="toc-backref" href=
-          "#id13">1.7.1&nbsp;&nbsp;&nbsp;sources.list</a></h3>
+          "#id18">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>,
           vengono quindi precisati i metodi (ad es. http / ftp /
           cdrom / file), la release che si vuole tracciare (es
-          <tt class="docutils literal"><span class=
-          "pre">stable,</span> <span class="pre">testing,</span>
-          <span class="pre">unstable</span></tt> oppure i
-          corrispondenti release name es: <tt class=
-          "docutils literal"><span class="pre">Lenny,</span>
-          <span class="pre">Squeeze,</span> <span class=
-          "pre">Sid</span></tt>), i rami di interesse (es:
-          <tt class="docutils literal"><span class=
-          "pre">main</span></tt> che e' l'archivio principale,
-          <tt class="docutils literal"><span class=
+          <tt class="docutils literal">stable, testing,
+          unstable</tt> oppure i corrispondenti release name es:
+          <tt class="docutils literal">Lenny, Squeeze, Sid</tt>), i
+          rami di interesse (es: <tt class=
+          "docutils literal">main</tt> che e' l'archivio
+          principale, <tt class="docutils literal"><span class=
           "pre">non-free</span></tt> per il software non libero,
-          <tt class="docutils literal"><span class=
-          "pre">contrib</span></tt> per i pacchetti non realizzati
-          dai manutentori ufficiali).</p>
+          <tt class="docutils literal">contrib</tt> per i pacchetti
+          non realizzati dai manutentori ufficiali).</p>
 
           <p>Gli archivi sono generalmente:</p>
 
           <ul class="simple">
-            <li><tt class="docutils literal"><span class=
-            "pre">deb</span></tt> per pacchetti Debian binari</li>
+            <li><tt class="docutils literal">deb</tt> per pacchetti
+            Debian binari, pronti per l'installazione.</li>
 
             <li><tt class="docutils literal"><span class=
             "pre">deb-src</span></tt> per i pacchetti sorgenti
@@ -937,155 +1521,652 @@ kde-core kdm kde-i18n-it xorg vim less xtightvncviewer
             tempo e banda.</li>
           </ul>
 
-          <p><tt class="docutils literal"><span class=
-          "pre">/etc/apt/sources.list</span></tt></p>
+          <p><tt class=
+          "docutils literal">/etc/apt/sources.list</tt></p>
           <pre class="literal-block">
 # esempio di accesso a un CDROM:
 # cdrom:[Debian GNU/Linux 5.0.1 _Lenny_ - Official i386 kde-CD Binary-1 20090$
 
-# Archivio principale debian via http su piffa.net,
-# non funziona al difuori dell'aula dei corsi
-deb http://debian.piffa.net/debian/ Lenny main
-# deb http://debian.piffa.net/debian/ Lenny  non-free contrib
+# ftp.it.debian.org viene rediretto su un mirror interno
+# quando vi trovate nella rete interna piffa.net
+deb http://ftp.it.debian.org/debian/ lenny main
+# Sono disponibili anche i rami non-free contrib
+# deb http://ftp.it.debian.org/debian/ lenny  non-free contrib
+# Sono disponibili anche le release unstable e testing
+# deb http://ftp.it.debian.org/debian/ testing  main non-free contrib
+# deb http://ftp.it.debian.org/debian/ sid  main non-free contrib
 
-# Mirror da kernel.org da usare a casa:
-deb http://mirrors.eu.kernel.org/debian/ Lenny main
+# Sorgenti dei pacchetti:
+# deb-src http://ftp.bononia.it/debian/ lenny main
+
+# Mirror da kernel.org europa da usare a casa:
+deb http://mirrors.eu.kernel.org/debian/ lenny main
 
 # Security dal sito principale
-deb http://security.debian.org/ Lenny/updates main
-deb-src http://security.debian.org/ Lenny/updates main
+deb http://security.debian.org/ lenny/updates main
+# deb-src http://security.debian.org/ lenny/updates main
 
-# Debian volatile per le cose soggette a cambiamenti non legati
-# a dinamiche di sicurezza
+# Debian volatile per i pacchetti soggetti a frequanti cambiamenti
+# non legati a dinamiche di sicurezza
 deb http://volatile.debian.org/debian-volatile Lenny/volatile main
-deb-src http://volatile.debian.org/debian-volatile Lenny/volatile main
+deb-src http://volatile.debian.org/debian-volatile Lenny/volatile main
 
-# Esempio di accesso a un filesystem locale contenente i pacchetti:
-# deb file:/mnt/mirror Sid main non-free contrib
+# Esempio di accesso a un file system locale contenente i pacchetti:
+# Potete scaricarei in aula con debmirror  da debian.piffa.net
+# un mirror locale da usare poi a casa anche senza internet
+# deb file:/mnt/mirror sid main non-free contrib
 </pre>
         </div>
 
         <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>
+          "#id19">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.248:3128";
 </pre>
 
           <p>Si tenga conto che se si imposta un proxy per apt sul
           proprio portatile e tornati a casa propria si vuole
-          scaricare nuovi pacchetti si dovra' disabilitare il
-          proxy.</p>
+          scaricare nuovi pacchetti si dovra' disabilitare il proxy
+          commentando la riga con ";" (''punto-e-virgola''). Su un
+          portatile vi conviene tracciare il mirror <tt class=
+          "docutils literal">ftp.it.debian.org</tt> senza impostare
+          il proxy: in aula verra' rediretto al mirror locale e a
+          casa vi appoggerete al mirror ufficiale.</p>
+
+          <p>E' consigliabile impostare il proxy per apt anche in
+          presenza di un proxy-http <em>trasparente</em>.</p>
         </div>
       </div>
     </div>
 
     <div class="section" id="squid">
       <h1><a class="toc-backref" href=
-      "#id15">2&nbsp;&nbsp;&nbsp;Squid</a></h1>
-    </div>
-
-    <div class="section" id="apache">
-      <h1><a class="toc-backref" href=
-      "#id16">3&nbsp;&nbsp;&nbsp;Apache</a></h1>
-
-      <p>Pacchetti da installare:</p>
+      "#id20">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 situazioni
+      relativamente semplici che in scenari piu' complessi grazie
+      alla possibilita' di gestirne in modo granulare le risorse.
+      Si partira' dalle configurazioni piu' semplici per la
+      semplice <em>condivisione della navigazione</em> internet
+      all'interno di una rete locale, per poi poter negoziare la
+      gestione degli accessi, il filtraggio dei contenuti (Squid e'
+      una applicazione che si muove nel 4' livello del modello
+      TCP/IP a differenza di un <em>ipfilter</em> limitato al 2'),
+      nel bilanciamento del carico tra piu' server proxy.</p>
+
+      <dl class="docutils">
+        <dt>Inoltre Squid svolge la funzione di
+        <em>anonymizer</em>:</dt>
+
+        <dd>Nasconde i client http alla rete internet: e' solo il
+        server proxy ad accedere ai server web frequentati dai
+        client: questi non sono percepiti ed esposti all'esterno
+        della rete locale ma si relazionano solo con il server
+        proxy. Dal punto di vista della sicurezza della rete locale
+        questo e' preferibile ad un approccio alla navigazione
+        basato su <em>NAT</em>.</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 introdurre nella rete un
+      <em>NAT</em> (si veda la sezione sui firewall) per
+      condividere la connessione: basta il solo Squid. Per altro
+      non servira' neanche un servizio DNS accessibile dai clients
+      dato che <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">/etc/apt/apt.conf</tt></p>
       <pre class="literal-block">
-apache2 apache2-doc
+Acquire::http::Proxy "10.10.208.254:3128";
 </pre>
 
-      <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>Per installare Squid si usino i pacchetti:</p>
+      <pre class="literal-block">
+squid3
+</pre>
 
-      <div class="section" id="configurazione-di-apache">
+      <div class="section" id="configurazione-squid-conf">
         <h2><a class="toc-backref" href=
-        "#id17">3.1&nbsp;&nbsp;&nbsp;Configurazione di
-        Apache</a></h2>
+        "#id21">2.1&nbsp;&nbsp;&nbsp;Configurazione:
+        squid.conf</a></h2>
 
-        <p>I file di configurazione di apache si trovano nella
-        cartella: <tt class="docutils literal"><span class=
-        "pre">/etc/apache2</span></tt> e sono strutturati come
-        descritto nel file <tt class=
-        "docutils literal"><span class="pre">/usr/share/doc/apache2/README.Debian.gz</span></tt>
-        . Sostanzialmente lo schema e' il seguente:</p>
-
-        <dl class="docutils">
-          <dt>apache2.conf</dt>
+        <p>Segue un estratto delle direttive principali viste in
+        aula presenti nel file di configurazione <tt class=
+        "docutils literal">/etc/squid3/squid.conf</tt> .</p>
 
-          <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>
+        <div class="section" id="cache-dir">
+          <h3><a class="toc-backref" href=
+          "#id22">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">~100 MB</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> circa
+          <tt class="docutils literal">150 MB</tt>, un pacchetto
+          debian circa <tt class="docutils literal">20 MB</tt>),
+          numero dei client.</p>
+
+          <p>Si presti poi attenzione alla natura dei dati che
+          saranno salvati nella cache: sono tutti dati facilmente
+          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
+          stirpe</em> (livello 0) a ad un file system che prediliga
+          le performance a scapito della consistenza, con vantaggi
+          sia per le prestazioni (e la velocita' di navigazione e'
+          uno dei motivi per cui si installa Squid) che per
+          l'utilizzo estensivo dello spazio di storaggio.</p>
+
+          <p>Questo fino al momento in cui per voi non sia piu'
+          importante <em>garantire la disponibilita' del
+          servizio</em>, ad esempio con un RAID <em>mirror</em> o 5
+          (se il RAID stripe dovesse rompersi gli utenti non
+          potrebbero piu' navigare, cosa che per natura dello
+          stripe e' maggiormente probabile rispetto ad un
+          <em>mirror</em> o a un filesytem <em>normale</em>).</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/       ext2,noexec,nosuid,noatime  0 3
+</pre>
 
-          <dt>ports.conf</dt>
+          <p>Ora possiamo impostare la cache nel file di
+          configurazione <tt class=
+          "docutils literal">/etc/squid3/squid.conf</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
+#         |    |                 |   |  secondo livello di directory
+#         |    |                 |   directory primo livello
+#         |    |                 dimensione in MB
+#         |    path della cache
+#         algoritmo
+</pre>
 
-          <dd>In questo file vengono specificate le porte sulle
-          quali resta in ascolto il server web. Si noti che
-          utilizzando dei virtual hosts generalmente viene
-          specificata per questi la porta su cui ascoltare nel file
-          di configurazione del virtual host, ad es: <tt class=
-          "docutils literal"><span class=
-          "pre">&lt;VirtualHost</span> <span class=
-          "pre">*:80&gt;</span></tt></dd>
+          <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. Tipicamente e' consigliabile cancellare (se si
+          ha <em>ridotto</em> il numero delle directory) 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>
 
-          <dt>sites-available</dt>
+        <div class="section" id="tag-maximum-object-size">
+          <h3><a class="toc-backref" href=
+          "#id23">2.1.2&nbsp;&nbsp;&nbsp;TAG:
+          maximum_object_size</a></h3>
 
-          <dd>In questa cartella vengono raccolti i file di
-          configurazione dei virtual host disponibili.</dd>
+          <p>Questa direttiva imposta la dimensione massima degli
+          oggetti che vengono salvati sul supporto di storaggio,
+          oggetti di dimensioni superiori saranno comunque
+          scaricati ma non tenuti in cache.</p>
 
-          <dt>sites-enabled</dt>
+          <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>
 
-          <dd>In questa cartella sono contenuti dei link simbolici
-          ai files in ../sites-available : se il link e' presente
-          in questa cartella il virtual host e' abilitato.</dd>
+        <div class="section" id="tag-cache-mem">
+          <h3><a class="toc-backref" href=
+          "#id24">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 importanti
+          girano sulla stessa macchina? ). Questo parametro
+          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
+          rispetto agli altri servizi: avra' bisogno di <tt class=
+          "docutils literal">~25MB</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">cache_mem</tt> sotto i <tt class=
+          "docutils literal">2/4 MB</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>
 
-          <dt>mods-available</dt>
+        <div class="section" id="tag-minimum-object-size">
+          <h3><a class="toc-backref" href=
+          "#id25">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">0</tt> o a valori molto piccoli puo'
+          influire negativamente sulla frammentazione del filesytem
+          e consumare un numero elevato di <em>inode</em> (cosa non
+          piu' importante con ext4 o altri filesytem).</p>
+
+          <p>In scenari con connessioni molto veloci ( &gt;~10Mb),
+          pochi client (una decina) e server poco performanti nella
+          velocita' di accesso ai filesystem ( ~20MB/s, per quanto
+          il limte sia piuttosto il <em>seek-time</em> ) tenere in
+          cache i file piu' piccoli aumenta la latenza della
+          navigazione.</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>
 
-          <dd>Stesso metodo per i moduli: in questa cartella ci
-          sono i moduli veri e propri che verranno poi abilitati
-          grazie all'esistenza di link simbolici nella cartella
-          mods-enabled .</dd>
+      <div class="section" id=
+      "negoziazione-degli-accesi-al-servizio">
+        <h2><a class="toc-backref" href=
+        "#id26">2.2&nbsp;&nbsp;&nbsp;Negoziazione degli accesi al
+        servizio</a></h2>
 
-          <dt>mods-enabled</dt>
+        <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>
 
-          <dd>Moduli abilitati, effettivamente caricati.</dd>
+        <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
+          (adibiti ai soli utenti della rete locale).</dd>
         </dl>
-      </div>
 
-      <div class="section" id="apache-conf">
-        <h2><a class="toc-backref" href=
-        "#id18">3.2&nbsp;&nbsp;&nbsp;apache.conf</a></h2>
+        <p>Generalmente non volete che il vostro proxy http venga
+        usato da persone sconosciute ed esterne alla vostra rete,
+        le quali sostanzialmente <em>navigherebbero sotto
+        l'identita' del vostro proxy</em> (probabilmente per
+        visionare materiali che non vorrebbero fossero ricondotti
+        direttamente a loro) generando traffico e consumando 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">localnet</tt>) con una
+        ACL di tipo <em>src</em> (indirizzi IP sorgenti) indicando
+        la <em>classe / range di IP</em> della nostra rete.</p>
 
-        <p>File di configurazione del servizio Apache, contiene le
-        impostazioni generiche (ad esempio utilizzo della RAM e
-        risorse di sistema) dell'intero servizio. Nella
-        configurazione di default per Debian non viene definito un
-        vero e proprio sito di default ma solo dei virtual
-        hosts.</p>
+        <blockquote>
+          Dopodiche l'accesso (<tt class=
+          "docutils literal">http_access</tt>) si concedera'
+          (<em>allow</em>) a questa entita' (es: <tt class=
+          "docutils literal">localnet</tt>) negando chiunque altro.
+        </blockquote>
 
-        <p>Guardiamo alcune direttive interessanti:</p>
+        <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>
 
-        <dl class="docutils">
-          <dt>timeout</dt>
+        <p>E' poi sempre possibile tenere il proxy in ascolto su un
+        solo indirizzo IP, nel caso si disponga di piu' devicei di
+        rete, oppure settare un firewall per limitare il traffico
+        dai primi livelli del TCP/IP.</p>
 
-          <dd>Numero di secondi da aspettare prima di chiudere la
-          connessione con il client. Questo parametro serve a
-          liberare le risorse di sistema nel caso che un client,
-          magar a causa di una connessione particolarmente lenta o
-          instabili, tenga attivo indefinitivamente un processo di
-          apache.</dd>
+        <div class="section" id="acl-e-http-access">
+          <h3><a class="toc-backref" href=
+          "#id27">2.2.1&nbsp;&nbsp;&nbsp;ACL e http access</a></h3>
+
+          <p>Si proceda a creare una <tt class=
+          "docutils literal">ACL</tt> di tipo <tt class=
+          "docutils literal">src</tt> per identificare la nostra
+          rete locale, poi si abiliti l'accesso a questa con la
+          direttiva <tt class="docutils literal">http_access</tt>.
+          Tutto quanto non e' espressamente autorizzato viene poi
+          negato da un <tt class="docutils literal">http_access
+          deny all</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=
+        "#id28">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">wget</tt> da riga di comando.</p>
+
+        <div class="section" id="client-wgetrc">
+          <h3><a class="toc-backref" href=
+          "#id29">2.3.1&nbsp;&nbsp;&nbsp;Client: ~/.wgetrc</a></h3>
+
+          <p>Nel file <tt class="docutils literal">.wgetrc</tt> (si
+          noti il punto iniziale: e' un file nascosto) si puo'
+          impostare il proxy per wget. Si utilizzi l'indirizzo IP
+          del server che si vuole testare, e si seguano i log
+          <tt class=
+          "docutils literal">/var/log/squid3/access.log</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">localhost</tt> non si testerebbe la
+          <em>ACL</em> predisposta, dato che si si rientrerebbe
+          nella ACL (pre-configurata di default) <tt class=
+          "docutils literal">localhost</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=
+          "#id30">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">Webalizer</tt> per studiare i log di
+          Squid.</p>
+        </div>
+      </div>
+    </div>
+
+    <div class="section" id="tiny-proxy">
+      <h1><a class="toc-backref" href=
+      "#id31">3&nbsp;&nbsp;&nbsp;Tiny proxy</a></h1>
+
+      <p>Se avete l'esigenza di un proxy server per la condivisione
+      della connessione ad internet ma non avete la necessita' o le
+      risorse di un <em>caching</em> proxy come Squid potete
+      considerare <strong>tinyproxy</strong>, questo e' molto piu'
+      leggero (utilizza circa ~2MB di RAM e ovviamente non deve
+      accedere continuamente ad un file system per lo storaggio
+      della cache) e risulta piu' semplice nella
+      configurazione.</p>
+
+      <p>TinyProxy puo' essere utilizzato come sostituto di
+      emergenza in una rete in cui Squid e' momentaneamente non
+      disponibile.</p>
+
+      <p>File di configurazione: <tt class=
+      "docutils literal">/etc/tinyproxy/tinyproxy.conf</tt></p>
+      <pre class="literal-block">
+# Porta su cui ascoltare
+Port 3128
+# IP su cui ascoltare
+Listen 10.10.208.160
+# Negoziazione accessi
+Allow 10.10.208.0/24
+</pre>
+    </div>
+
+    <div class="section" id="apache">
+      <h1><a class="toc-backref" href=
+      "#id32">4&nbsp;&nbsp;&nbsp;Apache</a></h1>
+
+      <p>Apache HTTP Server, o piu' comunemente Apache (<em>a
+      patchy NCSA web server</em> ), e' il server web modulare piu'
+      diffuso e strutturato disponibile con licenza libera, 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
+      da' 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=
+        "#id33">4.1&nbsp;&nbsp;&nbsp;Pacchetti da
+        installare::</a></h2>
+
+        <blockquote>
+          apache2 apache2-doc
+        </blockquote>
+
+        <p>Con la release 2.0 di Apache viene automaticamente resa
+        disponibile anche la versione SSL (Secure Socket Layer,
+        connessioni criptate ) del web server senza che ci sia la
+        necessita' di installare altri pacchetti.</p>
+      </div>
+
+      <div class="section" id="configurazione-di-apache">
+        <h2><a class="toc-backref" href=
+        "#id34">4.2&nbsp;&nbsp;&nbsp;Configurazione di
+        Apache</a></h2>
+
+        <p>I file di configurazione di apache si trovano nella
+        cartella: <tt class="docutils literal">/etc/apache2</tt> e
+        sono strutturati come descritto nel file <tt class=
+        "docutils literal">/usr/share/doc/apache2/README.Debian.gz</tt>
+        . Sostanzialmente lo schema e' il seguente:</p>
+
+        <dl class="docutils">
+          <dt>apache2.conf</dt>
+
+          <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' generalmente vuoto.</p>
+          </dd>
+
+          <dt>ports.conf</dt>
+
+          <dd>In questo file vengono specificate le porte sulle
+          quali resta in ascolto il server web. Si noti che
+          utilizzando dei virtual hosts generalmente viene
+          specificata per questi la porta su cui ascoltare nel file
+          di configurazione del virtual host, ad es: <tt class=
+          "docutils literal">&lt;VirtualHost *:80&gt;</tt></dd>
+
+          <dt>sites-available</dt>
+
+          <dd>In questa cartella vengono raccolti i file di
+          configurazione dei virtual host disponibili.</dd>
+
+          <dt>sites-enabled</dt>
+
+          <dd>In questa cartella sono contenuti dei link simbolici
+          ai files in ../sites-available : se il link e' presente
+          in questa cartella il virtual host e' abilitato.</dd>
+
+          <dt>mods-available</dt>
+
+          <dd>Stesso metodo per i moduli: in questa cartella ci
+          sono i moduli veri e propri che verranno poi abilitati
+          grazie all'esistenza di link simbolici nella cartella
+          mods-enabled .</dd>
+
+          <dt>mods-enabled</dt>
+
+          <dd>Moduli abilitati, effettivamente caricati.</dd>
+        </dl>
+      </div>
+
+      <div class="section" id="apache-conf">
+        <h2><a class="toc-backref" href=
+        "#id35">4.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
+        risorse di sistema) dell'intero servizio. Nella
+        configurazione di default per Debian non viene definito un
+        vero e proprio sito di default ma solo dei virtual
+        hosts.</p>
+
+        <p>Guardiamo alcune direttive interessanti:</p>
+
+        <dl class="docutils">
+          <dt>Timeout</dt>
+
+          <dd>Numero di secondi da aspettare prima di chiudere la
+          connessione con il client. Questo parametro serve a
+          liberare le risorse di sistema nel caso che un client,
+          magari a causa di una connessione particolarmente lenta o
+          instabili, tenga attivo indefinitamente un processo di
+          apache.</dd>
 
           <dt>KeepAlive</dt>
 
           <dd>L'estensione keep-alive (http 1.0) congiuntamente
           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
+          la stessa connessione. Il protocollo http per sua natura
+          e' senza stato (<em>stateless</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
@@ -1099,7 +2180,7 @@ apache2 apache2-doc
           attribuire le risorse di sistema disponibili al server
           Apache. Tenere questi parametri bassi serve a limitare il
           rischio di Denial of Service per il server, nel caso
-          offra altri servizi. I settagi di default sono come
+          offra altri servizi. I settagli di default sono come
           sempre abbastanza conservativi, se si conta di usare il
           proprio Apache per servire un sito web con molti
           visitatori sara' necessario aumentare sensibilmente le
@@ -1115,44 +2196,45 @@ 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>
+        "#id36">4.4&nbsp;&nbsp;&nbsp;Installazione di PHP</a></h2>
 
         <p>Pacchetti da installare: <tt class=
-        "docutils literal"><span class="pre">php5</span>
-        <span class="pre">php-pear</span></tt></p>
+        "docutils literal">php5 <span class=
+        "pre">php-pear</span></tt></p>
 
         <div class="section" id="test-del-modulo-php">
           <h3><a class="toc-backref" href=
-          "#id20">3.3.1&nbsp;&nbsp;&nbsp;Test del modulo
+          "#id37">4.4.1&nbsp;&nbsp;&nbsp;Test del modulo
           php</a></h3>
 
           <p>Creare nella cartella <tt class=
-          "docutils literal"><span class="pre">/var/www</span></tt>
-          (o altra cartella visibile) un file con estensione *.php
-          (es <tt class="docutils literal"><span class=
-          "pre">/var/ww/info.php</span></tt> contenete codice php
-          eseguibile dall'interprete, ad es:</p>
+          "docutils literal">/var/www</tt> (o altra cartella
+          visibile) un file con estensione *.php (es <tt class=
+          "docutils literal">/var/www/info.php</tt> contenete
+          codice php eseguibile dall'interprete, ad es:</p>
           <pre class="literal-block">
 &lt;?php phpinfo() ; ?&gt;
 </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>
+          "pre">http://localhost/info.php</span></tt> ) verra'
+          generata dall'interprete PHP la pagina HTML e resa
+          disponibile tramite Apache ai client HTTP, a prova del
+          corretto funzionamento del modulo di PHP e della sua
+          integrazione con il server web Apache. In caso contrario
+          se il client http proporra' di scaricare la pagina invece
+          che visualizzarla nel browser: non funziona l'interprete
+          di php o sono mal configurati i MIME-type. prima di tutto
+          assicurarsi di aver fatto ripartire Apache.</p>
         </div>
 
         <div class="section" id=
-        "installazione-del-supporto-per-mysql">
+        "installazione-del-supporto-per-mysql-a-php">
           <h3><a class="toc-backref" href=
-          "#id21">3.3.2&nbsp;&nbsp;&nbsp;Installazione del supporto
-          per Mysql</a></h3>
+          "#id38">4.4.2&nbsp;&nbsp;&nbsp;Installazione del supporto
+          per Mysql a PHP</a></h3>
 
           <p>Installare i pacchetti:</p>
           <pre class="literal-block">
@@ -1162,39 +2244,37 @@ php5-mysql phpmyadmin
           <p>Controllare tramite la pagina php.info che sia
           abilitato il supporto per Mysql (ripartito Apache,
           ricaricare la pagina e cercare con CTRL+f <tt class=
-          "docutils literal"><span class=
-          "pre">mysql</span></tt>).</p>
+          "docutils literal">mysql</tt>).</p>
         </div>
 
         <div class="section" id="phpmyadmin">
           <h3><a class="toc-backref" href=
-          "#id22">3.3.3&nbsp;&nbsp;&nbsp;phpmyadmin</a></h3>
+          "#id39">4.4.3&nbsp;&nbsp;&nbsp;phpmyadmin</a></h3>
 
-          <p>L'interfaccia web Phpmyadmin non richede
+          <p>L'interfaccia web Phpmyadmin non richiede
           necessariamente la presenza di un database Mysql locale,
-          puo' infatti essere utilizzata per gestire databases
+          puo' infatti essere utilizzata per gestire database
           remoti (il suo file di configurazione: <tt class=
+          "docutils literal">/etc/phpmyadmin/config.inc.php</tt> ).
+          Nel caso si voglia installare localmente Mysql si
+          utilizzi il pacchetto <tt class=
           "docutils literal"><span class=
-          "pre">/etc/phpmyadmin/config.inc.php</span></tt> ). Nel
-          caso si voglia installare localmente Mysql si utilizzi il
-          pacchetto <tt class="docutils literal"><span class=
           "pre">mysql-server</span></tt> .</p>
 
           <p>Phpmyadmin dovrebbe essere disponibile all'URL:
           <tt class="docutils literal"><span class=
           "pre">http://localhost/phpmyadmin/</span></tt>, se cosi
           non fosse controllare che sia incluso il file <tt class=
-          "docutils literal"><span class=
-          "pre">/etc/phpmyadmin/apache.conf</span></tt> in
-          <tt class="docutils literal"><span class=
-          "pre">/etc/apache2/conf.d/</span></tt> .</p>
+          "docutils literal">/etc/phpmyadmin/apache.conf</tt> in
+          <tt class="docutils literal">/etc/apache2/conf.d/</tt>
+          .</p>
         </div>
 
         <div class="section" id=
-        "installazione-del-supporto-per-postgresql">
+        "installazione-del-supporto-per-postgresql-a-php">
           <h3><a class="toc-backref" href=
-          "#id23">3.3.4&nbsp;&nbsp;&nbsp;Installazione del supporto
-          per Postgresql</a></h3>
+          "#id40">4.4.4&nbsp;&nbsp;&nbsp;Installazione del supporto
+          per Postgresql a PHP</a></h3>
 
           <p>Installare i pacchetti:</p>
           <pre class="literal-block">
@@ -1204,14 +2284,36 @@ php5-pgsql phppgadmin
           <p>Controllare tramite la pagina php.info che sia
           abilitato il supporto per PostgreSQL (ripartito Apache,
           ricaricare la pagina e cercare con CTRL+f <tt class=
-          "docutils literal"><span class=
-          "pre">pgsql</span></tt>).</p>
+          "docutils literal">pgsql</tt>).</p>
+        </div>
+
+        <div class="section" id="phppgadmin">
+          <h3><a class="toc-backref" href=
+          "#id41">4.4.5&nbsp;&nbsp;&nbsp;phppgadmin</a></h3>
+
+          <p>L'interfaccia web Phppgadmin per il database server
+          PostgreSQL non richiede necessariamente la presenza di un
+          database locale, puo' infatti essere utilizzata per
+          gestire database remoti (il suo file di configurazione:
+          <tt class=
+          "docutils literal">/etc/phppgadmin/config.inc.php</tt> ).
+          Nel caso si voglia installare localmente Mysql si
+          utilizzi il pacchetto <tt class=
+          "docutils literal">postgresql</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">/etc/phppgadmin/apache.conf</tt> in
+          <tt class="docutils literal">/etc/apache2/conf.d/</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>
+        "#id42">4.5&nbsp;&nbsp;&nbsp;Virtual hosts</a></h2>
 
         <blockquote>
           <ul class="simple">
@@ -1225,21 +2327,22 @@ php5-pgsql phppgadmin
         </blockquote>
 
         <p>I virtual host permettono di avere piu' siti internet
-        disponibile tramite lo stesso server web, eventualmente
-        mappati su un solo indirizzo ip. Sono generalemente di due
+        disponibili tramite lo stesso server web, eventualmente
+        mappati su un solo indirizzo IP. Sono generalmente di due
         tipi:</p>
 
         <blockquote>
           <ul class="simple">
-            <li>Basati su indirizzi ip diversi. 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
-            stesso ip. Soluzione piu' economica e diffusa che si
+            <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: <tt class=
+            "docutils literal">&lt;VirtualHost
+            192.168.0.2:80&gt;</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>
         </blockquote>
@@ -1249,102 +2352,460 @@ 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>
+          "#id43">4.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
-          dominio sull'indirizzo ip del server. Questo si puo'
+          dominio sull'indirizzo IP del server. Questo si puo'
           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><tt class="docutils literal">/etc/hosts</tt></dt>
+
+              <dd>Per prove sul proprio sistema potete impostare i
+              nomi dei vostri virtual server nel file /etc/hosts
+              .</dd>
+
+              <dt><em>Dnsmasq</em> (DNS server)</dt>
+
+              <dd>Utilizzabile al livello della rete locale per
+              fare dei test, utilizzando direttive come: <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>
-
-              <li>Servizio DNS dinamico on line. Utilizzare un
-              servizio come ad es: <a class="reference external"
-              href=
+              "pre">address=/davide.piffa.net/10.10.208.178</span></tt></dd>
+
+              <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
+              per mappare nomi di dominio sul proprio indirizzo IP,
+              comodo ad esempio se si dispone di un indirizzo IP
               pubblico (anche se dinamico) per la propria
-              connessione ad internet.</li>
+              connessione ad internet.</dd>
 
-              <li>Dnsmasq 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>
+              <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">papo&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+              A&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+              212.22.136.248</tt></dd>
+            </dl>
+          </blockquote>
+        </div>
+
+        <div class="section" id="eseguire-una-query-dns-con-dig">
+          <h3><a class="toc-backref" href=
+          "#id44">4.5.2&nbsp;&nbsp;&nbsp;Eseguire una query DNS con
+          <tt class="docutils literal">dig</tt>::</a></h3>
+
+          <p>Per testare la corretta risoluzione dei vostri nomi di
+          dominio sui relaivi indirizzi IP si usi dig (o altre
+          utlity, vedere la sezione relativa i DNS). Dig e'
+          contenuto nel pacchetto <tt class=
+          "docutils literal">dnsutils</tt>.</p>
+
+          <blockquote>
+            <p># dig 177.piffa.net</p>
+
+            <p>; &lt;&lt;&gt;&gt; DiG 9.5.1-P1 &lt;&lt;&gt;&gt;
+            177.piffa.net ;; global options: printcmd ;; Got
+            answer: ;; -&gt;&gt;HEADER&lt;&lt;- opcode: QUERY,
+            status: NOERROR, id: 38036 ;; flags: qr aa rd ra;
+            QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0</p>
 
-              <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>
+            <p>;; QUESTION SECTION: ;177.piffa.net. IN A</p>
+
+            <p>;; ANSWER SECTION: 177.piffa.net. 0 IN A
+            10.10.208.177</p>
+
+            <p>;; SERVER: 10.10.208.248#53(10.10.28.248)</p>
           </blockquote>
 
-          <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>
+          <p>La parte interessante e' l'<em>ANSWER SECTION</em>:
+          <tt class=
+          "docutils literal">177.piffa.net.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+          0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+          IN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+          A&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 10.10.208.177</tt>
+          . Il nome di dominio 177.piffa.net viene risolto sull'ip
+          10.10.208.177 , nel nostro Apache (che risponde all'ip
+          10.10.208.177 ) dovra' essere disponibile un virtual host
+          che corrisponde al nome <tt class=
+          "docutils literal">177.piffa.net</tt> (<tt class=
+          "docutils literal">ServerName</tt>) .</p>
+
+          <p>Il server DNS utilizzato dal sistema e' evidenziato
+          dalla stringa: <tt class="docutils literal">;; SERVER:
+          10.10.28.248#53(10.10.28.248)</tt> che dovrebbe
+          corrispondere a quanto impostato nel vostro <tt class=
+          "docutils literal">/etc/resolv.conf</tt>. Se il vostro
+          browser web utilizza un proxy http sara questo a
+          risolvere i nomi di dominio, tipicamente potete
+          disabilitare l'uso del proxy per determinati domini nella
+          sezione di configurazione del browser.</p>
+        </div>
+
+        <div class="section" id="id3">
+          <h3><a class="toc-backref" href=
+          "#id45">4.5.3&nbsp;&nbsp;&nbsp;Virtual hosts</a></h3>
+
+          <p>Esempio di Virtual host:</p>
           <pre class="literal-block">
-# dig 177.piffa.net
+&lt;VirtualHost *:80 &gt;
+    ServerName 177.piffa.net
+    DocumentRoot /var/www/177.piffa.net/
+    ServerAdmin webmaster@177.piffa.net
+&lt;/VirtualHost&gt;
+</pre>
 
-; &lt;&lt;&gt;&gt; DiG 9.5.1-P1 &lt;&lt;&gt;&gt; 177.piffa.net
-;; global options:  printcmd
-;; Got answer:
-;; -&gt;&gt;HEADER&lt;&lt;- opcode: QUERY, status: NOERROR, id: 38036
-;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
+          <ol class="arabic simple">
+            <li><tt class="docutils literal">&lt;VirtualHost
+            <span class="pre">\*:80</span> &gt;</tt> La prima riga
+            indica l'inizio della stanza relativa al nostro virtual
+            host, che ascoltera' su qualunque indirizzo IP (nel
+            caso il server abbia piu' indirizzi dai quali e'
+            raggiungibile) sulla porta <tt class=
+            "docutils literal">80</tt>.</li>
+
+            <li><tt class="docutils literal">Server/name</tt>
+            precisa quale sara' il nome di dominio a cui verra'
+            associato questo sito rispetto ad altri eventualmente
+            presenti sullo stesso server web.</li>
+
+            <li><tt class="docutils literal">DocumentRoot</tt> : il
+            path della directory che contiene le pagine del
+            sito.</li>
+
+            <li><tt class="docutils literal">ServerAdmin</tt>:
+            l'indirizzo del webmaster, in modo da poterlo
+            contattare in caso di problemi col sito.</li>
+
+            <li><tt class=
+            "docutils literal">&lt;/VirtualHost&gt;</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 aggiungere altre:</p>
+
+          <ul>
+            <li>
+              <dl class="first docutils">
+                <dt><tt class="docutils literal">ErrorLog
+                /var/log/apache2/177.piffa.net/error.log</tt></dt>
+
+                <dd>
+                  <p class="first last">Log degli errori separato
+                  dai restanti siti web ospitati dal server.</p>
+                </dd>
+              </dl>
+            </li>
 
-;; QUESTION SECTION:
-;177.piffa.net.                 IN      A
+            <li>
+              <dl class="first docutils">
+                <dt><tt class="docutils literal">LogLevel
+                warn</tt></dt>
+
+                <dd>
+                  <p class="first last">Livello di importanza degli
+                  eventi loggati: warning <em>attenzione</em> .</p>
+                </dd>
+              </dl>
+            </li>
 
-;; ANSWER SECTION:
-177.piffa.net.          0       IN      A       10.10.208.177
+            <li>
+              <dl class="first docutils">
+                <dt><tt class="docutils literal">CustomLog
+                /var/log/apache2/177.piffa.net/access.log
+                combined</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>
 
-;; Query time: 12 msec
-;; SERVER: 10.10.208.254#53(10.10.208.254)
-;; WHEN: Wed May  6 12:27:08 2009
-;; MSG SIZE  rcvd: 47
+          <p>Potrebbe essere utile modificare le impostazioni di
+          una intera directory, ad esempio per abilitare
+          l'<tt class="docutils literal">AuthConfig</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>La parte interessante e' <tt class=
-          "docutils literal"><span class=
-          "pre">177.piffa.net.</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-          <span class=
-          "pre">0</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-          <span class="pre">IN</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-          <span class=
-          "pre">A</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-          <span class="pre">10.10.208.177</span></tt> . Il nome di
-          dominio 177.piffa.net viene risolto sull'ip 10.10.208.177
-          , nel nostro Apache (che risponde all'ip 10.10.208.177 )
-          dovra' essere disponibile un virtual host che corrisponde
-          al nome <tt class="docutils literal"><span class=
-          "pre">177.piffa.net</span></tt> .</p>
+          <p><tt class="docutils literal">AllowOverride
+          AuthConfig</tt> ora vale per l'intera directory, come le
+          altre opzioni.</p>
         </div>
+      </div>
 
-        <div class="section" id="virtual-host">
+      <div class="section" id="negoziazione-accessi">
+        <h2><a class="toc-backref" href=
+        "#id46">4.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 poter limitare questi accessi, ad esempio per
+        escludere un <em>bot</em> indesiderato che scansiona
+        ininterrottamente 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=
-          "#id26">3.4.2&nbsp;&nbsp;&nbsp;Virtual host</a></h3>
+          "#id47">4.6.1&nbsp;&nbsp;&nbsp;Limiti su base IP</a></h3>
+
+          <p>La forma piu' semplice di restrizione 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>Esempio di Virtual host</p>
+          <p>In questo modo solo la classe IP <tt class=
+          "docutils literal">192.168.0.0/24</tt> potra' accedere
+          alla directory <tt class=
+          "docutils literal">/limitata</tt> Si tenga pero' conto
+          che e' relativamente facile per un malintenzionato
+          cambiare il proprio indirizzo IP, oppure collegarsi da un
+          altra zona. Meno facile e' accedere ad una classe privata
+          trovandosi all'esterno di questa, ma ci sono comunque
+          soluzioni piu' eleganti.</p>
+
+          <ul class="simple">
+            <li>Mod_access: <a class="reference external" href=
+            "http://httpd.apache.org/docs/2.0/mod/mod_access.html">http://httpd.apache.org/docs/2.0/mod/mod_access.html</a></li>
+
+            <li>mod_authz_hosti(Available in Apache 2.1 and later):
+            <a class="reference external" href=
+            "http://httpd.apache.org/docs/2.2/mod/mod_authz_host.html">
+            http://httpd.apache.org/docs/2.2/mod/mod_authz_host.html</a></li>
+          </ul>
         </div>
       </div>
 
       <div class="section" id="user-authentication">
         <h2><a class="toc-backref" href=
-        "#id27">3.5&nbsp;&nbsp;&nbsp;User Authentication</a></h2>
+        "#id48">4.7&nbsp;&nbsp;&nbsp;User Authentication</a></h2>
+
+        <p>Si puo' negoziare gli accessi ad un area del sito
+        tramite autenticazione basata su <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.</p>
+
+        <p>Tramite il modulo di Apache <em>mod-auth</em> e'
+        possibile implementare questo paradigma, per quanto
+        esistano soluzioni piu' granulari e sofisticate, che
+        richiedono pero' l'implementazione di interpreti di
+        linguaggi di programmazione, criptazione delle passwords,
+        gestione degli utenti ed eventualmente delle sessioni. Mod
+        auth non richiede l'installazione di niente di tutto
+        questo.</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=
+          "#id49">4.7.1&nbsp;&nbsp;&nbsp;Definire la
+          cartella</a></h3>
+
+          <p>Decidere quale sara' il <em>path</em> della cartella
+          da sottoporre ad autenticazione:</p>
+
+          <blockquote>
+            <tt class="docutils literal">mkdir
+            /var/www/177.piffa.net/privata</tt>
+          </blockquote>
+        </div>
+
+        <div class="section" id=
+        "creazione-del-database-delle-passwords">
+          <h3><a class="toc-backref" href=
+          "#id50">4.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">htpasswd</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">/home/utente/passwords</tt> con
+          l'utente <tt class="docutils literal">luca</tt>:</p>
+          <pre class="literal-block">
+htpasswd -c /home/utente/passwords luca
+</pre>
+
+          <p><tt class="docutils literal">htpasswd</tt> ci
+          chiedera' la password da associare all'utente <tt class=
+          "docutils literal">luca</tt>. Per successive 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="id4">
+          <h3><a class="toc-backref" href=
+          "#id51">4.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">.htaccess</tt>
+          invece che modificare (tramite una direttiva <tt class=
+          "docutils literal">&lt;Directory&gt;</tt> ) 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
+          funzionamento del loro spazio web ci togliera'
+          l'incombenza di dover intervenire continuamente sui vari
+          virtual host.</p>
+
+          <p>Abilitiamo l'AllowOverride nel file di configurazione
+          del virtual host per la sola directory <tt class=
+          "docutils literal">privata</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 file <tt class=
+          "docutils literal">.htaccess</tt> che sara' onorato da
+          Apache.</p>
+
+          <p>/var/www/177.piffa.net/privata/.htaccess</p>
+          <pre class="literal-block">
+# Messaggio visualizzato al prompt per l'autenticazione
+AuthName "Area privata soggetta ad autentizazione"
+# tipo di autenticazione da usarsi
+AuthType Basic
+# File precedentemente generato 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>
+
+          <dl class="docutils">
+            <dt>Oltre a <tt class="docutils literal"><span class=
+            "pre">valid-users</span></tt> si potrebbe scegliere di
+            usare la formula <tt class=
+            "docutils literal">users</tt> che permette di elencare
+            esplicitamente gli utenti::</dt>
+
+            <dd>require user pippo pluto</dd>
+          </dl>
+
+          <p>L'utente <em>paperino</em> che fosse comunque presente
+          nel file generato da htpasswd non potrebbe accedere alla
+          risorsa.</p>
+
+          <dl class="docutils">
+            <dt>Nel caso ci fossero molti utenti conviene gestirli
+            tramite <em>gruppi</em>::</dt>
+
+            <dd>require group staff studenti</dd>
+          </dl>
+
+          <p>I gruppi vengono definiti in un file in modo simile a
+          <tt class="docutils literal">/etc/groups</tt> per gli
+          utenti di sistema:</p>
+          <pre class="literal-block">
+staff:andrea sara
+studenti: lucap federico luca
+</pre>
+
+          <p>da richiamare tramite la direttiva <tt class=
+          "docutils literal">AuthGroupFile</tt>.</p>
+        </div>
       </div>
 
       <div class="section" id="cavets">
         <h2><a class="toc-backref" href=
-        "#id28">3.6&nbsp;&nbsp;&nbsp;Cavets</a></h2>
+        "#id52">4.8&nbsp;&nbsp;&nbsp;Cavets</a></h2>
 
         <p>Problemi di cache:</p>
 
@@ -1360,7 +2821,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 +2830,148 @@ 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">
+      "#id53">5&nbsp;&nbsp;&nbsp;Domain Name System</a></h1>
+
+      <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 sistema <strong>gerarchico</strong> (quindi una struttura
+      ad albero, simile ai <em>file system</em>)
+      <strong>distribuito</strong> (ogni server DNS facente parte
+      del sistema puo' mantenere solo una parte delle informazioni,
+      ad esempio per la sua sola <em>zona</em>), costituito dai
+      server DNS.</p>
+
+      <p>I DNS sono un servizio <em>core</em> (fondamentale) per la
+      rete internet come per qualunque rete locale. Ad esempio
+      durante la navigazione web un client vorrebbe vedere
+      l'<em>URL</em> <tt class="docutils literal"><span class=
+      "pre">http://ww.piffa.net/</span></tt>, quindi per potersi
+      connettere via <em>http</em> al server web deve prima
+      ottenere l'indirizzo IP del <em>server http</em>
+      corrispondente a <em>www.piffa.net</em>. Se il DNS gli
+      fornisce un IP sbagliato l'utente non potra' raggiungere il
+      servizio: di fatto e' come se il serve http fosse spento.</p>
+
+      <p>Stessa cosa vale per gli altri servizi, come la posta
+      elettronica, ssh, ecc. : <em>prima si deve effettuare una
+      query DNS</em>.</p>
+
+      <p>Potrebbe verificarsi uno scenario simile a questo: i
+      vostri server per i siti web funzionano correttamente come i
+      siti ospitati, stessa cosa per i vostri server di posta, IMAP
+      e POP3, e tutto il resto. Ma se poi un errore nella
+      configurazione del DNS non rende raggiungibile l'intero
+      <em>sito</em>: per l'utente finale e' come se nulla
+      funzionasse.</p>
+
+      <p>Infatti quando si parla di un intervento della Polizia
+      Postale per l'<em>oscuramento</em> di un sito dal punto di
+      vista pratico questo si traduce generalmente nella rimozione
+      o mistificazione del record DNS relativo a quel dominio (la
+      <em>PP</em> ha facolta' di chiedere un simile intervento ai
+      principali provider internet che forniscono connettivita'
+      agli utenti italiani, oltre che poter agire direttamente sul
+      NIC italiano per i domini della TLD <em>.it</em>)</p>
+
+      <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>
+
+      <blockquote>
+        Un <em>Registar</em> e' un operatore che ha la facolta'
+        (accreditamento da parte dell ICANN) di registrare i domini
+        di secondo livello per gli utenti finali, dietro compenso
+        di una modica cifra (una decina di euro) che vale come
+        contributo su base annuale per il mantenimento
+        dell'infrastruttura.
+      </blockquote>
+
+      <div class="section" id="risoluzione-inversa">
         <h2><a class="toc-backref" href=
-        "#id30">4.1&nbsp;&nbsp;&nbsp;Informazioni di base sul
-        servizio DNS.</a></h2>
-
-        <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>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>
+        "#id54">5.1&nbsp;&nbsp;&nbsp;Risoluzione Inversa</a></h2>
+
+        <p>Per la risoluzione inversa sono invece i provider di
+        connettivita' a gestire i DNS: se volete impostare il
+        <em>PTR</em> associato al vostro indirizzo IP dovete
+        contattare il vostro provider (tipo <em>telecom</em> per
+        una connessione ADSL) e <em>non il Registar del vostro
+        dominio</em>.</p>
+
+        <p>Ad esempio all'IP <tt class=
+        "docutils literal">212.22.136.248</tt> era associato un PTR
+        <tt class="docutils literal">bender.piffa.net</tt>,
+        corrispondente al record <tt class=
+        "docutils literal">212</tt> facente parte della zona
+        <tt class="docutils literal"><span class=
+        "pre">136.22.212.in-addr.arpa</span></tt> gestito dal
+        provider Tiscali/Nextra proprietario della classe C
+        <tt class="docutils literal">212.22.136.0</tt>. Se avete un
+        solo IP conviene lasciare al fornitore la gestire del PTR,
+        ma se avete a disposizione un'itera classe potete chiedere
+        sempre al vostro provider che vi <em>deleghi</em> la
+        gestione della zona tramite i vostri DNS.</p>
+
+        <p>Per alcuni servizi, ad esempio la spedizione della posta
+        elettronica, e' richiedeiesto che venga impostata
+        correttamente l'associazione tra il PTR dell'indirizzo IP
+        usato dal server di postai e il record A RR al quale questo
+        punta( RFC1912 sezione 2.1, paragrafo 2).</p>
+
+        <p>Si veda:</p>
 
-        <p>C'รจ confusione in merito alla definizione
-        dell'acronimo: la S spesso viene interpretata come service,
-        ma la definizione corretta รจ system.</p>
+        <ul class="simple">
+          <li><a class="reference external" href=
+          "http://www.faqs.org/rfcs/rfc1912.html">http://www.faqs.org/rfcs/rfc1912.html</a>
+          2.1 Inconsistent, Missing, or Bad Data</li>
 
-        <p>L'operazione di convertire un nome in un indirizzo รจ
-        detta risoluzione DNS, convertire un indirizzo IP in nome
-        รจ detto risoluzione inversa.</p>
+          <li><a class="reference external" href=
+          "http://www.ietf.org/rfc/rfc2505.txt">http://www.ietf.org/rfc/rfc2505.txt</a></li>
+        </ul>
       </div>
 
       <div class="section" id="nomi-di-dominio">
         <h2><a class="toc-backref" href=
-        "#id31">4.2&nbsp;&nbsp;&nbsp;Nomi di dominio</a></h2>
-
-        <p>Un nome a dominio รจ 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,
-        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
-        specifica un'ulteriore suddivisione. Quando un dominio di
-        secondo livello viene registrato all'assegnatario, questo
-        รจ 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>
+        "#id55">5.2&nbsp;&nbsp;&nbsp;Nomi di dominio</a></h2>
+
+        <p>Un nome a dominio e' costituito da una serie di stringhe
+        separate da punti, ad esempio bender.piffa.net. I nomi di
+        dominio si leggono da destra verso sinistra: <em>TLD</em> o
+        dominio di primo livello <tt class=
+        "docutils literal">net</tt>, secondo livello <tt class=
+        "docutils literal">piffa</tt>, terzo livello <tt class=
+        "docutils literal">bender</tt>. Il dominio di primo livello
+        (o TLD, Top Level Domain, pronunciato <em>tilde</em> in
+        Italia), per esempio .net o .it sono limitati e decisi
+        direttamente dall'ente assegnatario ICANN ( Internet
+        Corporation for Assigned Names and Numbers).</p>
+
+        <p>L'utente finale potra' chiedere l'assegnazione (pagando
+        un contributo al Register preferito per il mantenimento
+        delle spese dell'infrastruttura) di un dominio di
+        <em>secondo</em> livello (es <tt class=
+        "docutils literal">piffa</tt>) di una delle varie TLD
+        disponibili (noi italiani diciamo <em>tildi</em>), sempre
+        che non sia gia' stato assegnato a qualcun altro.</p>
+
+        <p>Ottenuto il secondo livello sara' l'utente a gestirlo:
+        potra' in stanziare domini di terzo livello (es <tt class=
+        "docutils literal">bender</tt>) e anche oltre (es
+        www.andrea.bender.piffa.net). Tali records saranno
+        mantenuti dall'utente, sotto la sua responsbilita': se il
+        proprio server DNS non fosse raggiungibile o risultasse mal
+        configurato gli utenti non potrebbero risolvere /
+        raggiungere i siti di loro interesse.</p>
+
+        <p>Tipicamente si ha almeno un server DNS secondario per
+        garantire la sussistenza del servizio in caso di guasto del
+        DNS principale. I secondari <em>replicano</em> i dati
+        presenti nei DNS principali.</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>
+        "#id56">5.3&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 +2980,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 +2989,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,15 +3026,15 @@ php5-pgsql phppgadmin
 
       <div class="section" id="utilizzo">
         <h2><a class="toc-backref" href=
-        "#id33">4.4&nbsp;&nbsp;&nbsp;Utilizzo</a></h2>
+        "#id57">5.4&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
         utenti come riferimento per i vari server. Ad esempio
-        sarebbe scomodoriferirsi al motore di ricerca Goggle con
-        uno dei suoi IP: <tt class="docutils literal"><span class=
-        "pre">74.125.43.104</span></tt>, e' preferibile usare il
-        nome di dominio <em>www.google.com</em>:</p>
+        sarebbe scomodo riferirsi al motore di ricerca Goggle con
+        uno dei suoi IP: <tt class=
+        "docutils literal">74.125.43.104</tt>, e' preferibile usare
+        il nome di dominio <em>www.google.com</em>:</p>
         <pre class="literal-block">
 ping -c 1 www.google.com
 PING www.l.google.com (74.125.43.104) 56(84) bytes of data.
@@ -1495,7 +3043,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
+        "#id58">5.5&nbsp;&nbsp;&nbsp;Risoluzione dei nomi di
         dominio</a></h2>
 
         <p>Ci sono vari strumenti per interrogare i server DNS e
@@ -1503,123 +3051,1195 @@ 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
+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
+Non-authoritative answer:
+www.piffa.net   canonical name = piffa.net.
+Name:   piffa.net
+Address: 65.98.21.97
 
 
- $ dig www.piffa.net
+$ 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
+; &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
+;; 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
+;; 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>
 
- ;; 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.
+        <p>Lo strumento piu' esaustivo e' <tt class=
+        "docutils literal">dig</tt>, installabile con il pacchetto
+        <tt class="docutils literal">dnsutils</tt> .</p>
+      </div>
 
- ;; 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
+      <div class="section" id="dig">
+        <h2><a class="toc-backref" href=
+        "#id59">5.6&nbsp;&nbsp;&nbsp;Dig</a></h2>
 
- ;; 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>
-      </div>
-    </div>
+        <p>Vediamo alcune opzioni utili nell'utilizzo di <tt class=
+        "docutils literal">dig</tt> per l'interrogazione dei DNS
+        Server:</p>
+        <pre class="literal-block">
+$ dig www.google.it
 
-    <div class="section" id="dnsmasq">
-      <h1><a class="toc-backref" href=
-      "#id35">5&nbsp;&nbsp;&nbsp;DNSmasq</a></h1>
+; &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
 
-      <p>Dnsmasq puo' svolgere le funzioni di un DNS cache /
-      forwarder e un server DHCP caratterizzato dalla facilita' di
-      configurazione, dalla leggerezza e dalla possibilita' di
-      modificare rapidamente i record DNS serviti alla rete. Puo'
-      essere anche utilizzato come <cite>server per il boot da rete
-      &lt;http://www.debian-administration.org/articles/478&gt;_</cite>
-      .</p>
+;; QUESTION SECTION:
+;www.google.it.                 IN      A
 
-      <p>Dnsmasq e' un interessante alternativa all'uso del server
-      DNS Bind in modalita' cache-only (non autoritativo)
-      accompagnato dal server DHCPD. I vantaggi sono:</p>
+;; 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>
 
-      <ul class="simple">
-        <li>Leggerezza: puo' essere fatto girare su una macchina
-        relativamente debole in caso di bisogno.</li>
+        <dl class="docutils">
+          <dt>$ dig</dt>
+
+          <dd>(senza opzioni o oggetti) Fornisce l'elenco dei
+          <em>root server</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">A</tt> per un indirizzo IP) che ci
+          servono per raggiungere un certo servizio.</dd>
+        </dl>
 
-        <li>Rapidita' di configurazione (in particolare per servire
-        dei record A / MX alla rete, modificando al volo i valori
-        originali ospitati sul server DNS Publico).</li>
+        <p>$ dig</p>
 
-        <li>Ben integrato con connssioni PPP (utile se dovete
-        rendere disponibile rapidamente una connessione a internet
-        a una rete in difficolta').</li>
-      </ul>
+        <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>
 
-      <p>Tutto cio' rende Dnsmasq una soluzione valida in
-      particolare quando si deve intervenire in una rete
-      pre-esistente in cui il server principale e' in crisi: si
-      potra' utilizzare Dnsmasq anche su una macchina piu' debole e
-      <em>mascherare</em> i servizi al momento non disponibili.
-      Molto utile per scopi didattici, sopratutto per testare
-      server SMTP impostando al volo i campi MX per nomi di dominio
-      fittizi.</p>
-    </div>
+        <dl class="docutils">
+          <dt>dig @nome_dns</dt>
 
-    <div class="section" id="samba">
-      <h1><a class="toc-backref" href=
-      "#id36">6&nbsp;&nbsp;&nbsp;Samba</a></h1>
+          <dd>Permette di fare una query ad un server dns
+          particolare. Es: <tt class="docutils literal">dig
+          @151.99.25.1 www.google.it</tt></dd>
 
-      <p>Samba e' un progetto libero che fornisce servizi di
-      condivisione di file e stampanti a client SMB/CIFS.</p>
+          <dt>dig MX www.google.it</dt>
 
-      <p>Samba e' liberamente disponibile, al contrario di altre
-      implementazioni SMB/CIFS, e permette di ottenere
-      interoperabilita' tra Linux, Unix, Mac OS X e Windows.</p>
+          <dd>Chiede un campo in particolare, in questo caso il
+          campo MX</dd>
 
-      <p>Samba e' un software che puo girare su piattaforme che non
-      siano Microsoft Windows, per esempio, UNIX, Linux, IBM System
-      390, OpenVMS e altri sistemi operativi. Samba utilizza il
-      protocollo TCP/IP utilizzando i servizi offerti sul server
-      ospite. Quando correttamente configurato, permette di
-      interagire con client o server Microsoft Windows come se
-      fosse un file e print server Microsoft agendo da Primary
-      Domain Controller (PDC) o come Backup Domain Controller, puo'
-      inoltre prendere parte ad un dominio Active Directory.</p>
+          <dt>dig ANY www.google.it</dt>
 
-      <div class="section" id="pacchetti">
-        <h2><a class="toc-backref" href=
-        "#id37">6.1&nbsp;&nbsp;&nbsp;Pacchetti</a></h2>
+          <dd>Chiede tutti i campi, non solo i campi
+          <em>a</em></dd>
 
-        <p>Pacchetti da installare per utilizzare Samba in
-        modalita' client <a class="footnote-reference" href="#id4"
-        id="id3" name="id3">[2]</a></p>
+          <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=
+        "#id60">5.7&nbsp;&nbsp;&nbsp;resolv.conf</a></h2>
+
+        <p>Il file <tt class=
+        "docutils literal">/etc/resolv.conf</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">nameserver</tt>:
+            indica il nameserver da utilizzare, indicato con
+            l'indirizzo IP.</li>
+
+            <li><tt class="docutils literal">domain</tt>: indica il
+            nome di dominio della rete attuale, vedi voce
+            successiva.</li>
+
+            <li><tt class="docutils literal">search</tt>: nome di
+            dominio usato dalla rete sul quale cercare gli hosts.
+            Ad esempio se impostato su <tt class=
+            "docutils literal">piffa.net</tt> pingando l' host
+            <tt class="docutils literal">bender</tt> viene
+            automaticamente fatto un tentativo di ricerca per
+            <tt class=
+            "docutils literal">bender.piffa.net</tt>.</li>
+          </ul>
+        </blockquote>
+
+        <p>Predisponendo l'infrastruttura di rete della vostra LAN
+        e' consigliabile impostare sempre almeno un DNS cache sul
+        vostro server locale per i vari client. In questo modo in
+        caso di malfunzionamento del DNS o necessita' di
+        intervenire / sostituire i DNS non sara' piu' necessario
+        dover reimpostare ogni singolo client della LAN: bastera'
+        intervenire sul server DNS cache, ad esempio per utilizzare
+        un nuovo forwarder, o modificare al volo un record DNS. La
+        modifica, anche detta <em>mascheramento</em>, di un record
+        come il <em>server smtp</em> o un <em>MX</em> potrebbe
+        tirarvi rapidamente fuori dai guai nel caso di un problema
+        improvviso con la posta elettronica o qualunque altro
+        servizio che possiate reindirizzare col DNS.</p>
+
+        <p>Utilizzare un server DHCP e una DNS cache come
+        <tt class="docutils literal">Dnsmasq</tt> possono
+        permettervi di risolvere al volo molte delle problematiche
+        relative alla configurazione della vostra LAN: ad esempio
+        dover intervenire manualmente su decine di client per
+        modificare le impostazioni di SMTP | gateway | DNS |
+        proxy.</p>
+
+        <p>Si veda anche la pagina man di resolv.conf.</p>
+
+        <div class="warning">
+          <p class="first admonition-title">Avvertenza</p>
+
+          <p class="last">Attenzione: se si usa un client DHCP, ppp
+          (ADSL compresa) o simile questo file potrebbe' essere
+          riscritto automaticamente in base a quanto ottenuto dal
+          DHCP. Si veda la documentazione del pacchetto <tt class=
+          "docutils literal">resolvconf</tt>.</p>
+        </div>
+      </div>
+
+      <div class="section" id="etc-hosts">
+        <h2><a class="toc-backref" href=
+        "#id61">5.8&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 del file e' un associazione tra un
+        <em>IP</em> e stringhe di testo (anche piu' di una per IP)
+        es: <tt class="docutils literal">mirror</tt> o veri e propi
+        nomi di dominio <tt class=
+        "docutils literal">mirror.piffa.net</tt>. Si puo inserire
+        un nome semplice come <em>casa</em> per riferirsi ad un
+        host che si ha necessita' di contattare spesso, oppure
+        mappare un nome di dominio completo su un indirizzo IP.</p>
+
+        <p>Il problema e' la gestione di questo file su molti
+        hosts: quando gli host cambiano IP si devono aggiornare
+        manualmente i records, operazione in se' non
+        particolarmente gravosa ma che andra' fatta per ogni client
+        della vostra LAN. Un metodo semplice per distribuire questo
+        file e' utilizzare <tt class=
+        "docutils literal">Dnsmasq</tt>: questo infatti legge e
+        onora il file <tt class="docutils literal">hosts</tt> che
+        avete prodotto e lo rende disponibile ai clients tramite le
+        query DNS.</p>
+
+        <p>Dnsmasq lavora come un server DNS, i vostri client lo
+        interrogheranno per tradurre nomi di host e domini in
+        indirizzi IP, risolvendo il problema della
+        <em>distribuzione</em> del file <tt class=
+        "docutils literal">hosts</tt> tra molteplici clients.
+        Infatti il servizio DNS indica appunto una <em>directory
+        distribuita</em> per la risoluzione dei nomi di dominio,
+        risolvendo i problemi dell'aggiornamento e diffusione dei
+        continui cambiamenti di questa.</p>
+
+        <p>Modificare la risoluzione di un nome di dominio
+        esistente (ad esempio riconducendola a un IP interno) e' un
+        modo drastico e funzionale per <em>annullarlo</em>
+        rendendolo non disponibile alla propria rete locale. Ad
+        esempio aggiungere al file <tt class=
+        "docutils literal">/etc/hosts</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 <tt class=
+        "docutils literal">localhost</tt>.</p>
+
+        <p>Oppure si potrebbe ricondurre l'indirizzo IP di un
+        server HTTP pubblico usato per i downloads (ad esempio un
+        mirror della propia distribuzione come <tt class=
+        "docutils literal">ftp.it.debian.org</tt>) a un equivalente
+        mirror creato all'interno della rete locale, riducendo il
+        traffico verso l'esterno e aumentando notevolmente la
+        velocita' di scaricamento.</p>
+      </div>
+
+      <div class="section" id="hostname">
+        <h2><a class="toc-backref" href=
+        "#id62">5.9&nbsp;&nbsp;&nbsp;Hostname</a></h2>
+
+        <p>Ogni computer ha un <em>proprio nome</em> visualizzabile
+        (e modificabile) con il comando <tt class=
+        "docutils literal">hostname</tt>. Quando utilizzate a una
+        shell su un host in genere l'hostname compare nel prompt
+        della shell.</p>
+
+        <p>Per visualizzare il nome dell'host su cui si sta
+        operando si digiti semplicemnte <tt class=
+        "docutils literal">hostname</tt>, lo stesso comando con un
+        oggetto modifica temporaneamente il nome dell'host. Per
+        modificare in modo permanente il nome del computer si
+        modifichi il contenuto del file <tt class=
+        "docutils literal">/etc/hostname</tt>.</p>
+
+        <p>Si faccia attenzione a non aver un hostname puramente
+        numerico: ad es. <tt class="docutils literal">161</tt>. E'
+        opportuno che il nome sia comunque un alfanumerico:
+        <tt class="docutils literal"><span class=
+        "pre">host-161</span></tt> o simile.</p>
+
+        <div class="section" id="fqdn">
+          <h3><a class="toc-backref" href=
+          "#id63">5.9.1&nbsp;&nbsp;&nbsp;FQDN</a></h3>
+
+          <p>Per semplicita' gli host sono generalemente
+          raggiungibili dall'esterno mappando il loro IP su un nome
+          di dominio FQDN: fully qualified domain name, composto
+          generalmente da <em>hostname</em>.``domain-name``, ad es.
+          <em>bender</em>.``piffa.net``.</p>
+
+          <p>Alcuni servizi internet fanno affidamento sul PTR
+          dell'IP del server per cercare una conferma che il
+          <em>servizio</em> sia veramente chi afferma di essere (ad
+          esempio STMP).</p>
+
+          <p>Non e' automatico che un servizio, ad esempio un
+          server di posta, si qualifichi leggendo il contenuto del
+          file <tt class="docutils literal">hostname</tt>
+          aggiungendo come suffisso il dominio della rete di cui fa
+          parte l' host: a volte questo parametro puo' essere
+          specificato nel file di configurazione del servizio:</p>
+          <pre class="literal-block">
+* Squid (HTTP proxy): ``visible_hostname``
+
+* Postfix (SMTP server): ``myhostname``
+</pre>
+
+          <p>I motivi sono diversi, senza entrare nel dettaglio dei
+          vari protocolli si pensi comunque che un host ha sempre
+          un solo nome, ma puo' avere un numero variabile di
+          <em>device di rete</em> sia fisici che virtuali con
+          relativi <em>indirizzi IP</em>, e piu' servizi in ascolto
+          sui vari IP.</p>
+        </div>
+      </div>
+    </div>
+
+    <div class="section" id="dnsmasq">
+      <h1><a class="toc-backref" href=
+      "#id64">6&nbsp;&nbsp;&nbsp;DNSmasq</a></h1>
+
+      <p>Dnsmasq puo' svolgere le funzioni di un DNS cache /
+      forwarder, server DHCP, e' caratterizzato dalla facilita' di
+      configurazione, limitato uso di risorse, adattabilita' a
+      connessioni <em>dinamiche</em> come ADSL o altre punto a
+      punto (anche via cellulari) per condividere rapidamente la
+      rete (cosa molto utile se ci dovesse trovare a ridare
+      connettetivita' a una rete momentaneamente sprovvista), dalla
+      possibilita' di modificare rapidamente i record DNS serviti
+      alla rete anche grazie alla distribuzione del file <tt class=
+      "docutils literal">/etc/hosts</tt> locale. Puo' essere anche
+      utilizzato come <cite>server per il boot da rete
+      &lt;http://www.debian-administration.org/articles/478&gt;_</cite>
+      .</p>
+
+      <p>Dnsmasq e' un interessante alternativa all'uso del server
+      DNS Bind in modalita' <em>forwarding e cache-only</em> (non
+      autoritativo) accompagnato dal server DHCPd. I vantaggi
+      sono:</p>
+
+      <ul class="simple">
+        <li>Leggerezza: puo' essere fatto girare su una macchina
+        relativamente debole in caso di bisogno.</li>
+
+        <li>Rapidita' di configurazione (in particolare per servire
+        dei record A / MX alla rete, modificando al volo i valori
+        originali ospitati sul server DNS pubblico).</li>
+
+        <li>Ben integrato con connessioni PPP : e' ingrado di
+        rilevare i cambiamenti dei dns suggeriti e impostarli come
+        forwarders (utile se dovete rendere disponibile rapidamente
+        una connessione a internet a una rete in difficolta').</li>
+      </ul>
+
+      <p>Tutto cio' rende Dnsmasq una soluzione valida in
+      particolare quando si deve intervenire in una rete
+      pre-esistente in cui il server principale e' in crisi: si
+      potra' utilizzare Dnsmasq anche su una macchina piu' debole e
+      <em>mascherare</em> i servizi al momento non disponibili.
+      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=
+        "#id65">6.1&nbsp;&nbsp;&nbsp;Configurazione</a></h2>
+
+        <p>Vediamo alcune direttive di basi del file di
+        configurazione <tt class=
+        "docutils literal">/etc/dnsmasq.conf</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">nome
+          host</tt> ( <tt class=
+          "docutils literal">/etc/hostname</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">/etc/hosts</tt> o nello
+          stesso file di configurazione di dnsmasq. Es: se un
+          vostro client si chiama <tt class=
+          "docutils literal">chrome</tt> e il vostro dominio
+          <tt class="docutils literal">piffa.net</tt> dnsmasq
+          rendera' disponibile il campo <em>A</em> per il dominio
+          <tt class="docutils literal">chrome.piffa.net</tt>
+          diretto all'ip che verra' assegnato al client.</dd>
+        </dl>
+      </div>
+
+      <div class="section" id="dhcp">
+        <h2><a class="toc-backref" href=
+        "#id66">6.2&nbsp;&nbsp;&nbsp;DHCP</a></h2>
+
+        <p>Per attivare il demone DHCP di Dnsmasq 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' essere
+        presente <strong>un solo server DHCP</strong>, o per meglio
+        dire qualunque server DHCP ascolta sul broadcast <tt class=
+        "docutils literal">255.255.255.255</tt> e potrebbe
+        rispondere a un pacchetto di richiesta 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=
+        "#id67">6.3&nbsp;&nbsp;&nbsp;DNS cache</a></h2>
+
+        <p>Dnsmasq lavora di default come cache dns: inserire al
+        file <tt class="docutils literal">/etc/resolv.conf</tt> il
+        nameserver localhost in cima alla lista dei
+        <em>nameserver</em> disponibili.</p>
+
+        <blockquote>
+          nameserver 127.0.0.1
+        </blockquote>
+
+        <p>Questo pero' potrebbe essere problematico se un altro
+        servizio, ad esempio il DHCP client, riscrive il contenuto
+        del file <tt class=
+        "docutils literal">/etc/resolv.conf</tt>. Per superare il
+        problema si aggiunga (riga 20) al file di configurazione
+        <tt class=
+        "docutils literal">/etc/dhcp3/dhclient.conf</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">//etc/resolv.conf</tt>, si modifichi
+        quindi <tt class="docutils literal"><span class=
+        "pre">/etc/ppp/peers/dsl-provider</span></tt> commentando
+        <tt class="docutils literal">usepeerdns</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>
+
+    <div class="section" id="bind-dns-autoritativo">
+      <h1><a class="toc-backref" href=
+      "#id68">7&nbsp;&nbsp;&nbsp;Bind : DNS Autoritativo</a></h1>
+
+      <p>Le soluzioni viste possono bastare per la rete locale o
+      per fare delle prove, ma prima o poi verra' il momento in cui
+      si e' chiamati a gestire dei domini su internet: lo standard
+      e' da sempre <em>Bind</em> ( demone <em>named</em>), ora alla
+      versione 9.</p>
+
+      <p>Installare i pacchetti:</p>
+      <pre class="literal-block">
+bind9
+</pre>
+
+      <div class="section" id="id5">
+        <h2><a class="toc-backref" href=
+        "#id69">7.1&nbsp;&nbsp;&nbsp;DNS cache</a></h2>
+
+        <p>Bind appena installato funzionera' come DNS cache: si
+        faccia un test con un <tt class="docutils literal">dig
+        @localhost</tt> . Bind a differenza di Dnsmasq e' autonomo:
+        non ha bisogno di forwardare (inoltrare) le query a un DNS
+        esterno: queste verranno risolte direttamente da Bind
+        partendo dai <em>DNS root servers</em>.</p>
+
+        <p>E' comunque possibile impostare dei DNS forwarders,
+        tipicamente i DNS server forniti dal proprio provider, per
+        velocizzare le query:</p>
+
+        <p>/etc/bind/named.conf.options (riga 13):</p>
+        <pre class="literal-block">
+forwarders {
+                 10.10.208.254;
+           };
+</pre>
+
+        <p>Nel caso si voglia usare Bind solo come server DNS cache
+        per la propria LAN senza ospitare delle zone DNS pubbliche
+        sara' il caso di limitare gli accessi al server alla sola
+        LAN:</p>
+
+        <p>/etc/bind/named.conf.options (riga 19):</p>
+        <pre class="literal-block">
+// Se il proprio server ha IP 10.10.208.254
+// sulla rete LAN privata:
+listen-on { 10.10.208.254; }
+</pre>
+
+        <p>E non si lasci il server in ascolto su uno degli
+        eventuali indirizzi IP pubblici.</p>
+
+        <p>Se questo non fosse possibile si puo' sempre lavorare su
+        una <em>acl</em>:</p>
+
+        <p>/etc/bind/named.conf</p>
+        <pre class="literal-block">
+acl "localnet" {
+        10.10.208.0/24 ; 127.0.0.0/8 ;
+        } ;
+</pre>
+
+        <p>Per poi aggiungere all'interno della stanza options la
+        direttiva che abilita' l'entita' <tt class=
+        "docutils literal">localnet</tt>:</p>
+
+        <p>/etc/bind/named.conf.options</p>
+        <pre class="literal-block">
+allow-query {"localnet" ;} ;
+</pre>
+      </div>
+
+      <div class="section" id="ospitare-una-zona">
+        <h2><a class="toc-backref" href=
+        "#id70">7.2&nbsp;&nbsp;&nbsp;Ospitare una zona</a></h2>
+
+        <p>Se avete acquistato un nome di dominio e vi serve un
+        software DNS per gestirlo Bind e' la scelta piu' diffusa.
+        Ora vedremo come configurare una <em>zona</em> (come
+        piffa.net) in modo che Bind sia autoritativoper questa,
+        rispondendo alle query DNS di tutta la rete internet.</p>
+
+        <div class="section" id="named-conf-local">
+          <h3><a class="toc-backref" href=
+          "#id71">7.2.1&nbsp;&nbsp;&nbsp;named.conf.local</a></h3>
+
+          <p>Prima di tutti impostiamo il server bind per gestire
+          la zona, per non fare confusione e' opportuno inserire le
+          propie zone DNS nel file <tt class=
+          "docutils literal">named.conf.local</tt> e non in
+          <tt class="docutils literal">named.conf</tt>.</p>
+
+          <p>named.conf.local:</p>
+          <pre class="literal-block">
+/
+// Do any local configuration here
+//
+
+// Consider adding the 1918 zones here, if they are not used in your
+// organization
+//include "/etc/bind/zones.rfc1918";
+
+zone "piffa.net" {
+        type master;
+        file "/etc/bind/pz/piffa.net";
+        }
+</pre>
+
+          <dl class="docutils">
+            <dt>type master</dt>
+
+            <dd>Il nostro server DNS sara' il principale, al quale
+            poi potremo affiancare dei DNS secondari nel caso
+            questo non sia disponibile.</dd>
+
+            <dt>file "/etc/bind/pz/piffa.net"</dt>
+
+            <dd>Dove verranno inserite le informazioni vere e
+            propie di questa zona.</dd>
+          </dl>
+        </div>
+
+        <div class="section" id="configurazione-della-zona">
+          <h3><a class="toc-backref" href=
+          "#id72">7.2.2&nbsp;&nbsp;&nbsp;Configurazione della
+          zona</a></h3>
+
+          <p>Ora dovremo preparare il file contenente i record DNS
+          della zona <em>piffa.net</em>, come abbiamo indicato
+          prima questi saranno contenuti nel file <tt class=
+          "docutils literal">/etc/bind/pz/piffa.net</tt> . Tenere
+          le zone dentro una sottocartella e' buona abitudine,
+          usare <tt class="docutils literal">pz</tt> per queste e'
+          una vecchia abitudine.</p>
+
+          <p>piffa.net:</p>
+          <pre class="literal-block">
+; Zona per il dominio di secondo livello piffa.net
+
+$TTL 3D     ; 3 days
+@                    IN SOA  ns1.piffa.net. hostmaster.piffa.net. (
+                                200905245  ; serial
+                                8H         ; refresh (8 hours)
+                                2H         ; retry (2 hours)
+                                4W         ; expire (4 weeks)
+                                1D         ; minimum (1 day)
+                                )
+;
+                        NS      ns1
+                        NS      ns2
+                        A       94.23.63.105
+                        MX      10 smtp
+                        TXT     "Piffanet main site"
+;
+ns1             A       94.23.63.105
+ns2             A       65.98.21.97
+zoo             A       94.23.63.105
+smtp            A       94.23.63.105
+test.piffa.net. A       94.23.63.105
+*.piffa.net.    A       94.23.63.105 ; *catch all domain
+www             CNAME   zoo
+ftp             CNAME   zoo
+</pre>
+
+          <p>All'interno di questo file si possono inserire dei
+          commenti con il carattere <tt class=
+          "docutils literal">;</tt> (punto-e-virgola), si faccia
+          attenzione alla rigida sintassi: apertura e chiusura
+          delle parentesi tonde nella parte <tt class=
+          "docutils literal">IN SOA</tt>, uso del <tt class=
+          "docutils literal">punto</tt> finale per precisare un
+          nome di dominio specifico (<em>FQDN</em>: Fully-qualified
+          Domain Name) come <tt class=
+          "docutils literal">test.piffa.net.</tt> a differenza
+          degli altri domini di terzo livello come <tt class=
+          "docutils literal">pop,imap,smtp</tt> .</p>
+
+          <p>La zona inizia con una direttiva <tt class=
+          "docutils literal">$TTL 3D</tt> (RFC 2308) che indica la
+          durata (in questo caso tre giorni) che ogni record
+          dovrebbe avrebbe nella cache degli altri serber DNS.
+          Questo valore dovrebbe essere superiore a un giorno, se
+          non modificate spesso i valori dei vostri record DNS e'
+          consigliabile settarlo a 2/3 settimane in modo da
+          limitare la frequenza delle query al propio server.
+          Questo parametro puo' essere modificato per singoli
+          record:</p>
+          <pre class="literal-block">
+$TTL 3D     ; 3 giorni: default se non specificato altrimenti
+rapido  5h      IN      A       94.23.63.105 ; usa un TTL di 5 ore
+lento   3w      IN      A       94.23.63.105 ; usa un TTL di 3 settimane
+normale         IN      A       94.23.63.105 ; usa il TTL di default: 3 giorni
+</pre>
+
+          <p>Segue poi il nome della zona, indicato con la
+          <tt class="docutils literal">@</tt> per richiamare la
+          zona originale precisata nel file <tt class=
+          "docutils literal">named.conf.options</tt> . Segue il
+          campo <tt class="docutils literal">SOA</tt>.</p>
+
+          <div class="section" id="soa-start-of-authority-record">
+            <h4><a class="toc-backref" href=
+            "#id73">7.2.2.1&nbsp;&nbsp;&nbsp;SOA: Start of
+            Authority Record</a></h4>
+
+            <p>Il record SOA puo' comparire solo una volta in una
+            zona, contiene informazioni relative all'autorita' del
+            server DNS.</p>
+
+            <dl class="docutils">
+              <dt>ns1.piffa.net. name-server</dt>
+
+              <dd>primary master DNS di questo dominio.</dd>
+
+              <dt>hostmaster.piffa.net. email-addr</dt>
+
+              <dd>email-addr: indirizzo email della persona
+              responsabile di questa zona, il primo punto viene
+              tradotto in una <em>chiocciola</em> <tt class=
+              "docutils literal">@</tt> dato che questo carattere
+              ha un'altro utilizzo all'interno di questo file. Il
+              referente della zona <strong>deve</strong> essere un
+              email valido e controllato, come consuetudine si usa
+              <tt class=
+              "docutils literal">hostmaster@dominio.tilde</tt>
+              .</dd>
+
+              <dt>200905245 serial number</dt>
+
+              <dd>Questo valore serve per indicare quando e' stato
+              modificato questo file di configurazione, secondo il
+              formato <tt class="docutils literal">yyyymmddss</tt>:
+              <tt class="docutils literal">yyyy</tt> = anno, ''mm''
+              = mese, ''dd'' = giorno, ''ss'' = seriale. Il seriale
+              che deve essere sempre specificato anche per una
+              cifra, va incrementato di una unita' nel caso vengano
+              fatte piu' modifiche <em>nello stesso
+              giorno</em>.</dd>
+
+              <dt>8H refresh</dt>
+
+              <dd>Indica ai DNS secondari quanto tempo attendere
+              per cercare di aggiornare i loro dati con il DNS
+              master.</dd>
+
+              <dt>2H retry</dt>
+
+              <dd>Intervallo di tempo per il DNS slave (secondario)
+              da aspettare prima di cercare di ricontattare il
+              <em>master</em> in caso di problemi col
+              <em>refresh</em>.</dd>
+
+              <dt>4W expire</dt>
+
+              <dd>Indica quando i dati dei dns secondarinon sono
+              piu' autoritativi in caso di impossibilita' degli
+              <em>slaves</em> di ri-aggiornarsi con il
+              <em>master</em>. Consigliato un valore di 2/4
+              settimane.</dd>
+
+              <dt>1D minimum</dt>
+
+              <dd>Questo valore indicava il TTL fino alla versione
+              8 di Bind, da Bind 9 e secondo la RFC2308 indica la
+              durata del <em>negative caching</em>, quanto i
+              resolvers (ad esempio un server dns cache) puo'
+              mantenere un record <em>negativo</em> (che non indica
+              la corrispondenza tra un nome di dominio e un ip, ma
+              la non esistenza del record). Nell'uso per il
+              negative caching viene fissato un valore massimo di 3
+              ore dalla RFC 2308.</dd>
+            </dl>
+          </div>
+
+          <div class="section" id="altri-campi">
+            <h4><a class="toc-backref" href=
+            "#id74">7.2.2.2&nbsp;&nbsp;&nbsp;Altri campi:</a></h4>
+
+            <p>All'interno della zona possono essere utilizati vari
+            tipi di records (RR):</p>
+
+            <dl class="docutils">
+              <dt>TXT</dt>
+
+              <dd>Informazioni testuali associate ad un record</dd>
+
+              <dt>NS</dt>
+
+              <dd>Name Server della zona. Non deve essere un
+              cname.</dd>
+
+              <dt>A</dt>
+
+              <dd>Indirizzo ipv4 da associare al record</dd>
+
+              <dt>AAA</dt>
+
+              <dd>Indirizzo ipv6 da associare al record</dd>
+
+              <dt>CNAME</dt>
+
+              <dd>Canonical Name: un alias per un host: ad esempio
+              per il dominio piffa.net possiamo settare degli alias
+              come <tt class="docutils literal">www.piffa.net,
+              http.piffa.net, virtual.piffa.net, ftp.piffa.net,
+              imap.piffa.net</tt>. Comodo quando diversi alias sono
+              sempre riferiti allo stesso ip.</dd>
+
+              <dt>MX</dt>
+
+              <dd>Mail Exchanger: server di posta che si occupera'
+              della posta elettronica per questo dominio.E'
+              opportuno avere almeno un server di posta di back-up,
+              per indicare la priorita' di un MX rispettoad un
+              altro si usa un valore di 2 cifre: il valore piu'
+              basso indica priorita' piu' bassa. Es: <tt class=
+              "docutils literal">MX&nbsp;&nbsp;&nbsp; 10
+              smtp.piffa.net.</tt> per il server SMTP principale e
+              <tt class=
+              "docutils literal">MX&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+              40 smtp2.piffa.net</tt> per il secondario. Non deve
+              essere un cname.</dd>
+
+              <dt>PTR</dt>
+
+              <dd>Reverse look-up, usato per la mappatura inversa
+              di un indirizzo ip a una stringa identificativa
+              dell'host. Si noti che per poter modificare questi
+              record si deve avere <em>in gestione</em> la <em>zona
+              IP</em>, se cosi' non fosse si dovra' chiedere al
+              propio provider la modifica di questo record per il
+              propio ip. Links: <a class="reference external" href=
+              "http://www.zytrax.com/books/dns/ch3/">http://www.zytrax.com/books/dns/ch3/</a></dd>
+            </dl>
+          </div>
+        </div>
+      </div>
+
+      <div class="section" id="dns-slave">
+        <h2><a class="toc-backref" href=
+        "#id75">7.3&nbsp;&nbsp;&nbsp;DNS slave</a></h2>
+
+        <p>Data l'importanza del servizio DNS e' necessario avere
+        ridondanza per i server DNS che ospitano i vostri dati: in
+        caso di indisponibilita' del server <em>master</em> (nel
+        caso fosse il solo a tenere i dati questo comporterebbe la
+        <em>scomparsa</em> di tutti i servizi / host da esso
+        seviti!) il client potrebbe contattare uno degli
+        <em>slave</em>.</p>
+
+        <p>Gli slave recuperano i dati dei recordos RR direttamente
+        dal master e non sara' quindi necessario dover mantenere
+        manualmente il file di configurazione della zona sugli
+        slaves, ogni volta che aggiorneremo il master questi dati
+        si propaghera' agli slaves automaticamente.</p>
+
+        <p>Per attivare uno <em>slave</em> per la nostra zona di
+        esempio <tt class="docutils literal">piffa.net</tt> si
+        inserisca nel file <tt class=
+        "docutils literal">named.conf.local</tt> dello slave
+        server:</p>
+        <pre class="literal-block">
+zone "piffa.net" {
+        type slave;
+        file "/etc/bind/pz/piffa.net";
+        masters { 192.168.0.1; };
+        };
+</pre>
+
+        <p>Facendo ripartire Bind il file <tt class=
+        "docutils literal">/etc/bind/pz/piffa.net</tt> viene creato
+        automaticamente.</p>
+
+        <p>Segue un estratto di <tt class=
+        "docutils literal">/var/log/syslog</tt> al <tt class=
+        "docutils literal">restart</tt> di <tt class=
+        "docutils literal">bind9</tt> sullo slave:</p>
+        <pre class="literal-block">
+... slave named[2256]: zone piffa.net/IN: loaded serial 200905245
+... slave named[2256]: running
+... slave named[2256]: zone piffa.net/IN: sending notifies (serial 200905245)
+... slave named[2256]: client 192.168.0.1#1464: received notify for zone 'piffa.net'
+... slave named[2256]: zone piffa.net/IN: notify from 192.168.0.1#1464: zone is up to date
+</pre>
+
+        <div class="warning">
+          <p class="first admonition-title">Avvertenza</p>
+
+          <p class="last">Bind9 (versione 9.3 presente in Debian
+          Lenny) richiede una esplicita autorizzazione alla
+          notifica per lo stesso server slave, che in fase di avvio
+          interroghera' (inviando un notify) se' stesso per
+          valutare se i dati relativi alla zona di cui e' slave
+          sono aggiornati. Si aggiunga quindi al file <tt class=
+          "docutils literal">/etc/bind/named.conf.options</tt>
+          dello slave: <tt class="docutils literal"><span class=
+          "pre">allow-notify</span> { 192.168.0.1; };</tt>
+          all'interno della stanza <tt class=
+          "docutils literal">options</tt>, in cui l'inidirizzo IP
+          inserito e' quello dello stesso slave server.</p>
+        </div>
+      </div>
+
+      <div class="section" id="aggiornamento-dinamico-nsupdate">
+        <h2><a class="toc-backref" href=
+        "#id76">7.4&nbsp;&nbsp;&nbsp;Aggiornamento dinamico:
+        nsupdate</a></h2>
+
+        <p>Dalla versione 8 di Bind e' dsponibile l'utility
+        <tt class="docutils literal">nsupdate</tt> (disponibile nel
+        pacchetto <tt class="docutils literal">dnsutils</tt>) per
+        aggiornare automaticamente i record di una zona secondo il
+        paradigma client / server ( RFC2136 ) . Posto che abbiate a
+        disposizione un server DNS Bind on-line su un indirizzo IP
+        fisso e un zona da gestire (che potrebbe essere anche solo
+        la delega di un dominio di terzo livello come
+        <em>casa.miodominio.net</em>) sara' possibile aggiornare
+        automaticamente i record che tirano a degli indirizzi IP
+        <em>pubblici ma dnamici</em>, come quelli spesso messi a
+        disposizione dei provider per le connessioni ad internet
+        residenziali, in modo da poter rendere sempre raggiungibile
+        la vostra workstation a casa anche dopo un aggiornamento
+        dell'ip dinamico associato alla connessione.</p>
+
+        <p>L'auenticazione del client nsupdate che avra' la
+        possibilita' di aggiornare il server DNS master avviene
+        tramite <em>Transaction signatures</em> (TSIG, RFC2845)
+        usando un algoritmo di criptazione dati asimmetrico
+        <em>HMAC-MD5</em> : generata una coppia di chiavi sul
+        client / nsupdate con l'utility si dovra' trasferire la
+        chiave pubblica sul server <em>master</em>, che verra'
+        configurato per onorare gli aggiornamenti (eliminazione e
+        inserimento di record RR) autenticati dalla chiave
+        privata.</p>
+
+        <div class="section" id="configurazione-client-nsupdate">
+          <h3><a class="toc-backref" href=
+          "#id77">7.4.1&nbsp;&nbsp;&nbsp;Configurazione client
+          (nsupdate)</a></h3>
+
+          <p>Sul client, sul quale non deve essere necessariamente
+          installato un server DNS Bind ma la sola utility
+          <tt class="docutils literal">nsupdate</tt>, generiamo la
+          coppia di chiavi con l'utility <tt class=
+          "docutils literal"><span class=
+          "pre">dnssec-keygen</span></tt> installabile tramite il
+          pacchetto <tt class=
+          "docutils literal">bind9utils</tt>:</p>
+          <pre class="literal-block">
+dnssec-keygen -a HMAC-MD5 -b 512 -n USER home.piffa.net.
+</pre>
+
+          <p>Otterremo le due chiavi <tt class=
+          "docutils literal"><span class=
+          "pre">Khome.piffa.net.+157+04331.key</span>&nbsp;
+          <span class=
+          "pre">Khome.piffa.net.+157+04331.private</span></tt>, la
+          chiave pubblica dovra' essere resa noto al server master
+          che ricevera' l'update dei records.</p>
+        </div>
+
+        <div class="section" id=
+        "configurazione-server-riconoscimento-chiave">
+          <h3><a class="toc-backref" href=
+          "#id78">7.4.2&nbsp;&nbsp;&nbsp;Configurazione server:
+          riconoscimento chiave</a></h3>
+
+          <dl class="docutils">
+            <dt>Per rendere nota al server la chiave pubblica
+            generata sul client si aggiunga quindi al file
+            <tt class="docutils literal">/etc/bind/named.conf</tt>
+            sul server::</dt>
+
+            <dd>
+              <dl class="first last docutils">
+                <dt>key home.piffa.net. {</dt>
+
+                <dd>algorithm HMAC-MD5; secret
+                "txfAkNTScANEu2V73mCeiDpXNc3pmf+7ONOoKnTKQKIZMzierSmeHjK5
+                Z8ntnByt/PJwv26jCIsVh8n+xzVsRw=="; };</dd>
+              </dl>
+            </dd>
+          </dl>
+
+          <div class="note">
+            <p class="first admonition-title">Nota</p>
+
+            <p class="last">La parte <tt class=
+            "docutils literal">secret</tt>, che potete leggere
+            direttamente nel file *.key della chiave genearta, e'
+            scritto <em>tutto sulla stessa riga</em> senza ritorni
+            a capo.</p>
+          </div>
+        </div>
+
+        <div class="section" id="server-gestione-dell-intera-zona">
+          <h3><a class="toc-backref" href=
+          "#id79">7.4.3&nbsp;&nbsp;&nbsp;Server: gestione
+          dell'intera zona</a></h3>
+
+          <p>Sul server modifichiamo il file di configurazione
+          <tt class="docutils literal">named.conf.local</tt> della
+          zona della quale vogliamo concedere l'aggiornamento al
+          client:</p>
+          <pre class="literal-block">
+zone "piffa.net" {
+        type master;
+        file "/etc/bind/pz/piffa.net" ;
+        allow-update {
+                        key  home.piffa.net;
+                        };
+};
+</pre>
+
+          <dl class="docutils">
+            <dt>Sara' necessario assicurarsi che il demone di Bind
+            sia in grado di modificare il file <tt class=
+            "docutils literal">/etc/bind/pz/piffa.net</tt>: dato
+            che questo file ora sara' gestito da lui si proceda a
+            cedergli la propieta' del file::</dt>
+
+            <dd>chown bind /etc/bind/pz/piffa.net</dd>
+          </dl>
+
+          <p>Altro problema che si potrebbe porre: gli orologi di
+          sistema dei due host devono essere sincronizzati per
+          poter valutare l'opportunita' di un aggiornamento: si
+          consigla di installare su entrambi l'utility <tt class=
+          "docutils literal">ntpdate</tt> e di eseguirla facendo
+          riferimento ai time server di Debian:</p>
+          <pre class="literal-block">
+apt-get install ntpdate
+ntpdate-debian
+</pre>
+
+          <p>Ora possiamo provare dal client a effettuare
+          l'iserimento di un record per testarne il
+          funzionamento:</p>
+          <pre class="literal-block">
+# nsupdate -k Khome.piffa.net.+157+04331.private -v
+&gt; server ns1.piffa.net
+&gt; update add home.piffa.net. 86400 A 192.168.0.2
+&gt; show
+Outgoing update query:
+;; -&gt;&gt;HEADER&lt;&lt;- opcode: UPDATE, status: NOERROR, id:      0
+;; flags: ; ZONE: 0, PREREQ: 0, UPDATE: 0, ADDITIONAL: 0
+;; UPDATE SECTION:
+home.piffa.net.         86400   IN      A       192.168.0.1
+
+
+&gt; send
+</pre>
+
+          <p>Per comprendere meglio l'uso dell'utility <tt class=
+          "docutils literal">nsupdate</tt> si consiglia la lettura
+          della relativa pagina man. Nella prima riga viene
+          invocato il comando <tt class=
+          "docutils literal">nsupdate</tt> impostando col flag
+          <tt class="docutils literal"><span class=
+          "pre">-k</span></tt> la chiave privata generata
+          precedentemente, con <tt class=
+          "docutils literal">server</tt> si imposta quale server NS
+          autoritario della zona (che abbiamo precedentemente
+          configurato per ricevere gli aggiornamenti) vogliamo
+          contattare. Alla riga sucessiva <tt class=
+          "docutils literal">update</tt> viene aggiunto un record
+          <tt class="docutils literal">A</tt> per la il dominio
+          <tt class="docutils literal">home.piffa.net</tt>
+          indirizzato all'IP <tt class=
+          "docutils literal">192.168.0.2</tt>, poi <tt class=
+          "docutils literal">show</tt> mostra quanto ci si prepara
+          a comunicare al server con il finale <tt class=
+          "docutils literal">send</tt> .</p>
+
+          <p>Si noti che in questo modo <em>l'intera zona</em>
+          piffa.net e suscettibile di essere modificata dal client,
+          che potra' eliminare e inserire qualunque record. E'
+          possibile gestire in modo piu' granulare la zona, ad
+          esempio concedendo al client i privilegi per gestire solo
+          una parte della zona o i tipo di record da gestire.</p>
+        </div>
+
+        <div class="section" id=
+        "automatizzare-l-aggiornamento-dinamico">
+          <h3><a class="toc-backref" href=
+          "#id80">7.4.4&nbsp;&nbsp;&nbsp;Automatizzare
+          l'aggiornamento dinamico</a></h3>
+
+          <p>Nsupdate risulta comodo per tenere aggiornati i record
+          DNS degli host connessi ad internet con indirizzi IP
+          dinamici (pubblici) assegnati dal provider. Il client
+          deve essere in grado di contattare autonomamente il
+          server DNS per comunicare un cambiamento del suo ip.
+          Vediamo innanzi tutto un primo script per nsupdate:</p>
+          <pre class="literal-block">
+#!/bin/bash
+# Diamo al demone ppp un po' di tempo per negoziare la connessione
+# prima di leggere l'IP ottenuto
+sleep 15
+IPADDR=$(/sbin/ifconfig ppp0 | awk '/inet/ { print $2 } ' | sed -e s/addr://)
+
+nsupdate  -k /root/dns/Khome.piffa.net.+157+04331.private &lt;&lt;-EOF
+        server 192.168.0.254
+        zone home.piffa.net.
+        update delete home.piffa.net. A
+        update delete home.piffa.net. MX
+        update add home.piffa.net. 432000 A $IPADDR
+        update add home.piffa.net. 432000 MX 10  home.piffa.net.
+        show
+        send
+        EOF
+</pre>
+
+          <p>Questo script legge il valore del device di rete
+          <tt class="docutils literal">ppp0</tt> creato dal
+          <cite>pppoe</cite> di una connessione ADSL per ottenere
+          l'indirizzo IP ottenuto dal provider (prima di farlo
+          aspetta 15 secondi per dare il tempo al <tt class=
+          "docutils literal">pppoe</tt> di negoziare la
+          connessione).Vengono poi eliminati gli esistenti valori
+          <tt class="docutils literal">A</tt> e <tt class=
+          "docutils literal">MX</tt> per <tt class=
+          "docutils literal">home.piffa.net</tt> (si noti il punto
+          finale dopo <em>net</em>) e inseriti quelli attuali.</p>
+
+          <p>Resta da decidere quando richiamare questo script:
+          l'evento che causa l'assegnazione del nuovo IP in questo
+          caso e una nuova connessione <tt class=
+          "docutils literal">pppoe</tt>, quindi sarebbe
+          consigliabile inserire lo script nelle routine comprese
+          in <tt class="docutils literal"><span class=
+          "pre">/etc/ppp/ip-up.d</span></tt> (si veda la
+          documentazione di ppp), nel caso questo non desse i
+          risultati sperati (per problemi di connessione) come via
+          estrema si consideri di mettere lo script nella routine
+          del demone <tt class="docutils literal">cron</tt> in modo
+          che venga eseguito periodicamente (ad esempio ogni
+          giorno).</p>
+        </div>
+      </div>
+
+      <div class="section" id="link-suggeriti">
+        <h2><a class="toc-backref" href=
+        "#id81">7.5&nbsp;&nbsp;&nbsp;Link suggeriti:</a></h2>
+
+        <ul class="simple">
+          <li>DNS for Rocket Scientists <a class=
+          "reference external" href=
+          "http://www.zytrax.com/books/dns/">http://www.zytrax.com/books/dns/</a></li>
+
+          <li>DNS HOWTO <a class="reference external" href=
+          "http://www.langfeldt.net/DNS-HOWTO/BIND-9/">http://www.langfeldt.net/DNS-HOWTO/BIND-9/</a></li>
+        </ul>
+      </div>
+    </div>
+
+    <div class="section" id="samba">
+      <h1><a class="toc-backref" href=
+      "#id82">8&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>
+
+      <p>Samba e' liberamente disponibile, al contrario di altre
+      implementazioni SMB/CIFS, e permette di ottenere
+      interoperabilita' tra Linux, Unix, Mac OS X e Windows.</p>
+
+      <p>Samba e' un software che puo' girare su piattaforme che
+      non siano Microsoft Windows, per esempio, UNIX, Linux, IBM
+      System 390, OpenVMS e altri sistemi operativi. Samba utilizza
+      il protocollo TCP/IP utilizzando i servizi offerti sul server
+      ospite. Quando correttamente configurato, permette di
+      interagire con client o server Microsoft Windows come se
+      fosse un file e print server Microsoft agendo da Primary
+      Domain Controller (PDC) o come Backup Domain Controller, puo'
+      inoltre prendere parte ad un dominio Active Directory.</p>
+
+      <div class="section" id="pacchetti">
+        <h2><a class="toc-backref" href=
+        "#id83">8.1&nbsp;&nbsp;&nbsp;Pacchetti</a></h2>
+
+        <p>Pacchetti da installare per utilizzare Samba in
+        modalita' client <a class="footnote-reference" href="#id7"
+        id="id6" name="id6">[2]</a></p>
         <pre class="literal-block">
 samba-client
 </pre>
@@ -1630,7 +4250,7 @@ samba-client
 samba smbfs smbclient
 </pre>
 
-        <table class="docutils footnote" frame="void" id="id4"
+        <table class="docutils footnote" frame="void" id="id7"
         rules="none">
           <colgroup>
             <col class="label">
@@ -1640,25 +4260,22 @@ samba smbfs smbclient
           <tbody valign="top">
             <tr>
               <td class="label"><a class="fn-backref" href=
-              "#id3">[2]</a></td>
+              "#id6">[2]</a></td>
 
               <td>Anche se nato per i sistemi Windows, Samba puo'
               essere usato anche per montare cartelle sotto
               GNU/Linux come alternativa a NFS. Per la condivisione
               di stampanti sarebbe invece opportuno intervenire
               direttamente su <tt class=
-              "docutils literal"><span class=
-              "pre">CUPS</span></tt>.</td>
+              "docutils literal">CUPS</tt>.</td>
             </tr>
           </tbody>
         </table>
 
         <p>Durante la prima installazione viene chiesto il nome del
         gruppo di appartenenza, il default per Windows e'
-        <tt class="docutils literal"><span class=
-        "pre">WORKGROUP</span></tt>. In aula usiamo invece
-        <tt class="docutils literal"><span class=
-        "pre">208</span></tt> .</p>
+        <tt class="docutils literal">WORKGROUP</tt>. In aula usiamo
+        invece <tt class="docutils literal">208</tt> .</p>
 
         <p>Per riconfigurare Samba si usi il comando:</p>
         <pre class="literal-block">
@@ -1668,7 +4285,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
+        "#id84">8.2&nbsp;&nbsp;&nbsp;Passwords e
         autenticazione</a></h2>
 
         <p>Per poter configurare Samba in modo che usi un sistema
@@ -1691,17 +4308,16 @@ dpkg-reconfigure samba-common
           dovranno fisicamente scrivere sui file system. Se un
           utente non puo' scrivere in una certa posizione del file
           system (ad esempio nella cartella <tt class=
-          "docutils literal"><span class=
-          "pre">/mnt/condivisione</span></tt> che sara' stata
+          "docutils literal">/mnt/condivisione</tt> che sara' stata
           necessariamente creata inizialmente dall'utente
-          <tt class="docutils literal"><span class=
-          "pre">root</span></tt>) per mancanza dei privilegi di
-          scrittura allora neanche Samba potra' farlo nel momento
-          in mette a disposizione la risorsa all'utente. Se si
-          montano file-system dedicati per le condivisioni
-          controllare i permessi e propieta' dei <em>punti di
-          mount*</em>. Queste passwords sono salvate nel solito
-          file /etc/shadow (richiamato da /etc/passwd).</dd>
+          <tt class="docutils literal">root</tt>) per mancanza dei
+          privilegi di scrittura allora neanche Samba potra' farlo
+          nel momento in mette a disposizione la risorsa
+          all'utente. Se si montano file-system dedicati per le
+          condivisioni controllare i permessi e proprieta' dei
+          <em>punti di mount*</em>. Queste passwords sono salvate
+          nel solito file /etc/shadow (richiamato da
+          /etc/passwd).</dd>
 
           <dt>2 Password per l'applicativo Samba</dt>
 
@@ -1709,11 +4325,9 @@ dpkg-reconfigure samba-common
           utilizzare un sistema di criptazione delle password
           diverso da /etc/shadow . Le password per Samba possono
           essere gestite ad esempio col comando <tt class=
-          "docutils literal"><span class=
-          "pre">smbpasswd</span></tt> e vengono generalmente
+          "docutils literal">smbpasswd</tt> e vengono generalmente
           salvate all'interno di <tt class=
-          "docutils literal"><span class=
-          "pre">/var/lib/samba/passdb.tdb</span></tt> .</dd>
+          "docutils literal">/var/lib/samba/passdb.tdb</tt> .</dd>
 
           <dt>3 Password per Windows.</dt>
 
@@ -1729,7 +4343,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>
+        "#id85">8.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
@@ -1742,8 +4356,8 @@ dpkg-reconfigure samba-common
 adduser --shell /bin/false sambo
 </pre>
 
-        <p>Nel file <tt class="docutils literal"><span class=
-        "pre">/etc/passwd</span></tt> avremo qualcosa come:</p>
+        <p>Nel file <tt class="docutils literal">/etc/passwd</tt>
+        avremo qualcosa come:</p>
         <pre class="literal-block">
 sambo:x:1001:1001:Sambo utente Samba,,,:/home/sambo:/bin/false
 </pre>
@@ -1766,7 +4380,7 @@ smbpasswd  sambo
 
       <div class="section" id="creare-la-condivisione">
         <h2><a class="toc-backref" href=
-        "#id40">6.4&nbsp;&nbsp;&nbsp;Creare la
+        "#id86">8.4&nbsp;&nbsp;&nbsp;Creare la
         condivisione</a></h2>
 
         <p>La condivisione altro non e' che una cartella sul server
@@ -1774,14 +4388,13 @@ smbpasswd  sambo
         in base a una autenticazione basata su <em>user-name /
         password</em>. E' per altro possibile permettere l'accesso
         a una risorsa a chiunque indiscriminatamente (a tutti i
-        <tt class="docutils literal"><span class=
-        "pre">guest</span></tt>) ma la cosa e' sconsigliabile dal
-        punto di vista della sicurezza. Si decida se la cartella
-        condivisa debba risiedere nella <em>home</em> di un utente
-        (nel caso quest'ultimo ne sia l'unico fruitore) o in una
-        cartella in /mnt/ (nel caso piu' utenti accedano a questa).
-        Nel secondo caso si potranno gestire gli accessi sotto
-        GNU/Linux tramite i gruppi.</p>
+        <tt class="docutils literal">guest</tt>) ma la cosa e'
+        sconsigliabile dal punto di vista della sicurezza. Si
+        decida se la cartella condivisa debba risiedere nella
+        <em>home</em> di un utente (nel caso quest'ultimo ne sia
+        l'unico fruitore) o in una cartella in /mnt/ (nel caso piu'
+        utenti accedano a questa). Nel secondo caso si potranno
+        gestire gli accessi sotto GNU/Linux tramite i gruppi.</p>
 
         <p>Creazione della risorsa sambo_share nella home
         dell'utente sambo:</p>
@@ -1793,7 +4406,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
+          "#id87">8.4.1&nbsp;&nbsp;&nbsp;Sicurezza: permessi di
           esecuzione sul server</a></h3>
 
           <p>Bisognerebbe notare sul server i permessi di
@@ -1802,12 +4415,10 @@ smbpasswd  sambo
           condivisione saranno da usarsi sotto Windows non c'e'
           motivo che questi siano eseguibili sotto GNU/Linux. Si
           potrebbe avere quindi, ipotizzando una condivisione in
-          <tt class="docutils literal"><span class=
-          "pre">/mnt/share</span></tt> che risieda su di un file
-          system dedicato:</p>
+          <tt class="docutils literal">/mnt/share</tt> che risieda
+          su di un file system dedicato:</p>
 
-          <p><tt class="docutils literal"><span class=
-          "pre">/etc/fstab</span></tt></p>
+          <p><tt class="docutils literal">/etc/fstab</tt></p>
 
           <blockquote>
             /dev/hda10 /mnt/share ext3 rw,
@@ -1823,7 +4434,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
+        "#id88">8.5&nbsp;&nbsp;&nbsp;Configurazione
         dell'applicativo Samba vero e proprio.</a></h2>
 
         <p>Avendo preparato gli utenti (ancora una volta: non si
@@ -1853,17 +4464,44 @@ smbpasswd  sambo
 
         <p>Dopo aver salvato il file si puo' fare un primo
         controllo tramite l'utility <tt class=
-        "docutils literal"><span class="pre">testparm</span></tt> ,
-        che controlla la sintassi del file di configurazione di
-        Samba. Se questo non rileva problemi si puo' procedere a un
-        <tt class="docutils literal"><span class="pre">#</span>
-        <span class="pre">/etc/init.d/samba</span> <span class=
-        "pre">restart</span></tt> .</p>
+        "docutils literal">testparm</tt> , che controlla la
+        sintassi del file di configurazione di Samba. Se questo non
+        rileva problemi si puo' procedere a un <tt class=
+        "docutils literal"># /etc/init.d/samba restart</tt> .</p>
+
+        <div class="section" id="creazione-di-un-gruppo">
+          <h3><a class="toc-backref" href=
+          "#id89">8.5.1&nbsp;&nbsp;&nbsp;Creazione di un
+          gruppo</a></h3>
+
+          <p>Se si deve condividere una risorsa con un numero
+          consistente di utenti e' consigliabile lavorare in
+          termini termini di gruppi piuttosto che elencare la lista
+          degli utenti in <tt class="docutils literal">valid
+          users</tt>.</p>
+
+          <p>Dopo aver creato il gruppo del quale volete facciano
+          parte i vostri utenti (<tt class=
+          "docutils literal">addgroup nome_gruppo</tt>), inserite i
+          vostri utenti nel gruppo (<tt class=
+          "docutils literal">adduser nome_utente nome_gruppo</tt>)
+          e modificate la direttiva <tt class=
+          "docutils literal">valid users</tt> in <tt class=
+          "docutils literal">smb.conf</tt> per riferirsi ad un
+          gruppo piuttosto che a degli utenti. Per riferirsi a un
+          gruppo si usi il carattere <tt class="docutils literal">@
+          chicciola</tt> col <tt class=
+          "docutils literal">nome_del_gruppo</tt>:</p>
+          <pre class="literal-block">
+# Negoziazione degli accessi su base gruppo
+valid users = @nome_gruppo
+</pre>
+        </div>
       </div>
 
       <div class="section" id="testare-il-servizio">
         <h2><a class="toc-backref" href=
-        "#id43">6.6&nbsp;&nbsp;&nbsp;Testare il Servizio</a></h2>
+        "#id90">8.6&nbsp;&nbsp;&nbsp;Testare il Servizio</a></h2>
 
         <p>Come testare il servizio</p>
 
@@ -1901,24 +4539,1424 @@ mount -t smbfs //localhost/sambo_share /mnt/sambo_mount/ --verbose -o user=sambo
       </div>
     </div>
 
-    <div class="section" id="note">
+    <div class="section" id="server-di-posta-postfix">
       <h1><a class="toc-backref" href=
-      "#id44">7&nbsp;&nbsp;&nbsp;NOTE</a></h1>
+      "#id91">9&nbsp;&nbsp;&nbsp;Server di posta: Postfix</a></h1>
 
-      <ul class="simple">
-        <li>controllare apache</li>
-      </ul>
+      <p>Il server di posta che prenderemo in considerazione e'
+      Postfix, a seguire un estratto di un file di configurazione
+      <em>semplice</em> con l'abilitazione delle <em>Maildir</em>
+      nelle <tt class="docutils literal">/home</tt> degli utenti
+      per la consegna della posta:</p>
 
-      <p>sintassi: in <tt class="docutils literal"><span class=
-      "pre">monospace</span></tt> :</p>
+      <p><tt class=
+      "docutils literal">/etc/postfix/main.cf</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
+# Se dovete inviare la posta per i client della vostra LAN privata:
+# mynetworks = 127.0.0.0/8 192.168.0.0/24 [::ffff:127.0.0.0]/104 [::1]/128
+# E si faccia BEN ATTENZIONE a non diventare un open realay smtp
+
+
+# Per effettuare lo storaggio della posta nelle home directory degli utenti
+# in una Maildir invece che nella Mailbox in /var/mail/nome_utente
+# si disabiliti procmail
+#mailbox_command = procmail -a "$EXTENSION"
+
+# cartella_i abiliti lo storaggio della posta nella Maildir/ (si noti lo slash)
+# all'interno della  home dell'utente:
+home_mailbox = Maildir/
+mailbox_size_limit = 0
+recipient_delimiter = +
+inet_interfaces = all
+</pre>
 
-      <ul class="simple">
-        <li>nomi di files</li>
+      <dl class="docutils">
+        <dt>E' disponibile un file di configurazione di esempio ben
+        piu' articolato e commentato::</dt>
 
-        <li>comandi</li>
+        <dd>/usr/share/postfix/main.cf.dist .</dd>
+      </dl>
 
-        <li>pacchetti</li>
-      </ul>
+      <div class="section" id="test-del-server-smtp">
+        <h2><a class="toc-backref" href=
+        "#id92">9.1&nbsp;&nbsp;&nbsp;Test del server smtp</a></h2>
+
+        <p>Per testare il corretto funzionamento del server di
+        posta si puo' procedere in vari modi.</p>
+
+        <ul class="simple">
+          <li>Spedire una mail a una casella locale / remota e
+          controllare i log (syslog)</li>
+
+          <li>Collegarsi via <em>telnet</em> al server di posta:
+          <a class="reference external" href=
+          "http://www.netadmintools.com/art276.html">http://www.netadmintools.com/art276.html</a></li>
+
+          <li>usare una utility come SWAKS</li>
+        </ul>
+
+        <div class="section" id="swaks">
+          <h3><a class="toc-backref" href=
+          "#id93">9.1.1&nbsp;&nbsp;&nbsp;Swaks</a></h3>
+
+          <dl class="docutils">
+            <dt>Per gli utenti meno esperti e' consigliabile
+            utilizzare <em>SWAKS</em>: si installi l'omonimo
+            pacchetto e si esegua un test con::</dt>
+
+            <dd>swaks --to <a class="reference external" href=
+            "mailto:utente@destinatario.tilde">utente@destinatario.tilde</a>
+            --from <a class="reference external" href=
+            "mailto:utente@propio.mail.tilde">utente@propio.mail.tilde</a></dd>
+          </dl>
+
+          <p>Ecco un esempio di una sessione corretta:</p>
+          <pre class="literal-block">
+swaks --to andrea@piffa.net from andrea@mydomain.com
+=== Trying smtp.piffa.net:25...
+=== Connected to smtp.piffa.net.
+&lt;-  220 zoo.piffa.net ESMTP Postfix (Debian/GNU)
+ -&gt; EHLO alice.mydomain.com
+&lt;-  250-zoo.piffa.net
+&lt;-  250-PIPELINING
+&lt;-  250-SIZE 10240000
+&lt;-  250-VRFY
+&lt;-  250-ETRN
+&lt;-  250-STARTTLS
+&lt;-  250-ENHANCEDSTATUSCODES
+&lt;-  250-8BITMIME
+&lt;-  250 DSN
+ -&gt; MAIL FROM:&lt;root@alice.mydomain.com&gt;
+&lt;-  250 2.1.0 Ok
+ -&gt; RCPT TO:&lt;andrea@piffa.net&gt;
+&lt;-  250 2.1.5 Ok
+ -&gt; DATA
+&lt;-  354 End data with &lt;CR&gt;&lt;LF&gt;.&lt;CR&gt;&lt;LF&gt;
+ -&gt; Date: Thu, 28 May 2009 13:11:19 +0200
+ -&gt; To: andrea@piffa.net
+ -&gt; From: root@alice.mydomain.com
+ -&gt; Subject: test Thu, 28 May 2009 13:11:19 +0200
+ -&gt; X-Mailer: swaks v20061116.0 jetmore.org/john/code/#swaks
+ -&gt;
+ -&gt; This is a test mailing
+ -&gt;
+ -&gt; .
+&lt;-  250 2.0.0 Ok: queued as 41FB261AFC
+ -&gt; QUIT
+&lt;-  221 2.0.0 Bye
+=== Connection closed with remote host.
+</pre>
+        </div>
+      </div>
+
+      <div class="section" id="imap-e-pop">
+        <h2><a class="toc-backref" href=
+        "#id94">9.2&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 generalmente volete mettere a loro disposizione un
+        server <em>POP3</em> o <em>IMAP</em>. Oppure entrambi.</p>
+
+        <dl class="docutils">
+          <dt>Pacchetti da installare</dt>
+
+          <dd>courier-imap courier-pop</dd>
+        </dl>
+
+        <p>Si noti che IMAP necessita delle <em>Maildir</em>, non
+        funziona con le Mailbox in <tt class=
+        "docutils literal">/var/mail/</tt> .</p>
+      </div>
+
+      <div class="section" id="client-a-riga-di-comando">
+        <h2><a class="toc-backref" href=
+        "#id95">9.3&nbsp;&nbsp;&nbsp;Client a riga di
+        comando</a></h2>
+
+        <p>Per testare il corretto funzionamento del server di
+        posta e' utile avere a disposizione delle utility per
+        inviare e leggere la posta: ovviamente da riga di
+        comando.</p>
+
+        <div class="section" id="mailx">
+          <h3><a class="toc-backref" href=
+          "#id96">9.3.1&nbsp;&nbsp;&nbsp;mailx</a></h3>
+
+          <dl class="docutils">
+            <dt>Uno dei client piu' semplici, sopratutto per
+            inviare un messaggioi. e' sufficiente usare una formula
+            come::</dt>
+
+            <dd>mail <a class="reference external" href=
+            "mailto:utente@dominio.com">utente@dominio.com</a></dd>
+          </dl>
+
+          <p>Se il comando <tt class="docutils literal">mail</tt>
+          non fosse disponibile si installi il pacchetto <tt class=
+          "docutils literal">mailx</tt>.</p>
+
+          <p>Al primo prompt si digitera' l'oggetto, il testo del
+          messaggio (per terminare l'inserimento lasciare una riga
+          vuota, digitare un <tt class="docutils literal">punto +
+          Invio</tt> su una riga vuota), la Carbon Copy (se
+          necessaria).</p>
+
+          <p>es:</p>
+          <pre class="literal-block">
+mail andrea@localhost
+Subject: Oggetto della mail
+Testo del messagio,
+per terminare il messaggio
+lasciare una riga vuota
+e un punto (poi Invio).
+
+.
+Cc:
+</pre>
+
+          <p>Per altrre opzioni si veda la pagina man.</p>
+        </div>
+
+        <div class="section" id="mutt">
+          <h3><a class="toc-backref" href=
+          "#id97">9.3.2&nbsp;&nbsp;&nbsp;Mutt</a></h3>
+
+          <p>Mutt e' uno dei gestori di posta preferiti da chi
+          preferisce utilizzare l'interfaccia testuale per la
+          gestione della posta.</p>
+
+          <p>Mutt ha un file di configurazione <tt class=
+          "docutils literal">.muttrc</tt> nella <em>home</em>
+          dell'utente, alcuni settaggi possono essere utili:</p>
+
+          <dl class="docutils">
+            <dt>set folder="~/Maildir"</dt>
+
+            <dd>Per utilizzare <tt class=
+            "docutils literal">/home/nome_utente/Maildir come
+            mailbox</tt>, invece del default <tt class=
+            "docutils literal">/var/mail/nome_utente</tt>.</dd>
+
+            <dt>set editor="vim"</dt>
+
+            <dd>Utilizzare <tt class="docutils literal">vim</tt>
+            come editor per comporre i messaggi.</dd>
+          </dl>
+
+          <p>Spesso e' utile poter <em>levvere al volo</em> la
+          Mailbox / Maildir di un utente sul server di posta, per
+          controllare se i messaggi vengono recapitati
+          correttamente:</p>
+          <pre class="literal-block">
+mutt -f /var/mail/utente
+mutt -f /home/utente/Maildir
+</pre>
+
+          <p>In modo analogo si puo' consultare al volo la propia
+          mailbox su un server remoto tramite IMAP/POP:</p>
+          <pre class="literal-block">
+mutt -f imap://nome_utente@piffa.net
+</pre>
+        </div>
+
+        <div class="section" id="web-client">
+          <h3><a class="toc-backref" href=
+          "#id98">9.3.3&nbsp;&nbsp;&nbsp;Web client</a></h3>
+
+          <p>Per mettere a disposizione degli utenti un client web
+          per gestire la propria posta si installi il pacchetto:
+          <tt class="docutils literal">squirrelmail</tt> . Ci sono
+          tanti altri client web disponibili: questo e'
+          particolarmente semplice. Naturalmente dovrete aver
+          installato: <tt class="docutils literal">php5
+          apache2</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>
+          <pre class="literal-block">
+cd /etc/apache2/conf.d/
+ln -s /etc/squirrelmail/apache.conf ./squirrelmail.conf
+</pre>
+        </div>
+      </div>
+
+      <div class="section" id="graylisting">
+        <h2><a class="toc-backref" href=
+        "#id99">9.4&nbsp;&nbsp;&nbsp;Graylisting</a></h2>
+
+        <p>Il <em>graylisting</em> e' un sistema relativamente poco
+        invasivo, con un limitato consumo di risorse per limitare
+        lo <em>SPAM</em> in arrivo sul propio server di posta. Come
+        suggerisce il nome e' una via di mezzo tra una <em>white
+        list</em> (una lista di mittenti privilegiata, sempre
+        benvenuti) e una <em>black list</em> (mittenti
+        <em>bannati</em>, banditi dal poter inviare nuovi
+        messaggi).</p>
+
+        <p>Il funzionamento e' relativamente semplice: ogni
+        mittente sconosciuto viene immediatamente rifiutato con un
+        errore <em>non grave</em> come un <em>server non
+        disponibile, provare piu' tardi</em>. Questo inconveniente
+        non dovrebbe mettere in difficolta' un server di posta /
+        mittente legittimo, che dopo un periodo di attesa tentera'
+        nuovamente di inviare il messaggio ottenendo finalmente il
+        risultato atteso. Diversamente un <em>bot</em> per l'invio
+        di SPAM o un applicazione improvvisata (tipicamente di
+        derivazione virale) che stesse inviando il messaggio
+        <em>probabilmente</em> non insisterebbe, rinunciano ad
+        inviare il messaggio preferendo destinazioni meno
+        problematiche.</p>
+
+        <div class="section" id="abilitazione-in-postfix">
+          <h3><a class="toc-backref" href=
+          "#id100">9.4.1&nbsp;&nbsp;&nbsp;Abilitazione in
+          Postfix</a></h3>
+
+          <p>Installare il pacchetto: <tt class=
+          "docutils literal">postgrey</tt> e aggiungere il file di
+          configurazione di Postfix <tt class=
+          "docutils literal">/etc/postfix/main.cf</tt>:</p>
+          <pre class="literal-block">
+smtpd_recipient_restrictions =
+        permit_mynetworks,
+        reject_unauth_destination,
+        check_policy_service inet:127.0.0.1:60000
+</pre>
+        </div>
+
+        <div class="section" id="test">
+          <h3><a class="toc-backref" href=
+          "#id101">9.4.2&nbsp;&nbsp;&nbsp;Test</a></h3>
+
+          <p>Inviando un messaggio il client dovrebbe ricevere un
+          iniziale messaggio di rifiuto del messaggio:</p>
+          <pre class="literal-block">
+swaks --to andrea@piffa.net from andrea@mydonain.com
+=== Trying smtp.piffa.net:25...
+=== Connected to smtp.piffa.net
+...
+&lt;-  250 2.1.0 Ok
+ -&gt; RCPT TO:&lt;andrea@piffa.net&gt;
+&lt;** 450 4.2.0 &lt;andrea@piffa.net&gt;: Recipient address rejected:
+Greylisted, see http://postgrey.schweikert.ch/help/piffa.net.html
+ -&gt; QUIT
+&lt;-  221 2.0.0 Bye
+=== Connection closed with remote host.
+</pre>
+
+          <p>A lato server si dovrebbe rilevare su <tt class=
+          "docutils literal">/var/log/syslog</tt> qualcosa di
+          simile:</p>
+          <pre class="literal-block">
+connect from alice.mydomain.com[65.98.21.97]
+May 28 14:53:34 r24266 postgrey: action=greylist, reason=new,
+   client_name=alice.mydomain.com,
+   client_address=10.0.0.1, sender=root@alice.mydomain.com, recipient=andrea@piffa.net
+May 28 14:53:34 r24266 postfix/smtpd[22538]:
+   NOQUEUE: reject: RCPT from alice.mydomain.com[10.0.0.1]:
+   450 4.2.0 &lt;andrea@piffa.net&gt;: Recipient address rejected: Greylisted,
+   see http://postgrey.schweikert.ch/help/piffa.net.html;
+   from=&lt;root@alice.mydomain.com&gt; to=&lt;andrea@piffa.net&gt;
+   proto=ESMTP helo=&lt;alice.mydomain.com&gt;
+May 28 14:53:34 r24266 postfix/smtpd[22538]: disconnect from alice.mydomain.com[10.0.0.1]
+</pre>
+        </div>
+
+        <div class="section" id="statistiche">
+          <h3><a class="toc-backref" href=
+          "#id102">9.4.3&nbsp;&nbsp;&nbsp;Statistiche</a></h3>
+
+          <p>E' sempre utile poter tracciare qualche statistica
+          sulle percentuali di messaggi ricevuti, da chi, messaggi
+          rifiutati (e per quale motivo). Statistiche che attingono
+          dai soliti log del server di posta <tt class=
+          "docutils literal">/var/log/syslog</tt> di default oltre
+          che i dedicati <tt class=
+          "docutils literal">/var/log/mail</tt> .</p>
+
+          <p>Una utility semplice per analizzare l'attivita' del
+          propio server smtp potrebbe essere <tt class=
+          "docutils literal">pflogsumm</tt> , installato il
+          pacchetto la si puo' invocare con:</p>
+          <pre class="literal-block">
+pflogsumm.pl  /var/log/mail.log
+</pre>
+
+          <p>oppure utilizzare i log piu' vecchi ad es. <tt class=
+          "docutils literal">/var/log/mail.log.0</tt></p>
+        </div>
+      </div>
+    </div>
+
+    <div class="section" id="firewall">
+      <h1><a class="toc-backref" href=
+      "#id103">10&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 puo anche svolgere funzioni
+      di collegamento tra due o piu' tronconi di rete. Usualmente
+      la rete viene divisa in due sotto reti: 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 sotto
+      rete 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 e' 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 realta' un firewall puo' essere realizzato con un
+      normale computer (con almeno due schede di rete e software
+      apposito), puo' essere una funzione inclusa in un router o
+      puo' 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 funzionalita' principale in sostanza e' 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 capacita' 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=
+        "#id104">10.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=
+        "#id105">10.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
+        richiederebbe 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>intestazioni</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=
+        "#id106">10.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=
+          "#id107">10.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=
+          "#id108">10.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=
+          "#id109">10.3.3&nbsp;&nbsp;&nbsp;Hardware</a></h3>
+
+          <p>Sostanzialmente potremmo distinguere 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, efficienza,
+          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=
+        "#id110">10.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=
+        "#id111">10.5&nbsp;&nbsp;&nbsp;Concetti di base</a></h2>
+
+        <div class="section" id="tabelle-catene-regole">
+          <h3><a class="toc-backref" href=
+          "#id112">10.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 attivita' 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 e' composta da un
+          elenco di regole (rules) che identificano pacchetti di
+          rete secondo 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=
+          "#id113">10.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
+          caratteristiche. 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
+            sotto rete)</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=
+          "#id114">10.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 pacchetto 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 e'
+                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 e' una secondaria, il pacchetto torna ad
+                attraversare la catena madre da punto in cui aveva
+                fatto il salto nella secondaria. Se il RETURN e' 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 e' 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=
+        "#id115">10.6&nbsp;&nbsp;&nbsp;Tabella Filter</a></h2>
+
+        <p>E' quella implicita e predefinita (-t filter) Riguarda
+        le attivita' 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=
+        "#id116">10.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 situazione
+        precedente.</p>
+
+        <p><em>Veramente</em>, prima di lavorare sul firewall di
+        una macchina remota impostate almeno un <tt class=
+        "docutils literal">at now +5 min</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=
+        "#id117">10.8&nbsp;&nbsp;&nbsp;Gestione regole
+        (rules)</a></h2>
+
+        <p>Il comando iptables viene usato per ogni attivita' 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=
+        "#id118">10.9&nbsp;&nbsp;&nbsp;Salvataggio regole</a></h2>
+
+        <p>Il comando <tt class="docutils literal">iptables</tt>
+        serve per interagire con il framework <tt class=
+        "docutils literal">Netfilter</tt> che gestisce il firewall
+        di Linux al livello del kernel. Questo comporta, in modo
+        analogo a quando avviene col comando <tt class=
+        "docutils literal">ifconfig</tt>, che i cambiamenti
+        impostati siano in <em>tempo reale, RAM</em>, non
+        persistenti nel sistema: al boot successivo del sistema
+        tutto tornera' alle impostazioni di base (in questo caso
+        <em>nulle</em>, con policy di default settate su <tt class=
+        "docutils literal">ACCEPT</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">up</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">interfaces</tt>.</p>
+
+        <p>Nel nostro caso avremo per una possibile scheda
+        <tt class="docutils literal">eth0</tt>:</p>
+
+        <p><tt class=
+        "docutils literal">/etc/network/interfaces</tt></p>
+        <pre class="literal-block">
+iface eth1 inet static
+        up /sbin/iptables-restore /root/firewall/basic_fw
+        # Seguono 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=
+          "#id119">10.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">~/firewall</tt> nella home directory
+          dell'utente <tt class="docutils literal">root</tt>.</p>
+        </div>
+
+        <div class="section" id="iptables-restore">
+          <h3><a class="toc-backref" href=
+          "#id120">10.9.2&nbsp;&nbsp;&nbsp;Iptables-restore</a></h3>
+
+          <p>Per ripristinare un set di regole precedentemente
+          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 class="section" id="esempi">
+        <h2><a class="toc-backref" href=
+        "#id121">10.10&nbsp;&nbsp;&nbsp;Esempi</a></h2>
+
+        <p>Seguono alcuni esempi sull'uso di iptables, lo scenario
+        e' un computer con un paio di schede di rete fisiche una
+        delle quali collegata alla rete internet l'altra a una rete
+        privata per la LAN interna.</p>
+
+        <blockquote>
+          <ol class="arabic simple">
+            <li><tt class="docutils literal">eth0</tt> scheda di
+            rete principale sulla rete privata interna
+            192.168.0.0/24</li>
+
+            <li><tt class="docutils literal">eth1</tt> scheda di
+            rete secondaria per la connessione ad internet</li>
+
+            <li><tt class="docutils literal">ppp0</tt>
+            punto-a-punto per una connessione ad internet</li>
+          </ol>
+        </blockquote>
+
+        <div class="section" id="bloccare-i-ping-dall-esterno">
+          <h3><a class="toc-backref" href=
+          "#id122">10.10.1&nbsp;&nbsp;&nbsp;Bloccare i ping
+          dall'esterno</a></h3>
+
+          <p>Spesso gli script che attaccano
+          <em>automaticamente</em> le varie reti provano a fare un
+          ping per verificare quali IP sono on-line: bloccare il
+          traffico <tt class="docutils literal">ICMP</tt> in
+          ingresso puo' aiutare ad evitare parte di questi
+          attacchi:</p>
+          <pre class="literal-block">
+iptables -A INPUT -i ppp0 -p ICMP -j DROP
+</pre>
+        </div>
+
+        <div class="section" id="masquerading-snat">
+          <h3><a class="toc-backref" href=
+          "#id123">10.10.2&nbsp;&nbsp;&nbsp;Masquerading
+          (sNAT)</a></h3>
+
+          <dl class="docutils">
+            <dt>Per attivare la network address translation (in
+            questo caso un SNAT) per la rete locale privata
+            sull'indirizzo ip del <em>modem</em>::</dt>
+
+            <dd>iptables -A POSTROUTING -s
+            192.168.0.0/255.255.255.0 -o ppp0 -j MASQUERADE</dd>
+          </dl>
+
+          <p>Il <em>Masquerading</em> a differenza dello
+          <em>SNAT</em> puro (<tt class=
+          "docutils literal"><span class="pre">-j</span> SNAT
+          <span class="pre">--to-source</span> proprio_ip_pubblico
+          ) legge l'indirizzo ip del device ``ppp0</tt>. In questo
+          modo se l'IP cambia automaticamente si aggiorna anche il
+          source natting. Se avete un indirizzo IP statico
+          assegnato al vostro gateway potete invece usare lo SNAT
+          semplice.</p>
+
+          <dl class="docutils">
+            <dt>Altri esempi::</dt>
+
+            <dd>
+              <p class="first">## Change source addresses to
+              1.2.3.4. # iptables -t nat -A POSTROUTING -o eth0 -j
+              SNAT --to 1.2.3.4</p>
+
+              <p>## Change source addresses to 1.2.3.4, 1.2.3.5 or
+              1.2.3.6 # iptables -t nat -A POSTROUTING -o eth0 -j
+              SNAT --to 1.2.3.4-1.2.3.6</p>
+
+              <p class="last">## Change source addresses to
+              1.2.3.4, ports 1-1023 # iptables -t nat -A
+              POSTROUTING -p tcp -o eth0 -j SNAT --to
+              1.2.3.4:1-1023</p>
+            </dd>
+          </dl>
+        </div>
+
+        <div class="section" id="brute-force">
+          <h3><a class="toc-backref" href=
+          "#id124">10.10.3&nbsp;&nbsp;&nbsp;Brute force</a></h3>
+
+          <p>Per limitare attacchi di tipo brute force su SSH:</p>
+          <pre class="literal-block">
+iptables -A INPUT -i ppp0 -p tcp -m tcp --dport 22 -m state --state NEW -m recent --update --seconds 3000 --hitcount 4 --name DEFAULT --rsource -j DROP
+
+iptables -A INPUT -i ppp0 -p tcp -m tcp --dport 22 -m state --state NEW -m recent --set --name DEFAULT --rsource
+</pre>
+        </div>
+      </div>
+    </div>
+
+    <div class="section" id="ftp-server">
+      <h1><a class="toc-backref" href=
+      "#id125">11&nbsp;&nbsp;&nbsp;FTP Server</a></h1>
+
+      <p>Il File Transfer Protocol (FTP) (protocollo di
+      trasferimento file), รจ un Protocollo per la trasmissione di
+      dati tra host basato su TCP, in genere usato dagli autori di
+      pagine web per <em>pubblicare</em> queste nei propio spazi
+      web. Storicamente veniva anche usato, mediate l'utilizzo di
+      utenze anonime, come punto di scambio per materiali di vari
+      utenti tra loro sconosciuti (una directory dei materiali
+      scaricabili e una dedicata agli <em>uploads</em> degli
+      utenti, poi riordinati dall'<em>ftpmaster</em>). Tuttora si
+      mantiene la cosuetudine di renedere disponibile i materiali
+      dei <em>mirrors</em> anche tramite FTP, probabilmente per
+      garantire l'accesso ai client piu' datati che non possono
+      utilizzare tecnologie piu' recenti.</p>
+
+      <p>Il protocollo FTP e' in chiaro (cioe' non criptato), sia
+      per quanto riguarda il traffico ad esso associato che per il
+      passaggio delle passwords degli utenti, facilmente sniffabili
+      da chiunque abbia accesso alla rete. Naturalmente vsftp per
+      quanto votato alla sicurezza non modifica queste
+      caratteristiche del protocollo FTP (ma consente di usare
+      OpenSSL per la autenticazione degli utenti).</p>
+
+      <p>Se propio si deve mettere a disposizione un server FTP ai
+      propi utenti si considerino le seguenti alternative:</p>
+
+      <ul class="simple">
+        <li>Spingere gli utenti ad usare SFTP invece che FTP</li>
+
+        <li>Spingere gli utenti ad usare SSL per autenticarsi al
+        server FTP</li>
+
+        <li>Nel caso di webdesigners si consideri la possibilita'
+        di offrire alternative come GIT, Subversion, Rsync o
+        Webdav</li>
+      </ul>
+
+      <p>Nel caso non si possa evitare il server FTP:</p>
+
+      <ul class="simple">
+        <li>Non dare agli utenti FTP una shell di sistema (
+        Concedere come shell <tt class="docutils literal">ftp</tt>
+        al posto di <tt class="docutils literal">bash</tt> in
+        <tt class="docutils literal">/etc/passwd</tt>)</li>
+
+        <li>Rendere il filesytem su cui scrive il demone FTP
+        <tt class="docutils literal">noexec</tt> e <tt class=
+        "docutils literal">nosuid</tt> (vedi dopo)</li>
+
+        <li>Utilizzare un demone FTP come Vsftp: un server FTP con
+        una forte inclinazione alla sicurezza: <em>Very Secure FTP
+        Daemon</em>.</li>
+      </ul>
+
+      <p>Per maggiori informazioni sulle scelte di design legate
+      alla sicurezza del demone si veda: <a class=
+      "reference external" href=
+      "http://vsftpd.beasts.org/DESIGN">http://vsftpd.beasts.org/DESIGN</a></p>
+
+      <p>Vsftp mette a disposizione le seguenti funzionalita':</p>
+
+      <ul class="simple">
+        <li>Virtual IP configurations</li>
+
+        <li>Virtual users</li>
+
+        <li>Standalone or inetd operation</li>
+
+        <li>Powerful per-user configurability</li>
+
+        <li>Bandwidth throttling</li>
+
+        <li>Per-source-IP configurability</li>
+
+        <li>Per-source-IP limits</li>
+
+        <li>IPv6</li>
+
+        <li>Encryption support through SSL integration</li>
+      </ul>
+
+      <div class="section" id="id8">
+        <h2><a class="toc-backref" href=
+        "#id126">11.1&nbsp;&nbsp;&nbsp;Pacchetti</a></h2>
+
+        <p>Per installare il demone vero e propio si usi il
+        pacchetto <tt class="docutils literal">vsftpd</tt> , mentre
+        per aver un client da cui fare qualche test sono
+        dipsonibili:</p>
+
+        <ul class="simple">
+          <li><tt class="docutils literal">ftp</tt> (pacchetto da
+          installare) e' il solito client a riga di comando</li>
+
+          <li><tt class="docutils literal">gftp</tt> e' un client
+          grafico simile al classico <em>WSftp</em></li>
+
+          <li>Normalmente i file mananager com Konqueror possono
+          lavarorare come client FTP</li>
+        </ul>
+      </div>
+
+      <div class="section" id="sessioni-ftp">
+        <h2><a class="toc-backref" href=
+        "#id127">11.2&nbsp;&nbsp;&nbsp;Sessioni ftp</a></h2>
+
+        <p>Vediamo alcuni dei comandi di base per gestire una
+        sessione ftp a riga di comando:</p>
+
+        <dl class="docutils">
+          <dt>ftp nome_host</dt>
+
+          <dd>stabilire la connessione all'host, poi verra' chiesta
+          la password dell'utente. Se avete sbagliato utente: user
+          .</dd>
+
+          <dt>help</dt>
+
+          <dd>Lista dei comandi disponibili.</dd>
+
+          <dt>help [nome_comando]</dt>
+
+          <dd>Cosa fa quel comando.</dd>
+
+          <dt>put</dt>
+
+          <dd>Per caricare un file.</dd>
+
+          <dt>get</dt>
+
+          <dd>Per scaricare un file.</dd>
+
+          <dt>ls</dt>
+
+          <dd>Lista dei file disponibili.</dd>
+
+          <dt>cd</dt>
+
+          <dd>Spostarsi in un altra directory.</dd>
+
+          <dt>lcd</dt>
+
+          <dd>Cambio directory in LOCALE.</dd>
+
+          <dt>mput/mget</dt>
+
+          <dd>Per lavorare su file multipli.</dd>
+
+          <dt>prompt</dt>
+
+          <dd>
+            <dl class="first last docutils">
+              <dt>Per uscire dalla modalita' interattiva</dt>
+
+              <dd>
+                <dl class="first last docutils">
+                  <dt>(non vi chiede conferma di ogni singola
+                  operazione</dt>
+
+                  <dd>su ogni singolo file...).</dd>
+                </dl>
+              </dd>
+            </dl>
+          </dd>
+
+          <dt>binary</dt>
+
+          <dd>Entra in modalita' trasferimento binario.</dd>
+
+          <dt>asii</dt>
+
+          <dd>Entra in modalita' trasferimento ascii.</dd>
+
+          <dt>bye</dt>
+
+          <dd>Per chiudere la sessione.</dd>
+        </dl>
+      </div>
+
+      <div class="section" id="configurazione-iniziale">
+        <h2><a class="toc-backref" href=
+        "#id128">11.3&nbsp;&nbsp;&nbsp;Configurazione
+        iniziale</a></h2>
+
+        <p>Il demone di vsftpd e' immediatamente disponibile ma
+        solo in modalita' anonima (si pensi a uno scenario in cui
+        si vuole rendere disponibili dei files tramite FTP) e in
+        <em>sola lettura</em>. Per accedere al servizio si usi
+        quini come utente <tt class=
+        "docutils literal">anonymous</tt> (la passwords in genere
+        e' come consuetudine il propio indirizzo email), la cui
+        <em>home</em> directory sara' <tt class=
+        "docutils literal">/home/ftp/</tt>:</p>
+        <pre class="literal-block">
+zoo:~# ftp localhost
+Connected to localhost.localdomain.
+220 (vsFTPd 2.0.7)
+Name (localhost:root): anonymous
+331 Please specify the password.
+Password:
+230 Login successful.
+Remote system type is UNIX.
+Using binary mode to transfer files.
+ftp&gt; ls
+200 PORT command successful. Consider using PASV.
+150 Here comes the directory listing.
+-rw-r--r--    1 0        0               0 Feb 03 17:17 anoni
+226 Directory send OK.
+</pre>
+      </div>
+
+      <div class="section" id="abilitare-gli-utenti-locali">
+        <h2><a class="toc-backref" href=
+        "#id129">11.4&nbsp;&nbsp;&nbsp;Abilitare gli utenti
+        locali</a></h2>
+
+        <p>Per poter modificare le impostazioni iniziali, ad
+        esempio per permettere l'accesso agli utenti del server, si
+        modifichera' il file <tt class=
+        "docutils literal">/etc/vsftpd.conf</tt>, a seguire le
+        impostazioni fondamentali ed altre interessanti per rendere
+        il server accessibile da utenti di sistema (autenticati
+        tramite la loro password, quindi con PAM) per il tipico
+        utilizzo di web designers che debbano pubblicare le loro
+        pagine web (e non si siano fatti convincere a usare
+        SFTP!):</p>
+        <pre class="literal-block">
+# Allow anonymous FTP? (Beware - allowed by default if you comment this out).
+anonymous_enable=NO
+# Disabilitiamo l'utente anonimo
+
+# Uncomment this to allow local users to log in.
+local_enable=YES
+# Accesso garantito agli utenti di sistema
+
+# Uncomment this to enable any form of FTP write command.
+write_enable=YES
+# Permettiamo agli utenti di caricare documenti nella loro home
+
+# You may fully customise the login banner string:
+ftpd_banner=Benvenuti al servizio ftp del sito example.com
+</pre>
+
+        <p>Per abilitare i cambiamenti si proceda a riavviare il
+        server: <tt class="docutils literal">/etc/init.d/vsftpd
+        restart</tt> e si monitorizzi il file di log <tt class=
+        "docutils literal">tail <span class="pre">-f</span>
+        /var/log/vsftpd.log</tt> per controllarne il funzionamento
+        (e anche <tt class="docutils literal">/var/log/syslog</tt>
+        nel caso non si riuscisse a far partire correttamente il
+        servizio.</p>
+
+        <p>NOTE: Se non riuscite ad ottenere un <em>directory
+        listing</em> (<tt class="docutils literal">ls</tt>)
+        ottenendo un errore <tt class="docutils literal">500
+        Illegal PORT command? FTP error</tt> abilitare la modalita'
+        passiva col comando ftp <tt class=
+        "docutils literal">passive</tt>.</p>
+      </div>
+
+      <div class="section" id="jail-chroot">
+        <h2><a class="toc-backref" href=
+        "#id130">11.5&nbsp;&nbsp;&nbsp;Jail chroot</a></h2>
+
+        <p>Si puo' impedire all'utente di spostarsi arbitrariamente
+        per il file system del servere visualizzare il contenuto
+        delle directory, ad esempio la cartella <tt class=
+        "docutils literal">/etc</tt>, confinandolo in una jail
+        chroot limitata alla sua home directory:</p>
+        <pre class="literal-block">
+# You may restrict local users to their home directories.  See the FAQ for
+# the possible risks in this before using chroot_local_user or
+# chroot_list_enable below.
+chroot_local_user=YES
+</pre>
+
+        <p>Generalmente un utente di sistema con il solo accesso
+        FTP non dovrebbe avere la possibilita' di poter navigare
+        liberamente per il file system del server, esponendo file
+        di configurazione e quant'altro l'utente potrebbe trarre
+        utili informazioni sul quali software siano installati e di
+        che tipo:</p>
+        <pre class="literal-block">
+Remote system type is UNIX.
+Using binary mode to transfer files.
+ftp&gt; pwd
+257 "/"
+ftp&gt; cd /etc/
+550 Failed to change directory.
+</pre>
+      </div>
+
+      <div class="section" id="permessi-sul-filesystem">
+        <h2><a class="toc-backref" href=
+        "#id131">11.6&nbsp;&nbsp;&nbsp;Permessi sul
+        filesystem</a></h2>
+
+        <p>Come accennato precedentemente e' opportuno che i
+        filesystems sui quali un utente puo' scrivere o modificare
+        il contenuto non abbiano i privilegi di eseguibilita' e
+        suid, nel nonstro caso vsftpd lavora sull'intera <tt class=
+        "docutils literal">/home/</tt> directory quindi avremo in
+        <tt class="docutils literal">/etc/fstab</tt>:</p>
+        <pre class="literal-block">
+/dev/mapper/store-homes /home   ext3    rw,nosuid,noexec     0      2
+</pre>
+      </div>
+
+      <div class="section" id="altre-opzioni">
+        <h2><a class="toc-backref" href=
+        "#id132">11.7&nbsp;&nbsp;&nbsp;Altre opzioni</a></h2>
+
+        <dl class="docutils">
+          <dt>xferlog_enable=YES</dt>
+
+          <dd>Verra' tenuto un file di log <tt class=
+          "docutils literal">/var/log/vsftpd.log</tt> degli upload
+          e download sul server.</dd>
+
+          <dt>hide_ids=YES</dt>
+
+          <dd>Nasconde le userid e groupid mascherandole con
+          <tt class="docutils literal">ftp</tt> .</dd>
+
+          <dt>anon_root=/home/ftp</dt>
+
+          <dd>Home directory dell'utente anonimo.</dd>
+
+          <dt>write_enable=YES</dt>
+
+          <dd>Permette agli utenti di eseguire i comandi che
+          possono modificare il filesystem: STOR, DELE, RNFR, RNTO,
+          MKD, RMD, APPE e SITE .</dd>
+
+          <dt>idle_session_timeout=600</dt>
+
+          <dd>Permette agli utenti di restare connessi piu' a
+          lungo, utile per i webdesigners che passano intere
+          giornate connessi al server.</dd>
+        </dl>
+      </div>
     </div>
   </div>
 </body>