]> git.piffa.net Git - doc/.git/blob - servizi.html
Firewall, tutto da rivedere!
[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 7 December 2008), 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: David Goodger (goodger@python.org)
18   :Id: $Id: html4css1.css 5196 2007-06-03 20:25:28Z wiemann $
19   :Copyright: This stylesheet has been placed in the public domain.
20
21   Default cascading style sheet for the HTML output of Docutils.
22
23   See http://docutils.sf.net/docs/howto/html-stylesheets.html for how to
24   customize this style sheet.
25   */
26
27   /* used to remove borders from tables and images */
28   .borderless, table.borderless td, table.borderless th {
29   border: 0 }
30
31   table.borderless td, table.borderless th {
32   /* Override padding for "table.docutils td" with "! important".
33      The right padding separates the table cells. */
34   padding: 0 0.5em 0 0 ! important }
35
36   .first {
37   /* Override more specific margin styles with "! important". */
38   margin-top: 0 ! important }
39
40   .last, .with-subtitle {
41   margin-bottom: 0 ! important }
42
43   .hidden {
44   display: none }
45
46   a.toc-backref {
47   text-decoration: none ;
48   color: black }
49
50   blockquote.epigraph {
51   margin: 2em 5em ; }
52
53   dl.docutils dd {
54   margin-bottom: 0.5em }
55
56   /* Uncomment (and remove this text!) to get bold-faced definition list terms
57   dl.docutils dt {
58   font-weight: bold }
59   */
60
61   div.abstract {
62   margin: 2em 5em }
63
64   div.abstract p.topic-title {
65   font-weight: bold ;
66   text-align: center }
67
68   div.admonition, div.attention, div.caution, div.danger, div.error,
69   div.hint, div.important, div.note, div.tip, div.warning {
70   margin: 2em ;
71   border: medium outset ;
72   padding: 1em }
73
74   div.admonition p.admonition-title, div.hint p.admonition-title,
75   div.important p.admonition-title, div.note p.admonition-title,
76   div.tip p.admonition-title {
77   font-weight: bold ;
78   font-family: sans-serif }
79
80   div.attention p.admonition-title, div.caution p.admonition-title,
81   div.danger p.admonition-title, div.error p.admonition-title,
82   div.warning p.admonition-title {
83   color: red ;
84   font-weight: bold ;
85   font-family: sans-serif }
86
87   /* Uncomment (and remove this text!) to get reduced vertical space in
88    compound paragraphs.
89   div.compound .compound-first, div.compound .compound-middle {
90   margin-bottom: 0.5em }
91
92   div.compound .compound-last, div.compound .compound-middle {
93   margin-top: 0.5em }
94   */
95
96   div.dedication {
97   margin: 2em 5em ;
98   text-align: center ;
99   font-style: italic }
100
101   div.dedication p.topic-title {
102   font-weight: bold ;
103   font-style: normal }
104
105   div.figure {
106   margin-left: 2em ;
107   margin-right: 2em }
108
109   div.footer, div.header {
110   clear: both;
111   font-size: smaller }
112
113   div.line-block {
114   display: block ;
115   margin-top: 1em ;
116   margin-bottom: 1em }
117
118   div.line-block div.line-block {
119   margin-top: 0 ;
120   margin-bottom: 0 ;
121   margin-left: 1.5em }
122
123   div.sidebar {
124   margin: 0 0 0.5em 1em ;
125   border: medium outset ;
126   padding: 1em ;
127   background-color: #ffffee ;
128   width: 40% ;
129   float: right ;
130   clear: right }
131
132   div.sidebar p.rubric {
133   font-family: sans-serif ;
134   font-size: medium }
135
136   div.system-messages {
137   margin: 5em }
138
139   div.system-messages h1 {
140   color: red }
141
142   div.system-message {
143   border: medium outset ;
144   padding: 1em }
145
146   div.system-message p.system-message-title {
147   color: red ;
148   font-weight: bold }
149
150   div.topic {
151   margin: 2em }
152
153   h1.section-subtitle, h2.section-subtitle, h3.section-subtitle,
154   h4.section-subtitle, h5.section-subtitle, h6.section-subtitle {
155   margin-top: 0.4em }
156
157   h1.title {
158   text-align: center }
159
160   h2.subtitle {
161   text-align: center }
162
163   hr.docutils {
164   width: 75% }
165
166   img.align-left {
167   clear: left }
168
169   img.align-right {
170   clear: right }
171
172   ol.simple, ul.simple {
173   margin-bottom: 1em }
174
175   ol.arabic {
176   list-style: decimal }
177
178   ol.loweralpha {
179   list-style: lower-alpha }
180
181   ol.upperalpha {
182   list-style: upper-alpha }
183
184   ol.lowerroman {
185   list-style: lower-roman }
186
187   ol.upperroman {
188   list-style: upper-roman }
189
190   p.attribution {
191   text-align: right ;
192   margin-left: 50% }
193
194   p.caption {
195   font-style: italic }
196
197   p.credits {
198   font-style: italic ;
199   font-size: smaller }
200
201   p.label {
202   white-space: nowrap }
203
204   p.rubric {
205   font-weight: bold ;
206   font-size: larger ;
207   color: maroon ;
208   text-align: center }
209
210   p.sidebar-title {
211   font-family: sans-serif ;
212   font-weight: bold ;
213   font-size: larger }
214
215   p.sidebar-subtitle {
216   font-family: sans-serif ;
217   font-weight: bold }
218
219   p.topic-title {
220   font-weight: bold }
221
222   pre.address {
223   margin-bottom: 0 ;
224   margin-top: 0 ;
225   font-family: serif ;
226   font-size: 100% }
227
228   pre.literal-block, pre.doctest-block {
229   margin-left: 2em ;
230   margin-right: 2em }
231
232   span.classifier {
233   font-family: sans-serif ;
234   font-style: oblique }
235
236   span.classifier-delimiter {
237   font-family: sans-serif ;
238   font-weight: bold }
239
240   span.interpreted {
241   font-family: sans-serif }
242
243   span.option {
244   white-space: nowrap }
245
246   span.pre {
247   white-space: pre }
248
249   span.problematic {
250   color: red }
251
252   span.section-subtitle {
253   /* font-size relative to parent (h1..h6 element) */
254   font-size: 80% }
255
256   table.citation {
257   border-left: solid 1px gray;
258   margin-left: 1px }
259
260   table.docinfo {
261   margin: 2em 4em }
262
263   table.docutils {
264   margin-top: 0.5em ;
265   margin-bottom: 0.5em }
266
267   table.footnote {
268   border-left: solid 1px black;
269   margin-left: 1px }
270
271   table.docutils td, table.docutils th,
272   table.docinfo td, table.docinfo th {
273   padding-left: 0.5em ;
274   padding-right: 0.5em ;
275   vertical-align: top }
276
277   table.docutils th.field-name, table.docinfo th.docinfo-name {
278   font-weight: bold ;
279   text-align: left ;
280   white-space: nowrap ;
281   padding-left: 0 }
282
283   h1 tt.docutils, h2 tt.docutils, h3 tt.docutils,
284   h4 tt.docutils, h5 tt.docutils, h6 tt.docutils {
285   font-size: 100% }
286
287   ul.auto-toc {
288   list-style-type: none }
289
290   </style>
291 </head>
292
293 <body>
294   <div class="document" id="servizi-di-rete-passo-a-passo">
295     <h1 class="title">Servizi di rete passo a passo</h1>
296
297     <h2 class="subtitle" id=
298     "appunti-sulla-installazione-e-configurazione-dei-servizi">
299     Appunti sulla installazione e configurazione dei servizi</h2>
300
301     <blockquote>
302       <table class="docutils field-list" frame="void" rules="none">
303         <col class="field-name">
304         <col class="field-body">
305
306         <tbody valign="top">
307           <tr class="field">
308             <th class="field-name">Author:</th>
309
310             <td class="field-body">Andrea Manni</td>
311           </tr>
312
313           <tr class="field">
314             <th class="field-name">Copyright:</th>
315
316             <td class="field-body">GFDL</td>
317           </tr>
318
319           <tr class="field">
320             <th class="field-name">Version:</th>
321
322             <td class="field-body">0.4</td>
323           </tr>
324         </tbody>
325       </table>
326     </blockquote>
327
328     <p>Questa guida e' dedicata agli studenti delle lezioni di
329     informatica tenute da Andrea nel lab208. Nella parte iniziale
330     sono presenti alcuni richiami alle impostazioni di rete e di
331     installazione del laboratorio 208 (lab208) dove generalmente si
332     tengono le lezioni. Questi parametri non sono interessanti per
333     chiunque si trovasse al di fuori della rete piffa.net .</p>
334
335     <div class="contents topic" id="indice-degli-argomenti">
336       <p class="topic-title first">Indice degli argomenti</p>
337
338       <ul class="auto-toc simple">
339         <li>
340           <a class="reference internal" href=
341           "#configurazione-sistema" id="id6" name=
342           "id6">1&nbsp;&nbsp;&nbsp;Configurazione sistema</a>
343
344           <ul class="auto-toc">
345             <li><a class="reference internal" href=
346             "#solo-per-uso-interno" id="id7" name=
347             "id7">1.1&nbsp;&nbsp;&nbsp;Solo per uso
348             interno</a></li>
349
350             <li><a class="reference internal" href="#rete" id="id8"
351             name="id8">1.2&nbsp;&nbsp;&nbsp;Rete</a></li>
352
353             <li><a class="reference internal" href=
354             "#bash-completion" id="id9" name=
355             "id9">1.3&nbsp;&nbsp;&nbsp;Bash completion</a></li>
356
357             <li><a class="reference internal" href="#vim" id="id10"
358             name="id10">1.4&nbsp;&nbsp;&nbsp;Vim</a></li>
359
360             <li><a class="reference internal" href="#vnc" id="id11"
361             name="id11">1.5&nbsp;&nbsp;&nbsp;VNC</a></li>
362
363             <li><a class="reference internal" href=
364             "#lista-dei-pacchetti-di-base" id="id12" name=
365             "id12">1.6&nbsp;&nbsp;&nbsp;Lista dei pacchetti di
366             base</a></li>
367
368             <li>
369               <a class="reference internal" href=
370               "#apt-configurazione" id="id13" name=
371               "id13">1.7&nbsp;&nbsp;&nbsp;Apt configurazione</a>
372
373               <ul class="auto-toc">
374                 <li><a class="reference internal" href=
375                 "#sources-list" id="id14" name=
376                 "id14">1.7.1&nbsp;&nbsp;&nbsp;sources.list</a></li>
377
378                 <li><a class="reference internal" href=
379                 "#etc-apt-apt-conf" id="id15" name=
380                 "id15">1.7.2&nbsp;&nbsp;&nbsp;/etc/apt/apt.conf</a></li>
381               </ul>
382             </li>
383           </ul>
384         </li>
385
386         <li><a class="reference internal" href="#squid" id="id16"
387         name="id16">2&nbsp;&nbsp;&nbsp;Squid</a></li>
388
389         <li>
390           <a class="reference internal" href="#apache" id="id17"
391           name="id17">3&nbsp;&nbsp;&nbsp;Apache</a>
392
393           <ul class="auto-toc">
394             <li><a class="reference internal" href=
395             "#pacchetti-da-installare" id="id18" name=
396             "id18">3.1&nbsp;&nbsp;&nbsp;Pacchetti da
397             installare::</a></li>
398
399             <li><a class="reference internal" href=
400             "#configurazione-di-apache" id="id19" name=
401             "id19">3.2&nbsp;&nbsp;&nbsp;Configurazione di
402             Apache</a></li>
403
404             <li><a class="reference internal" href="#apache-conf"
405             id="id20" name=
406             "id20">3.3&nbsp;&nbsp;&nbsp;apache.conf</a></li>
407
408             <li>
409               <a class="reference internal" href=
410               "#installazione-di-php" id="id21" name=
411               "id21">3.4&nbsp;&nbsp;&nbsp;Installazione di PHP</a>
412
413               <ul class="auto-toc">
414                 <li><a class="reference internal" href=
415                 "#test-del-modulo-php" id="id22" name=
416                 "id22">3.4.1&nbsp;&nbsp;&nbsp;Test del modulo
417                 php</a></li>
418
419                 <li><a class="reference internal" href=
420                 "#installazione-del-supporto-per-mysql" id="id23"
421                 name="id23">3.4.2&nbsp;&nbsp;&nbsp;Installazione
422                 del supporto per Mysql</a></li>
423
424                 <li><a class="reference internal" href=
425                 "#phpmyadmin" id="id24" name=
426                 "id24">3.4.3&nbsp;&nbsp;&nbsp;phpmyadmin</a></li>
427
428                 <li><a class="reference internal" href=
429                 "#installazione-del-supporto-per-postgresql" id=
430                 "id25" name=
431                 "id25">3.4.4&nbsp;&nbsp;&nbsp;Installazione del
432                 supporto per Postgresql</a></li>
433
434                 <li><a class="reference internal" href=
435                 "#phppgadmin" id="id26" name=
436                 "id26">3.4.5&nbsp;&nbsp;&nbsp;phppgadmin</a></li>
437               </ul>
438             </li>
439
440             <li>
441               <a class="reference internal" href="#virtual-hosts"
442               id="id27" name="id27">3.5&nbsp;&nbsp;&nbsp;Virtual
443               hosts</a>
444
445               <ul class="auto-toc">
446                 <li><a class="reference internal" href=
447                 "#gestione-dns" id="id28" name=
448                 "id28">3.5.1&nbsp;&nbsp;&nbsp;Gestione DNS</a></li>
449
450                 <li><a class="reference internal" href=
451                 "#virtual-host" id="id29" name=
452                 "id29">3.5.2&nbsp;&nbsp;&nbsp;Virtual host</a></li>
453               </ul>
454             </li>
455
456             <li>
457               <a class="reference internal" href=
458               "#negoziazione-accessi" id="id30" name=
459               "id30">3.6&nbsp;&nbsp;&nbsp;Negoziazione accessi</a>
460
461               <ul class="auto-toc">
462                 <li><a class="reference internal" href=
463                 "#limiti-su-base-ip" id="id31" name=
464                 "id31">3.6.1&nbsp;&nbsp;&nbsp;Limiti su base
465                 ip</a></li>
466               </ul>
467             </li>
468
469             <li>
470               <a class="reference internal" href=
471               "#user-authentication" id="id32" name=
472               "id32">3.7&nbsp;&nbsp;&nbsp;User Authentication</a>
473
474               <ul class="auto-toc">
475                 <li><a class="reference internal" href=
476                 "#definire-la-cartella" id="id33" name=
477                 "id33">3.7.1&nbsp;&nbsp;&nbsp;Definire la
478                 cartella</a></li>
479
480                 <li><a class="reference internal" href=
481                 "#creazione-del-database-delle-passwords" id="id34"
482                 name="id34">3.7.2&nbsp;&nbsp;&nbsp;Creazione del
483                 database delle passwords</a></li>
484
485                 <li><a class="reference internal" href="#id3" id=
486                 "id35" name=
487                 "id35">3.7.3&nbsp;&nbsp;&nbsp;Configurazione di
488                 Apache</a></li>
489               </ul>
490             </li>
491
492             <li><a class="reference internal" href="#cavets" id=
493             "id36" name="id36">3.8&nbsp;&nbsp;&nbsp;Cavets</a></li>
494           </ul>
495         </li>
496
497         <li>
498           <a class="reference internal" href="#domain-name-system"
499           id="id37" name="id37">4&nbsp;&nbsp;&nbsp;Domain Name
500           System</a>
501
502           <ul class="auto-toc">
503             <li><a class="reference internal" href=
504             "#nomi-di-dominio" id="id38" name=
505             "id38">4.1&nbsp;&nbsp;&nbsp;Nomi di dominio</a></li>
506
507             <li><a class="reference internal" href=
508             "#tipologie-di-record" id="id39" name=
509             "id39">4.2&nbsp;&nbsp;&nbsp;Tipologie di
510             record</a></li>
511
512             <li><a class="reference internal" href="#utilizzo" id=
513             "id40" name=
514             "id40">4.3&nbsp;&nbsp;&nbsp;Utilizzo</a></li>
515
516             <li><a class="reference internal" href=
517             "#risoluzione-dei-nomi-di-dominio" id="id41" name=
518             "id41">4.4&nbsp;&nbsp;&nbsp;Risoluzione dei nomi di
519             dominio</a></li>
520
521             <li><a class="reference internal" href="#dig" id="id42"
522             name="id42">4.5&nbsp;&nbsp;&nbsp;Dig</a></li>
523           </ul>
524         </li>
525
526         <li><a class="reference internal" href="#dnsmasq" id="id43"
527         name="id43">5&nbsp;&nbsp;&nbsp;DNSmasq</a></li>
528
529         <li>
530           <a class="reference internal" href="#samba" id="id44"
531           name="id44">6&nbsp;&nbsp;&nbsp;Samba</a>
532
533           <ul class="auto-toc">
534             <li><a class="reference internal" href="#pacchetti" id=
535             "id45" name=
536             "id45">6.1&nbsp;&nbsp;&nbsp;Pacchetti</a></li>
537
538             <li><a class="reference internal" href=
539             "#passwords-e-autenticazione" id="id46" name=
540             "id46">6.2&nbsp;&nbsp;&nbsp;Passwords e
541             autenticazione</a></li>
542
543             <li><a class="reference internal" href=
544             "#creazione-utenti" id="id47" name=
545             "id47">6.3&nbsp;&nbsp;&nbsp;Creazione Utenti</a></li>
546
547             <li>
548               <a class="reference internal" href=
549               "#creare-la-condivisione" id="id48" name=
550               "id48">6.4&nbsp;&nbsp;&nbsp;Creare la
551               condivisione</a>
552
553               <ul class="auto-toc">
554                 <li><a class="reference internal" href=
555                 "#sicurezza-permessi-di-esecuzione-sul-server" id=
556                 "id49" name=
557                 "id49">6.4.1&nbsp;&nbsp;&nbsp;Sicurezza: permessi
558                 di esecuzione sul server</a></li>
559               </ul>
560             </li>
561
562             <li><a class="reference internal" href=
563             "#configurazione-dell-applicativo-samba-vero-e-proprio"
564             id="id50" name=
565             "id50">6.5&nbsp;&nbsp;&nbsp;Configurazione
566             dell'applicativo Samba vero e proprio.</a></li>
567
568             <li><a class="reference internal" href=
569             "#testare-il-servizio" id="id51" name=
570             "id51">6.6&nbsp;&nbsp;&nbsp;Testare il
571             Servizio</a></li>
572           </ul>
573         </li>
574
575         <li>
576           <a class="reference internal" href="#firewall" id="id52"
577           name="id52">7&nbsp;&nbsp;&nbsp;Firewall</a>
578
579           <ul class="auto-toc">
580             <li><a class="reference internal" href="#links" id=
581             "id53" name="id53">7.1&nbsp;&nbsp;&nbsp;Links</a></li>
582
583             <li><a class="reference internal" href="#ipfilter" id=
584             "id54" name=
585             "id54">7.2&nbsp;&nbsp;&nbsp;Ipfilter</a></li>
586
587             <li>
588               <a class="reference internal" href=
589               "#progettazione-di-un-firewall" id="id55" name=
590               "id55">7.3&nbsp;&nbsp;&nbsp;Progettazione di un
591               firewall</a>
592
593               <ul class="auto-toc">
594                 <li><a class="reference internal" href=
595                 "#collocazione" id="id56" name=
596                 "id56">7.3.1&nbsp;&nbsp;&nbsp;Collocazione</a></li>
597
598                 <li><a class="reference internal" href=
599                 "#policy-di-default" id="id57" name=
600                 "id57">7.3.2&nbsp;&nbsp;&nbsp;Policy di
601                 default</a></li>
602
603                 <li><a class="reference internal" href="#hardware"
604                 id="id58" name=
605                 "id58">7.3.3&nbsp;&nbsp;&nbsp;Hardware</a></li>
606               </ul>
607             </li>
608
609             <li><a class="reference internal" href=
610             "#percorso-dei-pacchetti-tra-tabelle-e-catene" id=
611             "id59" name="id59">7.4&nbsp;&nbsp;&nbsp;Percorso dei
612             pacchetti tra tabelle e catene</a></li>
613
614             <li>
615               <a class="reference internal" href=
616               "#concetti-di-base" id="id60" name=
617               "id60">7.5&nbsp;&nbsp;&nbsp;Concetti di base</a>
618
619               <ul class="auto-toc">
620                 <li><a class="reference internal" href=
621                 "#tabelle-catene-regole" id="id61" name=
622                 "id61">7.5.1&nbsp;&nbsp;&nbsp;Tabelle, catene,
623                 regole</a></li>
624
625                 <li><a class="reference internal" href="#match" id=
626                 "id62" name=
627                 "id62">7.5.2&nbsp;&nbsp;&nbsp;Match</a></li>
628
629                 <li><a class="reference internal" href="#targets"
630                 id="id63" name=
631                 "id63">7.5.3&nbsp;&nbsp;&nbsp;Targets</a></li>
632               </ul>
633             </li>
634
635             <li><a class="reference internal" href=
636             "#tabella-filter" id="id64" name=
637             "id64">7.6&nbsp;&nbsp;&nbsp;Tabella Filter</a></li>
638
639             <li><a class="reference internal" href=
640             "#gestione-regole-rules" id="id65" name=
641             "id65">7.7&nbsp;&nbsp;&nbsp;Gestione regole
642             (rules)</a></li>
643           </ul>
644         </li>
645
646         <li><a class="reference internal" href="#note" id="id66"
647         name="id66">8&nbsp;&nbsp;&nbsp;NOTE</a></li>
648       </ul>
649     </div>
650
651     <p>Generato con: <a class="reference external" href=
652     "http://docutils.sourceforge.net/rst.html">http://docutils.sourceforge.net/rst.html</a></p>
653
654     <div class="section" id="configurazione-sistema">
655       <h1><a class="toc-backref" href=
656       "#id6">1&nbsp;&nbsp;&nbsp;Configurazione sistema</a></h1>
657
658       <div class="section" id="solo-per-uso-interno">
659         <h2><a class="toc-backref" href=
660         "#id7">1.1&nbsp;&nbsp;&nbsp;Solo per uso interno</a></h2>
661
662         <p>Impostazioni di base per la configurazione del sistema
663         operativo e della rete nel laboratorio 208 facente parte
664         della rete piffa.net .</p>
665
666         <p>Qui riportati per comodita' degli studenti (e del
667         docente che non sara' <strong>mai piu'</strong> costretto a
668         ripeterli! )</p>
669       </div>
670
671       <div class="section" id="rete">
672         <h2><a class="toc-backref" href=
673         "#id8">1.2&nbsp;&nbsp;&nbsp;Rete</a></h2>
674
675         <p>Parametri della rete attualmente in uso:</p>
676
677         <table border="1" class="docutils">
678           <colgroup>
679             <col width="45%">
680             <col width="55%">
681           </colgroup>
682
683           <tbody valign="top">
684             <tr>
685               <td colspan="2">Parametri della rete</td>
686             </tr>
687
688             <tr>
689               <td>rete</td>
690
691               <td>10.10.208.0/24</td>
692             </tr>
693
694             <tr>
695               <td>netmask</td>
696
697               <td>255.255.255.0</td>
698             </tr>
699
700             <tr>
701               <td>broadcast</td>
702
703               <td>10.10.208.255</td>
704             </tr>
705
706             <tr>
707               <td>gateway</td>
708
709               <td>10.10.208.254</td>
710             </tr>
711
712             <tr>
713               <td>gateway</td>
714
715               <td>10.10.208.250 persistente</td>
716             </tr>
717
718             <tr>
719               <td>DNS</td>
720
721               <td>10.10.208.254</td>
722             </tr>
723
724             <tr>
725               <td>DNS</td>
726
727               <td>10.10.208.250 persistente</td>
728             </tr>
729           </tbody>
730         </table>
731
732         <p>Sul portatile di Andrea, corrispondente all'ip 254, gira
733         un DHCP, proxy http e mirror di Debian ( <a class=
734         "reference external" href=
735         "http://debian.piffa.net">http://debian.piffa.net</a>). Se
736         Andrea non e' in aula (o ancora peggio non c'e' il suo
737         portatile Net) gli studenti dovranno darsi un indirizzo ip
738         manualmente e disabilitare il proxy (che pero' e
739         trasparente, quindi fate pure come se non ci fosse ;) .</p>
740       </div>
741
742       <div class="section" id="bash-completion">
743         <h2><a class="toc-backref" href=
744         "#id9">1.3&nbsp;&nbsp;&nbsp;Bash completion</a></h2>
745
746         <p>Il completamento automatico della shell (che si attiva
747         premendo il tasto tab una o due volte mentre si sta
748         scrivendo un termine) permette di comporre automaticamente
749         i nomi dei comandi e i percorsi dei file, sopratutto la
750         composizione automatica dei percorsi dei file e' di grande
751         importanza.</p>
752
753         <p>Bash_completion permette di integrare il completamento
754         automatico con i nomi dei pacchetti e oggetti dei comandi:
755         ad es. volendo digitare <tt class=
756         "docutils literal"><span class="pre">apt-get</span>
757         <span class="pre">inst[TAB]</span> <span class=
758         "pre">xtigh[TAB]</span></tt> ora verra' completatato
759         automaticamente sia la parola <tt class=
760         "docutils literal"><span class="pre">install</span></tt>
761         che il nome del pacchetto <tt class=
762         "docutils literal"><span class=
763         "pre">xtightvncviewer</span></tt>.</p>
764
765         <p>Abilitare /etc/bash_completion nel file <tt class=
766         "docutils literal"><span class=
767         "pre">/etc/bash.bashrc</span></tt> oppure includerlo nel
768         proprio <tt class="docutils literal"><span class=
769         "pre">~/.bashrc</span></tt> (che sarebbe il file
770         <em>nascosto</em>, quindi con un punto all'inizio del nome
771         del file, di configurazione della shell bash per ogni
772         utente, presente nella propria <em>home
773         directory</em>):</p>
774         <pre class="literal-block">
775 echo ". /etc/bash_completion" &gt;&gt; ~/.bashrc
776 </pre>
777
778         <p>Esempio di ~/.bahsrc</p>
779         <pre class="literal-block">
780 # ~/.bashrc: executed by bash(1) for non-login shells.
781
782 export PS1='\h:\w\$ '
783 umask 022
784
785 # Decommentare le seguenti righr per abilitare la colorazione dei
786 # nomi dei file:
787  export LS_OPTIONS='--color=auto'
788  eval "`dircolors`"
789  alias ls='ls $LS_OPTIONS'
790  alias ll='ls $LS_OPTIONS -l'
791  alias l='ls $LS_OPTIONS -lA'
792
793 # Some more alias to avoid making mistakes:
794 # alias rm='rm -i'
795 # alias cp='cp -i'
796 # alias mv='mv -i'
797
798 # questo abilita bash completion
799 . /etc/bash_completion
800 </pre>
801
802         <p>Il file <tt class="docutils literal"><span class=
803         "pre">/etc/bash_completion</span></tt> deve essere presente
804         nel sistema, in caso contrario installare il pacchetto:
805         <tt class="docutils literal"><span class=
806         "pre">bash-completion</span></tt>. Generalmente l'utente
807         <tt class="docutils literal"><span class=
808         "pre">root</span></tt> ha un file <tt class=
809         "docutils literal"><span class="pre">.bashrc</span></tt>
810         preimpostato analogo a quello citato sopra, a differenza
811         dei normali utenti di sistema.</p>
812
813         <p>Links:</p>
814
815         <ul class="simple">
816           <li><a class="reference external" href=
817           "http://www.debian-administration.org/articles/316">An
818           introduction to bash completion</a></li>
819
820           <li><a class="reference external" href=
821           "http://www.caliban.org/bash/">Working more productively
822           with bash 2.x/3.x</a></li>
823         </ul>
824       </div>
825
826       <div class="section" id="vim">
827         <h2><a class="toc-backref" href=
828         "#id10">1.4&nbsp;&nbsp;&nbsp;Vim</a></h2>
829
830         <p>Vim e' l'editor di testo preferito dai sistemisti,
831         quindi sara' conveniente impostare fin da subito alcune
832         impostazioni per renderlo piu' comodo.</p>
833
834         <p>Assicurarsi che sia installata nel sistema la versione
835         completa dell'editor <tt class=
836         "docutils literal"><span class="pre">vim</span></tt>
837         nstallando il pacchetto vimi:</p>
838         <pre class="literal-block">
839        # apt-get install vim
840
841 e modificare il file di configurazione generale ``/etc/vim/vimrc`` ::
842
843    " All system-wide defaults are set in $VIMRUNTIME/debian.vim (usually just
844    " /usr/share/vim/vimcurrent/debian.vim) and sourced by the call to :runtime
845    " you can find below.  If you wish to change any of those settings, you should
846    " do it in this file (/etc/vim/vimrc), since debian.vim will be overwritten
847    " everytime an upgrade of the vim packages is performed.  It is recommended to
848    " make changes after sourcing debian.vim since it alters the value of the
849    " 'compatible' option.
850
851    " This line should not be removed as it ensures that various options are
852    " properly set to work with the Vim-related packages available in Debian.
853    runtime! debian.vim
854
855    " Uncomment the next line to make Vim more Vi-compatible
856    " NOTE: debian.vim sets 'nocompatible'.  Setting 'compatible' changes numerous
857    " options, so any other options should be set AFTER setting 'compatible'.
858    "set compatible
859
860    " Vim5 and later versions support syntax highlighting. Uncommenting the next
861    " line enables syntax highlighting by default.
862    syntax on
863
864    " If using a dark background within the editing area and syntax highlighting
865    " turn on this option as well
866    set background=dark
867
868    " Uncomment the following to have Vim jump to the last position when
869    " reopening a file
870
871    if has("autocmd")
872      au BufReadPost * if line("'\"") &gt; 0 &amp;&amp; line("'\"") &lt;= line("$")
873        \| exe "normal! g'\"" | endif
874    endif
875
876    " Uncomment the following to have Vim load indentation rules and plugins
877    " according to the detected filetype.
878    if has("autocmd")
879      filetype plugin indent on
880    endif
881
882    " The following are commented out as they cause vim to behave a lot
883    " differently from regular Vi. They are highly recommended though.
884    set showcmd             " Show (partial) command in status line.
885    "set showmatch          " Show matching brackets.
886    set ignorecase          " Do case insensitive matching
887    "set smartcase          " Do smart case matching
888    "set incsearch          " Incremental search
889    set autowrite           " Automatically save before commands like :next and :make
890    "set hidden             " Hide buffers when they are abandoned
891    "set mouse=a            " Enable mouse usage (all modes) in terminals
892
893    " Source a global configuration file if available
894    " XXX Deprecated, please move your changes here in /etc/vim/vimrc
895    if filereadable("/etc/vim/vimrc.local")
896      source /etc/vim/vimrc.local
897    endif
898 </pre>
899       </div>
900
901       <div class="section" id="vnc">
902         <h2><a class="toc-backref" href=
903         "#id11">1.5&nbsp;&nbsp;&nbsp;VNC</a></h2>
904
905         <p>I Virtual Network Computing (o VNC) sono software di
906         controllo remoto e servono per amministrare il proprio
907         computer a distanza o visuallizare la sessione di lavoro di
908         un altro computer sul proprio a scopo didattico.
909         Installando un server VNC sulla propria macchina ed
910         impostando una opportuna password si consente ai client VNC
911         di ricevere una immagine dello schermo ed eventualmente di
912         inviare input di tastiera e mouse al computer server
913         (durante le lezioni questo non e' possibile per gli
914         studenti, solo Andrea esegue i comandi). In pratica si può
915         gestire il computer server da un'altra postazione, come se
916         fosse il proprio computer fisico.</p>
917
918         <p>Scaricare il pacchetto <tt class=
919         "docutils literal"><span class=
920         "pre">xtightvncviewer</span></tt> e lo script <tt class=
921         "docutils literal"><span class="pre">guarda.sh</span></tt>
922         in una posizione (collocazione nel <em>path</em> degli
923         utenti, es <tt class="docutils literal"><span class=
924         "pre">echo</span> <span class="pre">$PATH</span></tt> per
925         visualizzare l'attuale path ) comoda per gli utenti ( in
926         genere <tt class="docutils literal"><span class=
927         "pre">/bin</span></tt> ), rndere eseguibile lo script.</p>
928
929         <p>Procedura:</p>
930         <pre class="literal-block">
931 su root
932 cd /bin
933 wget http://debian.piffa.net/guarda.sh
934 chmod +x guarda.sh
935 exit
936 </pre>
937
938         <p>Si noti che non e' possibile lanciare un applicativo sul
939         server grafico di un utente da una shell in cui si sta
940         lavorando come altro utente, anche se root. E' quindi
941         necessario essere l'utente di sistema che si e' loggato
942         inizialmente nella sessione grafica per poter lanciare lo
943         script guarda.sh da una shell.</p>
944
945         <p>Controllare con <tt class=
946         "docutils literal"><span class="pre">whoami</span></tt> di
947         essere l'utente normale (es <tt class=
948         "docutils literal"><span class="pre">utente</span>
949         <span class="pre">|</span> <span class=
950         "pre">studente</span> <span class="pre">|</span>
951         <span class="pre">proprio</span> <span class=
952         "pre">nome</span></tt> ), in caso si sia assunta una altra
953         <tt class="docutils literal"><span class=
954         "pre">id</span></tt> si apra un altra shell o si esca da
955         quella attuale con <tt class=
956         "docutils literal"><span class="pre">exit</span></tt> .</p>
957       </div>
958
959       <div class="section" id="lista-dei-pacchetti-di-base">
960         <h2><a class="toc-backref" href=
961         "#id12">1.6&nbsp;&nbsp;&nbsp;Lista dei pacchetti di
962         base</a></h2>
963
964         <p>I pacchetti installati generalmente <a class=
965         "footnote-reference" href="#id2" id="id1" name=
966         "id1">[1]</a> per poter seguire le lezioni sono:</p>
967         <pre class="literal-block">
968 kde-core kdm kde-i18n-it xorg vim less xtightvncviewer
969 </pre>
970
971         <table class="docutils footnote" frame="void" id="id2"
972         rules="none">
973           <colgroup>
974             <col class="label">
975             <col>
976           </colgroup>
977
978           <tbody valign="top">
979             <tr>
980               <td class="label"><a class="fn-backref" href=
981               "#id1">[1]</a></td>
982
983               <td><tt class="docutils literal"><span class=
984               "pre">kde-core</span></tt> e' piu' leggero del
985               pacchetto <tt class="docutils literal"><span class=
986               "pre">kde</span></tt>, esiste anche un equivalente
987               <tt class="docutils literal"><span class=
988               "pre">gnome-core</span> <span class=
989               "pre">gnome</span></tt> e il log-in manager
990               <tt class="docutils literal"><span class=
991               "pre">gdm</span></tt> per il l'ambiente grafico
992               Gnome.</td>
993             </tr>
994           </tbody>
995         </table>
996       </div>
997
998       <div class="section" id="apt-configurazione">
999         <h2><a class="toc-backref" href=
1000         "#id13">1.7&nbsp;&nbsp;&nbsp;Apt configurazione</a></h2>
1001
1002         <p>Vediamo i due file principali di apt:</p>
1003
1004         <ul class="simple">
1005           <li><tt class="docutils literal"><span class=
1006           "pre">/etc/apt/sources.list</span></tt></li>
1007
1008           <li><tt class="docutils literal"><span class=
1009           "pre">/etc/apt/apt.conf</span></tt></li>
1010         </ul>
1011
1012         <div class="section" id="sources-list">
1013           <h3><a class="toc-backref" href=
1014           "#id14">1.7.1&nbsp;&nbsp;&nbsp;sources.list</a></h3>
1015
1016           <p>Questo file contiene i sorgenti da cui <em>apt</em>
1017           preleva i pacchetti da installare tramite <em>dpkg</em>,
1018           vengono quindi precisati i metodi (ad es. http / ftp /
1019           cdrom / file), la release che si vuole tracciare (es
1020           <tt class="docutils literal"><span class=
1021           "pre">stable,</span> <span class="pre">testing,</span>
1022           <span class="pre">unstable</span></tt> oppure i
1023           corrispondenti release name es: <tt class=
1024           "docutils literal"><span class="pre">Lenny,</span>
1025           <span class="pre">Squeeze,</span> <span class=
1026           "pre">Sid</span></tt>), i rami di interesse (es:
1027           <tt class="docutils literal"><span class=
1028           "pre">main</span></tt> che e' l'archivio principale,
1029           <tt class="docutils literal"><span class=
1030           "pre">non-free</span></tt> per il software non libero,
1031           <tt class="docutils literal"><span class=
1032           "pre">contrib</span></tt> per i pacchetti non realizzati
1033           dai manutentori ufficiali).</p>
1034
1035           <p>Gli archivi sono generalmente:</p>
1036
1037           <ul class="simple">
1038             <li><tt class="docutils literal"><span class=
1039             "pre">deb</span></tt> per pacchetti Debian binari</li>
1040
1041             <li><tt class="docutils literal"><span class=
1042             "pre">deb-src</span></tt> per i pacchetti sorgenti
1043             (quindi da compilare, come il kernel) degli stessi
1044             pacchetti binari. In genere se non compilate spesso
1045             potete evitare di tracciare i sorgenti per risparmiare
1046             tempo e banda.</li>
1047           </ul>
1048
1049           <p><tt class="docutils literal"><span class=
1050           "pre">/etc/apt/sources.list</span></tt></p>
1051           <pre class="literal-block">
1052 # esempio di accesso a un CDROM:
1053 # cdrom:[Debian GNU/Linux 5.0.1 _Lenny_ - Official i386 kde-CD Binary-1 20090$
1054
1055 # Archivio principale debian via http su piffa.net,
1056 # non funziona al difuori dell'aula dei corsi
1057 deb http://debian.piffa.net/debian/ Lenny main
1058 # deb http://debian.piffa.net/debian/ Lenny  non-free contrib
1059
1060 # Mirror da kernel.org da usare a casa:
1061 deb http://mirrors.eu.kernel.org/debian/ Lenny main
1062
1063 # Security dal sito principale
1064 deb http://security.debian.org/ Lenny/updates main
1065 deb-src http://security.debian.org/ Lenny/updates main
1066
1067 # Debian volatile per le cose soggette a cambiamenti non legati
1068 # a dinamiche di sicurezza
1069 deb http://volatile.debian.org/debian-volatile Lenny/volatile main
1070 deb-src http://volatile.debian.org/debian-volatile Lenny/volatile main
1071
1072 # Esempio di accesso a un filesystem locale contenente i pacchetti:
1073 # deb file:/mnt/mirror Sid main non-free contrib
1074 </pre>
1075         </div>
1076
1077         <div class="section" id="etc-apt-apt-conf">
1078           <h3><a class="toc-backref" href=
1079           "#id15">1.7.2&nbsp;&nbsp;&nbsp;/etc/apt/apt.conf</a></h3>
1080
1081           <p>Questo file contiene le opzioni di apt, come ad
1082           esempio il proxy:</p>
1083           <pre class="literal-block">
1084 Acquire::http::Proxy "http://10.10.208.254:3128"
1085 </pre>
1086
1087           <p>Si tenga conto che se si imposta un proxy per apt sul
1088           proprio portatile e tornati a casa propria si vuole
1089           scaricare nuovi pacchetti si dovra' disabilitare il
1090           proxy.</p>
1091         </div>
1092       </div>
1093     </div>
1094
1095     <div class="section" id="squid">
1096       <h1><a class="toc-backref" href=
1097       "#id16">2&nbsp;&nbsp;&nbsp;Squid</a></h1>
1098     </div>
1099
1100     <div class="section" id="apache">
1101       <h1><a class="toc-backref" href=
1102       "#id17">3&nbsp;&nbsp;&nbsp;Apache</a></h1>
1103
1104       <p>Apache HTTP Server, o piu' comunemente Apache, e' il nome
1105       dato alla piattaforma server Web modulare piu' diffusa (ma
1106       anche al gruppo di lavoro open source che ha creato,
1107       sviluppato e aggiornato il software server), in grado di
1108       operare da sistemi operativi UNIX-Linux e Microsoft.</p>
1109
1110       <p>Un server web e' un processo, e per estensione il computer
1111       su cui e' in esecuzione, che si occupa di fornire, su
1112       richiesta del browser, una pagina web (spesso scritta in
1113       HTML). Le informazioni inviate dal server web viaggiano in
1114       rete trasportate dal protocollo HTTP. L'insieme di server web
1115       dÃ&nbsp; vita al World Wide Web, uno dei servizi piu'
1116       utilizzati di Internet.</p>
1117
1118       <div class="section" id="pacchetti-da-installare">
1119         <h2><a class="toc-backref" href=
1120         "#id18">3.1&nbsp;&nbsp;&nbsp;Pacchetti da
1121         installare::</a></h2>
1122
1123         <blockquote>
1124           apache2 apache2-doc
1125         </blockquote>
1126
1127         <p>Con la release 2.0 di Apache viene automaticamente resa
1128         disponibile anche la versione SSL (Secure Socket Layer,
1129         cpnnessioni criptate ) del web server.</p>
1130       </div>
1131
1132       <div class="section" id="configurazione-di-apache">
1133         <h2><a class="toc-backref" href=
1134         "#id19">3.2&nbsp;&nbsp;&nbsp;Configurazione di
1135         Apache</a></h2>
1136
1137         <p>I file di configurazione di apache si trovano nella
1138         cartella: <tt class="docutils literal"><span class=
1139         "pre">/etc/apache2</span></tt> e sono strutturati come
1140         descritto nel file <tt class=
1141         "docutils literal"><span class="pre">/usr/share/doc/apache2/README.Debian.gz</span></tt>
1142         . Sostanzialmente lo schema e' il seguente:</p>
1143
1144         <dl class="docutils">
1145           <dt>apache2.conf</dt>
1146
1147           <dd>
1148             <p class="first">File di configurazione principale del
1149             servizio.</p>
1150
1151             <p class="last">httpd.conf e' il vecchio file di
1152             configurazione di Apache1, presente per motivi di
1153             retrocompatibilita' e' generalemente vuoto.</p>
1154           </dd>
1155
1156           <dt>ports.conf</dt>
1157
1158           <dd>In questo file vengono specificate le porte sulle
1159           quali resta in ascolto il server web. Si noti che
1160           utilizzando dei virtual hosts generalmente viene
1161           specificata per questi la porta su cui ascoltare nel file
1162           di configurazione del virtual host, ad es: <tt class=
1163           "docutils literal"><span class=
1164           "pre">&lt;VirtualHost</span> <span class=
1165           "pre">*:80&gt;</span></tt></dd>
1166
1167           <dt>sites-available</dt>
1168
1169           <dd>In questa cartella vengono raccolti i file di
1170           configurazione dei virtual host disponibili.</dd>
1171
1172           <dt>sites-enabled</dt>
1173
1174           <dd>In questa cartella sono contenuti dei link simbolici
1175           ai files in ../sites-available : se il link e' presente
1176           in questa cartella il virtual host e' abilitato.</dd>
1177
1178           <dt>mods-available</dt>
1179
1180           <dd>Stesso metodo per i moduli: in questa cartella ci
1181           sono i moduli veri e propri che verranno poi abilitati
1182           grazie all'esistenza di link simbolici nella cartella
1183           mods-enabled .</dd>
1184
1185           <dt>mods-enabled</dt>
1186
1187           <dd>Moduli abilitati, effettivamente caricati.</dd>
1188         </dl>
1189       </div>
1190
1191       <div class="section" id="apache-conf">
1192         <h2><a class="toc-backref" href=
1193         "#id20">3.3&nbsp;&nbsp;&nbsp;apache.conf</a></h2>
1194
1195         <p>File di configurazione del servizio Apache, contiene le
1196         impostazioni generiche (ad esempio utilizzo della RAM e
1197         risorse di sistema) dell'intero servizio. Nella
1198         configurazione di default per Debian non viene definito un
1199         vero e proprio sito di default ma solo dei virtual
1200         hosts.</p>
1201
1202         <p>Guardiamo alcune direttive interessanti:</p>
1203
1204         <dl class="docutils">
1205           <dt>Timeout</dt>
1206
1207           <dd>Numero di secondi da aspettare prima di chiudere la
1208           connessione con il client. Questo parametro serve a
1209           liberare le risorse di sistema nel caso che un client,
1210           magar a causa di una connessione particolarmente lenta o
1211           instabili, tenga attivo indefinitivamente un processo di
1212           apache.</dd>
1213
1214           <dt>KeepAlive</dt>
1215
1216           <dd>L'estensione keep-alive (http 1.0) congiuntamente
1217           alle connessioni persistenti (http 1.1) permettono al
1218           server di rispondere a piu' richieste dei client mediante
1219           la stessa connessione. Il protocoll http per sua natura
1220           e' senza stato (<em>statelessi</em> ), quindi ogni
1221           risorsa richiesta (per pagine web si pensi ad esempio
1222           alle immagini) dal client necessita di una connessione
1223           autonoma. Keep-alive permette di ottimizzare la
1224           connessione anche fino al 50% a seconda delle situazioni
1225           e contenuti.</dd>
1226
1227           <dt>Server-Pool Size Regulation</dt>
1228
1229           <dd>Questi parametri (StartServers, MinSpareServers, ecc.
1230           Tutti spiegati nel manuale di apache) servono per
1231           attribuire le risorse di sistema disponibili al server
1232           Apache. Tenere questi parametri bassi serve a limitare il
1233           rischio di Denial of Service per il server, nel caso
1234           offra altri servizi. I settagi di default sono come
1235           sempre abbastanza conservativi, se si conta di usare il
1236           proprio Apache per servire un sito web con molti
1237           visitatori sara' necessario aumentare sensibilmente le
1238           impostazioni di base.</dd>
1239
1240           <dt>AccessFileName</dt>
1241
1242           <dd>Il nome del file che viene onorato per modificare le
1243           impostazioni per una singola directory, legato alla
1244           direttiva AllowOverride .</dd>
1245         </dl>
1246       </div>
1247
1248       <div class="section" id="installazione-di-php">
1249         <h2><a class="toc-backref" href=
1250         "#id21">3.4&nbsp;&nbsp;&nbsp;Installazione di PHP</a></h2>
1251
1252         <p>Pacchetti da installare: <tt class=
1253         "docutils literal"><span class="pre">php5</span>
1254         <span class="pre">php-pear</span></tt></p>
1255
1256         <div class="section" id="test-del-modulo-php">
1257           <h3><a class="toc-backref" href=
1258           "#id22">3.4.1&nbsp;&nbsp;&nbsp;Test del modulo
1259           php</a></h3>
1260
1261           <p>Creare nella cartella <tt class=
1262           "docutils literal"><span class="pre">/var/www</span></tt>
1263           (o altra cartella visibile) un file con estensione *.php
1264           (es <tt class="docutils literal"><span class=
1265           "pre">/var/ww/info.php</span></tt> contenete codice php
1266           eseguibile dall'interprete, ad es:</p>
1267           <pre class="literal-block">
1268 &lt;?php phpinfo() ; ?&gt;
1269 </pre>
1270
1271           <p>Questa funzione di php generera' la tipica pagina con
1272           le impostazioni attuali per PHP. Richiamando la pagina
1273           (es: <tt class="docutils literal"><span class=
1274           "pre">http://localhost/info.php</span></tt> ) verra
1275           generata dall'interprete PHP la pagina HTML e resa
1276           disponibile tramite Apache ai utclient HTTP, a prova del
1277           correto funzionamento del modulo di PHP e della sua
1278           integrazione con il serv web Apache. In caso contrario se
1279           il client http proporra di scaricare la pagina invece che
1280           visualizzarla nel browser: non funziona l'interprete di
1281           php o sono mal configurati i MIME-type. prima di tutto
1282           assicurarsi di aver fatoo ripartire Apache.</p>
1283         </div>
1284
1285         <div class="section" id=
1286         "installazione-del-supporto-per-mysql">
1287           <h3><a class="toc-backref" href=
1288           "#id23">3.4.2&nbsp;&nbsp;&nbsp;Installazione del supporto
1289           per Mysql</a></h3>
1290
1291           <p>Installare i pacchetti:</p>
1292           <pre class="literal-block">
1293 php5-mysql phpmyadmin
1294 </pre>
1295
1296           <p>Controllare tramite la pagina php.info che sia
1297           abilitato il supporto per Mysql (ripartito Apache,
1298           ricaricare la pagina e cercare con CTRL+f <tt class=
1299           "docutils literal"><span class=
1300           "pre">mysql</span></tt>).</p>
1301         </div>
1302
1303         <div class="section" id="phpmyadmin">
1304           <h3><a class="toc-backref" href=
1305           "#id24">3.4.3&nbsp;&nbsp;&nbsp;phpmyadmin</a></h3>
1306
1307           <p>L'interfaccia web Phpmyadmin non richede
1308           necessariamente la presenza di un database Mysql locale,
1309           puo' infatti essere utilizzata per gestire databases
1310           remoti (il suo file di configurazione: <tt class=
1311           "docutils literal"><span class=
1312           "pre">/etc/phpmyadmin/config.inc.php</span></tt> ). Nel
1313           caso si voglia installare localmente Mysql si utilizzi il
1314           pacchetto <tt class="docutils literal"><span class=
1315           "pre">mysql-server</span></tt> .</p>
1316
1317           <p>Phpmyadmin dovrebbe essere disponibile all'URL:
1318           <tt class="docutils literal"><span class=
1319           "pre">http://localhost/phpmyadmin/</span></tt>, se cosi
1320           non fosse controllare che sia incluso il file <tt class=
1321           "docutils literal"><span class=
1322           "pre">/etc/phpmyadmin/apache.conf</span></tt> in
1323           <tt class="docutils literal"><span class=
1324           "pre">/etc/apache2/conf.d/</span></tt> .</p>
1325         </div>
1326
1327         <div class="section" id=
1328         "installazione-del-supporto-per-postgresql">
1329           <h3><a class="toc-backref" href=
1330           "#id25">3.4.4&nbsp;&nbsp;&nbsp;Installazione del supporto
1331           per Postgresql</a></h3>
1332
1333           <p>Installare i pacchetti:</p>
1334           <pre class="literal-block">
1335 php5-pgsql phppgadmin
1336 </pre>
1337
1338           <p>Controllare tramite la pagina php.info che sia
1339           abilitato il supporto per PostgreSQL (ripartito Apache,
1340           ricaricare la pagina e cercare con CTRL+f <tt class=
1341           "docutils literal"><span class=
1342           "pre">pgsql</span></tt>).</p>
1343         </div>
1344
1345         <div class="section" id="phppgadmin">
1346           <h3><a class="toc-backref" href=
1347           "#id26">3.4.5&nbsp;&nbsp;&nbsp;phppgadmin</a></h3>
1348
1349           <p>L'interfaccia web Phppgadmin per il database server
1350           PostgreSQL non richede necessariamente la presenza di un
1351           database locale, puo' infatti essere utilizzata per
1352           gestire databases remoti (il suo file di configurazione:
1353           <tt class="docutils literal"><span class=
1354           "pre">/etc/phppgadmin/config.inc.php</span></tt> ). Nel
1355           caso si voglia installare localmente Mysql si utilizzi il
1356           pacchetto <tt class="docutils literal"><span class=
1357           "pre">postgresql</span></tt> .</p>
1358
1359           <p>Phpmyadmin dovrebbe essere disponibile all'URL:
1360           <tt class="docutils literal"><span class=
1361           "pre">http://localhost/phppgadmin/</span></tt>, se cosi
1362           non fosse controllare che sia incluso il file <tt class=
1363           "docutils literal"><span class=
1364           "pre">/etc/phppgadmin/apache.conf</span></tt> in
1365           <tt class="docutils literal"><span class=
1366           "pre">/etc/apache2/conf.d/</span></tt> .</p>
1367         </div>
1368       </div>
1369
1370       <div class="section" id="virtual-hosts">
1371         <h2><a class="toc-backref" href=
1372         "#id27">3.5&nbsp;&nbsp;&nbsp;Virtual hosts</a></h2>
1373
1374         <blockquote>
1375           <ul class="simple">
1376             <li><a class="reference external" href=
1377             "http://www.apacheweek.com/features/vhost">http://www.apacheweek.com/features/vhost</a></li>
1378
1379             <li><a class="reference external" href=
1380             "http://www.onlamp.com/pub/a/apache/2004/01/08/apacheckbk.html">
1381             http://www.onlamp.com/pub/a/apache/2004/01/08/apacheckbk.html</a></li>
1382           </ul>
1383         </blockquote>
1384
1385         <p>I virtual host permettono di avere piu' siti internet
1386         disponibili tramite lo stesso server web, eventualmente
1387         mappati su un solo indirizzo ip. Sono generalemente di due
1388         tipi:</p>
1389
1390         <blockquote>
1391           <ul class="simple">
1392             <li>Basati su <em>indirizzi ip</em>. Se si ha la
1393             possibilita' di avere piu' indirizzi ip dedicati per i
1394             diversi siti che si vuole servire. ES: <tt class=
1395             "docutils literal"><span class=
1396             "pre">&lt;VirtualHost</span> <span class=
1397             "pre">192.168.0.2:80&gt;</span></tt> . Soluzione
1398             dispendiosa, si tende ad usarla solo se servono
1399             certificati di sicurezza (SSL ) dedicati per ogni
1400             sito.</li>
1401
1402             <li>Basati su <em>nomi di dominio</em> che puntano allo
1403             stesso ip. Soluzione piu' economica e diffusa che si
1404             basa sulle funzionalita' di http 1.1 .</li>
1405           </ul>
1406         </blockquote>
1407
1408         <p>Prenderemo in esame la gestione di virtual hosts basati
1409         su nomi di dominio.</p>
1410
1411         <div class="section" id="gestione-dns">
1412           <h3><a class="toc-backref" href=
1413           "#id28">3.5.1&nbsp;&nbsp;&nbsp;Gestione DNS</a></h3>
1414
1415           <p>Prima di tutto per poter impostare i virtual hosts
1416           dovete avere un server DNS che risolva i vostri nomi di
1417           dominio sull'indirizzo ip del server. Questo si puo'
1418           ottenere in vari modi, ad es:</p>
1419
1420           <blockquote>
1421             <dl class="docutils">
1422               <dt><em>Bind</em> (DNS server)</dt>
1423
1424               <dd>Impostare i campi A nelle proprie zone gestite
1425               dal server dns Bind. Ad es: <tt class=
1426               "docutils literal"><span class=
1427               "pre">papo</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1428               <span class=
1429               "pre">A</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1430               <span class="pre">212.22.136.248</span></tt></dd>
1431
1432               <dt><em>Servizio DNS dinamico on line</em>.</dt>
1433
1434               <dd>Utilizzare un servizio come ad es: <a class=
1435               "reference external" href=
1436               "https://www.dyndns.com/">https://www.dyndns.com/</a>
1437               per mappare nomi di dominio sul proprio indirizzo ip,
1438               comodo ad esempio se si dispone di un indirzzo ip
1439               pubblico (anche se dinamico) per la propria
1440               connessione ad internet.</dd>
1441
1442               <dt><em>Dnsmasq</em> (DNS server)</dt>
1443
1444               <dd>Utilizzabile a livello locale per fare dei test,
1445               utilizzando direttive come: <tt class=
1446               "docutils literal"><span class=
1447               "pre">address=/davide.piffa.net/10.10.208.178</span></tt></dd>
1448
1449               <dt><tt class="docutils literal"><span class=
1450               "pre">/etc/hosts</span></tt></dt>
1451
1452               <dd>Per prove <em>strettamente a livello locale</em>
1453               potete impostare i nomi dei vostri virtual server nel
1454               file /etc/hosts .</dd>
1455             </dl>
1456           </blockquote>
1457           <pre class="literal-block">
1458 # dig 177.piffa.net
1459
1460 ; &lt;&lt;&gt;&gt; DiG 9.5.1-P1 &lt;&lt;&gt;&gt; 177.piffa.net
1461 ;; global options:  printcmd
1462 ;; Got answer:
1463 ;; -&gt;&gt;HEADER&lt;&lt;- opcode: QUERY, status: NOERROR, id: 38036
1464 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
1465
1466 ;; QUESTION SECTION:
1467 ;177.piffa.net.                 IN      A
1468
1469 ;; ANSWER SECTION:
1470 177.piffa.net.          0       IN      A       10.10.208.177
1471
1472 ;; Query time: 12 msec
1473 ;; SERVER: 10.10.208.254#53(10.10.208.254)
1474 ;; WHEN: Wed May  6 12:27:08 2009
1475 ;; MSG SIZE  rcvd: 47
1476 </pre>
1477
1478           <p>La parte interessante e' <tt class=
1479           "docutils literal"><span class=
1480           "pre">177.piffa.net.</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1481           <span class=
1482           "pre">0</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1483           <span class="pre">IN</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1484           <span class=
1485           "pre">A</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1486           <span class="pre">10.10.208.177</span></tt> . Il nome di
1487           dominio 177.piffa.net viene risolto sull'ip 10.10.208.177
1488           , nel nostro Apache (che risponde all'ip 10.10.208.177 )
1489           dovra' essere disponibile un virtual host che corrisponde
1490           al nome <tt class="docutils literal"><span class=
1491           "pre">177.piffa.net</span></tt> .</p>
1492         </div>
1493
1494         <div class="section" id="virtual-host">
1495           <h3><a class="toc-backref" href=
1496           "#id29">3.5.2&nbsp;&nbsp;&nbsp;Virtual host</a></h3>
1497
1498           <p>Esempio di Virtual host:</p>
1499           <pre class="literal-block">
1500 &lt;VirtualHost *:80 &gt;
1501     ServerName 177.piffa.net
1502     DocumentRoot /var/www/177.piffa.net/
1503     ServerAdmin webmaster@177.piffa.net
1504 &lt;/VirtualHost&gt;
1505 </pre>
1506
1507           <ol class="arabic simple">
1508             <li><tt class="docutils literal"><span class=
1509             "pre">&lt;VirtualHost</span> <span class=
1510             "pre">\*:80</span> <span class="pre">&gt;</span></tt>
1511             La prima riga indica l'inizio della stanza relativa al
1512             nostro virtual host, che ascolotera' su qualunque
1513             indirizzo ip (nel caso il server abbia piu' indirizzi
1514             dai quali e' raggiungibile) sulla porta <tt class=
1515             "docutils literal"><span class=
1516             "pre">80</span></tt>.</li>
1517
1518             <li><tt class="docutils literal"><span class=
1519             "pre">Server/name</span></tt> precisa quale sara' il
1520             nome di dominio a cui verra' associato questo sito
1521             rispetto ad altri eventualmenti presenti sullo stesso
1522             server web.</li>
1523
1524             <li><tt class="docutils literal"><span class=
1525             "pre">DocumentRoot</span></tt> : il path della
1526             directory che contiene le pagine del sito.</li>
1527
1528             <li><tt class="docutils literal"><span class=
1529             "pre">ServerAdmin</span></tt>: l'indirizzo del
1530             webmaster, in modo da poterlo contattare in caso di
1531             problemi col sito.</li>
1532
1533             <li><tt class="docutils literal"><span class=
1534             "pre">&lt;/VirtualHost&gt;</span></tt>: <em>tag</em> di
1535             chiusura della stanza di definizione del virtual
1536             host.</li>
1537           </ol>
1538
1539           <p>Quelle che abbiamo appena visto sono le direttive
1540           essenziali per definire un sito virtuale, potrebbe essere
1541           utile aggiungene altre:</p>
1542
1543           <ul>
1544             <li>
1545               <dl class="first docutils">
1546                 <dt><tt class="docutils literal"><span class=
1547                 "pre">ErrorLog</span> <span class=
1548                 "pre">/var/log/apache2/177.piffa.net/error.log</span></tt></dt>
1549
1550                 <dd>
1551                   <p class="first last">Log degli errori separato
1552                   dai restanti siti web ospitati dal server.</p>
1553                 </dd>
1554               </dl>
1555             </li>
1556
1557             <li>
1558               <dl class="first docutils">
1559                 <dt><tt class="docutils literal"><span class=
1560                 "pre">LogLevel</span> <span class=
1561                 "pre">warn</span></tt></dt>
1562
1563                 <dd>
1564                   <p class="first last">Livello di importanza degli
1565                   eventi loggati= warning <em>attenzione</em> .</p>
1566                 </dd>
1567               </dl>
1568             </li>
1569
1570             <li>
1571               <dl class="first docutils">
1572                 <dt><tt class="docutils literal"><span class=
1573                 "pre">CustomLog</span> <span class=
1574                 "pre">/var/log/apache2/177.piffa.net/access.log</span>
1575                 <span class="pre">combined</span></tt></dt>
1576
1577                 <dd>
1578                   <p class="first last">Log di accesso separati
1579                   dagli altri siti, utile anche qua per statistiche
1580                   di accesso per il solo sito virtuale.</p>
1581                 </dd>
1582               </dl>
1583             </li>
1584           </ul>
1585
1586           <p>Potrebbe essere utile modificare le impostazioni di
1587           una intera directory, ad esempio per abilitare
1588           l'<tt class="docutils literal"><span class=
1589           "pre">AuthConfig</span></tt>:</p>
1590           <pre class="literal-block">
1591 &lt;Directory "/var/www/miosito.net/privata"&gt;
1592         AllowOverride AuthConfig
1593         Options ExecCGI Indexes MultiViews FollowSymLinks
1594         Order allow,deny
1595         Allow from all
1596 &lt;/Directory&gt;
1597 </pre>
1598
1599           <p><tt class="docutils literal"><span class=
1600           "pre">AllowOverride</span> <span class=
1601           "pre">AuthConfig</span></tt> ora vale per l'intera
1602           directory, come le altre opzioni.</p>
1603         </div>
1604       </div>
1605
1606       <div class="section" id="negoziazione-accessi">
1607         <h2><a class="toc-backref" href=
1608         "#id30">3.6&nbsp;&nbsp;&nbsp;Negoziazione accessi</a></h2>
1609
1610         <p>Tipicamente quando si installa un server web il proprio
1611         desiderio e' di dare accesso ai materiali disponibili al
1612         maggior numero di visitatori possibile. Talvolta pero' puo
1613         essere utile o necessario limitare gli accessi, ad esempio
1614         per escludere un <em>bot</em> indesiderato che scansiona
1615         ininterottamente le nostre pagine o per creare una <em>Area
1616         Riservata</em> i cui materiali non devono essere
1617         disponibile a tutti.</p>
1618
1619         <div class="section" id="limiti-su-base-ip">
1620           <h3><a class="toc-backref" href=
1621           "#id31">3.6.1&nbsp;&nbsp;&nbsp;Limiti su base ip</a></h3>
1622
1623           <p>La forma piu' semplice di restrizine degli accessi e'
1624           su base degli indirizzi IP dei client: tipicamente i siti
1625           web sono settati per dare accesso a chiunque:</p>
1626           <pre class="literal-block">
1627 &lt;VirtualHost *:80 &gt;
1628        # ...
1629        &lt;Directory "/var/www/177.piffa.net"&gt;
1630        Order allow,deny
1631        Allow from all
1632        &lt;/Directory&gt;
1633 &lt;/VirtualHost&gt;
1634 </pre>
1635
1636           <p>Potremmo negare l'accesso a uno o piu' indirizzi IP in
1637           questo modo:</p>
1638           <pre class="literal-block">
1639 &lt;VirtualHost *:80 &gt;
1640        &lt;Directory "/var/www/177.piffa.net"&gt;
1641        Order allow,deny
1642        Allow from all
1643        Deny from 192.168.0.1
1644        &lt;/Directory&gt;
1645 &lt;/VirtualHost&gt;
1646 </pre>
1647
1648           <p>Ora l'IP 192.168.0.1 non potra' piu' accedere ai
1649           materiali dell'intero sito virtuale, oppure potremmo
1650           lavorare su una sola directory:</p>
1651           <pre class="literal-block">
1652 &lt;Directory "/var/www/miosito.net/limitata"&gt;
1653        Order allow,deny
1654        Allow from 192.168.0.0./24
1655        Deny from all
1656 &lt;/Directory&gt;
1657 </pre>
1658
1659           <p>In questo modo solo la classe IP <tt class=
1660           "docutils literal"><span class=
1661           "pre">192.168.0.0/24</span></tt> potra' accedere alla
1662           directory <tt class="docutils literal"><span class=
1663           "pre">/limitata</span></tt> Si tenga pero' conto che e'
1664           relativamente facile per un malintenzionato cambiare il
1665           propio indirizzo ip, oppure collegarsi da un altra zona.
1666           Meno facile e' accedere ad una classe privata trovandosi
1667           all'esterno di questa, ma e' comunque possibile mandare
1668           delle richieste <tt class="docutils literal"><span class=
1669           "pre">GET</span></tt> per cercare di mandare in Denial Of
1670           Service il webserver.</p>
1671         </div>
1672       </div>
1673
1674       <div class="section" id="user-authentication">
1675         <h2><a class="toc-backref" href=
1676         "#id32">3.7&nbsp;&nbsp;&nbsp;User Authentication</a></h2>
1677
1678         <p>A volte conviene negoziare gli accessi ad un area di un
1679         sito tramite autenticazione basata sull'accopiata <em>nome
1680         utente / password</em>. Questo puo' venire utile per creare
1681         una area download <em>intranet</em>, alla quale possano
1682         accedere solo gli utenti previsti a prescindere dagli
1683         indirizzi IP dei loro client. Per quanto esistano soluzioni
1684         piu' granulari e sofisticate per ottenere questo,
1685         <em>mod-auth</em> puo'essere sufficente. E mod auth non
1686         richiede l'installazione di software aggiuntivi.</p>
1687
1688         <p>link: <a class="reference external" href=
1689         "http://www.apacheweek.com/features/userauth">http://www.apacheweek.com/features/userauth</a></p>
1690
1691         <div class="section" id="definire-la-cartella">
1692           <h3><a class="toc-backref" href=
1693           "#id33">3.7.1&nbsp;&nbsp;&nbsp;Definire la
1694           cartella</a></h3>
1695
1696           <p>Decidere quale sara' il <em>path</em> della cartella
1697           da sottoporre ad autentizazione:(e creiamo la
1698           cartella):</p>
1699
1700           <blockquote>
1701             <tt class="docutils literal"><span class=
1702             "pre">mkdir</span> <span class=
1703             "pre">/var/www/177.piffa.net/privata</span></tt>
1704           </blockquote>
1705         </div>
1706
1707         <div class="section" id=
1708         "creazione-del-database-delle-passwords">
1709           <h3><a class="toc-backref" href=
1710           "#id34">3.7.2&nbsp;&nbsp;&nbsp;Creazione del database
1711           delle passwords</a></h3>
1712
1713           <p>Un modo semplice per gestire una database di
1714           <em>user-id / passwords</em> e' utilizzare l'utility
1715           <tt class="docutils literal"><span class=
1716           "pre">htpasswd</span></tt> di Apache. Questa crea un file
1717           in cui un <em>crypt</em> delle password viene associato
1718           agli utenti.</p>
1719
1720           <p>Si dovra' decidere dove tenere questo file, la cosa
1721           importante e' che non sia visibile nel sito web: non deve
1722           essere scaricabile dai visitatori. Deve essere cioe'
1723           all'esterno della <em>DocumentRoot</em>: un buon posto
1724           potrebbe essere la /home dell'utente.</p>
1725
1726           <p>Creiamo (con il <em>flag</em> <tt class=
1727           "docutils literal"><span class="pre">-c</span></tt>) il
1728           file <tt class="docutils literal"><span class=
1729           "pre">/home/utente/passwords</span></tt> con l'utente
1730           <tt class="docutils literal"><span class=
1731           "pre">luca</span></tt>:</p>
1732           <pre class="literal-block">
1733 htpasswd -c /home/utente/passwords luca
1734 </pre>
1735
1736           <p><tt class="docutils literal"><span class=
1737           "pre">htpasswd</span></tt> ci chedera' la password da
1738           associare all'utente <tt class=
1739           "docutils literal"><span class="pre">luca</span></tt>.
1740           Per sucessive modifiche della password o aggiunta di
1741           nuovi utenti non sara' necessario usare il flag
1742           <tt class="docutils literal"><span class=
1743           "pre">-c</span></tt>.</p>
1744         </div>
1745
1746         <div class="section" id="id3">
1747           <h3><a class="toc-backref" href=
1748           "#id35">3.7.3&nbsp;&nbsp;&nbsp;Configurazione di
1749           Apache</a></h3>
1750
1751           <p>Ora possiamo passare alla configurazione vera e
1752           propria di Apache, ma con una novita': andremo a inserire
1753           la voce in un <tt class="docutils literal"><span class=
1754           "pre">.htaccess</span></tt> invece che modificare il file
1755           di impostazione del virtual-host.</p>
1756
1757           <p>Questo per motivi pratici: solo l'utente <em>root</em>
1758           puo' modificare l'impostazione del virtual host nel file
1759           <tt class="docutils literal"><span class=
1760           "pre">/etc/apache2/sites-enabled/177.piffa.net</span></tt>,
1761           ma spesso il motivo per cui creiamo i virtual hosts e'
1762           ospitare i siti di altri utenti, che possono solo
1763           pubblicare (generalmente tramite <em>FTP</em>) i loro
1764           documenti nella loro <em>DocumentRoot</em>, senza poter
1765           quindi modificare in alcun modo la configurazione del
1766           virtual host.</p>
1767
1768           <p>Dando agli utenti la possibilita' di modificare
1769           (<em>AllowOverride</em>) autonomamente alcuni parametri
1770           (in questo caso solo l'<em>AuthConfig</em>) relativi al
1771           funzionamenteo del loro spazio web ci togliera'
1772           l'incombenza di dover intervenire suii vari virtual
1773           host.</p>
1774
1775           <p>Abilitiamo l'AllowOverride nel file di configurazione
1776           del virtual host per la sola directory <tt class=
1777           "docutils literal"><span class=
1778           "pre">privata</span></tt>:</p>
1779           <pre class="literal-block">
1780 &lt;VirtualHost *:80 &gt;
1781     ServerName 177.piffa.net
1782     DocumentRoot /var/www/177.piffa.net/
1783     ServerAdmin webmaster@177.piffa.net
1784     &lt;Directory "/var/www/177.piffa.net/privata"&gt;
1785         AllowOverride AuthConfig
1786     &lt;/Directory&gt;
1787 &lt;/VirtualHost&gt;
1788 </pre>
1789
1790           <p>Per rendere il cambiamento effettivo sara' necessario
1791           fare un restart / reload di Apache.</p>
1792
1793           <p>Ora sara' possibile, anche per l'utente di sistema,
1794           creare un fie <tt class="docutils literal"><span class=
1795           "pre">.htaccess</span></tt> che sara' onorato da
1796           Apache.</p>
1797
1798           <p>/var/www/177.piffa.net/privata/.htaccess</p>
1799           <pre class="literal-block">
1800 # Questo file viene incluso
1801 # nella configurazione del sito web
1802 # Messaggio visualizzato al prompt per l'autenticazione
1803 AuthName "Area privata soggetta ad autentizazione"
1804 # tipo di autenticazione da usarsi
1805 AuthType Basic
1806 # File generato precedentemente con htpasswd
1807 AuthUserFile  /home/utente/passwords
1808
1809 # Negoziazione degli accessi
1810 # valid users permette l'accesso agli utenti specificati
1811 # nel file generato da htpasswd
1812 require valid-user
1813 </pre>
1814
1815           <p>Si noti che non e' necessario fare ripartire Apache
1816           per onorare i cambiamenti (un utente non avrebbe la
1817           possibilita' di farlo!).</p>
1818         </div>
1819       </div>
1820
1821       <div class="section" id="cavets">
1822         <h2><a class="toc-backref" href=
1823         "#id36">3.8&nbsp;&nbsp;&nbsp;Cavets</a></h2>
1824
1825         <p>Problemi di cache:</p>
1826
1827         <blockquote>
1828           <ul class="simple">
1829             <li>Proxy: nei settaggi del browser specificare di non
1830             utilizzare un server proxy http per il sito web locale
1831             (o per gli altri che si stanno monitorando). Se si ha
1832             il controllo del proxy server: stopparlo, ricaricare la
1833             pagina (operazione che fallira'), far ripartire il
1834             proxy, ricaricare la pagina.</li>
1835
1836             <li>Provare con un altro browser, o cercare di svuotare
1837             la cache chiudere/riaprire l'applicativo. Provare a
1838             fermare Apache, ricaricare la pagina (operazione che
1839             fallira'), far ripartire Apache, ricaricare la
1840             pagina.</li>
1841           </ul>
1842         </blockquote>
1843       </div>
1844     </div>
1845
1846     <div class="section" id="domain-name-system">
1847       <h1><a class="toc-backref" href=
1848       "#id37">4&nbsp;&nbsp;&nbsp;Domain Name System</a></h1>
1849
1850       <p>Domain Name System (spesso indicato con DNS) e' un
1851       servizio utilizzato per la risoluzione di nomi di host in
1852       indirizzi IP e viceversa. Il servizio e' realizzato tramite
1853       un database distribuito, costituito dai server DNS.</p>
1854
1855       <p>Il nome DNS denota anche il protocollo che regola il
1856       funzionamento del servizio, i programmi che lo implementano,
1857       i server su cui questi girano, l'insieme di questi server che
1858       cooperano per fornire il servizio.</p>
1859
1860       <p>I nomi DNS, o "nomi di dominio", sono una delle
1861       caratteristiche piu' visibili di Internet.</p>
1862
1863       <p>C'e' confusione in merito alla definizione dell'acronimo:
1864       la S spesso viene interpretata come service, ma la
1865       definizione corretta e' system.</p>
1866
1867       <p>L'operazione di convertire un nome in un indirizzo e'
1868       detta risoluzione DNS, convertire un indirizzo IP in nome e'
1869       detto risoluzione inversa.</p>
1870
1871       <div class="section" id="nomi-di-dominio">
1872         <h2><a class="toc-backref" href=
1873         "#id38">4.1&nbsp;&nbsp;&nbsp;Nomi di dominio</a></h2>
1874
1875         <p>Un nome a dominio e' costituito da una serie di stringhe
1876         separate da punti, ad esempio it.wikipedia.org. A
1877         differenza degli indirizzi IP, dove la parte piu'
1878         importante del numero e' la prima partendo da sinistra, in
1879         un nome DNS la parte piu' importante e' la prima partendo
1880         da destra. Questa e' detta dominio di primo livello (o TLD,
1881         Top Level Domain), per esempio .org o .it.</p>
1882
1883         <p>Un dominio di secondo livello consiste in due parti, per
1884         esempio wikipedia.org, e cosi' via. Ogni ulteriore elemento
1885         specifica un'ulteriore suddivisione. Quando un dominio di
1886         secondo livello viene registrato all'assegnatario, questo
1887         e' autorizzato a usare i nomi di dominio relativi ai
1888         successivi livelli come it.wikipedia.org (dominio di terzo
1889         livello) e altri come some.other.stuff.wikipedia.org
1890         (dominio di quinto livello) e cosi' via.</p>
1891       </div>
1892
1893       <div class="section" id="tipologie-di-record">
1894         <h2><a class="toc-backref" href=
1895         "#id39">4.2&nbsp;&nbsp;&nbsp;Tipologie di record</a></h2>
1896
1897         <p>Ad un nome DNS possono corrispondere diversi tipi di
1898         informazioni. Per questo motivo, esistono diversi tipi di
1899         record DNS. Ogni voce del database DNS deve essere
1900         caratterizzata da un tipo. I principali tipi sono:</p>
1901
1902         <ul class="simple">
1903           <li>Record A - Indica la corrispondenza tra un nome ed
1904           uno (o piu') indirizzi IP (per la precisione indirizzi
1905           IPv4, ovvero la versione attualmente in uso).</li>
1906
1907           <li>Record MX - (Mail eXchange) indica a quali server
1908           debba essere inviata la posta elettronica per un certo
1909           dominio.</li>
1910
1911           <li>Record CNAME - Sono usati per creare un alias, ovvero
1912           per fare in modo che lo stesso calcolatore sia noto con
1913           piu' nomi. Uno degli utilizzi di questo tipo di record
1914           consiste nell'attribuire ad un host che offre piu'
1915           servizi un nome per ciascun servizio. In questo modo, i
1916           servizi possono poi essere spostati su altri host senza
1917           dover riconfigurare i client, ma modificando solo il
1918           DNS.</li>
1919
1920           <li>Record PTR - Il DNS viene utilizzato anche per
1921           realizzare la risoluzione inversa, ovvero per far
1922           corrispondere ad un indirizzo IP il corrispondente nome a
1923           dominio. Per questo si usano i record di tipo "PTR" (e
1924           una apposita zona dello spazio dei nomi
1925           in-addr.arpa).</li>
1926
1927           <li>Record AAAA - Restituisce un indirizzo IPv6.</li>
1928
1929           <li>Record SRV - Identificano il server per un
1930           determinato servizio all'interno di un dominio. Possono
1931           essere considerati una generalizzazione dei record
1932           MX.</li>
1933
1934           <li>Record TXT - Associano campi di testo arbitrari ad un
1935           dominio. Questi campi possono contenere una descrizione
1936           informativa oppure essere utilizzati per realizzare
1937           servizi.</li>
1938         </ul>
1939
1940         <p>Vi sono anche tipi di record "di servizio", necessari al
1941         funzionamento del database distribuito: * Record NS -
1942         Utilizzato per indicare quali siano i server DNS
1943         autoritativi per un certo dominio, ovvero per delegarne la
1944         gestione. * Record SOA - (Start of Authority) usato per la
1945         gestione delle zone DNS.</p>
1946       </div>
1947
1948       <div class="section" id="utilizzo">
1949         <h2><a class="toc-backref" href=
1950         "#id40">4.3&nbsp;&nbsp;&nbsp;Utilizzo</a></h2>
1951
1952         <p>I computer vengono identificati in rete grazie agli
1953         indirizzi <em>IP</em>, questi pero' non sono comodi per gli
1954         utenti come riferimento per i vari server. Ad esempio
1955         sarebbe scomodoriferirsi al motore di ricerca Goggle con
1956         uno dei suoi IP: <tt class="docutils literal"><span class=
1957         "pre">74.125.43.104</span></tt>, e' preferibile usare il
1958         nome di dominio <em>www.google.com</em>:</p>
1959         <pre class="literal-block">
1960 ping -c 1 www.google.com
1961 PING www.l.google.com (74.125.43.104) 56(84) bytes of data.
1962 </pre>
1963       </div>
1964
1965       <div class="section" id="risoluzione-dei-nomi-di-dominio">
1966         <h2><a class="toc-backref" href=
1967         "#id41">4.4&nbsp;&nbsp;&nbsp;Risoluzione dei nomi di
1968         dominio</a></h2>
1969
1970         <p>Ci sono vari strumenti per interrogare i server DNS e
1971         ottenere l'indirizzo IP associato al nome di dominio che ci
1972         interessa:</p>
1973         <pre class="literal-block">
1974 $ host www.piffa.net
1975 www.piffa.net is an alias for piffa.net.
1976 piffa.net has address 65.98.21.97
1977 piffa.net mail is handled by 10 65.98.21.97
1978
1979
1980 $ nslookup www.piffa.net
1981 Server:         192.168.0.10
1982 Address:        192.168.0.10#53
1983
1984 Non-authoritative answer:
1985 www.piffa.net   canonical name = piffa.net.
1986 Name:   piffa.net
1987 Address: 65.98.21.97
1988
1989
1990 $ dig www.piffa.net
1991
1992 ; &lt;&lt;&gt;&gt; DiG 9.6.0-P1 &lt;&lt;&gt;&gt; www.piffa.net
1993 ;; global options: +cmd
1994 ;; Got answer:
1995 ;; -&gt;&gt;HEADER&lt;&lt;- opcode: QUERY, status: NOERROR, id: 47751
1996 ;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 4, ADDITIONAL: 4
1997
1998 ;; QUESTION SECTION:
1999 ;www.piffa.net.                 IN      A
2000
2001 ;; ANSWER SECTION:
2002 www.piffa.net.          3489    IN      CNAME   piffa.net.
2003 piffa.net.              3489    IN      A       65.98.21.97
2004
2005 ;; AUTHORITY SECTION:
2006 piffa.net.              86289   IN      NS      ns2.mydomain.com.
2007 piffa.net.              86289   IN      NS      ns1.mydomain.com.
2008 piffa.net.              86289   IN      NS      ns4.mydomain.com.
2009 piffa.net.              86289   IN      NS      ns3.mydomain.com.
2010
2011 ;; ADDITIONAL SECTION:
2012 ns1.mydomain.com.       96208   IN      A       64.94.117.193
2013 ns2.mydomain.com.       96208   IN      A       64.94.31.67
2014 ns3.mydomain.com.       96208   IN      A       66.150.161.137
2015 ns4.mydomain.com.       96208   IN      A       63.251.83.74
2016
2017 ;; Query time: 1 msec
2018 ;; SERVER: 192.168.0.10#53(192.168.0.10)
2019 ;; WHEN: Sun May 10 21:23:11 2009
2020 ;; MSG SIZE  rcvd: 209
2021 </pre>
2022
2023         <p>Lo strumento piu' esaustivo e' <tt class=
2024         "docutils literal"><span class="pre">dig</span></tt>,
2025         installabile con il pacchetto <tt class=
2026         "docutils literal"><span class="pre">dnsutils</span></tt>
2027         .</p>
2028       </div>
2029
2030       <div class="section" id="dig">
2031         <h2><a class="toc-backref" href=
2032         "#id42">4.5&nbsp;&nbsp;&nbsp;Dig</a></h2>
2033
2034         <p>Vediamo alcune opzioni utili nell'utilizzo di <tt class=
2035         "docutils literal"><span class="pre">dig</span></tt> per
2036         l'inerrogazione dei DNS Server:</p>
2037         <pre class="literal-block">
2038 $ dig www.google.it
2039
2040 ; &lt;&lt;&gt;&gt; DiG 9.6.0-P1 &lt;&lt;&gt;&gt; www.google.it
2041 ;; global options: +cmd
2042 ;; Got answer:
2043 ;; -&gt;&gt;HEADER&lt;&lt;- opcode: QUERY, status: NOERROR, id: 18816
2044 ;; flags: qr rd ra; QUERY: 1, ANSWER: 6, AUTHORITY: 7, ADDITIONAL: 0
2045
2046 ;; QUESTION SECTION:
2047 ;www.google.it.                 IN      A
2048
2049 ;; ANSWER SECTION:
2050 www.google.it.          250683  IN      CNAME   www.google.com.
2051 www.google.com.         334819  IN      CNAME   www.l.google.com.
2052 www.l.google.com.       186     IN      A       74.125.43.103
2053 www.l.google.com.       186     IN      A       74.125.43.104
2054 www.l.google.com.       186     IN      A       74.125.43.147
2055 www.l.google.com.       186     IN      A       74.125.43.99
2056
2057 ;; AUTHORITY SECTION:
2058 l.google.com.           80856   IN      NS      f.l.google.com.
2059 l.google.com.           80856   IN      NS      d.l.google.com.
2060 l.google.com.           80856   IN      NS      b.l.google.com.
2061 l.google.com.           80856   IN      NS      c.l.google.com.
2062 l.google.com.           80856   IN      NS      a.l.google.com.
2063 l.google.com.           80856   IN      NS      e.l.google.com.
2064 l.google.com.           80856   IN      NS      g.l.google.com.
2065
2066 ;; Query time: 1 msec
2067 ;; SERVER: 192.168.0.10#53(192.168.0.10)
2068 ;; WHEN: Sun May 10 21:34:47 2009
2069 ;; MSG SIZE  rcvd: 255
2070 </pre>
2071
2072         <dl class="docutils">
2073           <dt>$ dig</dt>
2074
2075           <dd>(semza opzioni o oggetti) Fornisce l'elenco dei
2076           <em>root servers</em> utilizzati. I root server sono i
2077           server che mantengono le informazioni sui domini di primo
2078           livello (TLD) e sono quindi il punto di partenza per
2079           scorrere nella directory dei DNS per recuperare le
2080           informazioni (tipicamente un campo <tt class=
2081           "docutils literal"><span class="pre">A</span></tt> per un
2082           indirizzo IP) che ci servono per raggiungere un certo
2083           servizio.</dd>
2084         </dl>
2085
2086         <p>$ dig</p>
2087
2088         <blockquote>
2089           <p>...</p>
2090
2091           <p>;; ANSWER SECTION: . 192032 IN NS C.ROOT-SERVERS.NET.
2092           . 192032 IN NS E.ROOT-SERVERS.NET. . 192032 IN NS
2093           B.ROOT-SERVERS.NET. . 192032 IN NS L.ROOT-SERVERS.NET. .
2094           192032 IN NS A.ROOT-SERVERS.NET. . 192032 IN NS
2095           F.ROOT-SERVERS.NET. . 192032 IN NS H.ROOT-SERVERS.NET. .
2096           192032 IN NS G.ROOT-SERVERS.NET. . 192032 IN NS
2097           K.ROOT-SERVERS.NET. . 192032 IN NS M.ROOT-SERVERS.NET. .
2098           192032 IN NS I.ROOT-SERVERS.NET. . 192032 IN NS
2099           J.ROOT-SERVERS.NET. . 192032 IN NS
2100           D.ROOT-SERVERS.NET.</p>
2101
2102           <p>...</p>
2103         </blockquote>
2104       </div>
2105     </div>
2106
2107     <div class="section" id="dnsmasq">
2108       <h1><a class="toc-backref" href=
2109       "#id43">5&nbsp;&nbsp;&nbsp;DNSmasq</a></h1>
2110
2111       <p>Dnsmasq puo' svolgere le funzioni di un DNS cache /
2112       forwarder e un server DHCP caratterizzato dalla facilita' di
2113       configurazione, dalla leggerezza e dalla possibilita' di
2114       modificare rapidamente i record DNS serviti alla rete. Puo'
2115       essere anche utilizzato come <cite>server per il boot da rete
2116       &lt;http://www.debian-administration.org/articles/478&gt;_</cite>
2117       .</p>
2118
2119       <p>Dnsmasq e' un interessante alternativa all'uso del server
2120       DNS Bind in modalita' cache-only (non autoritativo)
2121       accompagnato dal server DHCPD. I vantaggi sono:</p>
2122
2123       <ul class="simple">
2124         <li>Leggerezza: puo' essere fatto girare su una macchina
2125         relativamente debole in caso di bisogno.</li>
2126
2127         <li>Rapidita' di configurazione (in particolare per servire
2128         dei record A / MX alla rete, modificando al volo i valori
2129         originali ospitati sul server DNS Publico).</li>
2130
2131         <li>Ben integrato con connssioni PPP (utile se dovete
2132         rendere disponibile rapidamente una connessione a internet
2133         a una rete in difficolta').</li>
2134       </ul>
2135
2136       <p>Tutto cio' rende Dnsmasq una soluzione valida in
2137       particolare quando si deve intervenire in una rete
2138       pre-esistente in cui il server principale e' in crisi: si
2139       potra' utilizzare Dnsmasq anche su una macchina piu' debole e
2140       <em>mascherare</em> i servizi al momento non disponibili.
2141       Molto utile per scopi didattici, sopratutto per testare
2142       server SMTP impostando al volo i campi MX per nomi di dominio
2143       fittizi.</p>
2144     </div>
2145
2146     <div class="section" id="samba">
2147       <h1><a class="toc-backref" href=
2148       "#id44">6&nbsp;&nbsp;&nbsp;Samba</a></h1>
2149
2150       <p>Samba e' un progetto libero che fornisce servizi di
2151       condivisione di file e stampanti a client SMB/CIFS.</p>
2152
2153       <p>Samba e' liberamente disponibile, al contrario di altre
2154       implementazioni SMB/CIFS, e permette di ottenere
2155       interoperabilita' tra Linux, Unix, Mac OS X e Windows.</p>
2156
2157       <p>Samba e' un software che puo girare su piattaforme che non
2158       siano Microsoft Windows, per esempio, UNIX, Linux, IBM System
2159       390, OpenVMS e altri sistemi operativi. Samba utilizza il
2160       protocollo TCP/IP utilizzando i servizi offerti sul server
2161       ospite. Quando correttamente configurato, permette di
2162       interagire con client o server Microsoft Windows come se
2163       fosse un file e print server Microsoft agendo da Primary
2164       Domain Controller (PDC) o come Backup Domain Controller, puo'
2165       inoltre prendere parte ad un dominio Active Directory.</p>
2166
2167       <div class="section" id="pacchetti">
2168         <h2><a class="toc-backref" href=
2169         "#id45">6.1&nbsp;&nbsp;&nbsp;Pacchetti</a></h2>
2170
2171         <p>Pacchetti da installare per utilizzare Samba in
2172         modalita' client <a class="footnote-reference" href="#id5"
2173         id="id4" name="id4">[2]</a></p>
2174         <pre class="literal-block">
2175 samba-client
2176 </pre>
2177
2178         <p>Pacchetti da installare per utilizzare Samba in
2179         modalita' server:</p>
2180         <pre class="literal-block">
2181 samba smbfs smbclient
2182 </pre>
2183
2184         <table class="docutils footnote" frame="void" id="id5"
2185         rules="none">
2186           <colgroup>
2187             <col class="label">
2188             <col>
2189           </colgroup>
2190
2191           <tbody valign="top">
2192             <tr>
2193               <td class="label"><a class="fn-backref" href=
2194               "#id4">[2]</a></td>
2195
2196               <td>Anche se nato per i sistemi Windows, Samba puo'
2197               essere usato anche per montare cartelle sotto
2198               GNU/Linux come alternativa a NFS. Per la condivisione
2199               di stampanti sarebbe invece opportuno intervenire
2200               direttamente su <tt class=
2201               "docutils literal"><span class=
2202               "pre">CUPS</span></tt>.</td>
2203             </tr>
2204           </tbody>
2205         </table>
2206
2207         <p>Durante la prima installazione viene chiesto il nome del
2208         gruppo di appartenenza, il default per Windows e'
2209         <tt class="docutils literal"><span class=
2210         "pre">WORKGROUP</span></tt>. In aula usiamo invece
2211         <tt class="docutils literal"><span class=
2212         "pre">208</span></tt> .</p>
2213
2214         <p>Per riconfigurare Samba si usi il comando:</p>
2215         <pre class="literal-block">
2216 dpkg-reconfigure samba-common
2217 </pre>
2218       </div>
2219
2220       <div class="section" id="passwords-e-autenticazione">
2221         <h2><a class="toc-backref" href=
2222         "#id46">6.2&nbsp;&nbsp;&nbsp;Passwords e
2223         autenticazione</a></h2>
2224
2225         <p>Per poter configurare Samba in modo che usi un sistema
2226         di negoziazione degli accessi alle cartelle condivise
2227         basato su accoppiate <em>nome utente / password</em>
2228         bisogna distinguere tra 3 livelli di password (e
2229         generalmente volete usare <em>sempre la stessa
2230         password</em> per ognuno di questi) e delle differenze tra
2231         le modalita' di <em>autenticazione</em> (e quindi anche di
2232         criptaggio delle passwords) usate da sistemi GNU/Linux e
2233         Windows:</p>
2234
2235         <dl class="docutils">
2236           <dt>1 Sistema *Unix ( GNU/Linux )</dt>
2237
2238           <dd>E' la password dell'<em>utente di sistema</em> che
2239           viene usata sul sistema operativo su cui gira il software
2240           Samba. E' importante tenere conto anche delle
2241           <em>user-id</em> e <em>group-id</em> degli utenti che
2242           dovranno fisicamente scrivere sui file system. Se un
2243           utente non puo' scrivere in una certa posizione del file
2244           system (ad esempio nella cartella <tt class=
2245           "docutils literal"><span class=
2246           "pre">/mnt/condivisione</span></tt> che sara' stata
2247           necessariamente creata inizialmente dall'utente
2248           <tt class="docutils literal"><span class=
2249           "pre">root</span></tt>) per mancanza dei privilegi di
2250           scrittura allora neanche Samba potra' farlo nel momento
2251           in mette a disposizione la risorsa all'utente. Se si
2252           montano file-system dedicati per le condivisioni
2253           controllare i permessi e propieta' dei <em>punti di
2254           mount*</em>. Queste passwords sono salvate nel solito
2255           file /etc/shadow (richiamato da /etc/passwd).</dd>
2256
2257           <dt>2 Password per l'applicativo Samba</dt>
2258
2259           <dd>Samba deve essere compatibile con Windows e quindi
2260           utilizzare un sistema di criptazione delle password
2261           diverso da /etc/shadow . Le password per Samba possono
2262           essere gestite ad esempio col comando <tt class=
2263           "docutils literal"><span class=
2264           "pre">smbpasswd</span></tt> e vengono generalmente
2265           salvate all'interno di <tt class=
2266           "docutils literal"><span class=
2267           "pre">/var/lib/samba/passdb.tdb</span></tt> .</dd>
2268
2269           <dt>3 Password per Windows.</dt>
2270
2271           <dd>Gli utenti Windows effettuano il log-in alla partenza
2272           della sessione di Windows. Se si avra' l'accortezza di
2273           usare sempre la <em>stessa password</em> data
2274           precedentemente anche a Windows (o viceversa impostare la
2275           password per GNU/Linux / Samba uguale a quella di
2276           Windows) l'utente potra' accedere automaticamente alle
2277           condivisioni a lui disponibili.</dd>
2278         </dl>
2279       </div>
2280
2281       <div class="section" id="creazione-utenti">
2282         <h2><a class="toc-backref" href=
2283         "#id47">6.3&nbsp;&nbsp;&nbsp;Creazione Utenti</a></h2>
2284
2285         <p>Creiamo per primo l'utente sotto GNU/Linux, facendo
2286         attenzione a <em>non dargli una shell di sistema</em>. Gli
2287         utenti Windows che accedono al server solo per le
2288         condivisioni non hanno bisogno di poter eseguire comandi
2289         sul server!</p>
2290
2291         <p>Creazione di un utente denominato sambo:</p>
2292         <pre class="literal-block">
2293 adduser --shell /bin/false sambo
2294 </pre>
2295
2296         <p>Nel file <tt class="docutils literal"><span class=
2297         "pre">/etc/passwd</span></tt> avremo qualcosa come:</p>
2298         <pre class="literal-block">
2299 sambo:x:1001:1001:Sambo utente Samba,,,:/home/sambo:/bin/false
2300 </pre>
2301
2302         <p>Aggiunta dell'utente al database delle password per
2303         Samba e generazione della sua password:</p>
2304         <pre class="literal-block">
2305 smbpasswd -a sambo
2306 </pre>
2307
2308         <p>Se successivamente si vorra' modificare la password di
2309         un utente gia' esistente si usi:</p>
2310         <pre class="literal-block">
2311 smbpasswd  sambo
2312 </pre>
2313
2314         <p>La password sotto Windows verra' modificata sul sistema
2315         Windows.</p>
2316       </div>
2317
2318       <div class="section" id="creare-la-condivisione">
2319         <h2><a class="toc-backref" href=
2320         "#id48">6.4&nbsp;&nbsp;&nbsp;Creare la
2321         condivisione</a></h2>
2322
2323         <p>La condivisione altro non e' che una cartella sul server
2324         che viene resa disponibile ai client negoziando l'accesso
2325         in base a una autenticazione basata su <em>user-name /
2326         password</em>. E' per altro possibile permettere l'accesso
2327         a una risorsa a chiunque indiscriminatamente (a tutti i
2328         <tt class="docutils literal"><span class=
2329         "pre">guest</span></tt>) ma la cosa e' sconsigliabile dal
2330         punto di vista della sicurezza. Si decida se la cartella
2331         condivisa debba risiedere nella <em>home</em> di un utente
2332         (nel caso quest'ultimo ne sia l'unico fruitore) o in una
2333         cartella in /mnt/ (nel caso piu' utenti accedano a questa).
2334         Nel secondo caso si potranno gestire gli accessi sotto
2335         GNU/Linux tramite i gruppi.</p>
2336
2337         <p>Creazione della risorsa sambo_share nella home
2338         dell'utente sambo:</p>
2339         <pre class="literal-block">
2340 # mkdir /home/sambo/sambo_share
2341 # chown sambo:sambo /home/sambo/sambo_share/
2342 </pre>
2343
2344         <div class="section" id=
2345         "sicurezza-permessi-di-esecuzione-sul-server">
2346           <h3><a class="toc-backref" href=
2347           "#id49">6.4.1&nbsp;&nbsp;&nbsp;Sicurezza: permessi di
2348           esecuzione sul server</a></h3>
2349
2350           <p>Bisognerebbe notare sul server i permessi di
2351           esecuzione del file-system che ospita la cartella da
2352           condividere. Se i file che saranno contenuti nella
2353           condivisione saranno da usarsi sotto Windows non c'e'
2354           motivo che questi siano eseguibili sotto GNU/Linux. Si
2355           potrebbe avere quindi, ipotizzando una condivisione in
2356           <tt class="docutils literal"><span class=
2357           "pre">/mnt/share</span></tt> che risieda su di un file
2358           system dedicato:</p>
2359
2360           <p><tt class="docutils literal"><span class=
2361           "pre">/etc/fstab</span></tt></p>
2362
2363           <blockquote>
2364             /dev/hda10 /mnt/share ext3 rw,
2365             <strong>nosuid,noexec</strong> 0 3
2366           </blockquote>
2367
2368           <p>Si noti anche l'uso di <em>nosuid</em> per evitare la
2369           possibilita' di eseguire programmi con credenziali
2370           diverse.</p>
2371         </div>
2372       </div>
2373
2374       <div class="section" id=
2375       "configurazione-dell-applicativo-samba-vero-e-proprio">
2376         <h2><a class="toc-backref" href=
2377         "#id50">6.5&nbsp;&nbsp;&nbsp;Configurazione
2378         dell'applicativo Samba vero e proprio.</a></h2>
2379
2380         <p>Avendo preparato gli utenti (ancora una volta: non si
2381         dia una shell completa a un utente che serve solo per Samba
2382         o la posta elettronica) e la cartella sul file system si
2383         puo' procedere a configurare la condivisione su Samba.</p>
2384
2385         <p>/etc/samba/smb.conf riga ~235 , Share Definitions (in
2386         vim si usi 235gg ):</p>
2387         <pre class="literal-block">
2388 [sambo_share]
2389         # Percorso della cartella condivisa
2390         path = /home/sambo/sambo_share
2391         # Se gli utenti possono scrivere / modificare file
2392         writable = yes
2393         # Negoziazione degli accessi su base utenti / passwords
2394         valid users = sambo
2395
2396         # #######################################
2397         # Altri parametri opzionali di interesse
2398         # Se posso vedere la condivisione da esplora risorse
2399         # anche se non ho i privilegi per accedervi.
2400         browseable = yes
2401         # Commento indicativo della risorsa
2402         comment = Condivisione per Sambo
2403 </pre>
2404
2405         <p>Dopo aver salvato il file si puo' fare un primo
2406         controllo tramite l'utility <tt class=
2407         "docutils literal"><span class="pre">testparm</span></tt> ,
2408         che controlla la sintassi del file di configurazione di
2409         Samba. Se questo non rileva problemi si puo' procedere a un
2410         <tt class="docutils literal"><span class="pre">#</span>
2411         <span class="pre">/etc/init.d/samba</span> <span class=
2412         "pre">restart</span></tt> .</p>
2413       </div>
2414
2415       <div class="section" id="testare-il-servizio">
2416         <h2><a class="toc-backref" href=
2417         "#id51">6.6&nbsp;&nbsp;&nbsp;Testare il Servizio</a></h2>
2418
2419         <p>Come testare il servizio</p>
2420
2421         <p>es:</p>
2422         <pre class="literal-block">
2423 smbclient -U sambo -L localhost
2424 </pre>
2425
2426         <p>Questo comando permette di esplorare la risorsa
2427         qualificandosi come utente, in questo modo potete testare
2428         il corretto funzionamento dell'autenticazione. Si provi
2429         inizialmente a sbagliare la password deliberatamente, poi a
2430         inserirla correttamente: dovrebbero essere visibili le
2431         risorse disponibili al solo utente sambo: la suo /home e la
2432         cartella samba_share:</p>
2433         <pre class="literal-block">
2434 Sharename       Type      Comment
2435 ---------       ----      -------
2436 sambo_share     Disk      Condivisione per Sambo
2437 print$          Disk      Printer Drivers
2438 IPC$            IPC       IPC Service (base server)
2439 sambo           Disk      Home Directories
2440 </pre>
2441
2442         <p>In particolare l'ultima voce relativa alla home
2443         directory dell'utente dovrebbe essere visibile solo agli
2444         utenti autenticati.</p>
2445
2446         <p>In alternativa e' possibile montare realmente la
2447         condivisone anche su GNU/Linux tramite un client per samba
2448         e testarne il corretto funzionamento:</p>
2449         <pre class="literal-block">
2450 mount -t smbfs //localhost/sambo_share /mnt/sambo_mount/ --verbose -o user=sambo
2451 </pre>
2452       </div>
2453     </div>
2454
2455     <div class="section" id="firewall">
2456       <h1><a class="toc-backref" href=
2457       "#id52">7&nbsp;&nbsp;&nbsp;Firewall</a></h1>
2458
2459       <p>In Informatica, nell'ambito delle reti di computer, un
2460       firewall (termine inglese dal significato originario di
2461       parete refrattaria, muro tagliafuoco, muro ignifugo; in
2462       italiano anche parafuoco o parafiamma) e' un componente
2463       passivo di difesa perimetrale che può anche svolgere
2464       funzioni di collegamento tra due o piu' tronconi di rete.
2465       Usualmente la rete viene divisa in due sottoreti: una, detta
2466       esterna, comprende l'intera Internet mentre l'altra interna,
2467       detta LAN (Local Area Network), comprende una sezione piu' o
2468       meno grande di un insieme di computer locali. In alcuni casi
2469       e' possibile che si crei l'esigenza di creare una terza
2470       sottorete detta DMZ (o zona demilitarizzata) atta a contenere
2471       quei sistemi che devono essere isolati dalla rete interna ma
2472       devono comunque essere protetti dal firewall.</p>
2473
2474       <p>Una prima definizione chiusa di firewall è la
2475       seguente:</p>
2476
2477       <p>Apparato di rete hardware o software che filtra tutti i
2478       pacchetti entranti ed uscenti, da e verso una rete o un
2479       computer, applicando regole che contribuiscono alla sicurezza
2480       della stessa.</p>
2481
2482       <p>In realtÃ&nbsp; un firewall può essere realizzato con un
2483       normale computer (con almeno due schede di rete e software
2484       apposito), può essere una funzione inclusa in un router o
2485       può essere un apparato specializzato. Esistono inoltre i
2486       cosiddetti "firewall personali", che sono programmi
2487       installati sui normali calcolatori, che filtrano solamente i
2488       pacchetti che entrano ed escono da quel calcolatore; in tal
2489       caso viene utilizzata una sola scheda di rete.</p>
2490
2491       <p>La funzionalitÃ&nbsp; principale in sostanza Ã¨ quella di
2492       creare un filtro sulle connessioni entranti ed uscenti, in
2493       questo modo il dispositivo innalza il livello di sicurezza
2494       della rete e permette sia agli utenti interni che a quelli
2495       esterni di operare nel massimo della sicurezza. Il firewall
2496       agisce sui pacchetti in transito da e per la zona interna
2497       potendo eseguire su di essi operazioni di: controllo modifica
2498       monitoraggio</p>
2499
2500       <p>Questo grazie alla sua capacitÃ&nbsp; di "aprire" il
2501       pacchetto IP per leggere le informazioni presenti sul suo
2502       header, e in alcuni casi anche di effettuare verifiche sul
2503       contenuto del pacchetto.</p>
2504
2505       <div class="section" id="links">
2506         <h2><a class="toc-backref" href=
2507         "#id53">7.1&nbsp;&nbsp;&nbsp;Links</a></h2>
2508
2509         <ul class="simple">
2510           <li><a class="reference external" href=
2511           "http://openskill.info/topic.php?ID=124">http://openskill.info/topic.php?ID=124</a></li>
2512
2513           <li><a class="reference external" href=
2514           "http://iptables-tutorial.frozentux.net/iptables-tutorial.html">
2515           http://iptables-tutorial.frozentux.net/iptables-tutorial.html</a></li>
2516         </ul>
2517       </div>
2518
2519       <div class="section" id="ipfilter">
2520         <h2><a class="toc-backref" href=
2521         "#id54">7.2&nbsp;&nbsp;&nbsp;Ipfilter</a></h2>
2522
2523         <p>Link: <a class="reference external" href=
2524         "http://iptables-tutorial.frozentux.net/iptables-tutorial.html#IPFILTERING">
2525         http://iptables-tutorial.frozentux.net/iptables-tutorial.html#IPFILTERING</a></p>
2526
2527         <p>Natura di un firewall ip: su cosa lavora (livello 2 e un
2528         po' del 3) e su cosa <em>non</em> lavora (livello 4).
2529         Netfilter lavora anche su parti del livello 3 (TCP, UDP,
2530         etc) e del livello 1 (MAC source address). Iptables
2531         comunque permette di fare il <em>connection-tracking</em>,
2532         mediante il quale possiamo implementare il Network Address
2533         Translation.</p>
2534
2535         <p>Netfilter non ricostruisce il flusso di dati tra
2536         pacchetti, non puo' quindi rilevare la presenza di virus o
2537         simili che si trasmettono su pacchetti separati:
2538         ricomporre, analizzare e tornare a scomporre i frammenti
2539         rtichiederebbe troppa RAM e risorse di sistema, con il
2540         conseguente rischio di saturare il firewall fino
2541         all'abbandono dei nuovi pacchetti in transito. Ci sono
2542         altri software piu' adatti a questi compiti, ad esempio un
2543         proxy HTTP come Squid che e' appunto una applicazione di
2544         quarto livello, progettata e strutturata per analizzare e
2545         modificare i flussi di dati (il <em>contenuto</em> dei
2546         pacchetti, non le sole <em>inestazioni</em>) facendo
2547         abbondate uso delle risorse RAM e di calcolo del sistema.
2548         Non a caso su macchine embedded dalle prestazioni molto
2549         ridotte (CPU ARM ~250Mhz con ~30MB di RAM) Squid sfrutta al
2550         massimo le risorse di sistema per gestire il traffico di
2551         una rete 10/100, mentre il lavoro tipico svolto da
2552         netfilter e' quasi irrilevante.</p>
2553       </div>
2554
2555       <div class="section" id="progettazione-di-un-firewall">
2556         <h2><a class="toc-backref" href=
2557         "#id55">7.3&nbsp;&nbsp;&nbsp;Progettazione di un
2558         firewall</a></h2>
2559
2560         <p>Per implementare un firewall bisogna decidere un aio di
2561         cose: la collocazione e l'approccio (inclusivo o esclusivo)
2562         al filtraggio, il tipo di hardware.</p>
2563
2564         <div class="section" id="collocazione">
2565           <h3><a class="toc-backref" href=
2566           "#id56">7.3.1&nbsp;&nbsp;&nbsp;Collocazione</a></h3>
2567
2568           <p>DMZ e MZ, internet, intranet, extranet. Frammentazione
2569           della rete, decidere se diversi reparti di una azienda si
2570           possano vedere tra loro e in che misura.</p>
2571
2572           <p>Collocazione:</p>
2573
2574           <blockquote>
2575             <ol class="arabic simple">
2576               <li>sul router</li>
2577
2578               <li>tra router e servers / LAN</li>
2579
2580               <li>Unico server / router / firewall e connessi
2581               rischi. considerare l'acquisto di un router hardware
2582               dedicato.</li>
2583             </ol>
2584           </blockquote>
2585
2586           <dl class="docutils">
2587             <dt>Layeed security:</dt>
2588
2589             <dd>Implementare piu' device / software sui diversi
2590             livelli: <a class="reference external" href=
2591             "http://iptables-tutorial.frozentux.net/iptables-tutorial.html#HOWTOPLANANIPFILTER">
2592             http://iptables-tutorial.frozentux.net/iptables-tutorial.html#HOWTOPLANANIPFILTER</a></dd>
2593           </dl>
2594         </div>
2595
2596         <div class="section" id="policy-di-default">
2597           <h3><a class="toc-backref" href=
2598           "#id57">7.3.2&nbsp;&nbsp;&nbsp;Policy di default</a></h3>
2599
2600           <p>Drop o Accept: conseguenze per sicurezza, facilita' di
2601           gestione.</p>
2602         </div>
2603
2604         <div class="section" id="hardware">
2605           <h3><a class="toc-backref" href=
2606           "#id58">7.3.3&nbsp;&nbsp;&nbsp;Hardware</a></h3>
2607
2608           <p>Sostanzialmente potremmo distinquere due tipologie di
2609           hardware:</p>
2610
2611           <dl class="docutils">
2612             <dt>Network appliance dedicata::</dt>
2613
2614             <dd>Un dispositivo hardware dedicato alla funzione di
2615             Firewall, ad es un Cisco / Fortigate. Si noti che molti
2616             firewall economici altro non sono che Linux box molto
2617             striminzite.</dd>
2618
2619             <dt>Server / Personal computer:</dt>
2620
2621             <dd>Un server sul quale viene fatto girare Netfilter ad
2622             uso del server stesso e della rete connessa.</dd>
2623           </dl>
2624
2625           <p>Vantaggi e svantaggi: consumo elettrico, efficenza,
2626           flessibilita', strumenti di gestione, sicurezza,
2627           OpenBSD.</p>
2628         </div>
2629       </div>
2630
2631       <div class="section" id=
2632       "percorso-dei-pacchetti-tra-tabelle-e-catene">
2633         <h2><a class="toc-backref" href=
2634         "#id59">7.4&nbsp;&nbsp;&nbsp;Percorso dei pacchetti tra
2635         tabelle e catene</a></h2>
2636
2637         <p>link: <a class="reference external" href=
2638         "http://iptables-tutorial.frozentux.net/iptables-tutorial.html#TRAVERSINGOFTABLES">
2639         http://iptables-tutorial.frozentux.net/iptables-tutorial.html#TRAVERSINGOFTABLES</a></p>
2640       </div>
2641
2642       <div class="section" id="concetti-di-base">
2643         <h2><a class="toc-backref" href=
2644         "#id60">7.5&nbsp;&nbsp;&nbsp;Concetti di base</a></h2>
2645
2646         <div class="section" id="tabelle-catene-regole">
2647           <h3><a class="toc-backref" href=
2648           "#id61">7.5.1&nbsp;&nbsp;&nbsp;Tabelle, catene,
2649           regole</a></h3>
2650
2651           <p>Iptables lavora su 3 tabelle (tables) di default:</p>
2652
2653           <ul class="simple">
2654             <li>filter - Regola il firewalling: quali pacchetti
2655             accettare, quali bloccare</li>
2656
2657             <li>nat - Regola le attivitÃ&nbsp; di natting</li>
2658
2659             <li>mangle - Interviene sulla alterazione dei
2660             pacchetti.</li>
2661           </ul>
2662
2663           <p>Ogni tabella ha delle catene (chains) predefinite
2664           (INPUT, OUTPUT, FORWARD ... ) a cui possono essere
2665           aggiunte catene custom. Ogni catena è composta da un
2666           elenco di regole (rules) che identificano pacchetti di
2667           rete secono criteri diversi (es: -p tcp --dport 80 -d
2668           10.0.0.45) Ogni regola termina con una indicazione
2669           (target) su cosa fare dei pacchetti identificati dalla
2670           regola stessa (es: -j ACCEPT, -j DROP ...)</p>
2671         </div>
2672
2673         <div class="section" id="match">
2674           <h3><a class="toc-backref" href=
2675           "#id62">7.5.2&nbsp;&nbsp;&nbsp;Match</a></h3>
2676
2677           <p>I Match di una regola (rule) servono a testare un
2678           pacchetto per valutare se corrisponda a certe
2679           caratteriscttiche. I match di possono servire a
2680           controllare se un pacchetto e' destinato a una porta
2681           particolare o utilizza un protocollo particolare.</p>
2682
2683           <p>Alcuni esempi:</p>
2684
2685           <dl class="docutils">
2686             <dt>-p [!] proto</dt>
2687
2688             <dd>Protocollo IP. Secondo IP number o nome (es: tcp,
2689             udp, gre, ah...)</dd>
2690
2691             <dt>-s [!] address[/mask]</dt>
2692
2693             <dd>Indirizzo IP sorgente (o network con maschera di
2694             sottorete)</dd>
2695
2696             <dt>-d [!] address[/mask]</dt>
2697
2698             <dd>Indirizzo IP destinazione (o network)</dd>
2699
2700             <dt>-i [!] interface[+]</dt>
2701
2702             <dd>Interfaccia di rete di entrata ([+] wildcard)</dd>
2703
2704             <dt>-o [!] interface[+]</dt>
2705
2706             <dd>Interfaccia di rete di uscita ([+] wildcard)</dd>
2707           </dl>
2708
2709           <table class="docutils option-list" frame="void" rules=
2710           "none">
2711             <col class="option">
2712             <col class="description">
2713
2714             <tbody valign="top">
2715               <tr>
2716                 <td class="option-group"><kbd><span class=
2717                 "option">-f</span></kbd></td>
2718
2719                 <td>Frammento di pacchetto</td>
2720               </tr>
2721             </tbody>
2722           </table>
2723         </div>
2724
2725         <div class="section" id="targets">
2726           <h3><a class="toc-backref" href=
2727           "#id63">7.5.3&nbsp;&nbsp;&nbsp;Targets</a></h3>
2728
2729           <p>Se un pacchetto soddisfa le condizioni del Match
2730           <em>salta</em> (jump) su uno dei target possibili, in
2731           caso contrario continua il suo percorso tra regole catene
2732           e tabelle.</p>
2733
2734           <p>Target principali:</p>
2735
2736           <dl class="docutils">
2737             <dt><em>-j ACCEPT</em></dt>
2738
2739             <dd>Il pachetto matchato viene accettato e procede
2740             verso la sua destinazione. Si usa per definire il
2741             traffico permesso.</dd>
2742
2743             <dt><em>-j DROP</em></dt>
2744
2745             <dd>Il pacchetto viene rifiutato e scartato, senza
2746             alcuna notifica al mittente. Si usa, in alternativa a
2747             REJECT, per bloccare traffico.</dd>
2748
2749             <dt><em>-j REJECT</em></dt>
2750
2751             <dd>Il pacchetto viene rifiutato. Al mittente viene
2752             mandato un pacchetto (configurabile) di notifica tipo
2753             ICMP port-unreachable (--reject-with
2754             icmp-port-unreachable)</dd>
2755           </dl>
2756
2757           <table class="docutils option-list" frame="void" rules=
2758           "none">
2759             <col class="option">
2760             <col class="description">
2761
2762             <tbody valign="top">
2763               <tr>
2764                 <td class="option-group"><kbd><span class=
2765                 "option">-t <var>LOG</var></span></kbd></td>
2766
2767                 <td>Il pacchetto viene loggato via syslog e procede
2768                 l'attraversamento della catena. Opzioni:
2769                 (--log-level, --log-prefix, --log-tcp-sequence,
2770                 --log-tcp-options, --log-ip-options)</td>
2771               </tr>
2772
2773               <tr>
2774                 <td class="option-group"><kbd><span class=
2775                 "option">-j <var>DNAT</var></span></kbd></td>
2776
2777                 <td>Viene modificato l'IP di destinazione del
2778                 pacchetto. Target disponibile solo in nat /
2779                 PREROUTING e nat / OUTPUT. L'opzione
2780                 --to-destination IP:porta definisce il nuovo IP di
2781                 destinazione. Si usa tipicamente su network
2782                 firewall che nattano server di una DMZ</td>
2783               </tr>
2784
2785               <tr>
2786                 <td class="option-group"><kbd><span class=
2787                 "option">-j <var>SNAT</var></span></kbd></td>
2788
2789                 <td>Viene modificato l'IP sorgente. Solo in nat /
2790                 POSTROUTING. Prevede l'opzione --to-source
2791                 IP:porta. Si usa per permettere l'accesso a
2792                 Internet da una rete locale con IP privati.</td>
2793               </tr>
2794
2795               <tr>
2796                 <td class="option-group"><kbd><span class=
2797                 "option">-j <var>MASQUERADE</var></span></kbd></td>
2798
2799                 <td>Simile a SNAT, si applica quando i pacchetti
2800                 escono da interfacce con IP dinamico (dialup, adsl,
2801                 dhcp...). Si usa solo in nat / POSTROUTING e
2802                 prevede l'opzione --to-ports porte.</td>
2803               </tr>
2804
2805               <tr>
2806                 <td class="option-group"><kbd><span class=
2807                 "option">-j <var>REDIRECT</var></span></kbd></td>
2808
2809                 <td>Redirige il pacchetto ad una porta locale.
2810                 Usabile solo in nat / PREROUTING e nat / OUTPUT è
2811                 previsto per fare un transparent proxy (con proxy
2812                 server in esecuzione sulla macchina con
2813                 iptables)</td>
2814               </tr>
2815
2816               <tr>
2817                 <td class="option-group"><kbd><span class=
2818                 "option">-j <var>RETURN</var></span></kbd></td>
2819
2820                 <td>Interrompe l'attraversamento della catena. Se
2821                 questa è una secondaria, il pacchetto torna ad
2822                 attraversare la catena madre da punto in cui aveva
2823                 fatto il salto nella secondaria. Se il RETURN è in
2824                 una delle catene di default, il pacchetto
2825                 interrompe l'attraversamento e segue la policy di
2826                 default.</td>
2827               </tr>
2828
2829               <tr>
2830                 <td class="option-group"><kbd><span class=
2831                 "option">-j <var>TOS</var></span></kbd></td>
2832
2833                 <td>Usabile solo nella tabella mangle, permette di
2834                 cambiare il TOS (Type Of Service) di un pacchetto
2835                 con l'opzione --set-tos. Per un elenco dei
2836                 parametri disponibili: iptables -j TOS -h</td>
2837               </tr>
2838
2839               <tr>
2840                 <td class="option-group"><kbd><span class=
2841                 "option">-j <var>MIRROR</var></span></kbd></td>
2842
2843                 <td>Curioso e sperimentale, questo target invia un
2844                 pacchetto speculare al mittente. In pratica è come
2845                 se facesse da specchio per tutti i pacchetti
2846                 ricevuti. Da usare con cautela, per evitare
2847                 attacchi DOS indiretti.</td>
2848               </tr>
2849             </tbody>
2850           </table>
2851         </div>
2852       </div>
2853
2854       <div class="section" id="tabella-filter">
2855         <h2><a class="toc-backref" href=
2856         "#id64">7.6&nbsp;&nbsp;&nbsp;Tabella Filter</a></h2>
2857
2858         <p>E' quella implicita e predefinita (-t filter) Riguarda
2859         le attivitÃ&nbsp; di filtraggio del traffico. Ha 3 catene
2860         di default: INPUT - Riguarda tutti i pacchetti destinati al
2861         sistema. In entrata da ogni interfaccia. OUTPUT - Riguarda
2862         i pacchetti che sono originati dal sistema e destinati ad
2863         uscire. FORWARD - Riguarda i pacchetti che attraversano il
2864         sistema, con IP sorgente e destinazione esterni.</p>
2865
2866         <p>Esempio per permettere accesso alla porta 80 locale:
2867         iptables -t filter -I INPUT -p tcp --dport 80 -j ACCEPT
2868         Analoga a: iptables -I INPUT -p tcp --dport 80 -j
2869         ACCEPT</p>
2870
2871         <p>Esempio per permettere ad un pacchetto con IP sorgente
2872         10.0.0.4 di raggiungere il server 192.168.0.1 attraversando
2873         il firewall: iptables -I FORWARD -s 10.0.0.4 -d 192.168.0.1
2874         -j ACCEPT</p>
2875       </div>
2876
2877       <div class="section" id="gestione-regole-rules">
2878         <h2><a class="toc-backref" href=
2879         "#id65">7.7&nbsp;&nbsp;&nbsp;Gestione regole
2880         (rules)</a></h2>
2881
2882         <p>Il comando iptables viene usato per ogni attivitÃ&nbsp;
2883         di gestione e configurazione.</p>
2884
2885         <p>Inserimento regole:</p>
2886
2887         <dl class="docutils">
2888           <dt>iptables -A CATENA ...</dt>
2889
2890           <dd>Aggiunge una regola alla fine della catena
2891           indicata</dd>
2892
2893           <dt>iptables -I CATENA [#] ...</dt>
2894
2895           <dd>Inserisce alla riga # (default 1) una regola nella
2896           catena indicata</dd>
2897
2898           <dt>iptables -N CATENA</dt>
2899
2900           <dd>Crea una nuova catena custom</dd>
2901
2902           <dt>iptables -P CATENA TARGET</dt>
2903
2904           <dd>Imposta il target di default per la catena
2905           indicata</dd>
2906         </dl>
2907
2908         <p>Rimozione regole e azzeramenti:</p>
2909
2910         <dl class="docutils">
2911           <dt>iptables -F [catena]</dt>
2912
2913           <dd>Ripulisce tutte le catene (o quella indicata)</dd>
2914
2915           <dt>iptables -X [catena]</dt>
2916
2917           <dd>Ripulisce tutte le catene custom (o quella
2918           indicata)</dd>
2919
2920           <dt>iptables -Z [catena]</dt>
2921
2922           <dd>Azzera i contatori sulle catene</dd>
2923
2924           <dt>iptables -D catena #</dt>
2925
2926           <dd>Cancella la regola numero # dalla catena
2927           indicata</dd>
2928         </dl>
2929
2930         <p>Interrogazione:</p>
2931
2932         <dl class="docutils">
2933           <dt>iptables -L</dt>
2934
2935           <dd>Elenca le regole esistenti</dd>
2936
2937           <dt>iptables -L -n -v</dt>
2938
2939           <dd>Elenca, senza risolvere gli host, in modo verboso le
2940           regole esistenti</dd>
2941         </dl>
2942       </div>
2943     </div>
2944
2945     <div class="section" id="note">
2946       <h1><a class="toc-backref" href=
2947       "#id66">8&nbsp;&nbsp;&nbsp;NOTE</a></h1>
2948
2949       <ul class="simple">
2950         <li>controllare apache</li>
2951       </ul>
2952
2953       <p>sintassi: in <tt class="docutils literal"><span class=
2954       "pre">monospace</span></tt> :</p>
2955
2956       <ul class="simple">
2957         <li>nomi di files</li>
2958
2959         <li>comandi</li>
2960
2961         <li>pacchetti</li>
2962       </ul>
2963     </div>
2964   </div>
2965 </body>
2966 </html>