Aggiunto script per aggiornamento automatico DNS
[doc/.git] / servizi.html
1 <?xml version="1.0" encoding="utf-8"?>
2 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN">
3
4 <html lang="it">
5 <head>
6   <meta name="generator" content=
7   "HTML Tidy for Linux/x86 (vers 25 March 2009), see www.w3.org">
8   <meta http-equiv="Content-Type" content=
9   "text/html; charset=iso-8859-1">
10   <meta name="generator" content=
11   "Docutils 0.5: http://docutils.sourceforge.net/">
12
13   <title>Servizi di rete passo a passo</title>
14   <style type="text/css">
15
16   /*
17   Author: Peter Parente
18   Date: 2008/01/22
19   Version: 1.0
20   Copyright: This stylesheet has been placed in the public domain - free to edit and use for all uses.
21   */
22
23   body {
24   font: 100% sans-serif;
25   background: #ffffff;
26   color: black;
27   margin: 2em;
28   padding: 0em 2em;
29   }
30   pre.literal-block {
31          overflow: auto;
32     padding: 5px;
33     background-color: #eeffcc;
34     color: #333333;
35     line-height: 120%;
36     border: 1px solid #ac9;
37     border-left: none;
38     border-right: none;
39   }
40
41   p.topic-title {
42   font-weight: bold;
43   }
44
45   table.docinfo {
46   text-align: left;
47   margin: 2em 0em;
48   }
49
50   a[href] {
51   color: #436976;
52   background-color: transparent;
53   }
54
55   a.toc-backref {
56   text-decoration: none;
57   }
58
59   h1 a[href] {
60   color: #003a6b;
61   text-decoration: none;
62   background-color: transparent;
63   }
64
65   a.strong {
66   font-weight: bold;
67   }
68
69   img {
70   margin: 0;
71   border: 0;
72   }
73
74   p {
75   margin: 0.5em 0 1em 0;
76   text-align: justify;
77   line-height: 1.5em;
78   }
79
80
81   p a:visited {
82   color: purple;
83   background-color: transparent;
84   }
85
86   p a:active {
87   color: red;
88   background-color: transparent;
89   }
90
91   a:hover {
92   text-decoration: none;
93   }
94
95   p img {
96   border: 0;
97   margin: 0;
98   }
99
100   p.rubric {
101   font-weight: bold;
102   font-style: italic;
103   }
104
105   h1.title {
106   color: #003a6b;
107   font-size: 250%;
108   margin-bottom: 0em;
109   }
110
111   h2.subtitle {
112   color: #003a6b;
113   border-bottom: 0px;
114   }
115
116   h1, h2, h3, h4, h5, h6 {
117   color: #555;
118   background-color: transparent;
119   margin: 0em;
120   padding-top: 0.5em;
121   }
122
123   h1 {
124   font-size: 160%;
125   margin-bottom: 0.5em;
126   border-bottom: 2px solid #aaa;
127   }
128
129   h2 {
130   font-size: 140%;
131   margin-bottom: 0.5em;
132   border-bottom: 1px solid #aaa;
133   }
134
135   h3 {
136   font-size: 130%;
137   margin-bottom: 0.5em;
138   }
139
140   h4 {
141   font-size: 110%;
142   font-weight: bold;
143   margin-bottom: 0.5em;
144   }
145
146   h5 {
147   font-size: 105%;
148   font-weight: bold;
149   margin-bottom: 0.5em;
150   }
151
152   h6 {
153   font-size: 100%;
154   font-weight: bold;
155   margin-bottom: 0.5em;
156   }
157
158   dt {
159   font-style: italic;
160   }
161
162   dd {
163   margin-bottom: 1.5em;
164   }
165
166   div.admonition, div.note, div.tip, div.caution, div.important {
167   margin: 2em 2em;
168   padding: 0em 1em;
169   border-top: 1px solid #aaa;
170   border-left: 1px solid #aaa;
171   border-bottom: 2px solid #555;
172   border-right: 2px solid #555;
173   }
174
175   div.important {
176   background: transparent url('../images/important.png') 10px 2px no-repeat;
177   }
178
179   div.caution {
180   background: transparent url('../images/caution.png') 10px 2px no-repeat;
181   }
182
183   div.note {
184   background: transparent url('../images/note.png') 10px 2px no-repeat;
185   }
186
187   div.tip {
188   background: transparent url('../images/tip.png') 10px 2px no-repeat;
189   }
190
191   div.admonition-example {
192   background: transparent url('../images/tip.png') 10px 2px no-repeat;
193   }
194
195   div.admonition-critical-example {
196   background: transparent url('../images/important.png') 10px 2px no-repeat;
197   }
198
199   p.admonition-title {
200   font-weight: bold;
201   border-bottom: 1px solid #aaa;
202   padding-left: 30px;
203   }
204
205   table.docutils {
206   text-align: left;
207   border: 1px solid gray;
208   border-collapse: collapse;
209   width: 100%;
210   margin: 1.5em 0em;
211   }
212
213   table.docutils caption {
214   font-style: italic;
215   }
216
217   table.docutils td, table.docutils th {
218   padding: 0.25em 0.5em;
219   }
220
221   table.docutils th {
222   background-color: #dddddd;
223   }
224
225   div.sidebar {
226   width: 33%;
227   float: right;
228   margin: 0em 2em;
229   padding: 0em 1em;
230   border-top: 1px solid #aaa;
231   border-left: 1px solid #aaa;
232   border-bottom: 2px solid #555;
233   border-right: 2px solid #555;
234   }
235
236   p.sidebar-title {
237   margin-bottom: 0em;
238   color: #003a6b;
239   border-bottom: 1px solid #aaa;
240   font-weight: bold;
241   }
242
243   p.sidebar-subtitle {
244   margin-top: 0em;
245   font-style: italic;
246   color: #003a6b;
247   }
248
249   </style>
250 </head>
251
252 <body>
253   <div class="document" id="servizi-di-rete-passo-a-passo">
254     <h1 class="title">Servizi di rete passo a passo</h1>
255
256     <h2 class="subtitle" id=
257     "appunti-sulla-installazione-e-configurazione-dei-servizi">
258     Appunti sulla installazione e configurazione dei servizi</h2>
259
260     <blockquote>
261       <table class="docutils field-list" frame="void" rules="none">
262         <col class="field-name">
263         <col class="field-body">
264
265         <tbody valign="top">
266           <tr class="field">
267             <th class="field-name">Author:</th>
268
269             <td class="field-body">Andrea Manni</td>
270           </tr>
271
272           <tr class="field">
273             <th class="field-name">Copyright:</th>
274
275             <td class="field-body">GFDL</td>
276           </tr>
277
278           <tr class="field">
279             <th class="field-name">Version:</th>
280
281             <td class="field-body">0.9</td>
282           </tr>
283         </tbody>
284       </table>
285     </blockquote>
286
287     <p>Questa guida tratta la configurazione di base dei principali
288     servizi di rete utilizzati con sistemi operativi <em>Unix</em>
289     e derivati come <em>GNU/Linux</em> per gli studenti dei corsi
290     per amministratori di rete in ambiente <em>GNU/Linux</em>. In
291     particolare questa guida e' stata scritta usando come
292     riferimento la distribuzione <em>Debian GNU/Linux</em>. Gli
293     esempi presentati dovrebbero quindi essere direttamente
294     utilizzabili anche su distribuzioni derivate da Debian come
295     Ubuntu, per sistemi operativi diversi si presti attenzione ai
296     percorsi dei file citati.</p>
297
298     <div class="contents topic" id="indice-degli-argomenti">
299       <p class="topic-title first">Indice degli argomenti</p>
300
301       <ul class="auto-toc simple">
302         <li>
303           <a class="reference internal" href=
304           "#configurazione-sistema" id="id8" name=
305           "id8">1&nbsp;&nbsp;&nbsp;Configurazione sistema</a>
306
307           <ul class="auto-toc">
308             <li><a class="reference internal" href=
309             "#solo-per-uso-interno" id="id9" name=
310             "id9">1.1&nbsp;&nbsp;&nbsp;Solo per uso
311             interno</a></li>
312
313             <li>
314               <a class="reference internal" href="#rete" id="id10"
315               name="id10">1.2&nbsp;&nbsp;&nbsp;Rete</a>
316
317               <ul class="auto-toc">
318                 <li><a class="reference internal" href=
319                 "#interfaces" id="id11" name=
320                 "id11">1.2.1&nbsp;&nbsp;&nbsp;interfaces</a></li>
321               </ul>
322             </li>
323
324             <li><a class="reference internal" href=
325             "#bash-completion" id="id12" name=
326             "id12">1.3&nbsp;&nbsp;&nbsp;Bash completion</a></li>
327
328             <li><a class="reference internal" href="#vim" id="id13"
329             name="id13">1.4&nbsp;&nbsp;&nbsp;Vim</a></li>
330
331             <li><a class="reference internal" href="#vnc" id="id14"
332             name="id14">1.5&nbsp;&nbsp;&nbsp;VNC</a></li>
333
334             <li><a class="reference internal" href=
335             "#lista-dei-pacchetti-di-base" id="id15" name=
336             "id15">1.6&nbsp;&nbsp;&nbsp;Lista dei pacchetti di
337             base</a></li>
338
339             <li>
340               <a class="reference internal" href=
341               "#apt-configurazione" id="id16" name=
342               "id16">1.7&nbsp;&nbsp;&nbsp;Apt configurazione</a>
343
344               <ul class="auto-toc">
345                 <li><a class="reference internal" href=
346                 "#sources-list" id="id17" name=
347                 "id17">1.7.1&nbsp;&nbsp;&nbsp;sources.list</a></li>
348
349                 <li><a class="reference internal" href=
350                 "#etc-apt-apt-conf" id="id18" name=
351                 "id18">1.7.2&nbsp;&nbsp;&nbsp;/etc/apt/apt.conf</a></li>
352               </ul>
353             </li>
354           </ul>
355         </li>
356
357         <li>
358           <a class="reference internal" href="#squid" id="id19"
359           name="id19">2&nbsp;&nbsp;&nbsp;Squid</a>
360
361           <ul class="auto-toc">
362             <li>
363               <a class="reference internal" href=
364               "#configurazione-squid-conf" id="id20" name=
365               "id20">2.1&nbsp;&nbsp;&nbsp;Configurazione:
366               squid.conf</a>
367
368               <ul class="auto-toc">
369                 <li><a class="reference internal" href="#cache-dir"
370                 id="id21" name=
371                 "id21">2.1.1&nbsp;&nbsp;&nbsp;Cache_dir</a></li>
372
373                 <li><a class="reference internal" href=
374                 "#tag-maximum-object-size" id="id22" name=
375                 "id22">2.1.2&nbsp;&nbsp;&nbsp;TAG:
376                 maximum_object_size</a></li>
377
378                 <li><a class="reference internal" href=
379                 "#tag-cache-mem" id="id23" name=
380                 "id23">2.1.3&nbsp;&nbsp;&nbsp;TAG:
381                 cache_mem</a></li>
382
383                 <li><a class="reference internal" href=
384                 "#tag-minimum-object-size" id="id24" name=
385                 "id24">2.1.4&nbsp;&nbsp;&nbsp;TAG:
386                 minimum_object_size</a></li>
387               </ul>
388             </li>
389
390             <li>
391               <a class="reference internal" href=
392               "#negoziazione-degli-accesi-al-servizio" id="id25"
393               name="id25">2.2&nbsp;&nbsp;&nbsp;Negoziazione degli
394               accesi al servizio</a>
395
396               <ul class="auto-toc">
397                 <li><a class="reference internal" href=
398                 "#acl-e-http-access" id="id26" name=
399                 "id26">2.2.1&nbsp;&nbsp;&nbsp;ACL e http
400                 access</a></li>
401               </ul>
402             </li>
403
404             <li>
405               <a class="reference internal" href="#testare-squid"
406               id="id27" name="id27">2.3&nbsp;&nbsp;&nbsp;Testare
407               Squid</a>
408
409               <ul class="auto-toc">
410                 <li><a class="reference internal" href=
411                 "#client-wgetrc" id="id28" name=
412                 "id28">2.3.1&nbsp;&nbsp;&nbsp;Client:
413                 ~/.wgetrc</a></li>
414
415                 <li><a class="reference internal" href=
416                 "#server-access-log" id="id29" name=
417                 "id29">2.3.2&nbsp;&nbsp;&nbsp;Server:
418                 access.log</a></li>
419               </ul>
420             </li>
421           </ul>
422         </li>
423
424         <li><a class="reference internal" href="#tiny-proxy" id=
425         "id30" name="id30">3&nbsp;&nbsp;&nbsp;Tiny proxy</a></li>
426
427         <li>
428           <a class="reference internal" href="#apache" id="id31"
429           name="id31">4&nbsp;&nbsp;&nbsp;Apache</a>
430
431           <ul class="auto-toc">
432             <li><a class="reference internal" href=
433             "#pacchetti-da-installare" id="id32" name=
434             "id32">4.1&nbsp;&nbsp;&nbsp;Pacchetti da
435             installare::</a></li>
436
437             <li><a class="reference internal" href=
438             "#configurazione-di-apache" id="id33" name=
439             "id33">4.2&nbsp;&nbsp;&nbsp;Configurazione di
440             Apache</a></li>
441
442             <li><a class="reference internal" href="#apache-conf"
443             id="id34" name=
444             "id34">4.3&nbsp;&nbsp;&nbsp;apache.conf</a></li>
445
446             <li>
447               <a class="reference internal" href=
448               "#installazione-di-php" id="id35" name=
449               "id35">4.4&nbsp;&nbsp;&nbsp;Installazione di PHP</a>
450
451               <ul class="auto-toc">
452                 <li><a class="reference internal" href=
453                 "#test-del-modulo-php" id="id36" name=
454                 "id36">4.4.1&nbsp;&nbsp;&nbsp;Test del modulo
455                 php</a></li>
456
457                 <li><a class="reference internal" href=
458                 "#installazione-del-supporto-per-mysql-a-php" id=
459                 "id37" name=
460                 "id37">4.4.2&nbsp;&nbsp;&nbsp;Installazione del
461                 supporto per Mysql a PHP</a></li>
462
463                 <li><a class="reference internal" href=
464                 "#phpmyadmin" id="id38" name=
465                 "id38">4.4.3&nbsp;&nbsp;&nbsp;phpmyadmin</a></li>
466
467                 <li><a class="reference internal" href=
468                 "#installazione-del-supporto-per-postgresql-a-php"
469                 id="id39" name=
470                 "id39">4.4.4&nbsp;&nbsp;&nbsp;Installazione del
471                 supporto per Postgresql a PHP</a></li>
472
473                 <li><a class="reference internal" href=
474                 "#phppgadmin" id="id40" name=
475                 "id40">4.4.5&nbsp;&nbsp;&nbsp;phppgadmin</a></li>
476               </ul>
477             </li>
478
479             <li>
480               <a class="reference internal" href="#virtual-hosts"
481               id="id41" name="id41">4.5&nbsp;&nbsp;&nbsp;Virtual
482               hosts</a>
483
484               <ul class="auto-toc">
485                 <li><a class="reference internal" href=
486                 "#gestione-dns" id="id42" name=
487                 "id42">4.5.1&nbsp;&nbsp;&nbsp;Gestione DNS</a></li>
488
489                 <li><a class="reference internal" href=
490                 "#eseguire-una-query-dns-con-dig" id="id43" name=
491                 "id43">4.5.2&nbsp;&nbsp;&nbsp;Eseguire una query
492                 DNS con <tt class="docutils literal"><span class=
493                 "pre">dig</span></tt>::</a></li>
494
495                 <li><a class="reference internal" href="#id3" id=
496                 "id44" name="id44">4.5.3&nbsp;&nbsp;&nbsp;Virtual
497                 hosts</a></li>
498               </ul>
499             </li>
500
501             <li>
502               <a class="reference internal" href=
503               "#negoziazione-accessi" id="id45" name=
504               "id45">4.6&nbsp;&nbsp;&nbsp;Negoziazione accessi</a>
505
506               <ul class="auto-toc">
507                 <li><a class="reference internal" href=
508                 "#limiti-su-base-ip" id="id46" name=
509                 "id46">4.6.1&nbsp;&nbsp;&nbsp;Limiti su base
510                 IP</a></li>
511               </ul>
512             </li>
513
514             <li>
515               <a class="reference internal" href=
516               "#user-authentication" id="id47" name=
517               "id47">4.7&nbsp;&nbsp;&nbsp;User Authentication</a>
518
519               <ul class="auto-toc">
520                 <li><a class="reference internal" href=
521                 "#definire-la-cartella" id="id48" name=
522                 "id48">4.7.1&nbsp;&nbsp;&nbsp;Definire la
523                 cartella</a></li>
524
525                 <li><a class="reference internal" href=
526                 "#creazione-del-database-delle-passwords" id="id49"
527                 name="id49">4.7.2&nbsp;&nbsp;&nbsp;Creazione del
528                 database delle passwords</a></li>
529
530                 <li><a class="reference internal" href="#id4" id=
531                 "id50" name=
532                 "id50">4.7.3&nbsp;&nbsp;&nbsp;Configurazione di
533                 Apache</a></li>
534               </ul>
535             </li>
536
537             <li><a class="reference internal" href="#cavets" id=
538             "id51" name="id51">4.8&nbsp;&nbsp;&nbsp;Cavets</a></li>
539           </ul>
540         </li>
541
542         <li>
543           <a class="reference internal" href="#domain-name-system"
544           id="id52" name="id52">5&nbsp;&nbsp;&nbsp;Domain Name
545           System</a>
546
547           <ul class="auto-toc">
548             <li><a class="reference internal" href=
549             "#risoluzione-inversa" id="id53" name=
550             "id53">5.1&nbsp;&nbsp;&nbsp;Risoluzione
551             Inversa</a></li>
552
553             <li><a class="reference internal" href=
554             "#nomi-di-dominio" id="id54" name=
555             "id54">5.2&nbsp;&nbsp;&nbsp;Nomi di dominio</a></li>
556
557             <li><a class="reference internal" href=
558             "#tipologie-di-record" id="id55" name=
559             "id55">5.3&nbsp;&nbsp;&nbsp;Tipologie di
560             record</a></li>
561
562             <li><a class="reference internal" href="#utilizzo" id=
563             "id56" name=
564             "id56">5.4&nbsp;&nbsp;&nbsp;Utilizzo</a></li>
565
566             <li><a class="reference internal" href=
567             "#risoluzione-dei-nomi-di-dominio" id="id57" name=
568             "id57">5.5&nbsp;&nbsp;&nbsp;Risoluzione dei nomi di
569             dominio</a></li>
570
571             <li><a class="reference internal" href="#dig" id="id58"
572             name="id58">5.6&nbsp;&nbsp;&nbsp;Dig</a></li>
573
574             <li><a class="reference internal" href="#resolv-conf"
575             id="id59" name=
576             "id59">5.7&nbsp;&nbsp;&nbsp;resolv.conf</a></li>
577
578             <li><a class="reference internal" href="#etc-hosts" id=
579             "id60" name=
580             "id60">5.8&nbsp;&nbsp;&nbsp;/etc/hosts</a></li>
581
582             <li>
583               <a class="reference internal" href="#hostname" id=
584               "id61" name="id61">5.9&nbsp;&nbsp;&nbsp;Hostname</a>
585
586               <ul class="auto-toc">
587                 <li><a class="reference internal" href="#fqdn" id=
588                 "id62" name=
589                 "id62">5.9.1&nbsp;&nbsp;&nbsp;FQDN</a></li>
590               </ul>
591             </li>
592           </ul>
593         </li>
594
595         <li>
596           <a class="reference internal" href="#dnsmasq" id="id63"
597           name="id63">6&nbsp;&nbsp;&nbsp;DNSmasq</a>
598
599           <ul class="auto-toc">
600             <li><a class="reference internal" href=
601             "#configurazione" id="id64" name=
602             "id64">6.1&nbsp;&nbsp;&nbsp;Configurazione</a></li>
603
604             <li><a class="reference internal" href="#dhcp" id=
605             "id65" name="id65">6.2&nbsp;&nbsp;&nbsp;DHCP</a></li>
606
607             <li><a class="reference internal" href="#dns-cache" id=
608             "id66" name="id66">6.3&nbsp;&nbsp;&nbsp;DNS
609             cache</a></li>
610           </ul>
611         </li>
612
613         <li>
614           <a class="reference internal" href=
615           "#bind-dns-autoritativo" id="id67" name=
616           "id67">7&nbsp;&nbsp;&nbsp;Bind : DNS Autoritativo</a>
617
618           <ul class="auto-toc">
619             <li><a class="reference internal" href="#id5" id="id68"
620             name="id68">7.1&nbsp;&nbsp;&nbsp;DNS cache</a></li>
621
622             <li>
623               <a class="reference internal" href=
624               "#ospitare-una-zona" id="id69" name=
625               "id69">7.2&nbsp;&nbsp;&nbsp;Ospitare una zona</a>
626
627               <ul class="auto-toc">
628                 <li><a class="reference internal" href=
629                 "#named-conf-local" id="id70" name=
630                 "id70">7.2.1&nbsp;&nbsp;&nbsp;named.conf.local</a></li>
631
632                 <li>
633                   <a class="reference internal" href=
634                   "#configurazione-della-zona" id="id71" name=
635                   "id71">7.2.2&nbsp;&nbsp;&nbsp;Configurazione
636                   della zona</a>
637
638                   <ul class="auto-toc">
639                     <li><a class="reference internal" href=
640                     "#soa-start-of-authority-record" id="id72"
641                     name="id72">7.2.2.1&nbsp;&nbsp;&nbsp;SOA: Start
642                     of Authority Record</a></li>
643
644                     <li><a class="reference internal" href=
645                     "#altri-campi" id="id73" name=
646                     "id73">7.2.2.2&nbsp;&nbsp;&nbsp;Altri
647                     campi:</a></li>
648                   </ul>
649                 </li>
650               </ul>
651             </li>
652
653             <li><a class="reference internal" href="#dns-slave" id=
654             "id74" name="id74">7.3&nbsp;&nbsp;&nbsp;DNS
655             slave</a></li>
656
657             <li>
658               <a class="reference internal" href=
659               "#aggiornamento-dinamico-nsupdate" id="id75" name=
660               "id75">7.4&nbsp;&nbsp;&nbsp;Aggiornamento dinamico:
661               nsupdate</a>
662
663               <ul class="auto-toc">
664                 <li><a class="reference internal" href=
665                 "#configurazione-client-nsupdate" id="id76" name=
666                 "id76">7.4.1&nbsp;&nbsp;&nbsp;Configurazione client
667                 (nsupdate)</a></li>
668
669                 <li><a class="reference internal" href=
670                 "#configurazione-server-riconoscimento-chiave" id=
671                 "id77" name=
672                 "id77">7.4.2&nbsp;&nbsp;&nbsp;Configurazione
673                 server: riconoscimento chiave</a></li>
674
675                 <li><a class="reference internal" href=
676                 "#server-gestione-dell-intera-zona" id="id78" name=
677                 "id78">7.4.3&nbsp;&nbsp;&nbsp;Server: gestione
678                 dell'intera zona</a></li>
679
680                 <li><a class="reference internal" href=
681                 "#automatizzare-l-aggiornamento-dinamico" id="id79"
682                 name="id79">7.4.4&nbsp;&nbsp;&nbsp;Automatizzare
683                 l'aggiornamento dinamico</a></li>
684               </ul>
685             </li>
686
687             <li><a class="reference internal" href=
688             "#link-suggeriti" id="id80" name=
689             "id80">7.5&nbsp;&nbsp;&nbsp;Link suggeriti:</a></li>
690           </ul>
691         </li>
692
693         <li>
694           <a class="reference internal" href="#samba" id="id81"
695           name="id81">8&nbsp;&nbsp;&nbsp;Samba</a>
696
697           <ul class="auto-toc">
698             <li><a class="reference internal" href="#pacchetti" id=
699             "id82" name=
700             "id82">8.1&nbsp;&nbsp;&nbsp;Pacchetti</a></li>
701
702             <li><a class="reference internal" href=
703             "#passwords-e-autenticazione" id="id83" name=
704             "id83">8.2&nbsp;&nbsp;&nbsp;Passwords e
705             autenticazione</a></li>
706
707             <li><a class="reference internal" href=
708             "#creazione-utenti" id="id84" name=
709             "id84">8.3&nbsp;&nbsp;&nbsp;Creazione Utenti</a></li>
710
711             <li>
712               <a class="reference internal" href=
713               "#creare-la-condivisione" id="id85" name=
714               "id85">8.4&nbsp;&nbsp;&nbsp;Creare la
715               condivisione</a>
716
717               <ul class="auto-toc">
718                 <li><a class="reference internal" href=
719                 "#sicurezza-permessi-di-esecuzione-sul-server" id=
720                 "id86" name=
721                 "id86">8.4.1&nbsp;&nbsp;&nbsp;Sicurezza: permessi
722                 di esecuzione sul server</a></li>
723               </ul>
724             </li>
725
726             <li>
727               <a class="reference internal" href=
728               "#configurazione-dell-applicativo-samba-vero-e-proprio"
729               id="id87" name=
730               "id87">8.5&nbsp;&nbsp;&nbsp;Configurazione
731               dell'applicativo Samba vero e proprio.</a>
732
733               <ul class="auto-toc">
734                 <li><a class="reference internal" href=
735                 "#creazione-di-un-gruppo" id="id88" name=
736                 "id88">8.5.1&nbsp;&nbsp;&nbsp;Creazione di un
737                 gruppo</a></li>
738               </ul>
739             </li>
740
741             <li><a class="reference internal" href=
742             "#testare-il-servizio" id="id89" name=
743             "id89">8.6&nbsp;&nbsp;&nbsp;Testare il
744             Servizio</a></li>
745           </ul>
746         </li>
747
748         <li>
749           <a class="reference internal" href=
750           "#server-di-posta-postfix" id="id90" name=
751           "id90">9&nbsp;&nbsp;&nbsp;Server di posta: Postfix</a>
752
753           <ul class="auto-toc">
754             <li>
755               <a class="reference internal" href=
756               "#test-del-server-smtp" id="id91" name=
757               "id91">9.1&nbsp;&nbsp;&nbsp;Test del server smtp</a>
758
759               <ul class="auto-toc">
760                 <li><a class="reference internal" href="#swaks" id=
761                 "id92" name=
762                 "id92">9.1.1&nbsp;&nbsp;&nbsp;Swaks</a></li>
763               </ul>
764             </li>
765
766             <li><a class="reference internal" href="#imap-e-pop"
767             id="id93" name="id93">9.2&nbsp;&nbsp;&nbsp;Imap e
768             pop</a></li>
769
770             <li>
771               <a class="reference internal" href=
772               "#client-a-riga-di-comando" id="id94" name=
773               "id94">9.3&nbsp;&nbsp;&nbsp;Client a riga di
774               comando</a>
775
776               <ul class="auto-toc">
777                 <li><a class="reference internal" href="#mailx" id=
778                 "id95" name=
779                 "id95">9.3.1&nbsp;&nbsp;&nbsp;mailx</a></li>
780
781                 <li><a class="reference internal" href="#mutt" id=
782                 "id96" name=
783                 "id96">9.3.2&nbsp;&nbsp;&nbsp;Mutt</a></li>
784
785                 <li><a class="reference internal" href=
786                 "#web-client" id="id97" name=
787                 "id97">9.3.3&nbsp;&nbsp;&nbsp;Web client</a></li>
788               </ul>
789             </li>
790
791             <li>
792               <a class="reference internal" href="#graylisting" id=
793               "id98" name=
794               "id98">9.4&nbsp;&nbsp;&nbsp;Graylisting</a>
795
796               <ul class="auto-toc">
797                 <li><a class="reference internal" href=
798                 "#abilitazione-in-postfix" id="id99" name=
799                 "id99">9.4.1&nbsp;&nbsp;&nbsp;Abilitazione in
800                 Postfix</a></li>
801
802                 <li><a class="reference internal" href="#test" id=
803                 "id100" name=
804                 "id100">9.4.2&nbsp;&nbsp;&nbsp;Test</a></li>
805
806                 <li><a class="reference internal" href=
807                 "#statistiche" id="id101" name=
808                 "id101">9.4.3&nbsp;&nbsp;&nbsp;Statistiche</a></li>
809               </ul>
810             </li>
811           </ul>
812         </li>
813
814         <li>
815           <a class="reference internal" href="#firewall" id="id102"
816           name="id102">10&nbsp;&nbsp;&nbsp;Firewall</a>
817
818           <ul class="auto-toc">
819             <li><a class="reference internal" href="#links" id=
820             "id103" name=
821             "id103">10.1&nbsp;&nbsp;&nbsp;Links</a></li>
822
823             <li><a class="reference internal" href="#ipfilter" id=
824             "id104" name=
825             "id104">10.2&nbsp;&nbsp;&nbsp;Ipfilter</a></li>
826
827             <li>
828               <a class="reference internal" href=
829               "#progettazione-di-un-firewall" id="id105" name=
830               "id105">10.3&nbsp;&nbsp;&nbsp;Progettazione di un
831               firewall</a>
832
833               <ul class="auto-toc">
834                 <li><a class="reference internal" href=
835                 "#collocazione" id="id106" name=
836                 "id106">10.3.1&nbsp;&nbsp;&nbsp;Collocazione</a></li>
837
838                 <li><a class="reference internal" href=
839                 "#policy-di-default" id="id107" name=
840                 "id107">10.3.2&nbsp;&nbsp;&nbsp;Policy di
841                 default</a></li>
842
843                 <li><a class="reference internal" href="#hardware"
844                 id="id108" name=
845                 "id108">10.3.3&nbsp;&nbsp;&nbsp;Hardware</a></li>
846               </ul>
847             </li>
848
849             <li><a class="reference internal" href=
850             "#percorso-dei-pacchetti-tra-tabelle-e-catene" id=
851             "id109" name="id109">10.4&nbsp;&nbsp;&nbsp;Percorso dei
852             pacchetti tra tabelle e catene</a></li>
853
854             <li>
855               <a class="reference internal" href=
856               "#concetti-di-base" id="id110" name=
857               "id110">10.5&nbsp;&nbsp;&nbsp;Concetti di base</a>
858
859               <ul class="auto-toc">
860                 <li><a class="reference internal" href=
861                 "#tabelle-catene-regole" id="id111" name=
862                 "id111">10.5.1&nbsp;&nbsp;&nbsp;Tabelle, catene,
863                 regole</a></li>
864
865                 <li><a class="reference internal" href="#match" id=
866                 "id112" name=
867                 "id112">10.5.2&nbsp;&nbsp;&nbsp;Match</a></li>
868
869                 <li><a class="reference internal" href="#targets"
870                 id="id113" name=
871                 "id113">10.5.3&nbsp;&nbsp;&nbsp;Targets</a></li>
872               </ul>
873             </li>
874
875             <li><a class="reference internal" href=
876             "#tabella-filter" id="id114" name=
877             "id114">10.6&nbsp;&nbsp;&nbsp;Tabella Filter</a></li>
878
879             <li><a class="reference internal" href=
880             "#flush-automatico-per-macchine-remote" id="id115"
881             name="id115">10.7&nbsp;&nbsp;&nbsp;Flush automatico per
882             macchine remote</a></li>
883
884             <li><a class="reference internal" href=
885             "#gestione-regole-rules" id="id116" name=
886             "id116">10.8&nbsp;&nbsp;&nbsp;Gestione regole
887             (rules)</a></li>
888
889             <li>
890               <a class="reference internal" href=
891               "#salvataggio-regole" id="id117" name=
892               "id117">10.9&nbsp;&nbsp;&nbsp;Salvataggio regole</a>
893
894               <ul class="auto-toc">
895                 <li><a class="reference internal" href=
896                 "#iptables-save" id="id118" name=
897                 "id118">10.9.1&nbsp;&nbsp;&nbsp;Iptables-save</a></li>
898
899                 <li><a class="reference internal" href=
900                 "#iptables-restore" id="id119" name=
901                 "id119">10.9.2&nbsp;&nbsp;&nbsp;Iptables-restore</a></li>
902               </ul>
903             </li>
904
905             <li>
906               <a class="reference internal" href="#esempi" id=
907               "id120" name=
908               "id120">10.10&nbsp;&nbsp;&nbsp;Esempi</a>
909
910               <ul class="auto-toc">
911                 <li><a class="reference internal" href=
912                 "#bloccare-i-ping-dall-esterno" id="id121" name=
913                 "id121">10.10.1&nbsp;&nbsp;&nbsp;Bloccare i ping
914                 dall'esterno</a></li>
915
916                 <li><a class="reference internal" href=
917                 "#masquerading-snat" id="id122" name=
918                 "id122">10.10.2&nbsp;&nbsp;&nbsp;Masquerading
919                 (sNAT)</a></li>
920
921                 <li><a class="reference internal" href=
922                 "#brute-force" id="id123" name=
923                 "id123">10.10.3&nbsp;&nbsp;&nbsp;Brute
924                 force</a></li>
925               </ul>
926             </li>
927           </ul>
928         </li>
929
930         <li><a class="reference internal" href="#note" id="id124"
931         name="id124">11&nbsp;&nbsp;&nbsp;NOTE</a></li>
932       </ul>
933     </div>
934
935     <p>Generato il 2010-01-04 con: <a class="reference external"
936     href=
937     "http://docutils.sourceforge.net/rst.html">http://docutils.sourceforge.net/rst.html</a></p>
938
939     <div class="section" id="configurazione-sistema">
940       <h1><a class="toc-backref" href=
941       "#id8">1&nbsp;&nbsp;&nbsp;Configurazione sistema</a></h1>
942
943       <div class="section" id="solo-per-uso-interno">
944         <h2><a class="toc-backref" href=
945         "#id9">1.1&nbsp;&nbsp;&nbsp;Solo per uso interno</a></h2>
946
947         <p>Impostazioni di base per la configurazione del sistema
948         operativo e della rete nel laboratorio 208 facente parte
949         della rete piffa.net .</p>
950
951         <p>Sono qui riportati i parametri della rete locale per
952         comodita' degli studenti, gli altri lettori possono
953         considerarli come riferimento per comprendere i valori
954         espressi nei vari file di configurazione. Ad esempio:
955         quando leggerete <tt class="docutils literal"><span class=
956         "pre">10.10.208.248:3128</span></tt> saprete che si tratta
957         del nostro <em>proxy http</em> in ascolto sulla porta
958         <cite>3128</cite>, stara' quindi a voi sostituire i dati
959         con gli equivalenti <em>IP</em> della vostra rete.</p>
960       </div>
961
962       <div class="section" id="rete">
963         <h2><a class="toc-backref" href=
964         "#id10">1.2&nbsp;&nbsp;&nbsp;Rete</a></h2>
965
966         <p>Parametri della rete attualmente in uso:</p>
967
968         <table border="1" class="docutils">
969           <colgroup>
970             <col width="45%">
971             <col width="55%">
972           </colgroup>
973
974           <tbody valign="top">
975             <tr>
976               <td colspan="2">Parametri della rete</td>
977             </tr>
978
979             <tr>
980               <td>rete</td>
981
982               <td>10.10.208.0/24</td>
983             </tr>
984
985             <tr>
986               <td>netmask</td>
987
988               <td>255.255.255.0</td>
989             </tr>
990
991             <tr>
992               <td>broadcast</td>
993
994               <td>10.10.208.255</td>
995             </tr>
996
997             <tr>
998               <td>gateway</td>
999
1000               <td>10.10.208.248</td>
1001             </tr>
1002
1003             <tr>
1004               <td>DNS</td>
1005
1006               <td>10.10.208.248</td>
1007             </tr>
1008           </tbody>
1009         </table>
1010
1011         <p>Dal server locale degli studeti,
1012         <strong>Bender</strong>, corrispondente all'IP <tt class=
1013         "docutils literal"><span class=
1014         "pre">10.10.208.248</span></tt>, vengono erogati i servizi
1015         DHCP, DNS, gateway (con NAT), proxy http e mirror della
1016         distribuzione Debian ( <a class="reference external" href=
1017         "http://debian.piffa.net">http://debian.piffa.net</a>).
1018         Altri servizi in esecuzione sul server:</p>
1019
1020         <ul class="simple">
1021           <li>Rsync server e altri software di aggiornamento /
1022           installazione di massa</li>
1023
1024           <li>Server imap / pop3 / webmail / smtp</li>
1025
1026           <li>Server ssh per i test degli studenti</li>
1027
1028           <li>File server Samba, NFS e controller di qualsiasi
1029           altro FS distribuito</li>
1030
1031           <li>Print server per la gestione delle stampanti</li>
1032
1033           <li>DNS server</li>
1034
1035           <li>Mirror locale delle *.iso dei sistemi operativi e dei
1036           vari software usati durante le lezioni</li>
1037
1038           <li>Spazi web con PHP, MySQL, Postgresql (altri DB o
1039           framework vengono attivati a seconda dei corsi
1040           attivi)</li>
1041         </ul>
1042
1043         <p>Durante il corso delle lezioni e' opportuno che le
1044         macchine degli studenti si appoggino al server Bender
1045         (ottetto finale <tt class="docutils literal"><span class=
1046         "pre">248</span></tt>), nel caso questo non fosse
1047         raggiungibile (ad esempio per permettere impostazioni di
1048         DHCP / routing diverse) sara' comunque disponibile il
1049         <tt class="docutils literal"><span class=
1050         "pre">10.10.208.254</span></tt> come gateway | DNS per la
1051         rete <tt class="docutils literal"><span class=
1052         "pre">10.10.208.10</span></tt>.</p>
1053
1054         <p><strong>Non e' piu' possibile</strong> raggiungere
1055         Bender tramite l'IP pubblico <tt class=
1056         "docutils literal"><span class=
1057         "pre">212.22.136.248</span></tt> o <em>qualsiasi altro
1058         ip</em> della classe <tt class=
1059         "docutils literal"><span class="pre">C</span> <span class=
1060         "pre">212.22.136.0/24</span></tt> precedentemente
1061         disponibile.</p>
1062
1063         <p>Il computer del docente con il server VNC e' sempre
1064         configurato con l'ottetto finale: <tt class=
1065         "docutils literal"><span class="pre">177</span></tt> della
1066         rete utilizzata durante le lezioni (quindi generalmente la
1067         VNC sara' disponibile sul <tt class=
1068         "docutils literal"><span class=
1069         "pre">10.10.208.177:1</span></tt>.</p>
1070
1071         <p>Gli studenti sono pregati di non impedire l'accesso SSH
1072         alla propria macchina dal computer del docente, e non
1073         modificare la password dell'utente <tt class=
1074         "docutils literal"><span class="pre">root</span></tt> del
1075         sistema operativo <em>pre-istallato</em> (ad es:
1076         <em>Diurno</em>).</p>
1077
1078         <div class="section" id="interfaces">
1079           <h3><a class="toc-backref" href=
1080           "#id11">1.2.1&nbsp;&nbsp;&nbsp;interfaces</a></h3>
1081
1082           <p>Segue un esempio del file di configurazione della
1083           scheda di rete con configurazione statica:</p>
1084
1085           <p>/etc/network/interfaces:</p>
1086           <pre class="literal-block">
1087 # /etc/network/interfaces -- configuration file for ifup(8), ifdown(8)
1088
1089 # The loopback interface
1090 iface lo inet loopback
1091
1092 # La prima scheda di rete (se si chiama eth0)
1093 iface etho inet static
1094   # esempio con dhcp:
1095   # iface etho inet dhcp
1096 address 10.10.208.101
1097 netmask 255.255.255.0
1098 network 10.10.208.0
1099 broadcast 10.10.208.255
1100 gateway 10.10.208.254
1101
1102 # Quali interfaccie devono partire automaticamente:
1103 auto lo eth0
1104 </pre>
1105
1106           <p>Controllare il nome della propria scheda di rete: a
1107           volte <em>udev</em> rinomina la prima scheda a <tt class=
1108           "docutils literal"><span class="pre">eth1</span></tt>,
1109           oppure potreste avere piu' di una scheda di rete (anche
1110           un'interfaccia <em>firewire</em> puo' essere
1111           automaticamente abilitata come scheda di rete).</p>
1112
1113           <p>Se si usano <em>schede di rete virtuali</em> ( eth0:1
1114           , eth0:1 , ...) ricordarsi che queste dipendono dalla
1115           scheda fisica a cui sono associate: abbattere con
1116           <tt class="docutils literal"><span class=
1117           "pre">ifconfig</span> <span class="pre">down</span>
1118           <span class="pre">eth0</span></tt> la scheda principale
1119           fara' cadere anche queste. Tornando ad attivare la scada
1120           principale con <tt class="docutils literal"><span class=
1121           "pre">ifconfig</span> <span class="pre">eth0</span>
1122           <span class="pre">up</span></tt> la virtuale tornera'
1123           attiva: nel caso voleste disabilitarla dovrete quindi
1124           sempre abbattere manualmente la scheda virtuale
1125           <em>prima</em> della scheda reale.</p>
1126
1127           <p>I DNS vanno indicati nel file <tt class=
1128           "docutils literal"><span class=
1129           "pre">/etc/resolv.conf</span></tt> , la cui sintassi e'
1130           spiegata al punto 4.6 . Come DNS si <em>deve</em> usare
1131           il server Bender, alcuni parametri dei software di
1132           installazione, risoluzione dei mirror, vengono
1133           opportunamente modificatia da questo DNS.</p>
1134         </div>
1135       </div>
1136
1137       <div class="section" id="bash-completion">
1138         <h2><a class="toc-backref" href=
1139         "#id12">1.3&nbsp;&nbsp;&nbsp;Bash completion</a></h2>
1140
1141         <p>Il completamento automatico della shell (che si attiva
1142         premendo il tasto tab una o due volte mentre si sta
1143         scrivendo un termine) permette di comporre automaticamente
1144         i nomi dei comandi e i percorsi dei file, sopratutto la
1145         composizione automatica dei percorsi dei file e' di grande
1146         importanza.</p>
1147
1148         <p>Bash_completion permette di integrare il completamento
1149         automatico con i nomi dei pacchetti e oggetti dei comandi:
1150         ad es. volendo digitare <tt class=
1151         "docutils literal"><span class="pre">apt-get</span>
1152         <span class="pre">inst[TAB]</span> <span class=
1153         "pre">xtigh[TAB]</span></tt> ora verra' completato
1154         automaticamente sia la parola <tt class=
1155         "docutils literal"><span class="pre">install</span></tt>
1156         che il nome del pacchetto <tt class=
1157         "docutils literal"><span class=
1158         "pre">xtightvncviewer</span></tt>.</p>
1159
1160         <p>Abilitare /etc/bash_completion nel file <tt class=
1161         "docutils literal"><span class=
1162         "pre">/etc/bash.bashrc</span></tt> oppure includerlo nel
1163         proprio <tt class="docutils literal"><span class=
1164         "pre">~/.bashrc</span></tt> (che sarebbe il file
1165         <em>nascosto</em>, quindi con un punto all'inizio del nome
1166         del file, di configurazione della shell bash per ogni
1167         utente, presente nella propria <em>home
1168         directory</em>):</p>
1169         <pre class="literal-block">
1170 echo ". /etc/bash_completion" &gt;&gt; ~/.bashrc
1171 </pre>
1172
1173         <p>Esempio di ~/.bahsrc</p>
1174         <pre class="literal-block">
1175 # ~/.bashrc: executed by bash(1) for non-login shells.
1176
1177 export PS1='\h:\w\$ '
1178 umask 022
1179
1180 # De-commentare le seguenti righe per abilitare la colorazione dei
1181 # nomi dei file:
1182  export LS_OPTIONS='--color=auto'
1183  eval "`dircolors`"
1184  alias ls='ls $LS_OPTIONS'
1185  alias ll='ls $LS_OPTIONS -l'
1186  alias l='ls $LS_OPTIONS -lA'
1187
1188 # Abilitare i seguenti alias per impostare la conferma per cancellare file
1189 # alias rm='rm -i'
1190 # alias cp='cp -i'
1191 # alias mv='mv -i'
1192
1193 # questo abilita bash completion
1194 . /etc/bash_completion
1195 </pre>
1196
1197         <p>Il file <tt class="docutils literal"><span class=
1198         "pre">/etc/bash_completion</span></tt> deve essere presente
1199         nel sistema, in caso contrario installare il pacchetto:
1200         <tt class="docutils literal"><span class=
1201         "pre">bash-completion</span></tt>. Generalmente l'utente
1202         <tt class="docutils literal"><span class=
1203         "pre">root</span></tt> ha un file <tt class=
1204         "docutils literal"><span class="pre">.bashrc</span></tt>
1205         preimpostato analogo a quello citato sopra, a differenza
1206         dei normali utenti di sistema.</p>
1207
1208         <p>Links:</p>
1209
1210         <ul class="simple">
1211           <li><a class="reference external" href=
1212           "http://www.debian-administration.org/articles/316">An
1213           introduction to bash completion</a></li>
1214
1215           <li><a class="reference external" href=
1216           "http://www.caliban.org/bash/">Working more productively
1217           with bash 2.x/3.x</a></li>
1218
1219           <li>UNIX / Linux Shell Scripting Tutorial: <a class=
1220           "reference external" href=
1221           "http://steve-parker.org/sh/sh.shtml">http://steve-parker.org/sh/sh.shtml</a></li>
1222         </ul>
1223       </div>
1224
1225       <div class="section" id="vim">
1226         <h2><a class="toc-backref" href=
1227         "#id13">1.4&nbsp;&nbsp;&nbsp;Vim</a></h2>
1228
1229         <p>Vim e' l'editor di testo preferito dai sistemisti,
1230         quindi sara' conveniente impostare fin da subito alcune
1231         impostazioni per renderlo piu' comodo.</p>
1232
1233         <p>Assicurarsi che sia installata nel sistema la versione
1234         completa dell'editor installando il pacchetto <tt class=
1235         "docutils literal"><span class="pre">vim</span></tt>:</p>
1236         <pre class="literal-block">
1237 # apt-get install vim
1238 </pre>
1239
1240         <p>Modificare poi il file di configurazione generale
1241         <tt class="docutils literal"><span class=
1242         "pre">/etc/vim/vimrc</span></tt></p>
1243         <pre class="literal-block">
1244 " All system-wide defaults are set in $VIMRUNTIME/debian.vim (usually just
1245 " /usr/share/vim/vimcurrent/debian.vim) and sourced by the call to :runtime
1246 " you can find below.  If you wish to change any of those settings, you should
1247 " do it in this file (/etc/vim/vimrc), since debian.vim will be overwritten
1248 " everytime an upgrade of the vim packages is performed.  It is recommended to
1249 " make changes after sourcing debian.vim since it alters the value of the
1250 " 'compatible' option.
1251
1252 " This line should not be removed as it ensures that various options are
1253 " properly set to work with the Vim-related packages available in Debian.
1254 runtime! debian.vim
1255
1256 " Uncomment the next line to make Vim more Vi-compatible
1257 " NOTE: debian.vim sets 'nocompatible'.  Setting 'compatible' changes numerous
1258 " options, so any other options should be set AFTER setting 'compatible'.
1259 "set compatible
1260
1261 " Vim5 and later versions support syntax highlighting. Uncommenting the next
1262 " line enables syntax highlighting by default.
1263 syntax on
1264
1265 " If using a dark background within the editing area and syntax highlighting
1266 " turn on this option as well.
1267 set background=dark
1268
1269 " Uncomment the following to have Vim jump to the last position when
1270 " reopening a file
1271
1272 if has("autocmd")
1273   au BufReadPost * if line("'\"") &gt; 0 &amp;&amp; line("'\"") &lt;= line("$")
1274     \| exe "normal! g'\"" | endif
1275 endif
1276
1277 " Uncomment the following to have Vim load indentation rules and plugins
1278 " according to the detected filetype.
1279 " This is not recommanded if you often copy and paste into vim,
1280 " as it messes all the indentation.
1281 if has("autocmd")
1282   filetype plugin indent on
1283 endif
1284
1285 " This goes for comments folding: use co to expnad and zc to compress,
1286 " zi to toggle on/off
1287 set fdm=expr
1288 set fde=getline(v:lnum)=~'^\\s*#'?1:getline(prevnonblank(v:lnum))=~'^\\s*#'?1:getline(nextnonblank(v:lnum))=~'^\\s*#'?1:0
1289
1290 " The following are commented out as they cause vim to behave a lot
1291 " differently from regular Vi. They are highly recommended though.
1292 set showcmd             " Show (partial) command in status line.
1293 "set showmatch          " Show matching brackets.
1294 # Ignorecase is quite userfull
1295 set ignorecase          " Do case insensitive matching
1296 "set smartcase          " Do smart case matching
1297 "set incsearch          " Incremental search
1298 set autowrite           " Automatically save before commands like :next and :make
1299 "set hidden             " Hide buffers when they are abandoned
1300 "set mouse=a            " Enable mouse usage (all modes) in terminals
1301
1302 " Source a global configuration file if available
1303 " XXX Deprecated, please move your changes here in /etc/vim/vimrc
1304 if filereadable("/etc/vim/vimrc.local")
1305   source /etc/vim/vimrc.local
1306 endif
1307 </pre>
1308
1309         <p>I principianti faranno bene ad esercitarsi con
1310         <tt class="docutils literal"><span class=
1311         "pre">vimtutor</span> <span class="pre">it</span></tt>.</p>
1312
1313         <p>Altri link per VIM:</p>
1314
1315         <ul class="simple">
1316           <li>Vim Introduction and Tutorial: <a class=
1317           "reference external" href=
1318           "http://blog.interlinked.org/tutorials/vim_tutorial.html">
1319           http://blog.interlinked.org/tutorials/vim_tutorial.html</a></li>
1320
1321           <li><a class="reference external" href=
1322           "http://blog.smr.co.in/category/vim/">http://blog.smr.co.in/category/vim/</a></li>
1323
1324           <li><a class="reference external" href=
1325           "http://vimdoc.sourceforge.net/">http://vimdoc.sourceforge.net/</a></li>
1326         </ul>
1327       </div>
1328
1329       <div class="section" id="vnc">
1330         <h2><a class="toc-backref" href=
1331         "#id14">1.5&nbsp;&nbsp;&nbsp;VNC</a></h2>
1332
1333         <p>I Virtual Network Computing (o VNC) sono software di
1334         controllo remoto e servono per amministrare un computer a
1335         distanzai. Nel nostro caso la VNC sara' utilizzata per
1336         visualizzare la sessione di lavoro di un altro computer sul
1337         proprio a scopo didattico.</p>
1338
1339         <p>Per collegarvi al server del docente usate lo script
1340         <tt class="docutils literal"><span class=
1341         "pre">guarda.sh</span></tt> che dovrebbe gia essere
1342         disponibili sui sistemi preconfigurati, oppure potete
1343         invocare direttamente il collegamento con:</p>
1344         <pre class="literal-block">
1345 xtightvncviewer -viewonly 10.10.208.177:1
1346 </pre>
1347
1348         <p>Se il comando non fosse disponibile installate il
1349         pacchetto <tt class="docutils literal"><span class=
1350         "pre">xtightvncviewer</span></tt>. Potete anche scaricare
1351         lo script <tt class="docutils literal"><span class=
1352         "pre">guarda.sh</span></tt> e renderlo eseguibile, ed
1353         eventualmente creare una voce nel menu di KDE per
1354         richiamarlo.</p>
1355
1356         <p>Procedura:</p>
1357         <pre class="literal-block">
1358 su root
1359 cd /usr/local/bin
1360 wget http://bender/guarda.sh
1361 chmod +x guarda.sh
1362 exit
1363 </pre>
1364
1365         <p>Per eseguire lo script digitare semplicemente <tt class=
1366         "docutils literal"><span class="pre">guarda.sh</span></tt>,
1367         oppure creare un link / collegamento sul Desktop allo
1368         script <tt class="docutils literal"><span class=
1369         "pre">/usr/local/bin/guarda.sh</span></tt>.</p>
1370
1371         <p>Le impostazioni del server VNC sono:</p>
1372
1373         <table border="1" class="docutils">
1374           <colgroup>
1375             <col width="55%">
1376             <col width="45%">
1377           </colgroup>
1378
1379           <thead valign="bottom">
1380             <tr>
1381               <th class="head">Parametro</th>
1382
1383               <th class="head">Valore</th>
1384             </tr>
1385           </thead>
1386
1387           <tbody valign="top">
1388             <tr>
1389               <td>IP</td>
1390
1391               <td>10.10.208.177:1</td>
1392             </tr>
1393
1394             <tr>
1395               <td>Server grafico</td>
1396
1397               <td>:1</td>
1398             </tr>
1399
1400             <tr>
1401               <td>password</td>
1402
1403               <td>password</td>
1404             </tr>
1405           </tbody>
1406         </table>
1407
1408         <p>Si noti che non e' possibile lanciare un applicativo sul
1409         server grafico di un utente da una shell in cui si sta
1410         lavorando come altro utente, anche se root. E' quindi
1411         necessario essere l'utente di sistema che si e' loggato
1412         inizialmente nella sessione grafica per poter lanciare lo
1413         script guarda.sh da una shell.</p>
1414
1415         <p>Controllare con <tt class=
1416         "docutils literal"><span class="pre">whoami</span></tt> di
1417         essere l'utente normale (es <tt class=
1418         "docutils literal"><span class="pre">utente</span>
1419         <span class="pre">|</span> <span class=
1420         "pre">studente</span> <span class="pre">|</span>
1421         <span class="pre">proprio</span> <span class=
1422         "pre">nome</span></tt> ), in caso si sia assunta una altra
1423         <tt class="docutils literal"><span class=
1424         "pre">id</span></tt> si apra un altra shell o si esca da
1425         quella attuale con <tt class=
1426         "docutils literal"><span class="pre">exit</span></tt> .</p>
1427       </div>
1428
1429       <div class="section" id="lista-dei-pacchetti-di-base">
1430         <h2><a class="toc-backref" href=
1431         "#id15">1.6&nbsp;&nbsp;&nbsp;Lista dei pacchetti di
1432         base</a></h2>
1433
1434         <p>I pacchetti installati generalmente <a class=
1435         "footnote-reference" href="#id2" id="id1" name=
1436         "id1">[1]</a> per poter seguire le lezioni sono:</p>
1437         <pre class="literal-block">
1438 kde-core kdm kde-i18n-it xorg vim less xtightvncviewer
1439 </pre>
1440
1441         <table class="docutils footnote" frame="void" id="id2"
1442         rules="none">
1443           <colgroup>
1444             <col class="label">
1445             <col>
1446           </colgroup>
1447
1448           <tbody valign="top">
1449             <tr>
1450               <td class="label"><a class="fn-backref" href=
1451               "#id1">[1]</a></td>
1452
1453               <td><tt class="docutils literal"><span class=
1454               "pre">kde-core</span></tt> e' piu' leggero del
1455               pacchetto <tt class="docutils literal"><span class=
1456               "pre">kde</span></tt>. Esiste un equivalente
1457               <tt class="docutils literal"><span class=
1458               "pre">gnome-core</span></tt> per chi preferisce
1459               Gnome, nel caso si potrebbe installare il log-in
1460               manager <cite>gdm</cite> al posto di
1461               <cite>kdm</cite>.</td>
1462             </tr>
1463           </tbody>
1464         </table>
1465       </div>
1466
1467       <div class="section" id="apt-configurazione">
1468         <h2><a class="toc-backref" href=
1469         "#id16">1.7&nbsp;&nbsp;&nbsp;Apt configurazione</a></h2>
1470
1471         <p>Vediamo i due file principali di apt:</p>
1472
1473         <ul class="simple">
1474           <li><tt class="docutils literal"><span class=
1475           "pre">/etc/apt/sources.list</span></tt></li>
1476
1477           <li><tt class="docutils literal"><span class=
1478           "pre">/etc/apt/apt.conf</span></tt></li>
1479         </ul>
1480
1481         <div class="section" id="sources-list">
1482           <h3><a class="toc-backref" href=
1483           "#id17">1.7.1&nbsp;&nbsp;&nbsp;sources.list</a></h3>
1484
1485           <p>Questo file contiene i sorgenti da cui <em>apt</em>
1486           preleva i pacchetti da installare tramite <em>dpkg</em>,
1487           vengono quindi precisati i metodi (ad es. http / ftp /
1488           cdrom / file), la release che si vuole tracciare (es
1489           <tt class="docutils literal"><span class=
1490           "pre">stable,</span> <span class="pre">testing,</span>
1491           <span class="pre">unstable</span></tt> oppure i
1492           corrispondenti release name es: <tt class=
1493           "docutils literal"><span class="pre">Lenny,</span>
1494           <span class="pre">Squeeze,</span> <span class=
1495           "pre">Sid</span></tt>), i rami di interesse (es:
1496           <tt class="docutils literal"><span class=
1497           "pre">main</span></tt> che e' l'archivio principale,
1498           <tt class="docutils literal"><span class=
1499           "pre">non-free</span></tt> per il software non libero,
1500           <tt class="docutils literal"><span class=
1501           "pre">contrib</span></tt> per i pacchetti non realizzati
1502           dai manutentori ufficiali).</p>
1503
1504           <p>Gli archivi sono generalmente:</p>
1505
1506           <ul class="simple">
1507             <li><tt class="docutils literal"><span class=
1508             "pre">deb</span></tt> per pacchetti Debian binari,
1509             pronti per l'installazione.</li>
1510
1511             <li><tt class="docutils literal"><span class=
1512             "pre">deb-src</span></tt> per i pacchetti sorgenti
1513             (quindi da compilare, come il kernel) degli stessi
1514             pacchetti binari. In genere se non compilate spesso
1515             potete evitare di tracciare i sorgenti per risparmiare
1516             tempo e banda.</li>
1517           </ul>
1518
1519           <p><tt class="docutils literal"><span class=
1520           "pre">/etc/apt/sources.list</span></tt></p>
1521           <pre class="literal-block">
1522 # esempio di accesso a un CDROM:
1523 # cdrom:[Debian GNU/Linux 5.0.1 _Lenny_ - Official i386 kde-CD Binary-1 20090$
1524
1525 # ftp.it.debian.org viene rediretto su un mirror interno
1526 # quando vi trovate nella rete interna piffa.net
1527 deb http://ftp.it.debian.org/debian/ lenny main
1528 # Sono disponibili anche i rami non-free contrib
1529 # deb http://ftp.it.debian.org/debian/ lenny  non-free contrib
1530 # Sono disponibili anche le release unstable e testing
1531 # deb http://ftp.it.debian.org/debian/ testing  main non-free contrib
1532 # deb http://ftp.it.debian.org/debian/ sid  main non-free contrib
1533
1534 # Sorgenti dei pacchetti:
1535 # deb-src http://ftp.bononia.it/debian/ lenny main
1536
1537 # Mirror da kernel.org europa da usare a casa:
1538 deb http://mirrors.eu.kernel.org/debian/ lenny main
1539
1540 # Security dal sito principale
1541 deb http://security.debian.org/ lenny/updates main
1542 # deb-src http://security.debian.org/ lenny/updates main
1543
1544 # Debian volatile per i pacchetti soggetti a frequanti cambiamenti
1545 # non legati a dinamiche di sicurezza
1546 deb http://volatile.debian.org/debian-volatile Lenny/volatile main
1547 # deb-src http://volatile.debian.org/debian-volatile Lenny/volatile main
1548
1549 # Esempio di accesso a un file system locale contenente i pacchetti:
1550 # Potete scaricarei in aula con debmirror  da debian.piffa.net
1551 # un mirror locale da usare poi a casa anche senza internet
1552 # deb file:/mnt/mirror sid main non-free contrib
1553 </pre>
1554         </div>
1555
1556         <div class="section" id="etc-apt-apt-conf">
1557           <h3><a class="toc-backref" href=
1558           "#id18">1.7.2&nbsp;&nbsp;&nbsp;/etc/apt/apt.conf</a></h3>
1559
1560           <p>Questo file contiene le opzioni di apt, come ad
1561           esempio il proxy:</p>
1562           <pre class="literal-block">
1563 Acquire::http::Proxy "http://10.10.208.248:3128";
1564 </pre>
1565
1566           <p>Si tenga conto che se si imposta un proxy per apt sul
1567           proprio portatile e tornati a casa propria si vuole
1568           scaricare nuovi pacchetti si dovra' disabilitare il proxy
1569           commentando la riga con ";" (''punto-e-virgola''). Su un
1570           portatile vi conviene tracciare il mirror <tt class=
1571           "docutils literal"><span class=
1572           "pre">ftp.it.debian.org</span></tt> senza impostare il
1573           proxy: in aula verra' rediretto al mirror locale e a casa
1574           vi appoggerete al mirror ufficiale.</p>
1575
1576           <p>E' consigliabile impostare il proxy per apt anche in
1577           presenza di un proxy-http <em>trasparente</em>.</p>
1578         </div>
1579       </div>
1580     </div>
1581
1582     <div class="section" id="squid">
1583       <h1><a class="toc-backref" href=
1584       "#id19">2&nbsp;&nbsp;&nbsp;Squid</a></h1>
1585
1586       <p>Squid e' un proxy cache http (ma anche FTP e https)
1587       robusto e strutturato, puo' essere usato sia in situazioni
1588       relativamente semplici che in scenari piu' complessi grazie
1589       alla possibilita' di gestirne in modo granulare le risorse.
1590       Si partira' dalle configurazioni piu' semplici per la
1591       semplice <em>condivisione della navigazione</em> internet
1592       all'interno di una rete locale, per poi poter negoziare la
1593       gestione degli accessi, il filtraggio dei contenuti (Squid e'
1594       una applicazione che si muove nel 4' livello del modello
1595       TCP/IP a differenza di un <em>ipfilter</em> limitato al 2'),
1596       nel bilanciamento del carico tra piu' server proxy.</p>
1597
1598       <dl class="docutils">
1599         <dt>Inoltre Squid svolge la funzione di
1600         <em>anonymizer</em>:</dt>
1601
1602         <dd>Nasconde i client http alla rete internet: e' solo il
1603         server proxy ad accedere ai server web frequentati dai
1604         client: questi non sono percepiti ed esposti all'esterno
1605         della rete locale ma si relazionano solo con il server
1606         proxy. Dal punto di vista della sicurezza della rete locale
1607         questo e' preferibile ad un approccio alla navigazione
1608         basato su <em>NAT</em>.</dd>
1609       </dl>
1610
1611       <p>Cosa a volte sottovalutata, Squid permette la navigazione
1612       web a una rete basata su <em>indirizzi IP privati</em> (es
1613       una 192.168.0.0/24). E se la rete privata deve <em>solo
1614       navigare</em> in internet, non serve introdurre nella rete un
1615       <em>NAT</em> (si veda la sezione sui firewall) per
1616       condividere la connessione: basta il solo Squid. Per altro
1617       non servira' neanche un servizio DNS accessibile dai clients
1618       dato che <em>sara' il solo Squid a risolvere i nomi di
1619       dominio</em> per i suoi client http.</p>
1620
1621       <p>Squid ascolta di default sulla porta 3128, per impostare
1622       <em>apt</em> per utilizzarlo si aggiunga ad <tt class=
1623       "docutils literal"><span class=
1624       "pre">/etc/apt/apt.conf</span></tt></p>
1625       <pre class="literal-block">
1626 Acquire::http::Proxy "10.10.208.254:3128";
1627 </pre>
1628
1629       <p>Per installare Squid si usino i pacchetti:</p>
1630       <pre class="literal-block">
1631 squid3
1632 </pre>
1633
1634       <div class="section" id="configurazione-squid-conf">
1635         <h2><a class="toc-backref" href=
1636         "#id20">2.1&nbsp;&nbsp;&nbsp;Configurazione:
1637         squid.conf</a></h2>
1638
1639         <p>Segue un estratto delle direttive principali viste in
1640         aula presenti nel file di configurazione <tt class=
1641         "docutils literal"><span class=
1642         "pre">/etc/squid3/squid.conf</span></tt> .</p>
1643
1644         <div class="section" id="cache-dir">
1645           <h3><a class="toc-backref" href=
1646           "#id21">2.1.1&nbsp;&nbsp;&nbsp;Cache_dir</a></h3>
1647
1648           <p>Cache dir serve per impostare dimensione e percorso
1649           della cache creata sul supporto di storaggio. Essendo la
1650           dimensione di default della cache pari a <tt class=
1651           "docutils literal"><span class="pre">~100</span>
1652           <span class="pre">MB</span></tt> e' altamente
1653           consigliabili aumentare questo parametro se si vuole
1654           poter utilizzare la funzione di <em>cache</em> http del
1655           software.</p>
1656
1657           <p>La dimensione ovviamente dipendera' dallo spazio
1658           disponibile, dimensioni tipiche e massime degli oggetti
1659           che si vuole tenere in cache (un solo file <em>.iso e'
1660           circa ``700 MB``, il pacchetto *Openoffice.org</em> circa
1661           <tt class="docutils literal"><span class="pre">150</span>
1662           <span class="pre">MB</span></tt>, un pacchetto debian
1663           circa <tt class="docutils literal"><span class=
1664           "pre">20</span> <span class="pre">MB</span></tt>), numero
1665           dei client.</p>
1666
1667           <p>Si presti poi attenzione alla natura dei dati che
1668           saranno salvati nella cache: sono tutti dati facilmente
1669           sostituibili (gli originali sono <em>on-line</em>) la cui
1670           perdita non arreca danni permanenti. Questo rende la
1671           cache di Squid un possibile candidato ad un <em>RAID
1672           stirpe</em> (livello 0) a ad un file system che prediliga
1673           le performance a scapito della consistenza, con vantaggi
1674           sia per le prestazioni (e la velocita' di navigazione e'
1675           uno dei motivi per cui si installa Squid) che per
1676           l'utilizzo estensivo dello spazio di storaggio.</p>
1677
1678           <p>Questo fino al momento in cui per voi non sia piu'
1679           importante <em>garantire la disponibilita' del
1680           servizio</em>, ad esempio con un RAID <em>mirror</em> o 5
1681           (se il RAID stripe dovesse rompersi gli utenti non
1682           potrebbero piu' navigare, cosa che per natura dello
1683           stripe e' maggiormente probabile rispetto ad un
1684           <em>mirror</em> o a un filesytem <em>normale</em>).</p>
1685
1686           <p>Altra considerazione: i dati del proxy vengono slavati
1687           sul filesytem del server dietro richiesta di utenti
1688           esterni talvolta sconosciuti. Come per i servizi di file
1689           sharing o per la posta elettronica non c'e' motivo che il
1690           filesystem su cui sono ospitati questi dati abbia i
1691           privilegi di eseguibilita' o suid (in genere si puo'
1692           anche usare <em>noatime</em> per renderlo piu' veloce,
1693           che si usi o meno il journal dipende dalle preferenze:
1694           affidabilita' oppure prestazioni):</p>
1695
1696           <p>/etc/fstab</p>
1697           <pre class="literal-block">
1698 ...
1699 # Filesystem per Squid http cache
1700 /dev/md3/       /var/spool/squid/       ext2,noexec,nosuid,noatime  0 3
1701 </pre>
1702
1703           <p>Ora possiamo impostare la cache nel file di
1704           configurazione <tt class="docutils literal"><span class=
1705           "pre">/etc/squid3/squid.conf</span></tt>:</p>
1706           <pre class="literal-block">
1707 #TAG: cache_dir (riga 1628)
1708 #       Usage:
1709 #
1710 #       cache_dir Type Directory-Name Fs-specific-data [options]
1711 #
1712 #       You can specify multiple cache_dir lines to spread the
1713 #       cache among different disk partitions.
1714 #       ...
1715 #Default:
1716 # cache_dir ufs /var/spool/squid3 100 16 256
1717 cache_dir aufs /var/spool/squid3 300 24 256
1718 #         |    |                 |   |  secondo livello di directory
1719 #         |    |                 |   directory primo livello
1720 #         |    |                 dimensione in MB
1721 #         |    path della cache
1722 #         algoritmo
1723 </pre>
1724
1725           <p>Se si modifica la struttura del filesytem della cache
1726           di Squid, ad esempio variando il numero delle directory,
1727           puo' essere opportuno rigenerare la struttura della cache
1728           di squid. Tipicamente e' consigliabile cancellare (se si
1729           ha <em>ridotto</em> il numero delle directory) la vecchia
1730           cache e poi generare una nuova struttura. Se si vuole
1731           <em>star nel sicuro</em> ogni volta che si modifica
1732           l'impostazione delle directory <em>si svuoti la vecchia
1733           cache e se ne generi una nuova</em></p>
1734           <pre class="literal-block">
1735 # /etc/init.d/squid3 stop
1736 # rm -r /var/spool/squid3/??
1737 # squid3 -z
1738 # /etc/init.d/squid3 start
1739 </pre>
1740         </div>
1741
1742         <div class="section" id="tag-maximum-object-size">
1743           <h3><a class="toc-backref" href=
1744           "#id22">2.1.2&nbsp;&nbsp;&nbsp;TAG:
1745           maximum_object_size</a></h3>
1746
1747           <p>Questa direttiva imposta la dimensione massima degli
1748           oggetti che vengono salvati sul supporto di storaggio,
1749           oggetti di dimensioni superiori saranno comunque
1750           scaricati ma non tenuti in cache.</p>
1751
1752           <p>TAG: maximum_object_size (1760):</p>
1753           <pre class="literal-block">
1754 # TAG: maximum_object_size (1760)
1755 #       Objects larger than this size will NOT be saved on disk.  The
1756 #       value is specified in kilobytes, and the default is 4MB.  If
1757 #       you wish to get a high BYTES hit ratio, you should probably
1758 #       increase this (one 32 MB object hit counts for 3200 10KB
1759 #       hits).  If you wish to increase speed more than your want to
1760 #       save bandwidth you should leave this low.
1761 #
1762 #       NOTE: if using the LFUDA replacement policy you should increase
1763 #       this value to maximize the byte hit rate improvement of LFUDA!
1764 #       See replacement_policy below for a discussion of this policy.
1765 #
1766 #Default:
1767 # maximum_object_size 4096 KB
1768 maximum_object_size 150 MB
1769 </pre>
1770         </div>
1771
1772         <div class="section" id="tag-cache-mem">
1773           <h3><a class="toc-backref" href=
1774           "#id23">2.1.3&nbsp;&nbsp;&nbsp;TAG: cache_mem</a></h3>
1775
1776           <p><em>Cache_mem</em> imposta quanta memoria RAM venga
1777           utilizzata per la cache di Squid. Questo dipendera' dalla
1778           RAM disponibile sul sistema, e da quanta di questa volete
1779           mettere a disposizione di Squid (altri servizi importanti
1780           girano sulla stessa macchina? ). Questo parametro
1781           influisce sulle prestazioni e sul degrado dei supporti di
1782           storaggio (sopratutto se magnetici).</p>
1783
1784           <p>Se si stesse pensando di usare dell'hardware
1785           <em>embedded</em> a basse prestazioni / consumo per
1786           realizzare un server gateway / NAT / Squid si tenga
1787           presente che Squid e' relativamente esoso di risorse
1788           rispetto agli altri servizi: avra' bisogno di <tt class=
1789           "docutils literal"><span class="pre">~25MB</span></tt>
1790           (MegaByte) di RAM e <em>~150MHZ di CPU ARM</em> per
1791           servire decorosamente una decina di client http su una
1792           rete ethernet 10/100. In questo caso non fate scendere
1793           <tt class="docutils literal"><span class=
1794           "pre">cache_mem</span></tt> sotto i <tt class=
1795           "docutils literal"><span class="pre">2/4</span>
1796           <span class="pre">MB</span></tt> pena un accesso continuo
1797           al supporto di storaggio.</p>
1798
1799           <p>Se invece si disponesse di una macchina dedicata a
1800           Squid con gigabytes di RAM non si esiti a dedicarne buona
1801           parte a <em>cache_mem</em>.</p>
1802
1803           <p>TAG: cache_mem (1566):</p>
1804           <pre class="literal-block">
1805 #       'cache_mem' specifies the ideal amount of memory to be used
1806 #       for:
1807 #               * In-Transit objects
1808 #               * Hot Objects
1809 #               * Negative-Cached objects
1810 #Default:
1811 # cache_mem 8 M
1812 cache_mem 100 M
1813 </pre>
1814         </div>
1815
1816         <div class="section" id="tag-minimum-object-size">
1817           <h3><a class="toc-backref" href=
1818           "#id24">2.1.4&nbsp;&nbsp;&nbsp;TAG:
1819           minimum_object_size</a></h3>
1820
1821           <p>Questo parametro imposta la dimensione minima degli
1822           oggetti salvati nella cache. Settato a <tt class=
1823           "docutils literal"><span class="pre">0</span></tt> o a
1824           valori molto piccoli puo' influire negativamente sulla
1825           frammentazione del filesytem e consumare un numero
1826           elevato di <em>inode</em> (cosa non piu' importante con
1827           ext4 o altri filesytem).</p>
1828
1829           <p>In scenari con connessioni molto veloci ( &gt;~10Mb),
1830           pochi client (una decina) e server poco performanti nella
1831           velocita' di accesso ai filesystem ( ~20MB/s, per quanto
1832           il limte sia piuttosto il <em>seek-time</em> ) tenere in
1833           cache i file piu' piccoli aumenta la latenza della
1834           navigazione.</p>
1835
1836           <p>TAG: minimum_object_size:</p>
1837           <pre class="literal-block">
1838 #  TAG: minimum_object_size     (bytes)
1839 #       Objects smaller than this size will NOT be saved on disk.  The
1840 #       value is specified in kilobytes, and the default is 0 KB, which
1841 #       means there is no minimum.
1842 #
1843 #Default:
1844 # minimum_object_size 0 KB
1845 minimum_object_size 0 KB
1846 </pre>
1847         </div>
1848       </div>
1849
1850       <div class="section" id=
1851       "negoziazione-degli-accesi-al-servizio">
1852         <h2><a class="toc-backref" href=
1853         "#id25">2.2&nbsp;&nbsp;&nbsp;Negoziazione degli accesi al
1854         servizio</a></h2>
1855
1856         <p>Squid e' uno di quei servizi soggetto a problemi di tipo
1857         <em>open relay</em> , si deve quindi limitare la rete che
1858         puo' accedere al servizio.</p>
1859
1860         <dl class="docutils">
1861           <dt>Open Relay:</dt>
1862
1863           <dd>Un servizio a cui possono accedere tutti
1864           indiscriminatamente. La cosa puo' andare bene per servizi
1865           come i server web, che aspirano per loro natura al
1866           maggior numero possibile di utenti, ma non a servizi come
1867           i proxy http oppure ai server di posta elettronica
1868           (adibiti ai soli utenti della rete locale).</dd>
1869         </dl>
1870
1871         <p>Generalmente non volete che il vostro proxy http venga
1872         usato da persone sconosciute ed esterne alla vostra rete,
1873         le quali sostanzialmente <em>navigherebbero sotto
1874         l'identita' del vostro proxy</em> (probabilmente per
1875         visionare materiali che non vorrebbero fossero ricondotti
1876         direttamente a loro) generando traffico e consumando banda
1877         della vostra connessione a internet. Tenere Squid in
1878         modalita' <em>Open relay</em> e' al giorno d'oggi un buon
1879         modo per essere inseriti in una <em>black list</em>.</p>
1880
1881         <p>Per poter limitare gli accessi a Squid dal punto di
1882         vista dell'applicazione (quarto livello TCP/IP) si
1883         identifichera' inizialmente l'entita' <em>rete locale</em>
1884         (es: <tt class="docutils literal"><span class=
1885         "pre">localnet</span></tt>) con una ACL di tipo
1886         <em>src</em> (indirizzi IP sorgenti) indicando la
1887         <em>classe / range di IP</em> della nostra rete.</p>
1888
1889         <blockquote>
1890           Dopodiche l'accesso (<tt class=
1891           "docutils literal"><span class=
1892           "pre">http_access</span></tt>) si concedera'
1893           (<em>allow</em>) a questa entita' (es: <tt class=
1894           "docutils literal"><span class=
1895           "pre">localnet</span></tt>) negando chiunque altro.
1896         </blockquote>
1897
1898         <p>Per maggiori dettagli sulla sintassi utilizzabile per
1899         esprimere i range di IP: <a class="reference external"
1900         href="http://www.visolve.com/squid/squid24s1/access_controls.php">
1901         http://www.visolve.com/squid/squid24s1/access_controls.php</a></p>
1902
1903         <p>E' poi sempre possibile tenere il proxy in ascolto su un
1904         solo indirizzo IP, nel caso si disponga di piu' devicei di
1905         rete, oppure settare un firewall per limitare il traffico
1906         dai primi livelli del TCP/IP.</p>
1907
1908         <div class="section" id="acl-e-http-access">
1909           <h3><a class="toc-backref" href=
1910           "#id26">2.2.1&nbsp;&nbsp;&nbsp;ACL e http access</a></h3>
1911
1912           <p>Si proceda a creare una <tt class=
1913           "docutils literal"><span class="pre">ACL</span></tt> di
1914           tipo <tt class="docutils literal"><span class=
1915           "pre">src</span></tt> per identificare la nostra rete
1916           locale, poi si abiliti l'accesso a questa con la
1917           direttiva <tt class="docutils literal"><span class=
1918           "pre">http_access</span></tt>. Tutto quanto non e'
1919           espressamente autorizzato viene poi negato da un
1920           <tt class="docutils literal"><span class=
1921           "pre">http_access</span> <span class="pre">deny</span>
1922           <span class="pre">all</span></tt> finale.</p>
1923           <pre class="literal-block">
1924 #  TAG: acl
1925 #       Defining an Access List
1926 #
1927 #       Every access list definition must begin with an aclname and acltype,
1928 #       followed by either type-specific arguments or a quoted filename that
1929 #       they are read from.
1930 #       ...
1931 #       ***** ACL TYPES AVAILABLE *****
1932 #
1933 #       acl aclname src ip-address/netmask ...          # clients IP address
1934 # riga 588
1935
1936 # Example rule allowing access from your local networks.
1937 # Adapt to list your (internal) IP networks from where browsing
1938 # should be allowed
1939 #acl localnet src 10.0.0.0/8    # RFC1918 possible internal network
1940 #acl localnet src 172.16.0.0/12 # RFC1918 possible internal network
1941 #acl localnet src 192.168.0.0/16        # RFC1918 possible internal network
1942 #
1943 acl localnet src 10.10.208.0/24
1944
1945 # Riga 606
1946 #  TAG: http_access
1947 #       Allowing or Denying access based on defined access lists
1948 #
1949 #       Access to the HTTP port:
1950 #       http_access allow|deny [!]aclname ...
1951 #
1952 #       NOTE on default values:
1953 #
1954 #       If there are no "access" lines present, the default is to deny
1955 #       the request.
1956
1957 # Riga 643
1958 # INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR CLIENTS
1959
1960 # Example rule allowing access from your local networks.
1961 # Adapt localnet in the ACL section to list your (internal) IP networks
1962 # from where browsing should be allowed
1963 #http_access allow localnet
1964 http_access allow localnet
1965 </pre>
1966         </div>
1967       </div>
1968
1969       <div class="section" id="testare-squid">
1970         <h2><a class="toc-backref" href=
1971         "#id27">2.3&nbsp;&nbsp;&nbsp;Testare Squid</a></h2>
1972
1973         <p>Configurato squid e' fondamentale testarne il corretto
1974         funzionamento per assicurarsi di non aver creato un
1975         <em>open-relay</em>. Per fare dei test significativi serve
1976         utilizzare degli host remoti: ci si connetta via ssh a
1977         questi per poi utilizzare <tt class=
1978         "docutils literal"><span class="pre">wget</span></tt> da
1979         riga di comando.</p>
1980
1981         <div class="section" id="client-wgetrc">
1982           <h3><a class="toc-backref" href=
1983           "#id28">2.3.1&nbsp;&nbsp;&nbsp;Client: ~/.wgetrc</a></h3>
1984
1985           <p>Nel file <tt class="docutils literal"><span class=
1986           "pre">.wgetrc</span></tt> (si noti il punto iniziale: e'
1987           un file nascosto) si puo' impostare il proxy per wget. Si
1988           utilizzi l'indirizzo IP del server che si vuole testare,
1989           e si seguano i log <tt class=
1990           "docutils literal"><span class=
1991           "pre">/var/log/squid3/access.log</span></tt> sul
1992           server.</p>
1993
1994           <p>Da notare che la prova va' fatta su una macchina della
1995           rete che si vuole testare, non da <em>localhost</em>. Per
1996           altro se si utilizzasse <em>direttamente</em> <tt class=
1997           "docutils literal"><span class=
1998           "pre">localhost</span></tt> non si testerebbe la
1999           <em>ACL</em> predisposta, dato che si si rientrerebbe
2000           nella ACL (pre-configurata di default) <tt class=
2001           "docutils literal"><span class=
2002           "pre">localhost</span></tt>.</p>
2003
2004           <dl class="docutils">
2005             <dt>.wgetrc</dt>
2006
2007             <dd>http_proxy=10.10.208.178:3128</dd>
2008           </dl>
2009
2010           <p>Si proceda a scaricare dal client scelto con un
2011           wget:</p>
2012           <pre class="literal-block">
2013 wget http://www.google.it
2014 </pre>
2015         </div>
2016
2017         <div class="section" id="server-access-log">
2018           <h3><a class="toc-backref" href=
2019           "#id29">2.3.2&nbsp;&nbsp;&nbsp;Server:
2020           access.log</a></h3>
2021
2022           <p>Si puo' controllare il corretto funzionamento del
2023           server seguendo i log di accesso a Squid:</p>
2024           <pre class="literal-block">
2025 # tail -f /var/log/squid3/access.log
2026 </pre>
2027
2028           <p>In oltre e' possibile configurare diversi
2029           <em>analizzatori di log</em> come <tt class=
2030           "docutils literal"><span class=
2031           "pre">Webalizer</span></tt> per studiare i log di
2032           Squid.</p>
2033         </div>
2034       </div>
2035     </div>
2036
2037     <div class="section" id="tiny-proxy">
2038       <h1><a class="toc-backref" href=
2039       "#id30">3&nbsp;&nbsp;&nbsp;Tiny proxy</a></h1>
2040
2041       <p>Se avete l'esigenza di un proxy server per la condivisione
2042       della connessione ad internet ma non avete la necessita' o le
2043       risorse di un <em>caching</em> proxy come Squid potete
2044       considerare <strong>tinyproxy</strong>, questo e' molto piu'
2045       leggero (utilizza circa ~2MB di RAM e ovviamente non deve
2046       accedere continuamente ad un file system per lo storaggio
2047       della cache) e risulta piu' semplice nella
2048       configurazione.</p>
2049
2050       <p>TinyProxy puo' essere utilizzato come sostituto di
2051       emergenza in una rete in cui Squid e' momentaneamente non
2052       disponibile.</p>
2053
2054       <p>File di configurazione: <tt class=
2055       "docutils literal"><span class=
2056       "pre">/etc/tinyproxy/tinyproxy.conf</span></tt></p>
2057       <pre class="literal-block">
2058 # Porta su cui ascoltare
2059 Port 3128
2060 # IP su cui ascoltare
2061 Listen 10.10.208.160
2062 # Negoziazione accessi
2063 Allow 10.10.208.0/24
2064 </pre>
2065     </div>
2066
2067     <div class="section" id="apache">
2068       <h1><a class="toc-backref" href=
2069       "#id31">4&nbsp;&nbsp;&nbsp;Apache</a></h1>
2070
2071       <p>Apache HTTP Server, o piu' comunemente Apache (<em>a
2072       patchy NCSA web server</em> ), e' il server web modulare piu'
2073       diffuso e strutturato disponibile con licenza libera, in
2074       grado di operare da sistemi operativi UNIX/Linux e
2075       Microsoft.</p>
2076
2077       <p>Un server web e' un processo, e per estensione il computer
2078       su cui e' in esecuzione, che si occupa di fornire, su
2079       richiesta del browser, una pagina web (spesso scritta in
2080       HTML). Le informazioni inviate dal server web viaggiano in
2081       rete trasportate dal protocollo HTTP. L'insieme di server web
2082       da' vita al World Wide Web, uno dei servizi piu' utilizzati
2083       di Internet.</p>
2084
2085       <div class="section" id="pacchetti-da-installare">
2086         <h2><a class="toc-backref" href=
2087         "#id32">4.1&nbsp;&nbsp;&nbsp;Pacchetti da
2088         installare::</a></h2>
2089
2090         <blockquote>
2091           apache2 apache2-doc
2092         </blockquote>
2093
2094         <p>Con la release 2.0 di Apache viene automaticamente resa
2095         disponibile anche la versione SSL (Secure Socket Layer,
2096         connessioni criptate ) del web server senza che ci sia la
2097         necessita' di installare altri pacchetti.</p>
2098       </div>
2099
2100       <div class="section" id="configurazione-di-apache">
2101         <h2><a class="toc-backref" href=
2102         "#id33">4.2&nbsp;&nbsp;&nbsp;Configurazione di
2103         Apache</a></h2>
2104
2105         <p>I file di configurazione di apache si trovano nella
2106         cartella: <tt class="docutils literal"><span class=
2107         "pre">/etc/apache2</span></tt> e sono strutturati come
2108         descritto nel file <tt class=
2109         "docutils literal"><span class="pre">/usr/share/doc/apache2/README.Debian.gz</span></tt>
2110         . Sostanzialmente lo schema e' il seguente:</p>
2111
2112         <dl class="docutils">
2113           <dt>apache2.conf</dt>
2114
2115           <dd>
2116             <p class="first">File di configurazione principale del
2117             servizio.</p>
2118
2119             <p class="last">httpd.conf e' il vecchio file di
2120             configurazione di Apache1, presente per motivi di
2121             retrocompatibilita' e' generalmente vuoto.</p>
2122           </dd>
2123
2124           <dt>ports.conf</dt>
2125
2126           <dd>In questo file vengono specificate le porte sulle
2127           quali resta in ascolto il server web. Si noti che
2128           utilizzando dei virtual hosts generalmente viene
2129           specificata per questi la porta su cui ascoltare nel file
2130           di configurazione del virtual host, ad es: <tt class=
2131           "docutils literal"><span class=
2132           "pre">&lt;VirtualHost</span> <span class=
2133           "pre">*:80&gt;</span></tt></dd>
2134
2135           <dt>sites-available</dt>
2136
2137           <dd>In questa cartella vengono raccolti i file di
2138           configurazione dei virtual host disponibili.</dd>
2139
2140           <dt>sites-enabled</dt>
2141
2142           <dd>In questa cartella sono contenuti dei link simbolici
2143           ai files in ../sites-available : se il link e' presente
2144           in questa cartella il virtual host e' abilitato.</dd>
2145
2146           <dt>mods-available</dt>
2147
2148           <dd>Stesso metodo per i moduli: in questa cartella ci
2149           sono i moduli veri e propri che verranno poi abilitati
2150           grazie all'esistenza di link simbolici nella cartella
2151           mods-enabled .</dd>
2152
2153           <dt>mods-enabled</dt>
2154
2155           <dd>Moduli abilitati, effettivamente caricati.</dd>
2156         </dl>
2157       </div>
2158
2159       <div class="section" id="apache-conf">
2160         <h2><a class="toc-backref" href=
2161         "#id34">4.3&nbsp;&nbsp;&nbsp;apache.conf</a></h2>
2162
2163         <p>File di configurazione del servizio Apache, contiene le
2164         impostazioni generiche (ad esempio utilizzo della RAM e
2165         risorse di sistema) dell'intero servizio. Nella
2166         configurazione di default per Debian non viene definito un
2167         vero e proprio sito di default ma solo dei virtual
2168         hosts.</p>
2169
2170         <p>Guardiamo alcune direttive interessanti:</p>
2171
2172         <dl class="docutils">
2173           <dt>Timeout</dt>
2174
2175           <dd>Numero di secondi da aspettare prima di chiudere la
2176           connessione con il client. Questo parametro serve a
2177           liberare le risorse di sistema nel caso che un client,
2178           magari a causa di una connessione particolarmente lenta o
2179           instabili, tenga attivo indefinitamente un processo di
2180           apache.</dd>
2181
2182           <dt>KeepAlive</dt>
2183
2184           <dd>L'estensione keep-alive (http 1.0) congiuntamente
2185           alle connessioni persistenti (http 1.1) permettono al
2186           server di rispondere a piu' richieste dei client mediante
2187           la stessa connessione. Il protocollo http per sua natura
2188           e' senza stato (<em>stateless</em> ), quindi ogni risorsa
2189           richiesta (per pagine web si pensi ad esempio alle
2190           immagini) dal client necessita di una connessione
2191           autonoma. Keep-alive permette di ottimizzare la
2192           connessione anche fino al 50% a seconda delle situazioni
2193           e contenuti.</dd>
2194
2195           <dt>Server-Pool Size Regulation</dt>
2196
2197           <dd>Questi parametri (StartServers, MinSpareServers, ecc.
2198           Tutti spiegati nel manuale di apache) servono per
2199           attribuire le risorse di sistema disponibili al server
2200           Apache. Tenere questi parametri bassi serve a limitare il
2201           rischio di Denial of Service per il server, nel caso
2202           offra altri servizi. I settagli di default sono come
2203           sempre abbastanza conservativi, se si conta di usare il
2204           proprio Apache per servire un sito web con molti
2205           visitatori sara' necessario aumentare sensibilmente le
2206           impostazioni di base.</dd>
2207
2208           <dt>AccessFileName</dt>
2209
2210           <dd>Il nome del file che viene onorato per modificare le
2211           impostazioni per una singola directory, legato alla
2212           direttiva AllowOverride .</dd>
2213         </dl>
2214       </div>
2215
2216       <div class="section" id="installazione-di-php">
2217         <h2><a class="toc-backref" href=
2218         "#id35">4.4&nbsp;&nbsp;&nbsp;Installazione di PHP</a></h2>
2219
2220         <p>Pacchetti da installare: <tt class=
2221         "docutils literal"><span class="pre">php5</span>
2222         <span class="pre">php-pear</span></tt></p>
2223
2224         <div class="section" id="test-del-modulo-php">
2225           <h3><a class="toc-backref" href=
2226           "#id36">4.4.1&nbsp;&nbsp;&nbsp;Test del modulo
2227           php</a></h3>
2228
2229           <p>Creare nella cartella <tt class=
2230           "docutils literal"><span class="pre">/var/www</span></tt>
2231           (o altra cartella visibile) un file con estensione *.php
2232           (es <tt class="docutils literal"><span class=
2233           "pre">/var/www/info.php</span></tt> contenete codice php
2234           eseguibile dall'interprete, ad es:</p>
2235           <pre class="literal-block">
2236 &lt;?php phpinfo() ; ?&gt;
2237 </pre>
2238
2239           <p>Questa funzione di php generera' la tipica pagina con
2240           le impostazioni attuali per PHP. Richiamando la pagina
2241           (es: <tt class="docutils literal"><span class=
2242           "pre">http://localhost/info.php</span></tt> ) verra'
2243           generata dall'interprete PHP la pagina HTML e resa
2244           disponibile tramite Apache ai client HTTP, a prova del
2245           corretto funzionamento del modulo di PHP e della sua
2246           integrazione con il server web Apache. In caso contrario
2247           se il client http proporra' di scaricare la pagina invece
2248           che visualizzarla nel browser: non funziona l'interprete
2249           di php o sono mal configurati i MIME-type. prima di tutto
2250           assicurarsi di aver fatto ripartire Apache.</p>
2251         </div>
2252
2253         <div class="section" id=
2254         "installazione-del-supporto-per-mysql-a-php">
2255           <h3><a class="toc-backref" href=
2256           "#id37">4.4.2&nbsp;&nbsp;&nbsp;Installazione del supporto
2257           per Mysql a PHP</a></h3>
2258
2259           <p>Installare i pacchetti:</p>
2260           <pre class="literal-block">
2261 php5-mysql phpmyadmin
2262 </pre>
2263
2264           <p>Controllare tramite la pagina php.info che sia
2265           abilitato il supporto per Mysql (ripartito Apache,
2266           ricaricare la pagina e cercare con CTRL+f <tt class=
2267           "docutils literal"><span class=
2268           "pre">mysql</span></tt>).</p>
2269         </div>
2270
2271         <div class="section" id="phpmyadmin">
2272           <h3><a class="toc-backref" href=
2273           "#id38">4.4.3&nbsp;&nbsp;&nbsp;phpmyadmin</a></h3>
2274
2275           <p>L'interfaccia web Phpmyadmin non richiede
2276           necessariamente la presenza di un database Mysql locale,
2277           puo' infatti essere utilizzata per gestire database
2278           remoti (il suo file di configurazione: <tt class=
2279           "docutils literal"><span class=
2280           "pre">/etc/phpmyadmin/config.inc.php</span></tt> ). Nel
2281           caso si voglia installare localmente Mysql si utilizzi il
2282           pacchetto <tt class="docutils literal"><span class=
2283           "pre">mysql-server</span></tt> .</p>
2284
2285           <p>Phpmyadmin dovrebbe essere disponibile all'URL:
2286           <tt class="docutils literal"><span class=
2287           "pre">http://localhost/phpmyadmin/</span></tt>, se cosi
2288           non fosse controllare che sia incluso il file <tt class=
2289           "docutils literal"><span class=
2290           "pre">/etc/phpmyadmin/apache.conf</span></tt> in
2291           <tt class="docutils literal"><span class=
2292           "pre">/etc/apache2/conf.d/</span></tt> .</p>
2293         </div>
2294
2295         <div class="section" id=
2296         "installazione-del-supporto-per-postgresql-a-php">
2297           <h3><a class="toc-backref" href=
2298           "#id39">4.4.4&nbsp;&nbsp;&nbsp;Installazione del supporto
2299           per Postgresql a PHP</a></h3>
2300
2301           <p>Installare i pacchetti:</p>
2302           <pre class="literal-block">
2303 php5-pgsql phppgadmin
2304 </pre>
2305
2306           <p>Controllare tramite la pagina php.info che sia
2307           abilitato il supporto per PostgreSQL (ripartito Apache,
2308           ricaricare la pagina e cercare con CTRL+f <tt class=
2309           "docutils literal"><span class=
2310           "pre">pgsql</span></tt>).</p>
2311         </div>
2312
2313         <div class="section" id="phppgadmin">
2314           <h3><a class="toc-backref" href=
2315           "#id40">4.4.5&nbsp;&nbsp;&nbsp;phppgadmin</a></h3>
2316
2317           <p>L'interfaccia web Phppgadmin per il database server
2318           PostgreSQL non richiede necessariamente la presenza di un
2319           database locale, puo' infatti essere utilizzata per
2320           gestire database remoti (il suo file di configurazione:
2321           <tt class="docutils literal"><span class=
2322           "pre">/etc/phppgadmin/config.inc.php</span></tt> ). Nel
2323           caso si voglia installare localmente Mysql si utilizzi il
2324           pacchetto <tt class="docutils literal"><span class=
2325           "pre">postgresql</span></tt> .</p>
2326
2327           <p>Phpmyadmin dovrebbe essere disponibile all'URL:
2328           <tt class="docutils literal"><span class=
2329           "pre">http://localhost/phppgadmin/</span></tt>, se cosi
2330           non fosse controllare che sia incluso il file <tt class=
2331           "docutils literal"><span class=
2332           "pre">/etc/phppgadmin/apache.conf</span></tt> in
2333           <tt class="docutils literal"><span class=
2334           "pre">/etc/apache2/conf.d/</span></tt> .</p>
2335         </div>
2336       </div>
2337
2338       <div class="section" id="virtual-hosts">
2339         <h2><a class="toc-backref" href=
2340         "#id41">4.5&nbsp;&nbsp;&nbsp;Virtual hosts</a></h2>
2341
2342         <blockquote>
2343           <ul class="simple">
2344             <li><a class="reference external" href=
2345             "http://www.apacheweek.com/features/vhost">http://www.apacheweek.com/features/vhost</a></li>
2346
2347             <li><a class="reference external" href=
2348             "http://www.onlamp.com/pub/a/apache/2004/01/08/apacheckbk.html">
2349             http://www.onlamp.com/pub/a/apache/2004/01/08/apacheckbk.html</a></li>
2350           </ul>
2351         </blockquote>
2352
2353         <p>I virtual host permettono di avere piu' siti internet
2354         disponibili tramite lo stesso server web, eventualmente
2355         mappati su un solo indirizzo IP. Sono generalmente di due
2356         tipi:</p>
2357
2358         <blockquote>
2359           <ul class="simple">
2360             <li>Basati su <em>indirizzi IP</em>. Se si ha la
2361             possibilita' di avere piu' indirizzi IP dedicati per i
2362             diversi siti che si vuole servire. ES: <tt class=
2363             "docutils literal"><span class=
2364             "pre">&lt;VirtualHost</span> <span class=
2365             "pre">192.168.0.2:80&gt;</span></tt> . Soluzione
2366             dispendiosa, si tende ad usarla solo se servono
2367             certificati di sicurezza (SSL ) dedicati per ogni
2368             sito.</li>
2369
2370             <li>Basati su <em>nomi di dominio</em> che puntano allo
2371             stesso IP. Soluzione piu' economica e diffusa che si
2372             basa sulle funzionalita' di http 1.1 .</li>
2373           </ul>
2374         </blockquote>
2375
2376         <p>Prenderemo in esame la gestione di virtual hosts basati
2377         su nomi di dominio.</p>
2378
2379         <div class="section" id="gestione-dns">
2380           <h3><a class="toc-backref" href=
2381           "#id42">4.5.1&nbsp;&nbsp;&nbsp;Gestione DNS</a></h3>
2382
2383           <p>Prima di tutto per poter impostare i virtual hosts
2384           dovete avere un server DNS che risolva i vostri nomi di
2385           dominio sull'indirizzo IP del server. Questo si puo'
2386           ottenere in vari modi, ad es:</p>
2387
2388           <blockquote>
2389             <dl class="docutils">
2390               <dt><tt class="docutils literal"><span class=
2391               "pre">/etc/hosts</span></tt></dt>
2392
2393               <dd>Per prove sul proprio sistema potete impostare i
2394               nomi dei vostri virtual server nel file /etc/hosts
2395               .</dd>
2396
2397               <dt><em>Dnsmasq</em> (DNS server)</dt>
2398
2399               <dd>Utilizzabile al livello della rete locale per
2400               fare dei test, utilizzando direttive come: <tt class=
2401               "docutils literal"><span class=
2402               "pre">address=/davide.piffa.net/10.10.208.178</span></tt></dd>
2403
2404               <dt><em>Servizio DNS dinamico on line</em>.</dt>
2405
2406               <dd>Utilizzare un servizio come ad es: <a class=
2407               "reference external" href=
2408               "https://www.dyndns.com/">https://www.dyndns.com/</a>
2409               per mappare nomi di dominio sul proprio indirizzo IP,
2410               comodo ad esempio se si dispone di un indirizzo IP
2411               pubblico (anche se dinamico) per la propria
2412               connessione ad internet.</dd>
2413
2414               <dt><em>Bind</em> (DNS server)</dt>
2415
2416               <dd>Impostare i campi A nelle proprie zone gestite
2417               dal server DNS Bind. Ad es: <tt class=
2418               "docutils literal"><span class=
2419               "pre">papo</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
2420               <span class=
2421               "pre">A</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
2422               <span class="pre">212.22.136.248</span></tt></dd>
2423             </dl>
2424           </blockquote>
2425         </div>
2426
2427         <div class="section" id="eseguire-una-query-dns-con-dig">
2428           <h3><a class="toc-backref" href=
2429           "#id43">4.5.2&nbsp;&nbsp;&nbsp;Eseguire una query DNS con
2430           <tt class="docutils literal"><span class=
2431           "pre">dig</span></tt>::</a></h3>
2432
2433           <p>Per testare la corretta risoluzione dei vostri nomi di
2434           dominio sui relaivi indirizzi IP si usi dig (o altre
2435           utlity, vedere la sezione relativa i DNS). Dig e'
2436           contenuto nel pacchetto <tt class=
2437           "docutils literal"><span class=
2438           "pre">dnsutils</span></tt>.</p>
2439
2440           <blockquote>
2441             <p># dig 177.piffa.net</p>
2442
2443             <p>; &lt;&lt;&gt;&gt; DiG 9.5.1-P1 &lt;&lt;&gt;&gt;
2444             177.piffa.net ;; global options: printcmd ;; Got
2445             answer: ;; -&gt;&gt;HEADER&lt;&lt;- opcode: QUERY,
2446             status: NOERROR, id: 38036 ;; flags: qr aa rd ra;
2447             QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0</p>
2448
2449             <p>;; QUESTION SECTION: ;177.piffa.net. IN A</p>
2450
2451             <p>;; ANSWER SECTION: 177.piffa.net. 0 IN A
2452             10.10.208.177</p>
2453
2454             <p>;; SERVER: 10.10.208.248#53(10.10.28.248)</p>
2455           </blockquote>
2456
2457           <p>La parte interessante e' l'<em>ANSWER SECTION</em>:
2458           <tt class="docutils literal"><span class=
2459           "pre">177.piffa.net.</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
2460           <span class=
2461           "pre">0</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
2462           <span class="pre">IN</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
2463           <span class=
2464           "pre">A</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
2465           <span class="pre">10.10.208.177</span></tt> . Il nome di
2466           dominio 177.piffa.net viene risolto sull'ip 10.10.208.177
2467           , nel nostro Apache (che risponde all'ip 10.10.208.177 )
2468           dovra' essere disponibile un virtual host che corrisponde
2469           al nome <tt class="docutils literal"><span class=
2470           "pre">177.piffa.net</span></tt> (<tt class=
2471           "docutils literal"><span class=
2472           "pre">ServerName</span></tt>) .</p>
2473
2474           <p>Il server DNS utilizzato dal sistema e' evidenziato
2475           dalla stringa: <tt class="docutils literal"><span class=
2476           "pre">;;</span> <span class="pre">SERVER:</span>
2477           <span class=
2478           "pre">10.10.28.248#53(10.10.28.248)</span></tt> che
2479           dovrebbe corrispondere a quanto impostato nel vostro
2480           <tt class="docutils literal"><span class=
2481           "pre">/etc/resolv.conf</span></tt>. Se il vostro browser
2482           web utilizza un proxy http sara questo a risolvere i nomi
2483           di dominio, tipicamente potete disabilitare l'uso del
2484           proxy per determinati domini nella sezione di
2485           configurazione del browser.</p>
2486         </div>
2487
2488         <div class="section" id="id3">
2489           <h3><a class="toc-backref" href=
2490           "#id44">4.5.3&nbsp;&nbsp;&nbsp;Virtual hosts</a></h3>
2491
2492           <p>Esempio di Virtual host:</p>
2493           <pre class="literal-block">
2494 &lt;VirtualHost *:80 &gt;
2495     ServerName 177.piffa.net
2496     DocumentRoot /var/www/177.piffa.net/
2497     ServerAdmin webmaster@177.piffa.net
2498 &lt;/VirtualHost&gt;
2499 </pre>
2500
2501           <ol class="arabic simple">
2502             <li><tt class="docutils literal"><span class=
2503             "pre">&lt;VirtualHost</span> <span class=
2504             "pre">\*:80</span> <span class="pre">&gt;</span></tt>
2505             La prima riga indica l'inizio della stanza relativa al
2506             nostro virtual host, che ascoltera' su qualunque
2507             indirizzo IP (nel caso il server abbia piu' indirizzi
2508             dai quali e' raggiungibile) sulla porta <tt class=
2509             "docutils literal"><span class=
2510             "pre">80</span></tt>.</li>
2511
2512             <li><tt class="docutils literal"><span class=
2513             "pre">Server/name</span></tt> precisa quale sara' il
2514             nome di dominio a cui verra' associato questo sito
2515             rispetto ad altri eventualmente presenti sullo stesso
2516             server web.</li>
2517
2518             <li><tt class="docutils literal"><span class=
2519             "pre">DocumentRoot</span></tt> : il path della
2520             directory che contiene le pagine del sito.</li>
2521
2522             <li><tt class="docutils literal"><span class=
2523             "pre">ServerAdmin</span></tt>: l'indirizzo del
2524             webmaster, in modo da poterlo contattare in caso di
2525             problemi col sito.</li>
2526
2527             <li><tt class="docutils literal"><span class=
2528             "pre">&lt;/VirtualHost&gt;</span></tt>: <em>tag</em> di
2529             chiusura della stanza di definizione del virtual
2530             host.</li>
2531           </ol>
2532
2533           <p>Quelle che abbiamo appena visto sono le direttive
2534           essenziali per definire un sito virtuale, potrebbe essere
2535           utile aggiungere altre:</p>
2536
2537           <ul>
2538             <li>
2539               <dl class="first docutils">
2540                 <dt><tt class="docutils literal"><span class=
2541                 "pre">ErrorLog</span> <span class=
2542                 "pre">/var/log/apache2/177.piffa.net/error.log</span></tt></dt>
2543
2544                 <dd>
2545                   <p class="first last">Log degli errori separato
2546                   dai restanti siti web ospitati dal server.</p>
2547                 </dd>
2548               </dl>
2549             </li>
2550
2551             <li>
2552               <dl class="first docutils">
2553                 <dt><tt class="docutils literal"><span class=
2554                 "pre">LogLevel</span> <span class=
2555                 "pre">warn</span></tt></dt>
2556
2557                 <dd>
2558                   <p class="first last">Livello di importanza degli
2559                   eventi loggati: warning <em>attenzione</em> .</p>
2560                 </dd>
2561               </dl>
2562             </li>
2563
2564             <li>
2565               <dl class="first docutils">
2566                 <dt><tt class="docutils literal"><span class=
2567                 "pre">CustomLog</span> <span class=
2568                 "pre">/var/log/apache2/177.piffa.net/access.log</span>
2569                 <span class="pre">combined</span></tt></dt>
2570
2571                 <dd>
2572                   <p class="first last">Log di accesso separati
2573                   dagli altri siti, utile anche qua per statistiche
2574                   di accesso per il solo sito virtuale.</p>
2575                 </dd>
2576               </dl>
2577             </li>
2578           </ul>
2579
2580           <p>Potrebbe essere utile modificare le impostazioni di
2581           una intera directory, ad esempio per abilitare
2582           l'<tt class="docutils literal"><span class=
2583           "pre">AuthConfig</span></tt>:</p>
2584           <pre class="literal-block">
2585 &lt;Directory "/var/www/miosito.net/privata"&gt;
2586         AllowOverride AuthConfig
2587         Options ExecCGI Indexes MultiViews FollowSymLinks
2588         Order allow,deny
2589         Allow from all
2590 &lt;/Directory&gt;
2591 </pre>
2592
2593           <p><tt class="docutils literal"><span class=
2594           "pre">AllowOverride</span> <span class=
2595           "pre">AuthConfig</span></tt> ora vale per l'intera
2596           directory, come le altre opzioni.</p>
2597         </div>
2598       </div>
2599
2600       <div class="section" id="negoziazione-accessi">
2601         <h2><a class="toc-backref" href=
2602         "#id45">4.6&nbsp;&nbsp;&nbsp;Negoziazione accessi</a></h2>
2603
2604         <p>Tipicamente quando si installa un server web il proprio
2605         desiderio e' di dare accesso ai materiali disponibili al
2606         maggior numero di visitatori possibile. Talvolta pero' puo'
2607         essere utile poter limitare questi accessi, ad esempio per
2608         escludere un <em>bot</em> indesiderato che scansiona
2609         ininterrottamente le nostre pagine o per creare una
2610         <em>Area Riservata</em> i cui materiali non devono essere
2611         disponibile a tutti.</p>
2612
2613         <div class="section" id="limiti-su-base-ip">
2614           <h3><a class="toc-backref" href=
2615           "#id46">4.6.1&nbsp;&nbsp;&nbsp;Limiti su base IP</a></h3>
2616
2617           <p>La forma piu' semplice di restrizione degli accessi e'
2618           su base degli indirizzi IP dei client: tipicamente i siti
2619           web sono settati per dare accesso a chiunque:</p>
2620           <pre class="literal-block">
2621 &lt;VirtualHost *:80 &gt;
2622        # ...
2623        &lt;Directory "/var/www/177.piffa.net"&gt;
2624          Order allow,deny
2625          Allow from all
2626        &lt;/Directory&gt;
2627 &lt;/VirtualHost&gt;
2628 </pre>
2629
2630           <p>Potremmo negare l'accesso a uno o piu' indirizzi IP in
2631           questo modo:</p>
2632           <pre class="literal-block">
2633 &lt;VirtualHost *:80 &gt;
2634        # ...
2635        &lt;Directory "/var/www/177.piffa.net"&gt;
2636          Order allow,deny
2637          Allow from all
2638          Deny from 192.168.0.1
2639        &lt;/Directory&gt;
2640 &lt;/VirtualHost&gt;
2641 </pre>
2642
2643           <p>Ora l'IP 192.168.0.1 non potra' piu' accedere ai
2644           materiali dell'intero sito virtuale, oppure potremmo
2645           lavorare su una sola directory:</p>
2646           <pre class="literal-block">
2647 &lt;Directory "/var/www/miosito.net/limitata"&gt;
2648        Order allow,deny
2649        Allow from 192.168.0.0./24
2650        Deny from all
2651 &lt;/Directory&gt;
2652 </pre>
2653
2654           <p>In questo modo solo la classe IP <tt class=
2655           "docutils literal"><span class=
2656           "pre">192.168.0.0/24</span></tt> potra' accedere alla
2657           directory <tt class="docutils literal"><span class=
2658           "pre">/limitata</span></tt> Si tenga pero' conto che e'
2659           relativamente facile per un malintenzionato cambiare il
2660           proprio indirizzo IP, oppure collegarsi da un altra zona.
2661           Meno facile e' accedere ad una classe privata trovandosi
2662           all'esterno di questa, ma ci sono comunque soluzioni piu'
2663           eleganti.</p>
2664
2665           <ul class="simple">
2666             <li>Mod_access: <a class="reference external" href=
2667             "http://httpd.apache.org/docs/2.0/mod/mod_access.html">http://httpd.apache.org/docs/2.0/mod/mod_access.html</a></li>
2668
2669             <li>mod_authz_hosti(Available in Apache 2.1 and later):
2670             <a class="reference external" href=
2671             "http://httpd.apache.org/docs/2.2/mod/mod_authz_host.html">
2672             http://httpd.apache.org/docs/2.2/mod/mod_authz_host.html</a></li>
2673           </ul>
2674         </div>
2675       </div>
2676
2677       <div class="section" id="user-authentication">
2678         <h2><a class="toc-backref" href=
2679         "#id47">4.7&nbsp;&nbsp;&nbsp;User Authentication</a></h2>
2680
2681         <p>Si puo' negoziare gli accessi ad un area del sito
2682         tramite autenticazione basata su <em>nome utente /
2683         password</em>. Questo puo' venire utile per creare una area
2684         download <em>intranet</em>, alla quale possano accedere
2685         solo gli utenti previsti a prescindere dagli indirizzi IP
2686         dei loro client.</p>
2687
2688         <p>Tramite il modulo di Apache <em>mod-auth</em> e'
2689         possibile implementare questo paradigma, per quanto
2690         esistano soluzioni piu' granulari e sofisticate, che
2691         richiedono pero' l'implementazione di interpreti di
2692         linguaggi di programmazione, criptazione delle passwords,
2693         gestione degli utenti ed eventualmente delle sessioni. Mod
2694         auth non richiede l'installazione di niente di tutto
2695         questo.</p>
2696
2697         <p>link: <a class="reference external" href=
2698         "http://www.apacheweek.com/features/userauth">http://www.apacheweek.com/features/userauth</a></p>
2699
2700         <div class="section" id="definire-la-cartella">
2701           <h3><a class="toc-backref" href=
2702           "#id48">4.7.1&nbsp;&nbsp;&nbsp;Definire la
2703           cartella</a></h3>
2704
2705           <p>Decidere quale sara' il <em>path</em> della cartella
2706           da sottoporre ad autenticazione:</p>
2707
2708           <blockquote>
2709             <tt class="docutils literal"><span class=
2710             "pre">mkdir</span> <span class=
2711             "pre">/var/www/177.piffa.net/privata</span></tt>
2712           </blockquote>
2713         </div>
2714
2715         <div class="section" id=
2716         "creazione-del-database-delle-passwords">
2717           <h3><a class="toc-backref" href=
2718           "#id49">4.7.2&nbsp;&nbsp;&nbsp;Creazione del database
2719           delle passwords</a></h3>
2720
2721           <p>Un modo semplice per gestire una database di
2722           <em>user-id / passwords</em> e' utilizzare l'utility
2723           <tt class="docutils literal"><span class=
2724           "pre">htpasswd</span></tt> di Apache. Questa crea un file
2725           in cui un <em>crypt</em> delle password viene associato
2726           agli utenti.</p>
2727
2728           <p>Si dovra' decidere dove tenere questo file, la cosa
2729           importante e' che non sia visibile nel sito web: non deve
2730           essere scaricabile dai visitatori. Deve essere cioe'
2731           all'esterno della <em>DocumentRoot</em>: un buon posto
2732           potrebbe essere la /home dell'utente.</p>
2733
2734           <p>Creiamo (con il <em>flag</em> <tt class=
2735           "docutils literal"><span class="pre">-c</span></tt>) il
2736           file <tt class="docutils literal"><span class=
2737           "pre">/home/utente/passwords</span></tt> con l'utente
2738           <tt class="docutils literal"><span class=
2739           "pre">luca</span></tt>:</p>
2740           <pre class="literal-block">
2741 htpasswd -c /home/utente/passwords luca
2742 </pre>
2743
2744           <p><tt class="docutils literal"><span class=
2745           "pre">htpasswd</span></tt> ci chiedera' la password da
2746           associare all'utente <tt class=
2747           "docutils literal"><span class="pre">luca</span></tt>.
2748           Per successive modifiche della password o aggiunta di
2749           nuovi utenti non sara' necessario usare il flag
2750           <tt class="docutils literal"><span class=
2751           "pre">-c</span></tt>.</p>
2752         </div>
2753
2754         <div class="section" id="id4">
2755           <h3><a class="toc-backref" href=
2756           "#id50">4.7.3&nbsp;&nbsp;&nbsp;Configurazione di
2757           Apache</a></h3>
2758
2759           <p>Ora possiamo passare alla configurazione vera e
2760           propria di Apache, ma con una novita': andremo a inserire
2761           la voce in un <tt class="docutils literal"><span class=
2762           "pre">.htaccess</span></tt> invece che modificare
2763           (tramite una direttiva <tt class=
2764           "docutils literal"><span class=
2765           "pre">&lt;Directory&gt;</span></tt> ) il file di
2766           impostazione del virtual-host.</p>
2767
2768           <p>Questo per motivi pratici: solo l'utente <em>root</em>
2769           puo' modificare l'impostazione del virtual host nel file
2770           <tt class="docutils literal"><span class=
2771           "pre">/etc/apache2/sites-enabled/177.piffa.net</span></tt>,
2772           ma spesso il motivo per cui creiamo i virtual hosts e'
2773           ospitare i siti di altri utenti, che possono solo
2774           pubblicare (generalmente tramite <em>FTP</em>) i loro
2775           documenti nella loro <em>DocumentRoot</em>, senza poter
2776           quindi modificare in alcun modo la configurazione del
2777           virtual host.</p>
2778
2779           <p>Dando agli utenti la possibilita' di modificare
2780           (<em>AllowOverride</em>) autonomamente alcuni parametri
2781           (in questo caso solo l'<em>AuthConfig</em>) relativi al
2782           funzionamento del loro spazio web ci togliera'
2783           l'incombenza di dover intervenire continuamente sui vari
2784           virtual host.</p>
2785
2786           <p>Abilitiamo l'AllowOverride nel file di configurazione
2787           del virtual host per la sola directory <tt class=
2788           "docutils literal"><span class=
2789           "pre">privata</span></tt>:</p>
2790           <pre class="literal-block">
2791 &lt;VirtualHost *:80 &gt;
2792     ServerName 177.piffa.net
2793     DocumentRoot /var/www/177.piffa.net/
2794     ServerAdmin webmaster@177.piffa.net
2795     &lt;Directory "/var/www/177.piffa.net/privata"&gt;
2796         AllowOverride AuthConfig
2797     &lt;/Directory&gt;
2798 &lt;/VirtualHost&gt;
2799 </pre>
2800
2801           <p>Per rendere il cambiamento effettivo sara' necessario
2802           fare un restart / reload di Apache.</p>
2803
2804           <p>Ora sara' possibile, anche per l'utente di sistema,
2805           creare un file <tt class="docutils literal"><span class=
2806           "pre">.htaccess</span></tt> che sara' onorato da
2807           Apache.</p>
2808
2809           <p>/var/www/177.piffa.net/privata/.htaccess</p>
2810           <pre class="literal-block">
2811 # Messaggio visualizzato al prompt per l'autenticazione
2812 AuthName "Area privata soggetta ad autentizazione"
2813 # tipo di autenticazione da usarsi
2814 AuthType Basic
2815 # File precedentemente generato con htpasswd
2816 AuthUserFile  /home/utente/passwords
2817
2818 # Negoziazione degli accessi
2819 # valid users permette l'accesso agli utenti specificati
2820 # nel file generato da htpasswd
2821 require valid-user
2822 </pre>
2823
2824           <p>Si noti che non e' necessario fare ripartire Apache
2825           per onorare i cambiamenti (un utente non avrebbe la
2826           possibilita' di farlo!).</p>
2827
2828           <dl class="docutils">
2829             <dt>Oltre a <tt class="docutils literal"><span class=
2830             "pre">valid-users</span></tt> si potrebbe scegliere di
2831             usare la formula <tt class=
2832             "docutils literal"><span class="pre">users</span></tt>
2833             che permette di elencare esplicitamente gli
2834             utenti::</dt>
2835
2836             <dd>require user pippo pluto</dd>
2837           </dl>
2838
2839           <p>L'utente <em>paperino</em> che fosse comunque presente
2840           nel file generato da htpasswd non potrebbe accedere alla
2841           risorsa.</p>
2842
2843           <dl class="docutils">
2844             <dt>Nel caso ci fossero molti utenti conviene gestirli
2845             tramite <em>gruppi</em>::</dt>
2846
2847             <dd>require group staff studenti</dd>
2848           </dl>
2849
2850           <p>I gruppi vengono definiti in un file in modo simile a
2851           <tt class="docutils literal"><span class=
2852           "pre">/etc/groups</span></tt> per gli utenti di
2853           sistema:</p>
2854           <pre class="literal-block">
2855 staff:andrea sara
2856 studenti: lucap federico luca
2857 </pre>
2858
2859           <p>da richiamare tramite la direttiva <tt class=
2860           "docutils literal"><span class=
2861           "pre">AuthGroupFile</span></tt>.</p>
2862         </div>
2863       </div>
2864
2865       <div class="section" id="cavets">
2866         <h2><a class="toc-backref" href=
2867         "#id51">4.8&nbsp;&nbsp;&nbsp;Cavets</a></h2>
2868
2869         <p>Problemi di cache:</p>
2870
2871         <blockquote>
2872           <ul class="simple">
2873             <li>Proxy: nei settaggi del browser specificare di non
2874             utilizzare un server proxy http per il sito web locale
2875             (o per gli altri che si stanno monitorando). Se si ha
2876             il controllo del proxy server: stopparlo, ricaricare la
2877             pagina (operazione che fallira'), far ripartire il
2878             proxy, ricaricare la pagina.</li>
2879
2880             <li>Provare con un altro browser, o cercare di svuotare
2881             la cache chiudere/riaprire l'applicativo. Provare a
2882             fermare Apache, ricaricare la pagina (operazione che
2883             fallira'), far ripartire Apache, ricaricare la
2884             pagina.</li>
2885           </ul>
2886         </blockquote>
2887       </div>
2888     </div>
2889
2890     <div class="section" id="domain-name-system">
2891       <h1><a class="toc-backref" href=
2892       "#id52">5&nbsp;&nbsp;&nbsp;Domain Name System</a></h1>
2893
2894       <p>Domain Name System (spesso indicato con DNS) e' un
2895       servizio utilizzato per la risoluzione di nomi di host in
2896       indirizzi IP e viceversa. Il servizio e' realizzato tramite
2897       un sistema <strong>gerarchico</strong> (quindi una struttura
2898       ad albero, simile ai <em>file system</em>)
2899       <strong>distribuito</strong> (ogni server DNS facente parte
2900       del sistema puo' mantenere solo una parte delle informazioni,
2901       ad esempio per la sua sola <em>zona</em>), costituito dai
2902       server DNS.</p>
2903
2904       <p>I DNS sono un servizio <em>core</em> (fondamentale) per la
2905       rete internet come per qualunque rete locale. Ad esempio
2906       durante la navigazione web un client vorrebbe vedere
2907       l'<em>URL</em> <tt class="docutils literal"><span class=
2908       "pre">http://ww.piffa.net/</span></tt>, quindi per potersi
2909       connettere via <em>http</em> al server web deve prima
2910       ottenere l'indirizzo IP del <em>server http</em>
2911       corrispondente a <em>www.piffa.net</em>. Se il DNS gli
2912       fornisce un IP sbagliato l'utente non potra' raggiungere il
2913       servizio: di fatto e' come se il serve http fosse spento.</p>
2914
2915       <p>Stessa cosa vale per gli altri servizi, come la posta
2916       elettronica, ssh, ecc. : <em>prima si deve effettuare una
2917       query DNS</em>.</p>
2918
2919       <p>Potrebbe verificarsi uno scenario simile a questo: i
2920       vostri server per i siti web funzionano correttamente come i
2921       siti ospitati, stessa cosa per i vostri server di posta, IMAP
2922       e POP3, e tutto il resto. Ma se poi un errore nella
2923       configurazione del DNS non rende raggiungibile l'intero
2924       <em>sito</em>: per l'utente finale e' come se nulla
2925       funzionasse.</p>
2926
2927       <p>Infatti quando si parla di un intervento della Polizia
2928       Postale per l'<em>oscuramento</em> di un sito dal punto di
2929       vista pratico questo si traduce generalmente nella rimozione
2930       o mistificazione del record DNS relativo a quel dominio (la
2931       <em>PP</em> ha facolta' di chiedere un simile intervento ai
2932       principali provider internet che forniscono connettivita'
2933       agli utenti italiani, oltre che poter agire direttamente sul
2934       NIC italiano per i domini della TLD <em>.it</em>)</p>
2935
2936       <p>L'operazione di convertire un nome in un indirizzo e'
2937       detta risoluzione DNS, convertire un indirizzo IP in nome e'
2938       detto risoluzione inversa.</p>
2939
2940       <blockquote>
2941         Un <em>Registar</em> e' un operatore che ha la facolta'
2942         (accreditamento da parte dell ICANN) di registrare i domini
2943         di secondo livello per gli utenti finali, dietro compenso
2944         di una modica cifra (una decina di euro) che vale come
2945         contributo su base annuale per il mantenimento
2946         dell'infrastruttura.
2947       </blockquote>
2948
2949       <div class="section" id="risoluzione-inversa">
2950         <h2><a class="toc-backref" href=
2951         "#id53">5.1&nbsp;&nbsp;&nbsp;Risoluzione Inversa</a></h2>
2952
2953         <p>Per la risoluzione inversa sono invece i provider di
2954         connettivita' a gestire i DNS: se volete impostare il
2955         <em>PTR</em> associato al vostro indirizzo IP dovete
2956         contattare il vostro provider (tipo <em>telecom</em> per
2957         una connessione ADSL) e <em>non il Registar del vostro
2958         dominio</em>.</p>
2959
2960         <p>Ad esempio all'IP <tt class=
2961         "docutils literal"><span class=
2962         "pre">212.22.136.248</span></tt> era associato un PTR
2963         <tt class="docutils literal"><span class=
2964         "pre">bender.piffa.net</span></tt>, corrispondente al
2965         record <tt class="docutils literal"><span class=
2966         "pre">212</span></tt> facente parte della zona <tt class=
2967         "docutils literal"><span class=
2968         "pre">136.22.212.in-addr.arpa</span></tt> gestito dal
2969         provider Tiscali/Nextra proprietario della classe C
2970         <tt class="docutils literal"><span class=
2971         "pre">212.22.136.0</span></tt>. Se avete un solo IP
2972         conviene lasciare al fornitore la gestire del PTR, ma se
2973         avete a disposizione un'itera classe potete chiedere sempre
2974         al vostro provider che vi <em>deleghi</em> la gestione
2975         della zona tramite i vostri DNS.</p>
2976
2977         <p>Per alcuni servizi, ad esempio la spedizione della posta
2978         elettronica, e' richiedeiesto che venga impostata
2979         correttamente l'associazione tra il PTR dell'indirizzo IP
2980         usato dal server di postai e il record A RR al quale questo
2981         punta( RFC1912 sezione 2.1, paragrafo 2).</p>
2982
2983         <p>Si veda:</p>
2984
2985         <ul class="simple">
2986           <li><a class="reference external" href=
2987           "http://www.faqs.org/rfcs/rfc1912.html">http://www.faqs.org/rfcs/rfc1912.html</a>
2988           2.1 Inconsistent, Missing, or Bad Data</li>
2989
2990           <li><a class="reference external" href=
2991           "http://www.ietf.org/rfc/rfc2505.txt">http://www.ietf.org/rfc/rfc2505.txt</a></li>
2992         </ul>
2993       </div>
2994
2995       <div class="section" id="nomi-di-dominio">
2996         <h2><a class="toc-backref" href=
2997         "#id54">5.2&nbsp;&nbsp;&nbsp;Nomi di dominio</a></h2>
2998
2999         <p>Un nome a dominio e' costituito da una serie di stringhe
3000         separate da punti, ad esempio bender.piffa.net. I nomi di
3001         dominio si leggono da destra verso sinistra: <em>TLD</em> o
3002         dominio di primo livello <tt class=
3003         "docutils literal"><span class="pre">net</span></tt>,
3004         secondo livello <tt class="docutils literal"><span class=
3005         "pre">piffa</span></tt>, terzo livello <tt class=
3006         "docutils literal"><span class="pre">bender</span></tt>. Il
3007         dominio di primo livello (o TLD, Top Level Domain,
3008         pronunciato <em>tilde</em> in Italia), per esempio .net o
3009         .it sono limitati e decisi direttamente dall'ente
3010         assegnatario ICANN ( Internet Corporation for Assigned
3011         Names and Numbers).</p>
3012
3013         <p>L'utente finale potra' chiedere l'assegnazione (pagando
3014         un contributo al Register preferito per il mantenimento
3015         delle spese dell'infrastruttura) di un dominio di
3016         <em>secondo</em> livello (es <tt class=
3017         "docutils literal"><span class="pre">piffa</span></tt>) di
3018         una delle varie TLD disponibili (noi italiani diciamo
3019         <em>tildi</em>), sempre che non sia gia' stato assegnato a
3020         qualcun altro.</p>
3021
3022         <p>Ottenuto il secondo livello sara' l'utente a gestirlo:
3023         potra' in stanziare domini di terzo livello (es <tt class=
3024         "docutils literal"><span class="pre">bender</span></tt>) e
3025         anche oltre (es www.andrea.bender.piffa.net). Tali records
3026         saranno mantenuti dall'utente, sotto la sua responsbilita':
3027         se il proprio server DNS non fosse raggiungibile o
3028         risultasse mal configurato gli utenti non potrebbero
3029         risolvere / raggiungere i siti di loro interesse.</p>
3030
3031         <p>Tipicamente si ha almeno un server DNS secondario per
3032         garantire la sussistenza del servizio in caso di guasto del
3033         DNS principale. I secondari <em>replicano</em> i dati
3034         presenti nei DNS principali.</p>
3035       </div>
3036
3037       <div class="section" id="tipologie-di-record">
3038         <h2><a class="toc-backref" href=
3039         "#id55">5.3&nbsp;&nbsp;&nbsp;Tipologie di record</a></h2>
3040
3041         <p>Ad un nome DNS possono corrispondere diversi tipi di
3042         informazioni. Per questo motivo, esistono diversi tipi di
3043         record DNS. Ogni voce del database DNS deve essere
3044         caratterizzata da un tipo. I principali tipi sono:</p>
3045
3046         <ul class="simple">
3047           <li>Record A - Indica la corrispondenza tra un nome ed
3048           uno (o piu') indirizzi IP (per la precisione indirizzi
3049           IPv4, ovvero la versione attualmente in uso).</li>
3050
3051           <li>Record MX - (Mail eXchange) indica a quali server
3052           debba essere inviata la posta elettronica per un certo
3053           dominio.</li>
3054
3055           <li>Record CNAME - Sono usati per creare un alias, ovvero
3056           per fare in modo che lo stesso calcolatore sia noto con
3057           piu' nomi. Uno degli utilizzi di questo tipo di record
3058           consiste nell'attribuire ad un host che offre piu'
3059           servizi un nome per ciascun servizio. In questo modo, i
3060           servizi possono poi essere spostati su altri host senza
3061           dover riconfigurare i client, ma modificando solo il
3062           DNS.</li>
3063
3064           <li>Record PTR - Il DNS viene utilizzato anche per
3065           realizzare la risoluzione inversa, ovvero per far
3066           corrispondere ad un indirizzo IP il corrispondente nome a
3067           dominio. Per questo si usano i record di tipo "PTR" (e
3068           una apposita zona dello spazio dei nomi
3069           in-addr.arpa).</li>
3070
3071           <li>Record AAAA - Restituisce un indirizzo IPv6.</li>
3072
3073           <li>Record SRV - Identificano il server per un
3074           determinato servizio all'interno di un dominio. Possono
3075           essere considerati una generalizzazione dei record
3076           MX.</li>
3077
3078           <li>Record TXT - Associano campi di testo arbitrari ad un
3079           dominio. Questi campi possono contenere una descrizione
3080           informativa oppure essere utilizzati per realizzare
3081           servizi.</li>
3082         </ul>
3083
3084         <p>Vi sono anche tipi di record "di servizio", necessari al
3085         funzionamento del database distribuito: * Record NS -
3086         Utilizzato per indicare quali siano i server DNS
3087         autoritativi per un certo dominio, ovvero per delegarne la
3088         gestione. * Record SOA - (Start of Authority) usato per la
3089         gestione delle zone DNS.</p>
3090       </div>
3091
3092       <div class="section" id="utilizzo">
3093         <h2><a class="toc-backref" href=
3094         "#id56">5.4&nbsp;&nbsp;&nbsp;Utilizzo</a></h2>
3095
3096         <p>I computer vengono identificati in rete grazie agli
3097         indirizzi <em>IP</em>, questi pero' non sono comodi per gli
3098         utenti come riferimento per i vari server. Ad esempio
3099         sarebbe scomodo riferirsi al motore di ricerca Goggle con
3100         uno dei suoi IP: <tt class="docutils literal"><span class=
3101         "pre">74.125.43.104</span></tt>, e' preferibile usare il
3102         nome di dominio <em>www.google.com</em>:</p>
3103         <pre class="literal-block">
3104 ping -c 1 www.google.com
3105 PING www.l.google.com (74.125.43.104) 56(84) bytes of data.
3106 </pre>
3107       </div>
3108
3109       <div class="section" id="risoluzione-dei-nomi-di-dominio">
3110         <h2><a class="toc-backref" href=
3111         "#id57">5.5&nbsp;&nbsp;&nbsp;Risoluzione dei nomi di
3112         dominio</a></h2>
3113
3114         <p>Ci sono vari strumenti per interrogare i server DNS e
3115         ottenere l'indirizzo IP associato al nome di dominio che ci
3116         interessa:</p>
3117         <pre class="literal-block">
3118 $ host www.piffa.net
3119 www.piffa.net is an alias for piffa.net.
3120 piffa.net has address 65.98.21.97
3121 piffa.net mail is handled by 10 65.98.21.97
3122
3123
3124 $ nslookup www.piffa.net
3125 Server:         192.168.0.10
3126 Address:        192.168.0.10#53
3127
3128 Non-authoritative answer:
3129 www.piffa.net   canonical name = piffa.net.
3130 Name:   piffa.net
3131 Address: 65.98.21.97
3132
3133
3134 $ dig www.piffa.net
3135
3136 ; &lt;&lt;&gt;&gt; DiG 9.6.0-P1 &lt;&lt;&gt;&gt; www.piffa.net
3137 ;; global options: +cmd
3138 ;; Got answer:
3139 ;; -&gt;&gt;HEADER&lt;&lt;- opcode: QUERY, status: NOERROR, id: 47751
3140 ;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 4, ADDITIONAL: 4
3141
3142 ;; QUESTION SECTION:
3143 ;www.piffa.net.                 IN      A
3144
3145 ;; ANSWER SECTION:
3146 www.piffa.net.          3489    IN      CNAME   piffa.net.
3147 piffa.net.              3489    IN      A       65.98.21.97
3148
3149 ;; AUTHORITY SECTION:
3150 piffa.net.              86289   IN      NS      ns2.mydomain.com.
3151 piffa.net.              86289   IN      NS      ns1.mydomain.com.
3152 piffa.net.              86289   IN      NS      ns4.mydomain.com.
3153 piffa.net.              86289   IN      NS      ns3.mydomain.com.
3154
3155 ;; ADDITIONAL SECTION:
3156 ns1.mydomain.com.       96208   IN      A       64.94.117.193
3157 ns2.mydomain.com.       96208   IN      A       64.94.31.67
3158 ns3.mydomain.com.       96208   IN      A       66.150.161.137
3159 ns4.mydomain.com.       96208   IN      A       63.251.83.74
3160
3161 ;; Query time: 1 msec
3162 ;; SERVER: 192.168.0.10#53(192.168.0.10)
3163 ;; WHEN: Sun May 10 21:23:11 2009
3164 ;; MSG SIZE  rcvd: 209
3165 </pre>
3166
3167         <p>Lo strumento piu' esaustivo e' <tt class=
3168         "docutils literal"><span class="pre">dig</span></tt>,
3169         installabile con il pacchetto <tt class=
3170         "docutils literal"><span class="pre">dnsutils</span></tt>
3171         .</p>
3172       </div>
3173
3174       <div class="section" id="dig">
3175         <h2><a class="toc-backref" href=
3176         "#id58">5.6&nbsp;&nbsp;&nbsp;Dig</a></h2>
3177
3178         <p>Vediamo alcune opzioni utili nell'utilizzo di <tt class=
3179         "docutils literal"><span class="pre">dig</span></tt> per
3180         l'interrogazione dei DNS Server:</p>
3181         <pre class="literal-block">
3182 $ dig www.google.it
3183
3184 ; &lt;&lt;&gt;&gt; DiG 9.6.0-P1 &lt;&lt;&gt;&gt; www.google.it
3185 ;; global options: +cmd
3186 ;; Got answer:
3187 ;; -&gt;&gt;HEADER&lt;&lt;- opcode: QUERY, status: NOERROR, id: 18816
3188 ;; flags: qr rd ra; QUERY: 1, ANSWER: 6, AUTHORITY: 7, ADDITIONAL: 0
3189
3190 ;; QUESTION SECTION:
3191 ;www.google.it.                 IN      A
3192
3193 ;; ANSWER SECTION:
3194 www.google.it.          250683  IN      CNAME   www.google.com.
3195 www.google.com.         334819  IN      CNAME   www.l.google.com.
3196 www.l.google.com.       186     IN      A       74.125.43.103
3197 www.l.google.com.       186     IN      A       74.125.43.104
3198 www.l.google.com.       186     IN      A       74.125.43.147
3199 www.l.google.com.       186     IN      A       74.125.43.99
3200
3201 ;; AUTHORITY SECTION:
3202 l.google.com.           80856   IN      NS      f.l.google.com.
3203 l.google.com.           80856   IN      NS      d.l.google.com.
3204 l.google.com.           80856   IN      NS      b.l.google.com.
3205 l.google.com.           80856   IN      NS      c.l.google.com.
3206 l.google.com.           80856   IN      NS      a.l.google.com.
3207 l.google.com.           80856   IN      NS      e.l.google.com.
3208 l.google.com.           80856   IN      NS      g.l.google.com.
3209
3210 ;; Query time: 1 msec
3211 ;; SERVER: 192.168.0.10#53(192.168.0.10)
3212 ;; WHEN: Sun May 10 21:34:47 2009
3213 ;; MSG SIZE  rcvd: 255
3214 </pre>
3215
3216         <dl class="docutils">
3217           <dt>$ dig</dt>
3218
3219           <dd>(senza opzioni o oggetti) Fornisce l'elenco dei
3220           <em>root server</em> utilizzati. I root server sono i
3221           server che mantengono le informazioni sui domini di primo
3222           livello (TLD) e sono quindi il punto di partenza per
3223           scorrere nella directory dei DNS per recuperare le
3224           informazioni (tipicamente un campo <tt class=
3225           "docutils literal"><span class="pre">A</span></tt> per un
3226           indirizzo IP) che ci servono per raggiungere un certo
3227           servizio.</dd>
3228         </dl>
3229
3230         <p>$ dig</p>
3231
3232         <blockquote>
3233           <p>...</p>
3234
3235           <p>;; ANSWER SECTION: . 192032 IN NS C.ROOT-SERVERS.NET.
3236           . 192032 IN NS E.ROOT-SERVERS.NET. . 192032 IN NS
3237           B.ROOT-SERVERS.NET. . 192032 IN NS L.ROOT-SERVERS.NET. .
3238           192032 IN NS A.ROOT-SERVERS.NET. . 192032 IN NS
3239           F.ROOT-SERVERS.NET. . 192032 IN NS H.ROOT-SERVERS.NET. .
3240           192032 IN NS G.ROOT-SERVERS.NET. . 192032 IN NS
3241           K.ROOT-SERVERS.NET. . 192032 IN NS M.ROOT-SERVERS.NET. .
3242           192032 IN NS I.ROOT-SERVERS.NET. . 192032 IN NS
3243           J.ROOT-SERVERS.NET. . 192032 IN NS
3244           D.ROOT-SERVERS.NET.</p>
3245
3246           <p>...</p>
3247         </blockquote>
3248
3249         <dl class="docutils">
3250           <dt>dig @nome_dns</dt>
3251
3252           <dd>Permette di fare una query ad un server dns
3253           particolare. Es: <tt class=
3254           "docutils literal"><span class="pre">dig</span>
3255           <span class="pre">@151.99.25.1</span> <span class=
3256           "pre">www.google.it</span></tt></dd>
3257
3258           <dt>dig MX www.google.it</dt>
3259
3260           <dd>Chiede un campo in particolare, in questo caso il
3261           campo MX</dd>
3262
3263           <dt>dig ANY www.google.it</dt>
3264
3265           <dd>Chiede tutti i campi, non solo i campi
3266           <em>a</em></dd>
3267
3268           <dt>dig -x 74.125.43.104</dt>
3269
3270           <dd>Effettua una richiesta inversa: dall'IP al PTR
3271           associato.</dd>
3272         </dl>
3273       </div>
3274
3275       <div class="section" id="resolv-conf">
3276         <h2><a class="toc-backref" href=
3277         "#id59">5.7&nbsp;&nbsp;&nbsp;resolv.conf</a></h2>
3278
3279         <p>Il file <tt class="docutils literal"><span class=
3280         "pre">/etc/resolv.conf</span></tt> contiene le impostazioni
3281         sul dns usato dal sistema, in genere anche altre
3282         applicazioni che devono effettuare query DNS leggono
3283         resolv.conf per conoscere l'ubicazione del DNS.</p>
3284
3285         <p>/etc/resolv.conf:</p>
3286
3287         <blockquote>
3288           <ul class="simple">
3289             <li><tt class="docutils literal"><span class=
3290             "pre">nameserver</span></tt>: indica il nameserver da
3291             utilizzare, indicato con l'indirizzo IP.</li>
3292
3293             <li><tt class="docutils literal"><span class=
3294             "pre">domain</span></tt>: indica il nome di dominio
3295             della rete attuale, vedi voce successiva.</li>
3296
3297             <li><tt class="docutils literal"><span class=
3298             "pre">search</span></tt>: nome di dominio usato dalla
3299             rete sul quale cercare gli hosts. Ad esempio se
3300             impostato su <tt class="docutils literal"><span class=
3301             "pre">piffa.net</span></tt> pingando l' host <tt class=
3302             "docutils literal"><span class="pre">bender</span></tt>
3303             viene automaticamente fatto un tentativo di ricerca per
3304             <tt class="docutils literal"><span class=
3305             "pre">bender.piffa.net</span></tt>.</li>
3306           </ul>
3307         </blockquote>
3308
3309         <p>Predisponendo l'infrastruttura di rete della vostra LAN
3310         e' consigliabile impostare sempre almeno un DNS cache sul
3311         vostro server locale per i vari client. In questo modo in
3312         caso di malfunzionamento del DNS o necessita' di
3313         intervenire / sostituire i DNS non sara' piu' necessario
3314         dover reimpostare ogni singolo client della LAN: bastera'
3315         intervenire sul server DNS cache, ad esempio per utilizzare
3316         un nuovo forwarder, o modificare al volo un record DNS. La
3317         modifica, anche detta <em>mascheramento</em>, di un record
3318         come il <em>server smtp</em> o un <em>MX</em> potrebbe
3319         tirarvi rapidamente fuori dai guai nel caso di un problema
3320         improvviso con la posta elettronica o qualunque altro
3321         servizio che possiate reindirizzare col DNS.</p>
3322
3323         <p>Utilizzare un server DHCP e una DNS cache come
3324         <tt class="docutils literal"><span class=
3325         "pre">Dnsmasq</span></tt> possono permettervi di risolvere
3326         al volo molte delle problematiche relative alla
3327         configurazione della vostra LAN: ad esempio dover
3328         intervenire manualmente su decine di client per modificare
3329         le impostazioni di SMTP | gateway | DNS | proxy.</p>
3330
3331         <p>Si veda anche la pagina man di resolv.conf.</p>
3332
3333         <div class="warning">
3334           <p class="first admonition-title">Avvertenza</p>
3335
3336           <p class="last">Attenzione: se si usa un client DHCP, ppp
3337           (ADSL compresa) o simile questo file potrebbe' essere
3338           riscritto automaticamente in base a quanto ottenuto dal
3339           DHCP. Si veda la documentazione del pacchetto <tt class=
3340           "docutils literal"><span class=
3341           "pre">resolvconf</span></tt>.</p>
3342         </div>
3343       </div>
3344
3345       <div class="section" id="etc-hosts">
3346         <h2><a class="toc-backref" href=
3347         "#id60">5.8&nbsp;&nbsp;&nbsp;/etc/hosts</a></h2>
3348
3349         <p>Tabella statica per l'associazione tra IP e nomi di
3350         dominio:</p>
3351         <pre class="literal-block">
3352 # cat /etc/hosts
3353 </pre>
3354
3355         <blockquote>
3356           127.0.0.1 localhost.localdomain localhost 10.10.208.162
3357           daniela daniela.piffa.net 10.10.208.254 mirror
3358           mirror.piffa.net 91.191.138.15 thepiratebay.org
3359           192.168.0.11 chrome chrome.mydomain.com
3360         </blockquote>
3361
3362         <p>Il contenuto del file e' un associazione tra un
3363         <em>IP</em> e stringhe di testo (anche piu' di una per IP)
3364         es: <tt class="docutils literal"><span class=
3365         "pre">mirror</span></tt> o veri e propi nomi di dominio
3366         <tt class="docutils literal"><span class=
3367         "pre">mirror.piffa.net</span></tt>. Si puo inserire un nome
3368         semplice come <em>casa</em> per riferirsi ad un host che si
3369         ha necessita' di contattare spesso, oppure mappare un nome
3370         di dominio completo su un indirizzo IP.</p>
3371
3372         <p>Il problema e' la gestione di questo file su molti
3373         hosts: quando gli host cambiano IP si devono aggiornare
3374         manualmente i records, operazione in se' non
3375         particolarmente gravosa ma che andra' fatta per ogni client
3376         della vostra LAN. Un metodo semplice per distribuire questo
3377         file e' utilizzare <tt class=
3378         "docutils literal"><span class="pre">Dnsmasq</span></tt>:
3379         questo infatti legge e onora il file <tt class=
3380         "docutils literal"><span class="pre">hosts</span></tt> che
3381         avete prodotto e lo rende disponibile ai clients tramite le
3382         query DNS.</p>
3383
3384         <p>Dnsmasq lavora come un server DNS, i vostri client lo
3385         interrogheranno per tradurre nomi di host e domini in
3386         indirizzi IP, risolvendo il problema della
3387         <em>distribuzione</em> del file <tt class=
3388         "docutils literal"><span class="pre">hosts</span></tt> tra
3389         molteplici clients. Infatti il servizio DNS indica appunto
3390         una <em>directory distribuita</em> per la risoluzione dei
3391         nomi di dominio, risolvendo i problemi dell'aggiornamento e
3392         diffusione dei continui cambiamenti di questa.</p>
3393
3394         <p>Modificare la risoluzione di un nome di dominio
3395         esistente (ad esempio riconducendola a un IP interno) e' un
3396         modo drastico e funzionale per <em>annullarlo</em>
3397         rendendolo non disponibile alla propria rete locale. Ad
3398         esempio aggiungere al file <tt class=
3399         "docutils literal"><span class=
3400         "pre">/etc/hosts</span></tt>:</p>
3401         <pre class="literal-block">
3402 127.0.0.1       www.facebook.com
3403 </pre>
3404
3405         <p>Impedira' agli utenti della LAN di raggiungere
3406         <em>facebook</em>, ora reindirizzato a <tt class=
3407         "docutils literal"><span class=
3408         "pre">localhost</span></tt>.</p>
3409
3410         <p>Oppure si potrebbe ricondurre l'indirizzo IP di un
3411         server HTTP pubblico usato per i downloads (ad esempio un
3412         mirror della propia distribuzione come <tt class=
3413         "docutils literal"><span class=
3414         "pre">ftp.it.debian.org</span></tt>) a un equivalente
3415         mirror creato all'interno della rete locale, riducendo il
3416         traffico verso l'esterno e aumentando notevolmente la
3417         velocita' di scaricamento.</p>
3418       </div>
3419
3420       <div class="section" id="hostname">
3421         <h2><a class="toc-backref" href=
3422         "#id61">5.9&nbsp;&nbsp;&nbsp;Hostname</a></h2>
3423
3424         <p>Ogni computer ha un <em>proprio nome</em> visualizzabile
3425         (e modificabile) con il comando <tt class=
3426         "docutils literal"><span class="pre">hostname</span></tt>.
3427         Quando utilizzate a una shell su un host in genere
3428         l'hostname compare nel prompt della shell.</p>
3429
3430         <p>Per visualizzare il nome dell'host su cui si sta
3431         operando si digiti semplicemnte <tt class=
3432         "docutils literal"><span class="pre">hostname</span></tt>,
3433         lo stesso comando con un oggetto modifica temporaneamente
3434         il nome dell'host. Per modificare in modo permanente il
3435         nome del computer si modifichi il contenuto del file
3436         <tt class="docutils literal"><span class=
3437         "pre">/etc/hostname</span></tt>.</p>
3438
3439         <p>Si faccia attenzione a non aver un hostname puramente
3440         numerico: ad es. <tt class="docutils literal"><span class=
3441         "pre">161</span></tt>. E' opportuno che il nome sia
3442         comunque un alfanumerico: <tt class=
3443         "docutils literal"><span class="pre">host-161</span></tt> o
3444         simile.</p>
3445
3446         <div class="section" id="fqdn">
3447           <h3><a class="toc-backref" href=
3448           "#id62">5.9.1&nbsp;&nbsp;&nbsp;FQDN</a></h3>
3449
3450           <p>Per semplicita' gli host sono generalemente
3451           raggiungibili dall'esterno mappando il loro IP su un nome
3452           di dominio FQDN: fully qualified domain name, composto
3453           generalmente da <em>hostname</em>.``domain-name``, ad es.
3454           <em>bender</em>.``piffa.net``.</p>
3455
3456           <p>Alcuni servizi internet fanno affidamento sul PTR
3457           dell'IP del server per cercare una conferma che il
3458           <em>servizio</em> sia veramente chi afferma di essere (ad
3459           esempio STMP).</p>
3460
3461           <p>Non e' automatico che un servizio, ad esempio un
3462           server di posta, si qualifichi leggendo il contenuto del
3463           file <tt class="docutils literal"><span class=
3464           "pre">hostname</span></tt> aggiungendo come suffisso il
3465           dominio della rete di cui fa parte l' host: a volte
3466           questo parametro puo' essere specificato nel file di
3467           configurazione del servizio:</p>
3468           <pre class="literal-block">
3469 * Squid (HTTP proxy): ``visible_hostname``
3470
3471 * Postfix (SMTP server): ``myhostname``
3472 </pre>
3473
3474           <p>I motivi sono diversi, senza entrare nel dettaglio dei
3475           vari protocolli si pensi comunque che un host ha sempre
3476           un solo nome, ma puo' avere un numero variabile di
3477           <em>device di rete</em> sia fisici che virtuali con
3478           relativi <em>indirizzi IP</em>, e piu' servizi in ascolto
3479           sui vari IP.</p>
3480         </div>
3481       </div>
3482     </div>
3483
3484     <div class="section" id="dnsmasq">
3485       <h1><a class="toc-backref" href=
3486       "#id63">6&nbsp;&nbsp;&nbsp;DNSmasq</a></h1>
3487
3488       <p>Dnsmasq puo' svolgere le funzioni di un DNS cache /
3489       forwarder, server DHCP, e' caratterizzato dalla facilita' di
3490       configurazione, limitato uso di risorse, adattabilita' a
3491       connessioni <em>dinamiche</em> come ADSL o altre punto a
3492       punto (anche via cellulari) per condividere rapidamente la
3493       rete (cosa molto utile se ci dovesse trovare a ridare
3494       connettetivita' a una rete momentaneamente sprovvista), dalla
3495       possibilita' di modificare rapidamente i record DNS serviti
3496       alla rete anche grazie alla distribuzione del file <tt class=
3497       "docutils literal"><span class="pre">/etc/hosts</span></tt>
3498       locale. Puo' essere anche utilizzato come <cite>server per il
3499       boot da rete
3500       &lt;http://www.debian-administration.org/articles/478&gt;_</cite>
3501       .</p>
3502
3503       <p>Dnsmasq e' un interessante alternativa all'uso del server
3504       DNS Bind in modalita' <em>forwarding e cache-only</em> (non
3505       autoritativo) accompagnato dal server DHCPd. I vantaggi
3506       sono:</p>
3507
3508       <ul class="simple">
3509         <li>Leggerezza: puo' essere fatto girare su una macchina
3510         relativamente debole in caso di bisogno.</li>
3511
3512         <li>Rapidita' di configurazione (in particolare per servire
3513         dei record A / MX alla rete, modificando al volo i valori
3514         originali ospitati sul server DNS pubblico).</li>
3515
3516         <li>Ben integrato con connessioni PPP : e' ingrado di
3517         rilevare i cambiamenti dei dns suggeriti e impostarli come
3518         forwarders (utile se dovete rendere disponibile rapidamente
3519