]> git.piffa.net Git - doc/.git/blob - servizi.html
Sistemata la parte di Squid per servizi.txt
[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.5</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>
387           <a class="reference internal" href="#squid" id="id16"
388           name="id16">2&nbsp;&nbsp;&nbsp;Squid</a>
389
390           <ul class="auto-toc">
391             <li>
392               <a class="reference internal" href=
393               "#configurazione-squid-conf" id="id17" name=
394               "id17">2.1&nbsp;&nbsp;&nbsp;Configurazione:
395               squid.conf</a>
396
397               <ul class="auto-toc">
398                 <li><a class="reference internal" href="#cache-dir"
399                 id="id18" name=
400                 "id18">2.1.1&nbsp;&nbsp;&nbsp;Cache_dir</a></li>
401
402                 <li><a class="reference internal" href=
403                 "#tag-maximum-object-size" id="id19" name=
404                 "id19">2.1.2&nbsp;&nbsp;&nbsp;TAG:
405                 maximum_object_size</a></li>
406
407                 <li><a class="reference internal" href=
408                 "#tag-cache-mem" id="id20" name=
409                 "id20">2.1.3&nbsp;&nbsp;&nbsp;TAG:
410                 cache_mem</a></li>
411
412                 <li><a class="reference internal" href=
413                 "#tag-minimum-object-size" id="id21" name=
414                 "id21">2.1.4&nbsp;&nbsp;&nbsp;TAG:
415                 minimum_object_size</a></li>
416               </ul>
417             </li>
418
419             <li>
420               <a class="reference internal" href=
421               "#negoziazione-degli-accesi-al-servizio" id="id22"
422               name="id22">2.2&nbsp;&nbsp;&nbsp;Negoziazione degli
423               accesi al servizio</a>
424
425               <ul class="auto-toc">
426                 <li><a class="reference internal" href=
427                 "#acl-e-http-access" id="id23" name=
428                 "id23">2.2.1&nbsp;&nbsp;&nbsp;ACL e http
429                 access</a></li>
430               </ul>
431             </li>
432
433             <li>
434               <a class="reference internal" href="#testare-squid"
435               id="id24" name="id24">2.3&nbsp;&nbsp;&nbsp;Testare
436               Squid</a>
437
438               <ul class="auto-toc">
439                 <li><a class="reference internal" href=
440                 "#client-wgetrc" id="id25" name=
441                 "id25">2.3.1&nbsp;&nbsp;&nbsp;Client:
442                 ~/.wgetrc</a></li>
443
444                 <li><a class="reference internal" href=
445                 "#server-access-log" id="id26" name=
446                 "id26">2.3.2&nbsp;&nbsp;&nbsp;Server:
447                 access.log</a></li>
448               </ul>
449             </li>
450           </ul>
451         </li>
452
453         <li>
454           <a class="reference internal" href="#apache" id="id27"
455           name="id27">3&nbsp;&nbsp;&nbsp;Apache</a>
456
457           <ul class="auto-toc">
458             <li><a class="reference internal" href=
459             "#pacchetti-da-installare" id="id28" name=
460             "id28">3.1&nbsp;&nbsp;&nbsp;Pacchetti da
461             installare::</a></li>
462
463             <li><a class="reference internal" href=
464             "#configurazione-di-apache" id="id29" name=
465             "id29">3.2&nbsp;&nbsp;&nbsp;Configurazione di
466             Apache</a></li>
467
468             <li><a class="reference internal" href="#apache-conf"
469             id="id30" name=
470             "id30">3.3&nbsp;&nbsp;&nbsp;apache.conf</a></li>
471
472             <li>
473               <a class="reference internal" href=
474               "#installazione-di-php" id="id31" name=
475               "id31">3.4&nbsp;&nbsp;&nbsp;Installazione di PHP</a>
476
477               <ul class="auto-toc">
478                 <li><a class="reference internal" href=
479                 "#test-del-modulo-php" id="id32" name=
480                 "id32">3.4.1&nbsp;&nbsp;&nbsp;Test del modulo
481                 php</a></li>
482
483                 <li><a class="reference internal" href=
484                 "#installazione-del-supporto-per-mysql" id="id33"
485                 name="id33">3.4.2&nbsp;&nbsp;&nbsp;Installazione
486                 del supporto per Mysql</a></li>
487
488                 <li><a class="reference internal" href=
489                 "#phpmyadmin" id="id34" name=
490                 "id34">3.4.3&nbsp;&nbsp;&nbsp;phpmyadmin</a></li>
491
492                 <li><a class="reference internal" href=
493                 "#installazione-del-supporto-per-postgresql" id=
494                 "id35" name=
495                 "id35">3.4.4&nbsp;&nbsp;&nbsp;Installazione del
496                 supporto per Postgresql</a></li>
497
498                 <li><a class="reference internal" href=
499                 "#phppgadmin" id="id36" name=
500                 "id36">3.4.5&nbsp;&nbsp;&nbsp;phppgadmin</a></li>
501               </ul>
502             </li>
503
504             <li>
505               <a class="reference internal" href="#virtual-hosts"
506               id="id37" name="id37">3.5&nbsp;&nbsp;&nbsp;Virtual
507               hosts</a>
508
509               <ul class="auto-toc">
510                 <li><a class="reference internal" href=
511                 "#gestione-dns" id="id38" name=
512                 "id38">3.5.1&nbsp;&nbsp;&nbsp;Gestione DNS</a></li>
513
514                 <li><a class="reference internal" href=
515                 "#virtual-host" id="id39" name=
516                 "id39">3.5.2&nbsp;&nbsp;&nbsp;Virtual host</a></li>
517               </ul>
518             </li>
519
520             <li>
521               <a class="reference internal" href=
522               "#negoziazione-accessi" id="id40" name=
523               "id40">3.6&nbsp;&nbsp;&nbsp;Negoziazione accessi</a>
524
525               <ul class="auto-toc">
526                 <li><a class="reference internal" href=
527                 "#limiti-su-base-ip" id="id41" name=
528                 "id41">3.6.1&nbsp;&nbsp;&nbsp;Limiti su base
529                 ip</a></li>
530               </ul>
531             </li>
532
533             <li>
534               <a class="reference internal" href=
535               "#user-authentication" id="id42" name=
536               "id42">3.7&nbsp;&nbsp;&nbsp;User Authentication</a>
537
538               <ul class="auto-toc">
539                 <li><a class="reference internal" href=
540                 "#definire-la-cartella" id="id43" name=
541                 "id43">3.7.1&nbsp;&nbsp;&nbsp;Definire la
542                 cartella</a></li>
543
544                 <li><a class="reference internal" href=
545                 "#creazione-del-database-delle-passwords" id="id44"
546                 name="id44">3.7.2&nbsp;&nbsp;&nbsp;Creazione del
547                 database delle passwords</a></li>
548
549                 <li><a class="reference internal" href="#id3" id=
550                 "id45" name=
551                 "id45">3.7.3&nbsp;&nbsp;&nbsp;Configurazione di
552                 Apache</a></li>
553               </ul>
554             </li>
555
556             <li><a class="reference internal" href="#cavets" id=
557             "id46" name="id46">3.8&nbsp;&nbsp;&nbsp;Cavets</a></li>
558           </ul>
559         </li>
560
561         <li>
562           <a class="reference internal" href="#domain-name-system"
563           id="id47" name="id47">4&nbsp;&nbsp;&nbsp;Domain Name
564           System</a>
565
566           <ul class="auto-toc">
567             <li><a class="reference internal" href=
568             "#nomi-di-dominio" id="id48" name=
569             "id48">4.1&nbsp;&nbsp;&nbsp;Nomi di dominio</a></li>
570
571             <li><a class="reference internal" href=
572             "#tipologie-di-record" id="id49" name=
573             "id49">4.2&nbsp;&nbsp;&nbsp;Tipologie di
574             record</a></li>
575
576             <li><a class="reference internal" href="#utilizzo" id=
577             "id50" name=
578             "id50">4.3&nbsp;&nbsp;&nbsp;Utilizzo</a></li>
579
580             <li><a class="reference internal" href=
581             "#risoluzione-dei-nomi-di-dominio" id="id51" name=
582             "id51">4.4&nbsp;&nbsp;&nbsp;Risoluzione dei nomi di
583             dominio</a></li>
584
585             <li><a class="reference internal" href="#dig" id="id52"
586             name="id52">4.5&nbsp;&nbsp;&nbsp;Dig</a></li>
587           </ul>
588         </li>
589
590         <li><a class="reference internal" href="#dnsmasq" id="id53"
591         name="id53">5&nbsp;&nbsp;&nbsp;DNSmasq</a></li>
592
593         <li>
594           <a class="reference internal" href="#samba" id="id54"
595           name="id54">6&nbsp;&nbsp;&nbsp;Samba</a>
596
597           <ul class="auto-toc">
598             <li><a class="reference internal" href="#pacchetti" id=
599             "id55" name=
600             "id55">6.1&nbsp;&nbsp;&nbsp;Pacchetti</a></li>
601
602             <li><a class="reference internal" href=
603             "#passwords-e-autenticazione" id="id56" name=
604             "id56">6.2&nbsp;&nbsp;&nbsp;Passwords e
605             autenticazione</a></li>
606
607             <li><a class="reference internal" href=
608             "#creazione-utenti" id="id57" name=
609             "id57">6.3&nbsp;&nbsp;&nbsp;Creazione Utenti</a></li>
610
611             <li>
612               <a class="reference internal" href=
613               "#creare-la-condivisione" id="id58" name=
614               "id58">6.4&nbsp;&nbsp;&nbsp;Creare la
615               condivisione</a>
616
617               <ul class="auto-toc">
618                 <li><a class="reference internal" href=
619                 "#sicurezza-permessi-di-esecuzione-sul-server" id=
620                 "id59" name=
621                 "id59">6.4.1&nbsp;&nbsp;&nbsp;Sicurezza: permessi
622                 di esecuzione sul server</a></li>
623               </ul>
624             </li>
625
626             <li><a class="reference internal" href=
627             "#configurazione-dell-applicativo-samba-vero-e-proprio"
628             id="id60" name=
629             "id60">6.5&nbsp;&nbsp;&nbsp;Configurazione
630             dell'applicativo Samba vero e proprio.</a></li>
631
632             <li><a class="reference internal" href=
633             "#testare-il-servizio" id="id61" name=
634             "id61">6.6&nbsp;&nbsp;&nbsp;Testare il
635             Servizio</a></li>
636           </ul>
637         </li>
638
639         <li>
640           <a class="reference internal" href="#firewall" id="id62"
641           name="id62">7&nbsp;&nbsp;&nbsp;Firewall</a>
642
643           <ul class="auto-toc">
644             <li><a class="reference internal" href="#links" id=
645             "id63" name="id63">7.1&nbsp;&nbsp;&nbsp;Links</a></li>
646
647             <li><a class="reference internal" href="#ipfilter" id=
648             "id64" name=
649             "id64">7.2&nbsp;&nbsp;&nbsp;Ipfilter</a></li>
650
651             <li>
652               <a class="reference internal" href=
653               "#progettazione-di-un-firewall" id="id65" name=
654               "id65">7.3&nbsp;&nbsp;&nbsp;Progettazione di un
655               firewall</a>
656
657               <ul class="auto-toc">
658                 <li><a class="reference internal" href=
659                 "#collocazione" id="id66" name=
660                 "id66">7.3.1&nbsp;&nbsp;&nbsp;Collocazione</a></li>
661
662                 <li><a class="reference internal" href=
663                 "#policy-di-default" id="id67" name=
664                 "id67">7.3.2&nbsp;&nbsp;&nbsp;Policy di
665                 default</a></li>
666
667                 <li><a class="reference internal" href="#hardware"
668                 id="id68" name=
669                 "id68">7.3.3&nbsp;&nbsp;&nbsp;Hardware</a></li>
670               </ul>
671             </li>
672
673             <li><a class="reference internal" href=
674             "#percorso-dei-pacchetti-tra-tabelle-e-catene" id=
675             "id69" name="id69">7.4&nbsp;&nbsp;&nbsp;Percorso dei
676             pacchetti tra tabelle e catene</a></li>
677
678             <li>
679               <a class="reference internal" href=
680               "#concetti-di-base" id="id70" name=
681               "id70">7.5&nbsp;&nbsp;&nbsp;Concetti di base</a>
682
683               <ul class="auto-toc">
684                 <li><a class="reference internal" href=
685                 "#tabelle-catene-regole" id="id71" name=
686                 "id71">7.5.1&nbsp;&nbsp;&nbsp;Tabelle, catene,
687                 regole</a></li>
688
689                 <li><a class="reference internal" href="#match" id=
690                 "id72" name=
691                 "id72">7.5.2&nbsp;&nbsp;&nbsp;Match</a></li>
692
693                 <li><a class="reference internal" href="#targets"
694                 id="id73" name=
695                 "id73">7.5.3&nbsp;&nbsp;&nbsp;Targets</a></li>
696               </ul>
697             </li>
698
699             <li><a class="reference internal" href=
700             "#tabella-filter" id="id74" name=
701             "id74">7.6&nbsp;&nbsp;&nbsp;Tabella Filter</a></li>
702
703             <li><a class="reference internal" href=
704             "#flush-automatico-per-macchine-remote" id="id75" name=
705             "id75">7.7&nbsp;&nbsp;&nbsp;Flush automatico per
706             macchine remote</a></li>
707
708             <li><a class="reference internal" href=
709             "#gestione-regole-rules" id="id76" name=
710             "id76">7.8&nbsp;&nbsp;&nbsp;Gestione regole
711             (rules)</a></li>
712           </ul>
713         </li>
714
715         <li><a class="reference internal" href="#note" id="id77"
716         name="id77">8&nbsp;&nbsp;&nbsp;NOTE</a></li>
717       </ul>
718     </div>
719
720     <p>Generato con: <a class="reference external" href=
721     "http://docutils.sourceforge.net/rst.html">http://docutils.sourceforge.net/rst.html</a></p>
722
723     <div class="section" id="configurazione-sistema">
724       <h1><a class="toc-backref" href=
725       "#id6">1&nbsp;&nbsp;&nbsp;Configurazione sistema</a></h1>
726
727       <div class="section" id="solo-per-uso-interno">
728         <h2><a class="toc-backref" href=
729         "#id7">1.1&nbsp;&nbsp;&nbsp;Solo per uso interno</a></h2>
730
731         <p>Impostazioni di base per la configurazione del sistema
732         operativo e della rete nel laboratorio 208 facente parte
733         della rete piffa.net .</p>
734
735         <p>Qui riportati per comodita' degli studenti (e del
736         docente che non sara' <strong>mai piu'</strong> costretto a
737         ripeterli continuamente! ). Gli altri lettori potranno
738         tenerli presenti per cercare di comprendere gli esempi nel
739         testo. Ad esempio: quando leggerete <tt class=
740         "docutils literal"><span class=
741         "pre">10.10.208.254:3128</span></tt> saprete che si tratta
742         del nostro <em>proxy http</em>, stara' quindi a voi
743         sostituire i dati con gli <em>ip</em> della vostra
744         rete.</p>
745       </div>
746
747       <div class="section" id="rete">
748         <h2><a class="toc-backref" href=
749         "#id8">1.2&nbsp;&nbsp;&nbsp;Rete</a></h2>
750
751         <p>Parametri della rete attualmente in uso:</p>
752
753         <table border="1" class="docutils">
754           <colgroup>
755             <col width="42%">
756             <col width="58%">
757           </colgroup>
758
759           <tbody valign="top">
760             <tr>
761               <td colspan="2">Parametri della rete</td>
762             </tr>
763
764             <tr>
765               <td>rete</td>
766
767               <td>10.10.208.0/24</td>
768             </tr>
769
770             <tr>
771               <td>netmask</td>
772
773               <td>255.255.255.0</td>
774             </tr>
775
776             <tr>
777               <td>broadcast</td>
778
779               <td>10.10.208.255</td>
780             </tr>
781
782             <tr>
783               <td>gateway</td>
784
785               <td>10.10.208.254</td>
786             </tr>
787
788             <tr>
789               <td>gateway</td>
790
791               <td>10.10.208.250 persistente</td>
792             </tr>
793
794             <tr>
795               <td>DNS</td>
796
797               <td>10.10.208.254</td>
798             </tr>
799
800             <tr>
801               <td>DNS</td>
802
803               <td>10.10.208.250 persistente</td>
804             </tr>
805
806             <tr>
807               <td>proxy http</td>
808
809               <td>10.10.208.254:3128</td>
810             </tr>
811           </tbody>
812         </table>
813
814         <p>Sul portatile di Andrea, corrispondente all'ip 254, gira
815         un DHCP, proxy http e mirror di Debian ( <a class=
816         "reference external" href=
817         "http://debian.piffa.net">http://debian.piffa.net</a>). Se
818         Andrea non e' in aula (o ancora peggio non c'e' il suo
819         portatile Net) gli studenti dovranno darsi un indirizzo ip
820         manualmente e disabilitare il proxy (che pero' e
821         trasparente, quindi fate pure come se non ci fosse ;) .
822         Questo in attesa che si sappia se sara' nuovamente
823         utilizzabile il vecchio server Bender.</p>
824       </div>
825
826       <div class="section" id="bash-completion">
827         <h2><a class="toc-backref" href=
828         "#id9">1.3&nbsp;&nbsp;&nbsp;Bash completion</a></h2>
829
830         <p>Il completamento automatico della shell (che si attiva
831         premendo il tasto tab una o due volte mentre si sta
832         scrivendo un termine) permette di comporre automaticamente
833         i nomi dei comandi e i percorsi dei file, sopratutto la
834         composizione automatica dei percorsi dei file e' di grande
835         importanza.</p>
836
837         <p>Bash_completion permette di integrare il completamento
838         automatico con i nomi dei pacchetti e oggetti dei comandi:
839         ad es. volendo digitare <tt class=
840         "docutils literal"><span class="pre">apt-get</span>
841         <span class="pre">inst[TAB]</span> <span class=
842         "pre">xtigh[TAB]</span></tt> ora verra' completatato
843         automaticamente sia la parola <tt class=
844         "docutils literal"><span class="pre">install</span></tt>
845         che il nome del pacchetto <tt class=
846         "docutils literal"><span class=
847         "pre">xtightvncviewer</span></tt>.</p>
848
849         <p>Abilitare /etc/bash_completion nel file <tt class=
850         "docutils literal"><span class=
851         "pre">/etc/bash.bashrc</span></tt> oppure includerlo nel
852         proprio <tt class="docutils literal"><span class=
853         "pre">~/.bashrc</span></tt> (che sarebbe il file
854         <em>nascosto</em>, quindi con un punto all'inizio del nome
855         del file, di configurazione della shell bash per ogni
856         utente, presente nella propria <em>home
857         directory</em>):</p>
858         <pre class="literal-block">
859 echo ". /etc/bash_completion" &gt;&gt; ~/.bashrc
860 </pre>
861
862         <p>Esempio di ~/.bahsrc</p>
863         <pre class="literal-block">
864 # ~/.bashrc: executed by bash(1) for non-login shells.
865
866 export PS1='\h:\w\$ '
867 umask 022
868
869 # Decommentare le seguenti righr per abilitare la colorazione dei
870 # nomi dei file:
871  export LS_OPTIONS='--color=auto'
872  eval "`dircolors`"
873  alias ls='ls $LS_OPTIONS'
874  alias ll='ls $LS_OPTIONS -l'
875  alias l='ls $LS_OPTIONS -lA'
876
877 # Some more alias to avoid making mistakes:
878 # alias rm='rm -i'
879 # alias cp='cp -i'
880 # alias mv='mv -i'
881
882 # questo abilita bash completion
883 . /etc/bash_completion
884 </pre>
885
886         <p>Il file <tt class="docutils literal"><span class=
887         "pre">/etc/bash_completion</span></tt> deve essere presente
888         nel sistema, in caso contrario installare il pacchetto:
889         <tt class="docutils literal"><span class=
890         "pre">bash-completion</span></tt>. Generalmente l'utente
891         <tt class="docutils literal"><span class=
892         "pre">root</span></tt> ha un file <tt class=
893         "docutils literal"><span class="pre">.bashrc</span></tt>
894         preimpostato analogo a quello citato sopra, a differenza
895         dei normali utenti di sistema.</p>
896
897         <p>Links:</p>
898
899         <ul class="simple">
900           <li><a class="reference external" href=
901           "http://www.debian-administration.org/articles/316">An
902           introduction to bash completion</a></li>
903
904           <li><a class="reference external" href=
905           "http://www.caliban.org/bash/">Working more productively
906           with bash 2.x/3.x</a></li>
907         </ul>
908       </div>
909
910       <div class="section" id="vim">
911         <h2><a class="toc-backref" href=
912         "#id10">1.4&nbsp;&nbsp;&nbsp;Vim</a></h2>
913
914         <p>Vim e' l'editor di testo preferito dai sistemisti,
915         quindi sara' conveniente impostare fin da subito alcune
916         impostazioni per renderlo piu' comodo.</p>
917
918         <p>Assicurarsi che sia installata nel sistema la versione
919         completa dell'editor <tt class=
920         "docutils literal"><span class="pre">vim</span></tt>
921         nstallando il pacchetto vimi:</p>
922         <pre class="literal-block">
923        # apt-get install vim
924
925 e modificare il file di configurazione generale ``/etc/vim/vimrc`` ::
926
927    " All system-wide defaults are set in $VIMRUNTIME/debian.vim (usually just
928    " /usr/share/vim/vimcurrent/debian.vim) and sourced by the call to :runtime
929    " you can find below.  If you wish to change any of those settings, you should
930    " do it in this file (/etc/vim/vimrc), since debian.vim will be overwritten
931    " everytime an upgrade of the vim packages is performed.  It is recommended to
932    " make changes after sourcing debian.vim since it alters the value of the
933    " 'compatible' option.
934
935    " This line should not be removed as it ensures that various options are
936    " properly set to work with the Vim-related packages available in Debian.
937    runtime! debian.vim
938
939    " Uncomment the next line to make Vim more Vi-compatible
940    " NOTE: debian.vim sets 'nocompatible'.  Setting 'compatible' changes numerous
941    " options, so any other options should be set AFTER setting 'compatible'.
942    "set compatible
943
944    " Vim5 and later versions support syntax highlighting. Uncommenting the next
945    " line enables syntax highlighting by default.
946    syntax on
947
948    " If using a dark background within the editing area and syntax highlighting
949    " turn on this option as well
950    set background=dark
951
952    " Uncomment the following to have Vim jump to the last position when
953    " reopening a file
954
955    if has("autocmd")
956      au BufReadPost * if line("'\"") &gt; 0 &amp;&amp; line("'\"") &lt;= line("$")
957        \| exe "normal! g'\"" | endif
958    endif
959
960    " Uncomment the following to have Vim load indentation rules and plugins
961    " according to the detected filetype.
962    if has("autocmd")
963      filetype plugin indent on
964    endif
965
966    " The following are commented out as they cause vim to behave a lot
967    " differently from regular Vi. They are highly recommended though.
968    set showcmd             " Show (partial) command in status line.
969    "set showmatch          " Show matching brackets.
970    set ignorecase          " Do case insensitive matching
971    "set smartcase          " Do smart case matching
972    "set incsearch          " Incremental search
973    set autowrite           " Automatically save before commands like :next and :make
974    "set hidden             " Hide buffers when they are abandoned
975    "set mouse=a            " Enable mouse usage (all modes) in terminals
976
977    " Source a global configuration file if available
978    " XXX Deprecated, please move your changes here in /etc/vim/vimrc
979    if filereadable("/etc/vim/vimrc.local")
980      source /etc/vim/vimrc.local
981    endif
982 </pre>
983       </div>
984
985       <div class="section" id="vnc">
986         <h2><a class="toc-backref" href=
987         "#id11">1.5&nbsp;&nbsp;&nbsp;VNC</a></h2>
988
989         <p>I Virtual Network Computing (o VNC) sono software di
990         controllo remoto e servono per amministrare il proprio
991         computer a distanza o visuallizare la sessione di lavoro di
992         un altro computer sul proprio a scopo didattico.
993         Installando un server VNC sulla propria macchina ed
994         impostando una opportuna password si consente ai client VNC
995         di ricevere una immagine dello schermo ed eventualmente di
996         inviare input di tastiera e mouse al computer server
997         (durante le lezioni questo non e' possibile per gli
998         studenti, solo Andrea esegue i comandi). In pratica si può
999         gestire il computer server da un'altra postazione, come se
1000         fosse il proprio computer fisico.</p>
1001
1002         <p>Scaricare il pacchetto <tt class=
1003         "docutils literal"><span class=
1004         "pre">xtightvncviewer</span></tt> e lo script <tt class=
1005         "docutils literal"><span class="pre">guarda.sh</span></tt>
1006         in una posizione (collocazione nel <em>path</em> degli
1007         utenti, es <tt class="docutils literal"><span class=
1008         "pre">echo</span> <span class="pre">$PATH</span></tt> per
1009         visualizzare l'attuale path ) comoda per gli utenti ( in
1010         genere <tt class="docutils literal"><span class=
1011         "pre">/bin</span></tt> ), rndere eseguibile lo script.</p>
1012
1013         <p>Procedura:</p>
1014         <pre class="literal-block">
1015 su root
1016 cd /bin
1017 wget http://debian.piffa.net/guarda.sh
1018 chmod +x guarda.sh
1019 exit
1020 </pre>
1021
1022         <p>Si noti che non e' possibile lanciare un applicativo sul
1023         server grafico di un utente da una shell in cui si sta
1024         lavorando come altro utente, anche se root. E' quindi
1025         necessario essere l'utente di sistema che si e' loggato
1026         inizialmente nella sessione grafica per poter lanciare lo
1027         script guarda.sh da una shell.</p>
1028
1029         <p>Controllare con <tt class=
1030         "docutils literal"><span class="pre">whoami</span></tt> di
1031         essere l'utente normale (es <tt class=
1032         "docutils literal"><span class="pre">utente</span>
1033         <span class="pre">|</span> <span class=
1034         "pre">studente</span> <span class="pre">|</span>
1035         <span class="pre">proprio</span> <span class=
1036         "pre">nome</span></tt> ), in caso si sia assunta una altra
1037         <tt class="docutils literal"><span class=
1038         "pre">id</span></tt> si apra un altra shell o si esca da
1039         quella attuale con <tt class=
1040         "docutils literal"><span class="pre">exit</span></tt> .</p>
1041       </div>
1042
1043       <div class="section" id="lista-dei-pacchetti-di-base">
1044         <h2><a class="toc-backref" href=
1045         "#id12">1.6&nbsp;&nbsp;&nbsp;Lista dei pacchetti di
1046         base</a></h2>
1047
1048         <p>I pacchetti installati generalmente <a class=
1049         "footnote-reference" href="#id2" id="id1" name=
1050         "id1">[1]</a> per poter seguire le lezioni sono:</p>
1051         <pre class="literal-block">
1052 kde-core kdm kde-i18n-it xorg vim less xtightvncviewer
1053 </pre>
1054
1055         <table class="docutils footnote" frame="void" id="id2"
1056         rules="none">
1057           <colgroup>
1058             <col class="label">
1059             <col>
1060           </colgroup>
1061
1062           <tbody valign="top">
1063             <tr>
1064               <td class="label"><a class="fn-backref" href=
1065               "#id1">[1]</a></td>
1066
1067               <td><tt class="docutils literal"><span class=
1068               "pre">kde-core</span></tt> e' piu' leggero del
1069               pacchetto <tt class="docutils literal"><span class=
1070               "pre">kde</span></tt>, esiste anche un equivalente
1071               <tt class="docutils literal"><span class=
1072               "pre">gnome-core</span> <span class=
1073               "pre">gnome</span></tt> e il log-in manager
1074               <tt class="docutils literal"><span class=
1075               "pre">gdm</span></tt> per il l'ambiente grafico
1076               Gnome.</td>
1077             </tr>
1078           </tbody>
1079         </table>
1080       </div>
1081
1082       <div class="section" id="apt-configurazione">
1083         <h2><a class="toc-backref" href=
1084         "#id13">1.7&nbsp;&nbsp;&nbsp;Apt configurazione</a></h2>
1085
1086         <p>Vediamo i due file principali di apt:</p>
1087
1088         <ul class="simple">
1089           <li><tt class="docutils literal"><span class=
1090           "pre">/etc/apt/sources.list</span></tt></li>
1091
1092           <li><tt class="docutils literal"><span class=
1093           "pre">/etc/apt/apt.conf</span></tt></li>
1094         </ul>
1095
1096         <div class="section" id="sources-list">
1097           <h3><a class="toc-backref" href=
1098           "#id14">1.7.1&nbsp;&nbsp;&nbsp;sources.list</a></h3>
1099
1100           <p>Questo file contiene i sorgenti da cui <em>apt</em>
1101           preleva i pacchetti da installare tramite <em>dpkg</em>,
1102           vengono quindi precisati i metodi (ad es. http / ftp /
1103           cdrom / file), la release che si vuole tracciare (es
1104           <tt class="docutils literal"><span class=
1105           "pre">stable,</span> <span class="pre">testing,</span>
1106           <span class="pre">unstable</span></tt> oppure i
1107           corrispondenti release name es: <tt class=
1108           "docutils literal"><span class="pre">Lenny,</span>
1109           <span class="pre">Squeeze,</span> <span class=
1110           "pre">Sid</span></tt>), i rami di interesse (es:
1111           <tt class="docutils literal"><span class=
1112           "pre">main</span></tt> che e' l'archivio principale,
1113           <tt class="docutils literal"><span class=
1114           "pre">non-free</span></tt> per il software non libero,
1115           <tt class="docutils literal"><span class=
1116           "pre">contrib</span></tt> per i pacchetti non realizzati
1117           dai manutentori ufficiali).</p>
1118
1119           <p>Gli archivi sono generalmente:</p>
1120
1121           <ul class="simple">
1122             <li><tt class="docutils literal"><span class=
1123             "pre">deb</span></tt> per pacchetti Debian binari</li>
1124
1125             <li><tt class="docutils literal"><span class=
1126             "pre">deb-src</span></tt> per i pacchetti sorgenti
1127             (quindi da compilare, come il kernel) degli stessi
1128             pacchetti binari. In genere se non compilate spesso
1129             potete evitare di tracciare i sorgenti per risparmiare
1130             tempo e banda.</li>
1131           </ul>
1132
1133           <p><tt class="docutils literal"><span class=
1134           "pre">/etc/apt/sources.list</span></tt></p>
1135           <pre class="literal-block">
1136 # esempio di accesso a un CDROM:
1137 # cdrom:[Debian GNU/Linux 5.0.1 _Lenny_ - Official i386 kde-CD Binary-1 20090$
1138
1139 # Archivio principale debian via http su piffa.net,
1140 # non funziona al difuori dell'aula dei corsi
1141 deb http://debian.piffa.net/debian/ Lenny main
1142 # deb http://debian.piffa.net/debian/ Lenny  non-free contrib
1143
1144 # Mirror da kernel.org da usare a casa:
1145 deb http://mirrors.eu.kernel.org/debian/ Lenny main
1146
1147 # Security dal sito principale
1148 deb http://security.debian.org/ Lenny/updates main
1149 deb-src http://security.debian.org/ Lenny/updates main
1150
1151 # Debian volatile per le cose soggette a cambiamenti non legati
1152 # a dinamiche di sicurezza
1153 deb http://volatile.debian.org/debian-volatile Lenny/volatile main
1154 deb-src http://volatile.debian.org/debian-volatile Lenny/volatile main
1155
1156 # Esempio di accesso a un filesystem locale contenente i pacchetti:
1157 # deb file:/mnt/mirror Sid main non-free contrib
1158 </pre>
1159         </div>
1160
1161         <div class="section" id="etc-apt-apt-conf">
1162           <h3><a class="toc-backref" href=
1163           "#id15">1.7.2&nbsp;&nbsp;&nbsp;/etc/apt/apt.conf</a></h3>
1164
1165           <p>Questo file contiene le opzioni di apt, come ad
1166           esempio il proxy:</p>
1167           <pre class="literal-block">
1168 Acquire::http::Proxy "http://10.10.208.254:3128";
1169 </pre>
1170
1171           <p>Si tenga conto che se si imposta un proxy per apt sul
1172           proprio portatile e tornati a casa propria si vuole
1173           scaricare nuovi pacchetti si dovra' disabilitare il
1174           proxy.</p>
1175         </div>
1176       </div>
1177     </div>
1178
1179     <div class="section" id="squid">
1180       <h1><a class="toc-backref" href=
1181       "#id16">2&nbsp;&nbsp;&nbsp;Squid</a></h1>
1182
1183       <p>Squid e' un proxy cache http (ma anche FTP e https)
1184       robusto e strutturato, puo' essere usato sia in reti
1185       relativamente piccole grazie alla semplicita' di
1186       configurazione che in scenari piu' complessi grazie alla
1187       possibilita' di gestirne in modo granulare le risorse
1188       partendo dalle configurazioni piu' semplici per la semplice
1189       <em>condivisione della navigazione</em> internet, la gestione
1190       degli accessi, il filtraggio dei contenuti (Squid e' una
1191       applicazione che si muove nel 4' livello del modello TCP/IP a
1192       differenza di un <em>ipfilter</em> limitato al 2') nel l
1193       bilanciamento del carico tra piu' hosts.</p>
1194
1195       <dl class="docutils">
1196         <dt>Inoltre svolge la funzione di <em>anonymizer</em>:</dt>
1197
1198         <dd>nasconde i client http alla rete internet: risulta solo
1199         il server proxy nei log dei server web frequentati dagli
1200         utenti di Squid.</dd>
1201       </dl>
1202
1203       <p>Cosa a volte sottovalutata, squid permette la navigazione
1204       web a una rete basata su <em>indirizzi ip privati</em> (es
1205       una 192.168.0.0/24). E se la rete privata deve <em>solo
1206       navigare</em> in internet, non serve un <em>NAT</em> od
1207       altro, basta il solo Squid. Per altro non servira' neanche un
1208       servizio DNS dato che <em>sara' il solo squid a risolvere i
1209       nomi di dominio</em> per i suoi client http.</p>
1210
1211       <p>Squid ascolta di default sulla porta 3128, per impostare
1212       <em>apt</em> per utilizzarlo si aggiunga ad <tt class=
1213       "docutils literal"><span class=
1214       "pre">/etc/apt/apt.conf</span></tt></p>
1215       <pre class="literal-block">
1216 Acquire::http::Proxy "10.10.208.254:3128";
1217 </pre>
1218
1219       <p>Per installare Squid si usino i pacchetti:</p>
1220       <pre class="literal-block">
1221 squid3
1222 </pre>
1223
1224       <div class="section" id="configurazione-squid-conf">
1225         <h2><a class="toc-backref" href=
1226         "#id17">2.1&nbsp;&nbsp;&nbsp;Configurazione:
1227         squid.conf</a></h2>
1228
1229         <p>Segue un estratto delle direttive principali viste in
1230         aula presenti nel file di configurazione <tt class=
1231         "docutils literal"><span class=
1232         "pre">/etc/squid3/squid.conf</span></tt> .</p>
1233
1234         <div class="section" id="cache-dir">
1235           <h3><a class="toc-backref" href=
1236           "#id18">2.1.1&nbsp;&nbsp;&nbsp;Cache_dir</a></h3>
1237
1238           <p>Cache dir serve per impostare dimensione e percorso
1239           della cache creata sul supporto di storaggio. Essendo la
1240           dimensione di default della cache pari a <tt class=
1241           "docutils literal"><span class="pre">~100</span>
1242           <span class="pre">MB</span></tt> e' altamente
1243           consigliabili aumentare questo parametro se si vuole
1244           poter utilizzare la funzione di <em>cache</em> http del
1245           software.</p>
1246
1247           <p>La dimensione ovviamente dipendera' dallo spazio
1248           disponibile, dimensioni tipiche e massime degli oggetti
1249           che si vuole tenere in cache (un solo file <em>.iso e'
1250           circa ``700 MB``, il pacchetto *Openoffice.org</em> cira
1251           <tt class="docutils literal"><span class="pre">150</span>
1252           <span class="pre">MB</span></tt>, un pacchetto debian
1253           circa <tt class="docutils literal"><span class=
1254           "pre">20</span> <span class="pre">MB</span></tt>), numero
1255           dei client.</p>
1256
1257           <p>Si presti poi attenzione alla natura dei dati che
1258           saranno salvati nella cache: sono tutti dati facilmenti
1259           sostituibili (gli originali sono <em>on-line</em>) la cui
1260           perdita non arreca danni permanenti. Questo rende la
1261           cache di Squid un possibile candidato ad un <em>RAID
1262           stripe</em> (livello 0), con vantaggi sia per le
1263           prestazioni (e la velocita' di navigazione e' uno dei
1264           motivi per cui si installa Squid) che per l'utilizzo
1265           estensivo dello spazio di storaggio. Questo fino al
1266           momento in cui per voi non sia piu' importante
1267           <em>garantire la disponibilita' del servizio</em> (se il
1268           RAID stripe dovesse rompersi gli utenti non potrebbero
1269           piu' navigare, cosa che per natura dello stripe e'
1270           maggiormente probabile rispetto ad un <em>mirror</em> o a
1271           un filesytem <em>normale</em>) con un RAID mirror o
1272           5.</p>
1273
1274           <p>Altra considerazione: i dati del proxy vengono slavati
1275           sul filesytem del server dietro richiesta di utenti
1276           esterni talvolta sconosciuti. Come per i servizi di file
1277           sharing o per la posta elettronica non c'e' motivo che il
1278           filesystem su cui sono ospitati questi dati abbia i
1279           privilegi di eseguibilita' o suid (in genere si puo'
1280           anche usare <em>noatime</em> per renderlo piu' veloce,
1281           che si usi o meno il journal dipende dalle preferenze:
1282           affidabilita' oppure prestazioni):</p>
1283
1284           <p>/etc/fstab</p>
1285           <pre class="literal-block">
1286 ...
1287 # Filesystem per Squid http cache
1288 /dev/md3/       /var/spool/squid/       ext3,noexec,nosuid,noatime  0 3
1289 </pre>
1290
1291           <p>Ora possiamo impostare la cache direttamente nel file
1292           <tt class="docutils literal"><span class=
1293           "pre">/etc/squid3/squid.conf</span></tt>:</p>
1294           <pre class="literal-block">
1295 #TAG: cache_dir (riga 1628)
1296 #       Usage:
1297 #
1298 #       cache_dir Type Directory-Name Fs-specific-data [options]
1299 #
1300 #       You can specify multiple cache_dir lines to spread the
1301 #       cache among different disk partitions.
1302 #       ...
1303 #Default:
1304 # cache_dir ufs /var/spool/squid3 100 16 256
1305 cache_dir aufs /var/spool/squid3 300 24 256
1306 #         algoritmo
1307 #              path della cache
1308 #                                dimensione in MB
1309 #                                    directory primo livello
1310 #                                       secondo livello di directory
1311 </pre>
1312
1313           <p>Se si modifica la struttura del filesytem della cache
1314           di Squid, ad esempio variando il numero delle directory,
1315           puo' essere opportuno rigenerare la struttura della cache
1316           di squid (per lo meno se si <em>aumenta il numero delle
1317           directory di primo o secondo livello). Tipicamente e'
1318           opportuno cancellare (se si ha *ridotto</em> il numero
1319           delle diectory) la vecchia cache e poi generare una nuova
1320           struttura. Se si vuole <em>star nel sicuro</em> ogni
1321           volta che si modifica l'impostazione delle directory
1322           <em>si svuoti la vecchia cache e se ne generi una
1323           nuova</em></p>
1324           <pre class="literal-block">
1325 # /etc/init.d/squid3 stop
1326 # rm -r /var/spool/squid3/??
1327 # squid3 -z
1328 # /etc/init.d/squid3 start
1329 </pre>
1330         </div>
1331
1332         <div class="section" id="tag-maximum-object-size">
1333           <h3><a class="toc-backref" href=
1334           "#id19">2.1.2&nbsp;&nbsp;&nbsp;TAG:
1335           maximum_object_size</a></h3>
1336
1337           <p>Questa direttiva imposta la dimensione massima degli
1338           oggetti che vengono slvati sul supporto di storaggio,
1339           oggetti di dimensioni superiori saranno comunque
1340           scaricati ma non tenuti in cache.</p>
1341
1342           <p>TAG: maximum_object_size (1760):</p>
1343           <pre class="literal-block">
1344 # TAG: maximum_object_size (1760)
1345 #       Objects larger than this size will NOT be saved on disk.  The
1346 #       value is specified in kilobytes, and the default is 4MB.  If
1347 #       you wish to get a high BYTES hit ratio, you should probably
1348 #       increase this (one 32 MB object hit counts for 3200 10KB
1349 #       hits).  If you wish to increase speed more than your want to
1350 #       save bandwidth you should leave this low.
1351 #
1352 #       NOTE: if using the LFUDA replacement policy you should increase
1353 #       this value to maximize the byte hit rate improvement of LFUDA!
1354 #       See replacement_policy below for a discussion of this policy.
1355 #
1356 #Default:
1357 # maximum_object_size 4096 KB
1358 maximum_object_size 150 MB
1359 </pre>
1360         </div>
1361
1362         <div class="section" id="tag-cache-mem">
1363           <h3><a class="toc-backref" href=
1364           "#id20">2.1.3&nbsp;&nbsp;&nbsp;TAG: cache_mem</a></h3>
1365
1366           <p><em>Cache_mem</em> imposta quanta memoria RAM venga
1367           utilizzata per la cache di Squid. Questo dipendera' dalla
1368           RAM disponibile sul sistema, e da quanta di questa volete
1369           mettere a disposizione di Squid (altri servizi
1370           iimportanti girano sulla stessa macchina?). Questo
1371           paramentro influisce sulle prestazioni e sul degrado dei
1372           supporti di storaggio (sopratutto se magnetici).</p>
1373
1374           <p>Se si stesse pensando di usare dell'hardware
1375           <em>embedded</em> a basse prestazioni / consumo per
1376           realizzare un server gateway / NAT / Squid si tenga
1377           presente che Squid e' relativamente esoso di risorse:
1378           avra' bisogno di una macchina con <tt class=
1379           "docutils literal"><span class="pre">~25MB</span></tt>
1380           (MegaByte) di RAM e <em>~150MHZ di CPU ARM</em> per
1381           servire decorosamente una decina di client http su una
1382           rete ethernet 10/100. In questo caso non fate scendere
1383           <tt class="docutils literal"><span class=
1384           "pre">cache_mem</span></tt> sotto i <tt class=
1385           "docutils literal"><span class="pre">2/4</span>
1386           <span class="pre">MB</span></tt> pena un accesso continuo
1387           al supporto di storaggio.</p>
1388
1389           <p>Se invece si disponesse di una macchina dedicata a
1390           Squid con gigabytes di RAM non si esiti a dedicarne buona
1391           parte a <em>cache_mem</em>.</p>
1392
1393           <p>TAG: cache_mem (1566):</p>
1394           <pre class="literal-block">
1395 #       'cache_mem' specifies the ideal amount of memory to be used
1396 #       for:
1397 #               * In-Transit objects
1398 #               * Hot Objects
1399 #               * Negative-Cached objects
1400 #Default:
1401 # cache_mem 8 M
1402 cache_mem 100 M
1403 </pre>
1404         </div>
1405
1406         <div class="section" id="tag-minimum-object-size">
1407           <h3><a class="toc-backref" href=
1408           "#id21">2.1.4&nbsp;&nbsp;&nbsp;TAG:
1409           minimum_object_size</a></h3>
1410
1411           <p>Questo parametro imposta la dimensione minima degli
1412           oggetti salvati nella cache. Settato a <tt class=
1413           "docutils literal"><span class="pre">0</span></tt> o a
1414           valori molto piccoli puo' influire negativamente sulla
1415           deframmentazione del filesytem e consumare un numero
1416           elevato di <em>inode</em> (cosa non piu' importante con
1417           ext4 o altri filesytem).</p>
1418
1419           <p>TAG: minimum_object_size:</p>
1420           <pre class="literal-block">
1421 #  TAG: minimum_object_size     (bytes)
1422 #       Objects smaller than this size will NOT be saved on disk.  The
1423 #       value is specified in kilobytes, and the default is 0 KB, which
1424 #       means there is no minimum.
1425 #
1426 #Default:
1427 # minimum_object_size 0 KB
1428 minimum_object_size 0 KB
1429 </pre>
1430         </div>
1431       </div>
1432
1433       <div class="section" id=
1434       "negoziazione-degli-accesi-al-servizio">
1435         <h2><a class="toc-backref" href=
1436         "#id22">2.2&nbsp;&nbsp;&nbsp;Negoziazione degli accesi al
1437         servizio</a></h2>
1438
1439         <p>Squid e' uno di quei servizi soggetto a problemi di tipo
1440         <em>open relay</em> , si deve quindi limitare la rete che
1441         puo' accedere al servizio.</p>
1442
1443         <dl class="docutils">
1444           <dt>Open Relay:</dt>
1445
1446           <dd>Un servizio a cui possono accedere tutti
1447           indiscriminatamente. La cosa puo' andare bene per servizi
1448           come i server web, che aspirano per loro natura al
1449           maggior numero possibile di utenti, ma non a servizi come
1450           i proxy http oppure ai server di posta elettronica (che
1451           permetterebbero l'invio di SPAM).</dd>
1452         </dl>
1453
1454         <p>Generalmente non volete che il vostro proxy http venga
1455         usato da persone sconosciute le quali sostanzialmente
1456         <em>navigherebbero sotto l'identita' del vostro proxy</em>
1457         (probabilmente per visionare materiali che non vorrebbero
1458         fossero ricondotti direttamente a loro, per motivi che sta
1459         a voi prendere in considerazione) consumando traffico e
1460         banda della vostra connessione a internet. Tenere Squid in
1461         modalita' <em>Open relay</em> e' al giorno d'oggi un buon
1462         modo per essere inseriti in una <em>black list</em>.</p>
1463
1464         <p>Per poter limitare gli accessi a Squid dal punto di
1465         vista dell'applicazione (quarto livello TCP/IP) si
1466         identifichera' inizialmente l'entita' <em>rete locale</em>
1467         (es: <tt class="docutils literal"><span class=
1468         "pre">localnet</span></tt>) con una ACL di tipo
1469         <em>src</em> (indirizi IP sorgenti) indicando la <em>classe
1470         / range di ip</em> della nostra rete.</p>
1471
1472         <blockquote>
1473           Dopodiche l'accesso (<tt class=
1474           "docutils literal"><span class=
1475           "pre">http_access</span></tt>) si concedera'
1476           (<em>allow</em>) a questa entita' (es: <tt class=
1477           "docutils literal"><span class=
1478           "pre">localnet</span></tt>) negando chiunque altro.
1479         </blockquote>
1480
1481         <p>Per maggiori dettagli sulla sintassi utilizzabile per
1482         esprimere i range di ip: <a class="reference external"
1483         href="http://www.visolve.com/squid/squid24s1/access_controls.php">
1484         http://www.visolve.com/squid/squid24s1/access_controls.php</a></p>
1485
1486         <div class="section" id="acl-e-http-access">
1487           <h3><a class="toc-backref" href=
1488           "#id23">2.2.1&nbsp;&nbsp;&nbsp;ACL e http access</a></h3>
1489
1490           <p>Si proceda a creare una <tt class=
1491           "docutils literal"><span class="pre">ACL</span></tt> di
1492           tipo <tt class="docutils literal"><span class=
1493           "pre">src</span></tt> per identificare la lostra rete
1494           locale, poi si abiliti l'accesso a questa con la
1495           direttiva <tt class="docutils literal"><span class=
1496           "pre">http_access</span></tt>. Tutto quanto non e'
1497           espressamente autorizzato viene poi negato da un
1498           <tt class="docutils literal"><span class=
1499           "pre">http_access</span> <span class="pre">deny</span>
1500           <span class="pre">all</span></tt> finale.</p>
1501           <pre class="literal-block">
1502 #  TAG: acl
1503 #       Defining an Access List
1504 #
1505 #       Every access list definition must begin with an aclname and acltype,
1506 #       followed by either type-specific arguments or a quoted filename that
1507 #       they are read from.
1508 #       ...
1509 #       ***** ACL TYPES AVAILABLE *****
1510 #
1511 #       acl aclname src ip-address/netmask ...          # clients IP address
1512 # riga 588
1513
1514 # Example rule allowing access from your local networks.
1515 # Adapt to list your (internal) IP networks from where browsing
1516 # should be allowed
1517 #acl localnet src 10.0.0.0/8    # RFC1918 possible internal network
1518 #acl localnet src 172.16.0.0/12 # RFC1918 possible internal network
1519 #acl localnet src 192.168.0.0/16        # RFC1918 possible internal network
1520 #
1521 acl localnet src 10.10.208.0/24
1522
1523 # Riga 606
1524 #  TAG: http_access
1525 #       Allowing or Denying access based on defined access lists
1526 #
1527 #       Access to the HTTP port:
1528 #       http_access allow|deny [!]aclname ...
1529 #
1530 #       NOTE on default values:
1531 #
1532 #       If there are no "access" lines present, the default is to deny
1533 #       the request.
1534
1535 # Riga 643
1536 # INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR CLIENTS
1537
1538 # Example rule allowing access from your local networks.
1539 # Adapt localnet in the ACL section to list your (internal) IP networks
1540 # from where browsing should be allowed
1541 #http_access allow localnet
1542 http_access allow localnet
1543 </pre>
1544         </div>
1545       </div>
1546
1547       <div class="section" id="testare-squid">
1548         <h2><a class="toc-backref" href=
1549         "#id24">2.3&nbsp;&nbsp;&nbsp;Testare Squid</a></h2>
1550
1551         <p>Configurato squid e' fondamentale testarne il corretto
1552         funzionamento per assicurarsi di non aver creato un
1553         <em>open-relay</em>. Per fare dei test significativi serve
1554         utilizzare degli host remoti: ci si connetta via ssh a
1555         questi per poi utilizzare <tt class=
1556         "docutils literal"><span class="pre">wget</span></tt> da
1557         riga di comando.</p>
1558
1559         <div class="section" id="client-wgetrc">
1560           <h3><a class="toc-backref" href=
1561           "#id25">2.3.1&nbsp;&nbsp;&nbsp;Client: ~/.wgetrc</a></h3>
1562
1563           <p>Nel file <tt class="docutils literal"><span class=
1564           "pre">.wgetrc</span></tt> (si noti il punto iniziale: e'
1565           un file nascosto) si puo' impostare il proxy per wget. Si
1566           utililizzi l'indirizzo ip del server che si vuole
1567           testare, e si seguano i log <tt class=
1568           "docutils literal"><span class=
1569           "pre">/var/log/squid3/access.log</span></tt> sul
1570           server.</p>
1571
1572           <p>Da notare che la prova va' fatta su una macchina della
1573           rete che si vuole testare, non da <em>localhost</em>. Per
1574           altro se si utilizzasse <em>direttamente</em> <tt class=
1575           "docutils literal"><span class=
1576           "pre">localhost</span></tt> non si testerebbe la
1577           <em>ACL</em> predisposta, dato che si si rientrerebbe
1578           nella ACL (pre-configurata di default) <tt class=
1579           "docutils literal"><span class=
1580           "pre">localhost</span></tt>.</p>
1581
1582           <dl class="docutils">
1583             <dt>.wgetrc</dt>
1584
1585             <dd>http_proxy=10.10.208.178:3128</dd>
1586           </dl>
1587
1588           <p>Si proceda a scaricare dal client scelto con un
1589           wget:</p>
1590           <pre class="literal-block">
1591 wget http://www.google.it
1592 </pre>
1593         </div>
1594
1595         <div class="section" id="server-access-log">
1596           <h3><a class="toc-backref" href=
1597           "#id26">2.3.2&nbsp;&nbsp;&nbsp;Server:
1598           access.log</a></h3>
1599
1600           <p>Si puo' controllare il corretto funzionamento del
1601           server seguendo i log di accesso a Squid:</p>
1602           <pre class="literal-block">
1603 # tail -f /var/log/squid3/access.log
1604 </pre>
1605
1606           <p>In oltre e' possibile configurare diversi
1607           <em>analizzatori di log</em> come <tt class=
1608           "docutils literal"><span class=
1609           "pre">Webalizer</span></tt> per studiare i log di
1610           Squid.</p>
1611         </div>
1612       </div>
1613     </div>
1614
1615     <div class="section" id="apache">
1616       <h1><a class="toc-backref" href=
1617       "#id27">3&nbsp;&nbsp;&nbsp;Apache</a></h1>
1618
1619       <p>Apache HTTP Server, o piu' comunemente Apache, e' il nome
1620       dato alla piattaforma server Web modulare piu' diffusa (ma
1621       anche al gruppo di lavoro open source che ha creato,
1622       sviluppato e aggiornato il software server), in grado di
1623       operare da sistemi operativi UNIX-Linux e Microsoft.</p>
1624
1625       <p>Un server web e' un processo, e per estensione il computer
1626       su cui e' in esecuzione, che si occupa di fornire, su
1627       richiesta del browser, una pagina web (spesso scritta in
1628       HTML). Le informazioni inviate dal server web viaggiano in
1629       rete trasportate dal protocollo HTTP. L'insieme di server web
1630       dÃ&nbsp; vita al World Wide Web, uno dei servizi piu'
1631       utilizzati di Internet.</p>
1632
1633       <div class="section" id="pacchetti-da-installare">
1634         <h2><a class="toc-backref" href=
1635         "#id28">3.1&nbsp;&nbsp;&nbsp;Pacchetti da
1636         installare::</a></h2>
1637
1638         <blockquote>
1639           apache2 apache2-doc
1640         </blockquote>
1641
1642         <p>Con la release 2.0 di Apache viene automaticamente resa
1643         disponibile anche la versione SSL (Secure Socket Layer,
1644         cpnnessioni criptate ) del web server.</p>
1645       </div>
1646
1647       <div class="section" id="configurazione-di-apache">
1648         <h2><a class="toc-backref" href=
1649         "#id29">3.2&nbsp;&nbsp;&nbsp;Configurazione di
1650         Apache</a></h2>
1651
1652         <p>I file di configurazione di apache si trovano nella
1653         cartella: <tt class="docutils literal"><span class=
1654         "pre">/etc/apache2</span></tt> e sono strutturati come
1655         descritto nel file <tt class=
1656         "docutils literal"><span class="pre">/usr/share/doc/apache2/README.Debian.gz</span></tt>
1657         . Sostanzialmente lo schema e' il seguente:</p>
1658
1659         <dl class="docutils">
1660           <dt>apache2.conf</dt>
1661
1662           <dd>
1663             <p class="first">File di configurazione principale del
1664             servizio.</p>
1665
1666             <p class="last">httpd.conf e' il vecchio file di
1667             configurazione di Apache1, presente per motivi di
1668             retrocompatibilita' e' generalemente vuoto.</p>
1669           </dd>
1670
1671           <dt>ports.conf</dt>
1672
1673           <dd>In questo file vengono specificate le porte sulle
1674           quali resta in ascolto il server web. Si noti che
1675           utilizzando dei virtual hosts generalmente viene
1676           specificata per questi la porta su cui ascoltare nel file
1677           di configurazione del virtual host, ad es: <tt class=
1678           "docutils literal"><span class=
1679           "pre">&lt;VirtualHost</span> <span class=
1680           "pre">*:80&gt;</span></tt></dd>
1681
1682           <dt>sites-available</dt>
1683
1684           <dd>In questa cartella vengono raccolti i file di
1685           configurazione dei virtual host disponibili.</dd>
1686
1687           <dt>sites-enabled</dt>
1688
1689           <dd>In questa cartella sono contenuti dei link simbolici
1690           ai files in ../sites-available : se il link e' presente
1691           in questa cartella il virtual host e' abilitato.</dd>
1692
1693           <dt>mods-available</dt>
1694
1695           <dd>Stesso metodo per i moduli: in questa cartella ci
1696           sono i moduli veri e propri che verranno poi abilitati
1697           grazie all'esistenza di link simbolici nella cartella
1698           mods-enabled .</dd>
1699
1700           <dt>mods-enabled</dt>
1701
1702           <dd>Moduli abilitati, effettivamente caricati.</dd>
1703         </dl>
1704       </div>
1705
1706       <div class="section" id="apache-conf">
1707         <h2><a class="toc-backref" href=
1708         "#id30">3.3&nbsp;&nbsp;&nbsp;apache.conf</a></h2>
1709
1710         <p>File di configurazione del servizio Apache, contiene le
1711         impostazioni generiche (ad esempio utilizzo della RAM e
1712         risorse di sistema) dell'intero servizio. Nella
1713         configurazione di default per Debian non viene definito un
1714         vero e proprio sito di default ma solo dei virtual
1715         hosts.</p>
1716
1717         <p>Guardiamo alcune direttive interessanti:</p>
1718
1719         <dl class="docutils">
1720           <dt>Timeout</dt>
1721
1722           <dd>Numero di secondi da aspettare prima di chiudere la
1723           connessione con il client. Questo parametro serve a
1724           liberare le risorse di sistema nel caso che un client,
1725           magar a causa di una connessione particolarmente lenta o
1726           instabili, tenga attivo indefinitivamente un processo di
1727           apache.</dd>
1728
1729           <dt>KeepAlive</dt>
1730
1731           <dd>L'estensione keep-alive (http 1.0) congiuntamente
1732           alle connessioni persistenti (http 1.1) permettono al
1733           server di rispondere a piu' richieste dei client mediante
1734           la stessa connessione. Il protocoll http per sua natura
1735           e' senza stato (<em>statelessi</em> ), quindi ogni
1736           risorsa richiesta (per pagine web si pensi ad esempio
1737           alle immagini) dal client necessita di una connessione
1738           autonoma. Keep-alive permette di ottimizzare la
1739           connessione anche fino al 50% a seconda delle situazioni
1740           e contenuti.</dd>
1741
1742           <dt>Server-Pool Size Regulation</dt>
1743
1744           <dd>Questi parametri (StartServers, MinSpareServers, ecc.
1745           Tutti spiegati nel manuale di apache) servono per
1746           attribuire le risorse di sistema disponibili al server
1747           Apache. Tenere questi parametri bassi serve a limitare il
1748           rischio di Denial of Service per il server, nel caso
1749           offra altri servizi. I settagi di default sono come
1750           sempre abbastanza conservativi, se si conta di usare il
1751           proprio Apache per servire un sito web con molti
1752           visitatori sara' necessario aumentare sensibilmente le
1753           impostazioni di base.</dd>
1754
1755           <dt>AccessFileName</dt>
1756
1757           <dd>Il nome del file che viene onorato per modificare le
1758           impostazioni per una singola directory, legato alla
1759           direttiva AllowOverride .</dd>
1760         </dl>
1761       </div>
1762
1763       <div class="section" id="installazione-di-php">
1764         <h2><a class="toc-backref" href=
1765         "#id31">3.4&nbsp;&nbsp;&nbsp;Installazione di PHP</a></h2>
1766
1767         <p>Pacchetti da installare: <tt class=
1768         "docutils literal"><span class="pre">php5</span>
1769         <span class="pre">php-pear</span></tt></p>
1770
1771         <div class="section" id="test-del-modulo-php">
1772           <h3><a class="toc-backref" href=
1773           "#id32">3.4.1&nbsp;&nbsp;&nbsp;Test del modulo
1774           php</a></h3>
1775
1776           <p>Creare nella cartella <tt class=
1777           "docutils literal"><span class="pre">/var/www</span></tt>
1778           (o altra cartella visibile) un file con estensione *.php
1779           (es <tt class="docutils literal"><span class=
1780           "pre">/var/ww/info.php</span></tt> contenete codice php
1781           eseguibile dall'interprete, ad es:</p>
1782           <pre class="literal-block">
1783 &lt;?php phpinfo() ; ?&gt;
1784 </pre>
1785
1786           <p>Questa funzione di php generera' la tipica pagina con
1787           le impostazioni attuali per PHP. Richiamando la pagina
1788           (es: <tt class="docutils literal"><span class=
1789           "pre">http://localhost/info.php</span></tt> ) verra
1790           generata dall'interprete PHP la pagina HTML e resa
1791           disponibile tramite Apache ai utclient HTTP, a prova del
1792           correto funzionamento del modulo di PHP e della sua
1793           integrazione con il serv web Apache. In caso contrario se
1794           il client http proporra di scaricare la pagina invece che
1795           visualizzarla nel browser: non funziona l'interprete di
1796           php o sono mal configurati i MIME-type. prima di tutto
1797           assicurarsi di aver fatoo ripartire Apache.</p>
1798         </div>
1799
1800         <div class="section" id=
1801         "installazione-del-supporto-per-mysql">
1802           <h3><a class="toc-backref" href=
1803           "#id33">3.4.2&nbsp;&nbsp;&nbsp;Installazione del supporto
1804           per Mysql</a></h3>
1805
1806           <p>Installare i pacchetti:</p>
1807           <pre class="literal-block">
1808 php5-mysql phpmyadmin
1809 </pre>
1810
1811           <p>Controllare tramite la pagina php.info che sia
1812           abilitato il supporto per Mysql (ripartito Apache,
1813           ricaricare la pagina e cercare con CTRL+f <tt class=
1814           "docutils literal"><span class=
1815           "pre">mysql</span></tt>).</p>
1816         </div>
1817
1818         <div class="section" id="phpmyadmin">
1819           <h3><a class="toc-backref" href=
1820           "#id34">3.4.3&nbsp;&nbsp;&nbsp;phpmyadmin</a></h3>
1821
1822           <p>L'interfaccia web Phpmyadmin non richede
1823           necessariamente la presenza di un database Mysql locale,
1824           puo' infatti essere utilizzata per gestire databases
1825           remoti (il suo file di configurazione: <tt class=
1826           "docutils literal"><span class=
1827           "pre">/etc/phpmyadmin/config.inc.php</span></tt> ). Nel
1828           caso si voglia installare localmente Mysql si utilizzi il
1829           pacchetto <tt class="docutils literal"><span class=
1830           "pre">mysql-server</span></tt> .</p>
1831
1832           <p>Phpmyadmin dovrebbe essere disponibile all'URL:
1833           <tt class="docutils literal"><span class=
1834           "pre">http://localhost/phpmyadmin/</span></tt>, se cosi
1835           non fosse controllare che sia incluso il file <tt class=
1836           "docutils literal"><span class=
1837           "pre">/etc/phpmyadmin/apache.conf</span></tt> in
1838           <tt class="docutils literal"><span class=
1839           "pre">/etc/apache2/conf.d/</span></tt> .</p>
1840         </div>
1841
1842         <div class="section" id=
1843         "installazione-del-supporto-per-postgresql">
1844           <h3><a class="toc-backref" href=
1845           "#id35">3.4.4&nbsp;&nbsp;&nbsp;Installazione del supporto
1846           per Postgresql</a></h3>
1847
1848           <p>Installare i pacchetti:</p>
1849           <pre class="literal-block">
1850 php5-pgsql phppgadmin
1851 </pre>
1852
1853           <p>Controllare tramite la pagina php.info che sia
1854           abilitato il supporto per PostgreSQL (ripartito Apache,
1855           ricaricare la pagina e cercare con CTRL+f <tt class=
1856           "docutils literal"><span class=
1857           "pre">pgsql</span></tt>).</p>
1858         </div>
1859
1860         <div class="section" id="phppgadmin">
1861           <h3><a class="toc-backref" href=
1862           "#id36">3.4.5&nbsp;&nbsp;&nbsp;phppgadmin</a></h3>
1863
1864           <p>L'interfaccia web Phppgadmin per il database server
1865           PostgreSQL non richede necessariamente la presenza di un
1866           database locale, puo' infatti essere utilizzata per
1867           gestire databases remoti (il suo file di configurazione:
1868           <tt class="docutils literal"><span class=
1869           "pre">/etc/phppgadmin/config.inc.php</span></tt> ). Nel
1870           caso si voglia installare localmente Mysql si utilizzi il
1871           pacchetto <tt class="docutils literal"><span class=
1872           "pre">postgresql</span></tt> .</p>
1873
1874           <p>Phpmyadmin dovrebbe essere disponibile all'URL:
1875           <tt class="docutils literal"><span class=
1876           "pre">http://localhost/phppgadmin/</span></tt>, se cosi
1877           non fosse controllare che sia incluso il file <tt class=
1878           "docutils literal"><span class=
1879           "pre">/etc/phppgadmin/apache.conf</span></tt> in
1880           <tt class="docutils literal"><span class=
1881           "pre">/etc/apache2/conf.d/</span></tt> .</p>
1882         </div>
1883       </div>
1884
1885       <div class="section" id="virtual-hosts">
1886         <h2><a class="toc-backref" href=
1887         "#id37">3.5&nbsp;&nbsp;&nbsp;Virtual hosts</a></h2>
1888
1889         <blockquote>
1890           <ul class="simple">
1891             <li><a class="reference external" href=
1892             "http://www.apacheweek.com/features/vhost">http://www.apacheweek.com/features/vhost</a></li>
1893
1894             <li><a class="reference external" href=
1895             "http://www.onlamp.com/pub/a/apache/2004/01/08/apacheckbk.html">
1896             http://www.onlamp.com/pub/a/apache/2004/01/08/apacheckbk.html</a></li>
1897           </ul>
1898         </blockquote>
1899
1900         <p>I virtual host permettono di avere piu' siti internet
1901         disponibili tramite lo stesso server web, eventualmente
1902         mappati su un solo indirizzo ip. Sono generalemente di due
1903         tipi:</p>
1904
1905         <blockquote>
1906           <ul class="simple">
1907             <li>Basati su <em>indirizzi ip</em>. Se si ha la
1908             possibilita' di avere piu' indirizzi ip dedicati per i
1909             diversi siti che si vuole servire. ES: <tt class=
1910             "docutils literal"><span class=
1911             "pre">&lt;VirtualHost</span> <span class=
1912             "pre">192.168.0.2:80&gt;</span></tt> . Soluzione
1913             dispendiosa, si tende ad usarla solo se servono
1914             certificati di sicurezza (SSL ) dedicati per ogni
1915             sito.</li>
1916
1917             <li>Basati su <em>nomi di dominio</em> che puntano allo
1918             stesso ip. Soluzione piu' economica e diffusa che si
1919             basa sulle funzionalita' di http 1.1 .</li>
1920           </ul>
1921         </blockquote>
1922
1923         <p>Prenderemo in esame la gestione di virtual hosts basati
1924         su nomi di dominio.</p>
1925
1926         <div class="section" id="gestione-dns">
1927           <h3><a class="toc-backref" href=
1928           "#id38">3.5.1&nbsp;&nbsp;&nbsp;Gestione DNS</a></h3>
1929
1930           <p>Prima di tutto per poter impostare i virtual hosts
1931           dovete avere un server DNS che risolva i vostri nomi di
1932           dominio sull'indirizzo ip del server. Questo si puo'
1933           ottenere in vari modi, ad es:</p>
1934
1935           <blockquote>
1936             <dl class="docutils">
1937               <dt><em>Bind</em> (DNS server)</dt>
1938
1939               <dd>Impostare i campi A nelle proprie zone gestite
1940               dal server dns Bind. Ad es: <tt class=
1941               "docutils literal"><span class=
1942               "pre">papo</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1943               <span class=
1944               "pre">A</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1945               <span class="pre">212.22.136.248</span></tt></dd>
1946
1947               <dt><em>Servizio DNS dinamico on line</em>.</dt>
1948
1949               <dd>Utilizzare un servizio come ad es: <a class=
1950               "reference external" href=
1951               "https://www.dyndns.com/">https://www.dyndns.com/</a>
1952               per mappare nomi di dominio sul proprio indirizzo ip,
1953               comodo ad esempio se si dispone di un indirzzo ip
1954               pubblico (anche se dinamico) per la propria
1955               connessione ad internet.</dd>
1956
1957               <dt><em>Dnsmasq</em> (DNS server)</dt>
1958
1959               <dd>Utilizzabile a livello locale per fare dei test,
1960               utilizzando direttive come: <tt class=
1961               "docutils literal"><span class=
1962               "pre">address=/davide.piffa.net/10.10.208.178</span></tt></dd>
1963
1964               <dt><tt class="docutils literal"><span class=
1965               "pre">/etc/hosts</span></tt></dt>
1966
1967               <dd>Per prove <em>strettamente a livello locale</em>
1968               potete impostare i nomi dei vostri virtual server nel
1969               file /etc/hosts .</dd>
1970             </dl>
1971           </blockquote>
1972           <pre class="literal-block">
1973 # dig 177.piffa.net
1974
1975 ; &lt;&lt;&gt;&gt; DiG 9.5.1-P1 &lt;&lt;&gt;&gt; 177.piffa.net
1976 ;; global options:  printcmd
1977 ;; Got answer:
1978 ;; -&gt;&gt;HEADER&lt;&lt;- opcode: QUERY, status: NOERROR, id: 38036
1979 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
1980
1981 ;; QUESTION SECTION:
1982 ;177.piffa.net.                 IN      A
1983
1984 ;; ANSWER SECTION:
1985 177.piffa.net.          0       IN      A       10.10.208.177
1986
1987 ;; Query time: 12 msec
1988 ;; SERVER: 10.10.208.254#53(10.10.208.254)
1989 ;; WHEN: Wed May  6 12:27:08 2009
1990 ;; MSG SIZE  rcvd: 47
1991 </pre>
1992
1993           <p>La parte interessante e' <tt class=
1994           "docutils literal"><span class=
1995           "pre">177.piffa.net.</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1996           <span class=
1997           "pre">0</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1998           <span class="pre">IN</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1999           <span class=
2000           "pre">A</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
2001           <span class="pre">10.10.208.177</span></tt> . Il nome di
2002           dominio 177.piffa.net viene risolto sull'ip 10.10.208.177
2003           , nel nostro Apache (che risponde all'ip 10.10.208.177 )
2004           dovra' essere disponibile un virtual host che corrisponde
2005           al nome <tt class="docutils literal"><span class=
2006           "pre">177.piffa.net</span></tt> .</p>
2007         </div>
2008
2009         <div class="section" id="virtual-host">
2010           <h3><a class="toc-backref" href=
2011           "#id39">3.5.2&nbsp;&nbsp;&nbsp;Virtual host</a></h3>
2012
2013           <p>Esempio di Virtual host:</p>
2014           <pre class="literal-block">
2015 &lt;VirtualHost *:80 &gt;
2016     ServerName 177.piffa.net
2017     DocumentRoot /var/www/177.piffa.net/
2018     ServerAdmin webmaster@177.piffa.net
2019 &lt;/VirtualHost&gt;
2020 </pre>
2021
2022           <ol class="arabic simple">
2023             <li><tt class="docutils literal"><span class=
2024             "pre">&lt;VirtualHost</span> <span class=
2025             "pre">\*:80</span> <span class="pre">&gt;</span></tt>
2026             La prima riga indica l'inizio della stanza relativa al
2027             nostro virtual host, che ascolotera' su qualunque
2028             indirizzo ip (nel caso il server abbia piu' indirizzi
2029             dai quali e' raggiungibile) sulla porta <tt class=
2030             "docutils literal"><span class=
2031             "pre">80</span></tt>.</li>
2032
2033             <li><tt class="docutils literal"><span class=
2034             "pre">Server/name</span></tt> precisa quale sara' il
2035             nome di dominio a cui verra' associato questo sito
2036             rispetto ad altri eventualmenti presenti sullo stesso
2037             server web.</li>
2038
2039             <li><tt class="docutils literal"><span class=
2040             "pre">DocumentRoot</span></tt> : il path della
2041             directory che contiene le pagine del sito.</li>
2042
2043             <li><tt class="docutils literal"><span class=
2044             "pre">ServerAdmin</span></tt>: l'indirizzo del
2045             webmaster, in modo da poterlo contattare in caso di
2046             problemi col sito.</li>
2047
2048             <li><tt class="docutils literal"><span class=
2049             "pre">&lt;/VirtualHost&gt;</span></tt>: <em>tag</em> di
2050             chiusura della stanza di definizione del virtual
2051             host.</li>
2052           </ol>
2053
2054           <p>Quelle che abbiamo appena visto sono le direttive
2055           essenziali per definire un sito virtuale, potrebbe essere
2056           utile aggiungene altre:</p>
2057
2058           <ul>
2059             <li>
2060               <dl class="first docutils">
2061                 <dt><tt class="docutils literal"><span class=
2062                 "pre">ErrorLog</span> <span class=
2063                 "pre">/var/log/apache2/177.piffa.net/error.log</span></tt></dt>
2064
2065                 <dd>
2066                   <p class="first last">Log degli errori separato
2067                   dai restanti siti web ospitati dal server.</p>
2068                 </dd>
2069               </dl>
2070             </li>
2071
2072             <li>
2073               <dl class="first docutils">
2074                 <dt><tt class="docutils literal"><span class=
2075                 "pre">LogLevel</span> <span class=
2076                 "pre">warn</span></tt></dt>
2077
2078                 <dd>
2079                   <p class="first last">Livello di importanza degli
2080                   eventi loggati= warning <em>attenzione</em> .</p>
2081                 </dd>
2082               </dl>
2083             </li>
2084
2085             <li>
2086               <dl class="first docutils">
2087                 <dt><tt class="docutils literal"><span class=
2088                 "pre">CustomLog</span> <span class=
2089                 "pre">/var/log/apache2/177.piffa.net/access.log</span>
2090                 <span class="pre">combined</span></tt></dt>
2091
2092                 <dd>
2093                   <p class="first last">Log di accesso separati
2094                   dagli altri siti, utile anche qua per statistiche
2095                   di accesso per il solo sito virtuale.</p>
2096                 </dd>
2097               </dl>
2098             </li>
2099           </ul>
2100
2101           <p>Potrebbe essere utile modificare le impostazioni di
2102           una intera directory, ad esempio per abilitare
2103           l'<tt class="docutils literal"><span class=
2104           "pre">AuthConfig</span></tt>:</p>
2105           <pre class="literal-block">
2106 &lt;Directory "/var/www/miosito.net/privata"&gt;
2107         AllowOverride AuthConfig
2108         Options ExecCGI Indexes MultiViews FollowSymLinks
2109         Order allow,deny
2110         Allow from all
2111 &lt;/Directory&gt;
2112 </pre>
2113
2114           <p><tt class="docutils literal"><span class=
2115           "pre">AllowOverride</span> <span class=
2116           "pre">AuthConfig</span></tt> ora vale per l'intera
2117           directory, come le altre opzioni.</p>
2118         </div>
2119       </div>
2120
2121       <div class="section" id="negoziazione-accessi">
2122         <h2><a class="toc-backref" href=
2123         "#id40">3.6&nbsp;&nbsp;&nbsp;Negoziazione accessi</a></h2>
2124
2125         <p>Tipicamente quando si installa un server web il proprio
2126         desiderio e' di dare accesso ai materiali disponibili al
2127         maggior numero di visitatori possibile. Talvolta pero' puo
2128         essere utile o necessario limitare gli accessi, ad esempio
2129         per escludere un <em>bot</em> indesiderato che scansiona
2130         ininterottamente le nostre pagine o per creare una <em>Area
2131         Riservata</em> i cui materiali non devono essere
2132         disponibile a tutti.</p>
2133
2134         <div class="section" id="limiti-su-base-ip">
2135           <h3><a class="toc-backref" href=
2136           "#id41">3.6.1&nbsp;&nbsp;&nbsp;Limiti su base ip</a></h3>
2137
2138           <p>La forma piu' semplice di restrizine degli accessi e'
2139           su base degli indirizzi IP dei client: tipicamente i siti
2140           web sono settati per dare accesso a chiunque:</p>
2141           <pre class="literal-block">
2142 &lt;VirtualHost *:80 &gt;
2143        # ...
2144        &lt;Directory "/var/www/177.piffa.net"&gt;
2145        Order allow,deny
2146        Allow from all
2147        &lt;/Directory&gt;
2148 &lt;/VirtualHost&gt;
2149 </pre>
2150
2151           <p>Potremmo negare l'accesso a uno o piu' indirizzi IP in
2152           questo modo:</p>
2153           <pre class="literal-block">
2154 &lt;VirtualHost *:80 &gt;
2155        &lt;Directory "/var/www/177.piffa.net"&gt;
2156        Order allow,deny
2157        Allow from all
2158        Deny from 192.168.0.1
2159        &lt;/Directory&gt;
2160 &lt;/VirtualHost&gt;
2161 </pre>
2162
2163           <p>Ora l'IP 192.168.0.1 non potra' piu' accedere ai
2164           materiali dell'intero sito virtuale, oppure potremmo
2165           lavorare su una sola directory:</p>
2166           <pre class="literal-block">
2167 &lt;Directory "/var/www/miosito.net/limitata"&gt;
2168        Order allow,deny
2169        Allow from 192.168.0.0./24
2170        Deny from all
2171 &lt;/Directory&gt;
2172 </pre>
2173
2174           <p>In questo modo solo la classe IP <tt class=
2175           "docutils literal"><span class=
2176           "pre">192.168.0.0/24</span></tt> potra' accedere alla
2177           directory <tt class="docutils literal"><span class=
2178           "pre">/limitata</span></tt> Si tenga pero' conto che e'
2179           relativamente facile per un malintenzionato cambiare il
2180           propio indirizzo ip, oppure collegarsi da un altra zona.
2181           Meno facile e' accedere ad una classe privata trovandosi
2182           all'esterno di questa, ma e' comunque possibile mandare
2183           delle richieste <tt class="docutils literal"><span class=
2184           "pre">GET</span></tt> per cercare di mandare in Denial Of
2185           Service il webserver.</p>
2186         </div>
2187       </div>
2188
2189       <div class="section" id="user-authentication">
2190         <h2><a class="toc-backref" href=
2191         "#id42">3.7&nbsp;&nbsp;&nbsp;User Authentication</a></h2>
2192
2193         <p>A volte conviene negoziare gli accessi ad un area di un
2194         sito tramite autenticazione basata sull'accopiata <em>nome
2195         utente / password</em>. Questo puo' venire utile per creare
2196         una area download <em>intranet</em>, alla quale possano
2197         accedere solo gli utenti previsti a prescindere dagli
2198         indirizzi IP dei loro client. Per quanto esistano soluzioni
2199         piu' granulari e sofisticate per ottenere questo,
2200         <em>mod-auth</em> puo'essere sufficente. E mod auth non
2201         richiede l'installazione di software aggiuntivi.</p>
2202
2203         <p>link: <a class="reference external" href=
2204         "http://www.apacheweek.com/features/userauth">http://www.apacheweek.com/features/userauth</a></p>
2205
2206         <div class="section" id="definire-la-cartella">
2207           <h3><a class="toc-backref" href=
2208           "#id43">3.7.1&nbsp;&nbsp;&nbsp;Definire la
2209           cartella</a></h3>
2210
2211           <p>Decidere quale sara' il <em>path</em> della cartella
2212           da sottoporre ad autentizazione:(e creiamo la
2213           cartella):</p>
2214
2215           <blockquote>
2216             <tt class="docutils literal"><span class=
2217             "pre">mkdir</span> <span class=
2218             "pre">/var/www/177.piffa.net/privata</span></tt>
2219           </blockquote>
2220         </div>
2221
2222         <div class="section" id=
2223         "creazione-del-database-delle-passwords">
2224           <h3><a class="toc-backref" href=
2225           "#id44">3.7.2&nbsp;&nbsp;&nbsp;Creazione del database
2226           delle passwords</a></h3>
2227
2228           <p>Un modo semplice per gestire una database di
2229           <em>user-id / passwords</em> e' utilizzare l'utility
2230           <tt class="docutils literal"><span class=
2231           "pre">htpasswd</span></tt> di Apache. Questa crea un file
2232           in cui un <em>crypt</em> delle password viene associato
2233           agli utenti.</p>
2234
2235           <p>Si dovra' decidere dove tenere questo file, la cosa
2236           importante e' che non sia visibile nel sito web: non deve
2237           essere scaricabile dai visitatori. Deve essere cioe'
2238           all'esterno della <em>DocumentRoot</em>: un buon posto
2239           potrebbe essere la /home dell'utente.</p>
2240
2241           <p>Creiamo (con il <em>flag</em> <tt class=
2242           "docutils literal"><span class="pre">-c</span></tt>) il
2243           file <tt class="docutils literal"><span class=
2244           "pre">/home/utente/passwords</span></tt> con l'utente
2245           <tt class="docutils literal"><span class=
2246           "pre">luca</span></tt>:</p>
2247           <pre class="literal-block">
2248 htpasswd -c /home/utente/passwords luca
2249 </pre>
2250
2251           <p><tt class="docutils literal"><span class=
2252           "pre">htpasswd</span></tt> ci chedera' la password da
2253           associare all'utente <tt class=
2254           "docutils literal"><span class="pre">luca</span></tt>.
2255           Per sucessive modifiche della password o aggiunta di
2256           nuovi utenti non sara' necessario usare il flag
2257           <tt class="docutils literal"><span class=
2258           "pre">-c</span></tt>.</p>
2259         </div>
2260
2261         <div class="section" id="id3">
2262           <h3><a class="toc-backref" href=
2263           "#id45">3.7.3&nbsp;&nbsp;&nbsp;Configurazione di
2264           Apache</a></h3>
2265
2266           <p>Ora possiamo passare alla configurazione vera e
2267           propria di Apache, ma con una novita': andremo a inserire
2268           la voce in un <tt class="docutils literal"><span class=
2269           "pre">.htaccess</span></tt> invece che modificare il file
2270           di impostazione del virtual-host.</p>
2271
2272           <p>Questo per motivi pratici: solo l'utente <em>root</em>
2273           puo' modificare l'impostazione del virtual host nel file
2274           <tt class="docutils literal"><span class=
2275           "pre">/etc/apache2/sites-enabled/177.piffa.net</span></tt>,
2276           ma spesso il motivo per cui creiamo i virtual hosts e'
2277           ospitare i siti di altri utenti, che possono solo
2278           pubblicare (generalmente tramite <em>FTP</em>) i loro
2279           documenti nella loro <em>DocumentRoot</em>, senza poter
2280           quindi modificare in alcun modo la configurazione del
2281           virtual host.</p>
2282
2283           <p>Dando agli utenti la possibilita' di modificare
2284           (<em>AllowOverride</em>) autonomamente alcuni parametri
2285           (in questo caso solo l'<em>AuthConfig</em>) relativi al
2286           funzionamenteo del loro spazio web ci togliera'
2287           l'incombenza di dover intervenire suii vari virtual
2288           host.</p>
2289
2290           <p>Abilitiamo l'AllowOverride nel file di configurazione
2291           del virtual host per la sola directory <tt class=
2292           "docutils literal"><span class=
2293           "pre">privata</span></tt>:</p>
2294           <pre class="literal-block">
2295 &lt;VirtualHost *:80 &gt;
2296     ServerName 177.piffa.net
2297     DocumentRoot /var/www/177.piffa.net/
2298     ServerAdmin webmaster@177.piffa.net
2299     &lt;Directory "/var/www/177.piffa.net/privata"&gt;
2300         AllowOverride AuthConfig
2301     &lt;/Directory&gt;
2302 &lt;/VirtualHost&gt;
2303 </pre>
2304
2305           <p>Per rendere il cambiamento effettivo sara' necessario
2306           fare un restart / reload di Apache.</p>
2307
2308           <p>Ora sara' possibile, anche per l'utente di sistema,
2309           creare un fie <tt class="docutils literal"><span class=
2310           "pre">.htaccess</span></tt> che sara' onorato da
2311           Apache.</p>
2312
2313           <p>/var/www/177.piffa.net/privata/.htaccess</p>
2314           <pre class="literal-block">
2315 # Questo file viene incluso
2316 # nella configurazione del sito web
2317 # Messaggio visualizzato al prompt per l'autenticazione
2318 AuthName "Area privata soggetta ad autentizazione"
2319 # tipo di autenticazione da usarsi
2320 AuthType Basic
2321 # File generato precedentemente con htpasswd
2322 AuthUserFile  /home/utente/passwords
2323
2324 # Negoziazione degli accessi
2325 # valid users permette l'accesso agli utenti specificati
2326 # nel file generato da htpasswd
2327 require valid-user
2328 </pre>
2329
2330           <p>Si noti che non e' necessario fare ripartire Apache
2331           per onorare i cambiamenti (un utente non avrebbe la
2332           possibilita' di farlo!).</p>
2333         </div>
2334       </div>
2335
2336       <div class="section" id="cavets">
2337         <h2><a class="toc-backref" href=
2338         "#id46">3.8&nbsp;&nbsp;&nbsp;Cavets</a></h2>
2339
2340         <p>Problemi di cache:</p>
2341
2342         <blockquote>
2343           <ul class="simple">
2344             <li>Proxy: nei settaggi del browser specificare di non
2345             utilizzare un server proxy http per il sito web locale
2346             (o per gli altri che si stanno monitorando). Se si ha
2347             il controllo del proxy server: stopparlo, ricaricare la
2348             pagina (operazione che fallira'), far ripartire il
2349             proxy, ricaricare la pagina.</li>
2350
2351             <li>Provare con un altro browser, o cercare di svuotare
2352             la cache chiudere/riaprire l'applicativo. Provare a
2353             fermare Apache, ricaricare la pagina (operazione che
2354             fallira'), far ripartire Apache, ricaricare la
2355             pagina.</li>
2356           </ul>
2357         </blockquote>
2358       </div>
2359     </div>
2360
2361     <div class="section" id="domain-name-system">
2362       <h1><a class="toc-backref" href=
2363       "#id47">4&nbsp;&nbsp;&nbsp;Domain Name System</a></h1>
2364
2365       <p>Domain Name System (spesso indicato con DNS) e' un
2366       servizio utilizzato per la risoluzione di nomi di host in
2367       indirizzi IP e viceversa. Il servizio e' realizzato tramite
2368       un database distribuito, costituito dai server DNS.</p>
2369
2370       <p>Il nome DNS denota anche il protocollo che regola il
2371       funzionamento del servizio, i programmi che lo implementano,
2372       i server su cui questi girano, l'insieme di questi server che
2373       cooperano per fornire il servizio.</p>
2374
2375       <p>I nomi DNS, o "nomi di dominio", sono una delle
2376       caratteristiche piu' visibili di Internet.</p>
2377
2378       <p>C'e' confusione in merito alla definizione dell'acronimo:
2379       la S spesso viene interpretata come service, ma la
2380       definizione corretta e' system.</p>
2381
2382       <p>L'operazione di convertire un nome in un indirizzo e'
2383       detta risoluzione DNS, convertire un indirizzo IP in nome e'
2384       detto risoluzione inversa.</p>
2385
2386       <div class="section" id="nomi-di-dominio">
2387         <h2><a class="toc-backref" href=
2388         "#id48">4.1&nbsp;&nbsp;&nbsp;Nomi di dominio</a></h2>
2389
2390         <p>Un nome a dominio e' costituito da una serie di stringhe
2391         separate da punti, ad esempio it.wikipedia.org. A
2392         differenza degli indirizzi IP, dove la parte piu'
2393         importante del numero e' la prima partendo da sinistra, in
2394         un nome DNS la parte piu' importante e' la prima partendo
2395         da destra. Questa e' detta dominio di primo livello (o TLD,
2396         Top Level Domain), per esempio .org o .it.</p>
2397
2398         <p>Un dominio di secondo livello consiste in due parti, per
2399         esempio wikipedia.org, e cosi' via. Ogni ulteriore elemento
2400         specifica un'ulteriore suddivisione. Quando un dominio di
2401         secondo livello viene registrato all'assegnatario, questo
2402         e' autorizzato a usare i nomi di dominio relativi ai
2403         successivi livelli come it.wikipedia.org (dominio di terzo
2404         livello) e altri come some.other.stuff.wikipedia.org
2405         (dominio di quinto livello) e cosi' via.</p>
2406       </div>
2407
2408       <div class="section" id="tipologie-di-record">
2409         <h2><a class="toc-backref" href=
2410         "#id49">4.2&nbsp;&nbsp;&nbsp;Tipologie di record</a></h2>
2411
2412         <p>Ad un nome DNS possono corrispondere diversi tipi di
2413         informazioni. Per questo motivo, esistono diversi tipi di
2414         record DNS. Ogni voce del database DNS deve essere
2415         caratterizzata da un tipo. I principali tipi sono:</p>
2416
2417         <ul class="simple">
2418           <li>Record A - Indica la corrispondenza tra un nome ed
2419           uno (o piu') indirizzi IP (per la precisione indirizzi
2420           IPv4, ovvero la versione attualmente in uso).</li>
2421
2422           <li>Record MX - (Mail eXchange) indica a quali server
2423           debba essere inviata la posta elettronica per un certo
2424           dominio.</li>
2425
2426           <li>Record CNAME - Sono usati per creare un alias, ovvero
2427           per fare in modo che lo stesso calcolatore sia noto con
2428           piu' nomi. Uno degli utilizzi di questo tipo di record
2429           consiste nell'attribuire ad un host che offre piu'
2430           servizi un nome per ciascun servizio. In questo modo, i
2431           servizi possono poi essere spostati su altri host senza
2432           dover riconfigurare i client, ma modificando solo il
2433           DNS.</li>
2434
2435           <li>Record PTR - Il DNS viene utilizzato anche per
2436           realizzare la risoluzione inversa, ovvero per far
2437           corrispondere ad un indirizzo IP il corrispondente nome a
2438           dominio. Per questo si usano i record di tipo "PTR" (e
2439           una apposita zona dello spazio dei nomi
2440           in-addr.arpa).</li>
2441
2442           <li>Record AAAA - Restituisce un indirizzo IPv6.</li>
2443
2444           <li>Record SRV - Identificano il server per un
2445           determinato servizio all'interno di un dominio. Possono
2446           essere considerati una generalizzazione dei record
2447           MX.</li>
2448
2449           <li>Record TXT - Associano campi di testo arbitrari ad un
2450           dominio. Questi campi possono contenere una descrizione
2451           informativa oppure essere utilizzati per realizzare
2452           servizi.</li>
2453         </ul>
2454
2455         <p>Vi sono anche tipi di record "di servizio", necessari al
2456         funzionamento del database distribuito: * Record NS -
2457         Utilizzato per indicare quali siano i server DNS
2458         autoritativi per un certo dominio, ovvero per delegarne la
2459         gestione. * Record SOA - (Start of Authority) usato per la
2460         gestione delle zone DNS.</p>
2461       </div>
2462
2463       <div class="section" id="utilizzo">
2464         <h2><a class="toc-backref" href=
2465         "#id50">4.3&nbsp;&nbsp;&nbsp;Utilizzo</a></h2>
2466
2467         <p>I computer vengono identificati in rete grazie agli
2468         indirizzi <em>IP</em>, questi pero' non sono comodi per gli
2469         utenti come riferimento per i vari server. Ad esempio
2470         sarebbe scomodoriferirsi al motore di ricerca Goggle con
2471         uno dei suoi IP: <tt class="docutils literal"><span class=
2472         "pre">74.125.43.104</span></tt>, e' preferibile usare il
2473         nome di dominio <em>www.google.com</em>:</p>
2474         <pre class="literal-block">
2475 ping -c 1 www.google.com
2476 PING www.l.google.com (74.125.43.104) 56(84) bytes of data.
2477 </pre>
2478       </div>
2479
2480       <div class="section" id="risoluzione-dei-nomi-di-dominio">
2481         <h2><a class="toc-backref" href=
2482         "#id51">4.4&nbsp;&nbsp;&nbsp;Risoluzione dei nomi di
2483         dominio</a></h2>
2484
2485         <p>Ci sono vari strumenti per interrogare i server DNS e
2486         ottenere l'indirizzo IP associato al nome di dominio che ci
2487         interessa:</p>
2488         <pre class="literal-block">
2489 $ host www.piffa.net
2490 www.piffa.net is an alias for piffa.net.
2491 piffa.net has address 65.98.21.97
2492 piffa.net mail is handled by 10 65.98.21.97
2493
2494
2495 $ nslookup www.piffa.net
2496 Server:         192.168.0.10
2497 Address:        192.168.0.10#53
2498
2499 Non-authoritative answer:
2500 www.piffa.net   canonical name = piffa.net.
2501 Name:   piffa.net
2502 Address: 65.98.21.97
2503
2504
2505 $ dig www.piffa.net
2506
2507 ; &lt;&lt;&gt;&gt; DiG 9.6.0-P1 &lt;&lt;&gt;&gt; www.piffa.net
2508 ;; global options: +cmd
2509 ;; Got answer:
2510 ;; -&gt;&gt;HEADER&lt;&lt;- opcode: QUERY, status: NOERROR, id: 47751
2511 ;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 4, ADDITIONAL: 4
2512
2513 ;; QUESTION SECTION:
2514 ;www.piffa.net.                 IN      A
2515
2516 ;; ANSWER SECTION:
2517 www.piffa.net.          3489    IN      CNAME   piffa.net.
2518 piffa.net.              3489    IN      A       65.98.21.97
2519
2520 ;; AUTHORITY SECTION:
2521 piffa.net.              86289   IN      NS      ns2.mydomain.com.
2522 piffa.net.              86289   IN      NS      ns1.mydomain.com.
2523 piffa.net.              86289   IN      NS      ns4.mydomain.com.
2524 piffa.net.              86289   IN      NS      ns3.mydomain.com.
2525
2526 ;; ADDITIONAL SECTION:
2527 ns1.mydomain.com.       96208   IN      A       64.94.117.193
2528 ns2.mydomain.com.       96208   IN      A       64.94.31.67
2529 ns3.mydomain.com.       96208   IN      A       66.150.161.137
2530 ns4.mydomain.com.       96208   IN      A       63.251.83.74
2531
2532 ;; Query time: 1 msec
2533 ;; SERVER: 192.168.0.10#53(192.168.0.10)
2534 ;; WHEN: Sun May 10 21:23:11 2009
2535 ;; MSG SIZE  rcvd: 209
2536 </pre>
2537
2538         <p>Lo strumento piu' esaustivo e' <tt class=
2539         "docutils literal"><span class="pre">dig</span></tt>,
2540         installabile con il pacchetto <tt class=
2541         "docutils literal"><span class="pre">dnsutils</span></tt>
2542         .</p>
2543       </div>
2544
2545       <div class="section" id="dig">
2546         <h2><a class="toc-backref" href=
2547         "#id52">4.5&nbsp;&nbsp;&nbsp;Dig</a></h2>
2548
2549         <p>Vediamo alcune opzioni utili nell'utilizzo di <tt class=
2550         "docutils literal"><span class="pre">dig</span></tt> per
2551         l'inerrogazione dei DNS Server:</p>
2552         <pre class="literal-block">
2553 $ dig www.google.it
2554
2555 ; &lt;&lt;&gt;&gt; DiG 9.6.0-P1 &lt;&lt;&gt;&gt; www.google.it
2556 ;; global options: +cmd
2557 ;; Got answer:
2558 ;; -&gt;&gt;HEADER&lt;&lt;- opcode: QUERY, status: NOERROR, id: 18816
2559 ;; flags: qr rd ra; QUERY: 1, ANSWER: 6, AUTHORITY: 7, ADDITIONAL: 0
2560
2561 ;; QUESTION SECTION:
2562 ;www.google.it.                 IN      A
2563
2564 ;; ANSWER SECTION:
2565 www.google.it.          250683  IN      CNAME   www.google.com.
2566 www.google.com.         334819  IN      CNAME   www.l.google.com.
2567 www.l.google.com.       186     IN      A       74.125.43.103
2568 www.l.google.com.       186     IN      A       74.125.43.104
2569 www.l.google.com.       186     IN      A       74.125.43.147
2570 www.l.google.com.       186     IN      A       74.125.43.99
2571
2572 ;; AUTHORITY SECTION:
2573 l.google.com.           80856   IN      NS      f.l.google.com.
2574 l.google.com.           80856   IN      NS      d.l.google.com.
2575 l.google.com.           80856   IN      NS      b.l.google.com.
2576 l.google.com.           80856   IN      NS      c.l.google.com.
2577 l.google.com.           80856   IN      NS      a.l.google.com.
2578 l.google.com.           80856   IN      NS      e.l.google.com.
2579 l.google.com.           80856   IN      NS      g.l.google.com.
2580
2581 ;; Query time: 1 msec
2582 ;; SERVER: 192.168.0.10#53(192.168.0.10)
2583 ;; WHEN: Sun May 10 21:34:47 2009
2584 ;; MSG SIZE  rcvd: 255
2585 </pre>
2586
2587         <dl class="docutils">
2588           <dt>$ dig</dt>
2589
2590           <dd>(semza opzioni o oggetti) Fornisce l'elenco dei
2591           <em>root servers</em> utilizzati. I root server sono i
2592           server che mantengono le informazioni sui domini di primo
2593           livello (TLD) e sono quindi il punto di partenza per
2594           scorrere nella directory dei DNS per recuperare le
2595           informazioni (tipicamente un campo <tt class=
2596           "docutils literal"><span class="pre">A</span></tt> per un
2597           indirizzo IP) che ci servono per raggiungere un certo
2598           servizio.</dd>
2599         </dl>
2600
2601         <p>$ dig</p>
2602
2603         <blockquote>
2604           <p>...</p>
2605
2606           <p>;; ANSWER SECTION: . 192032 IN NS C.ROOT-SERVERS.NET.
2607           . 192032 IN NS E.ROOT-SERVERS.NET. . 192032 IN NS
2608           B.ROOT-SERVERS.NET. . 192032 IN NS L.ROOT-SERVERS.NET. .
2609           192032 IN NS A.ROOT-SERVERS.NET. . 192032 IN NS
2610           F.ROOT-SERVERS.NET. . 192032 IN NS H.ROOT-SERVERS.NET. .
2611           192032 IN NS G.ROOT-SERVERS.NET. . 192032 IN NS
2612           K.ROOT-SERVERS.NET. . 192032 IN NS M.ROOT-SERVERS.NET. .
2613           192032 IN NS I.ROOT-SERVERS.NET. . 192032 IN NS
2614           J.ROOT-SERVERS.NET. . 192032 IN NS
2615           D.ROOT-SERVERS.NET.</p>
2616
2617           <p>...</p>
2618         </blockquote>
2619       </div>
2620     </div>
2621
2622     <div class="section" id="dnsmasq">
2623       <h1><a class="toc-backref" href=
2624       "#id53">5&nbsp;&nbsp;&nbsp;DNSmasq</a></h1>
2625
2626       <p>Dnsmasq puo' svolgere le funzioni di un DNS cache /
2627       forwarder e un server DHCP caratterizzato dalla facilita' di
2628       configurazione, dalla leggerezza e dalla possibilita' di
2629       modificare rapidamente i record DNS serviti alla rete. Puo'
2630       essere anche utilizzato come <cite>server per il boot da rete
2631       &lt;http://www.debian-administration.org/articles/478&gt;_</cite>
2632       .</p>
2633
2634       <p>Dnsmasq e' un interessante alternativa all'uso del server
2635       DNS Bind in modalita' cache-only (non autoritativo)
2636       accompagnato dal server DHCPD. I vantaggi sono:</p>
2637
2638       <ul class="simple">
2639         <li>Leggerezza: puo' essere fatto girare su una macchina
2640         relativamente debole in caso di bisogno.</li>
2641
2642         <li>Rapidita' di configurazione (in particolare per servire
2643         dei record A / MX alla rete, modificando al volo i valori
2644         originali ospitati sul server DNS Publico).</li>
2645
2646         <li>Ben integrato con connssioni PPP (utile se dovete
2647         rendere disponibile rapidamente una connessione a internet
2648         a una rete in difficolta').</li>
2649       </ul>
2650
2651       <p>Tutto cio' rende Dnsmasq una soluzione valida in
2652       particolare quando si deve intervenire in una rete
2653       pre-esistente in cui il server principale e' in crisi: si
2654       potra' utilizzare Dnsmasq anche su una macchina piu' debole e
2655       <em>mascherare</em> i servizi al momento non disponibili.
2656       Molto utile per scopi didattici, sopratutto per testare
2657       server SMTP impostando al volo i campi MX per nomi di dominio
2658       fittizi.</p>
2659     </div>
2660
2661     <div class="section" id="samba">
2662       <h1><a class="toc-backref" href=
2663       "#id54">6&nbsp;&nbsp;&nbsp;Samba</a></h1>
2664
2665       <p>Samba e' un progetto libero che fornisce servizi di
2666       condivisione di file e stampanti a client SMB/CIFS.</p>
2667
2668       <p>Samba e' liberamente disponibile, al contrario di altre
2669       implementazioni SMB/CIFS, e permette di ottenere
2670       interoperabilita' tra Linux, Unix, Mac OS X e Windows.</p>
2671
2672       <p>Samba e' un software che puo girare su piattaforme che non
2673       siano Microsoft Windows, per esempio, UNIX, Linux, IBM System
2674       390, OpenVMS e altri sistemi operativi. Samba utilizza il
2675       protocollo TCP/IP utilizzando i servizi offerti sul server
2676       ospite. Quando correttamente configurato, permette di
2677       interagire con client o server Microsoft Windows come se
2678       fosse un file e print server Microsoft agendo da Primary
2679       Domain Controller (PDC) o come Backup Domain Controller, puo'
2680       inoltre prendere parte ad un dominio Active Directory.</p>
2681
2682       <div class="section" id="pacchetti">
2683         <h2><a class="toc-backref" href=
2684         "#id55">6.1&nbsp;&nbsp;&nbsp;Pacchetti</a></h2>
2685
2686         <p>Pacchetti da installare per utilizzare Samba in
2687         modalita' client <a class="footnote-reference" href="#id5"
2688         id="id4" name="id4">[2]</a></p>
2689         <pre class="literal-block">
2690 samba-client
2691 </pre>
2692
2693         <p>Pacchetti da installare per utilizzare Samba in
2694         modalita' server:</p>
2695         <pre class="literal-block">
2696 samba smbfs smbclient
2697 </pre>
2698
2699         <table class="docutils footnote" frame="void" id="id5"
2700         rules="none">
2701           <colgroup>
2702             <col class="label">
2703             <col>
2704           </colgroup>
2705
2706           <tbody valign="top">
2707             <tr>
2708               <td class="label"><a class="fn-backref" href=
2709               "#id4">[2]</a></td>
2710
2711               <td>Anche se nato per i sistemi Windows, Samba puo'
2712               essere usato anche per montare cartelle sotto
2713               GNU/Linux come alternativa a NFS. Per la condivisione
2714               di stampanti sarebbe invece opportuno intervenire
2715               direttamente su <tt class=
2716               "docutils literal"><span class=
2717               "pre">CUPS</span></tt>.</td>
2718             </tr>
2719           </tbody>
2720         </table>
2721
2722         <p>Durante la prima installazione viene chiesto il nome del
2723         gruppo di appartenenza, il default per Windows e'
2724         <tt class="docutils literal"><span class=
2725         "pre">WORKGROUP</span></tt>. In aula usiamo invece
2726         <tt class="docutils literal"><span class=
2727         "pre">208</span></tt> .</p>
2728
2729         <p>Per riconfigurare Samba si usi il comando:</p>
2730         <pre class="literal-block">
2731 dpkg-reconfigure samba-common
2732 </pre>
2733       </div>
2734
2735       <div class="section" id="passwords-e-autenticazione">
2736         <h2><a class="toc-backref" href=
2737         "#id56">6.2&nbsp;&nbsp;&nbsp;Passwords e
2738         autenticazione</a></h2>
2739
2740         <p>Per poter configurare Samba in modo che usi un sistema
2741         di negoziazione degli accessi alle cartelle condivise
2742         basato su accoppiate <em>nome utente / password</em>
2743         bisogna distinguere tra 3 livelli di password (e
2744         generalmente volete usare <em>sempre la stessa
2745         password</em> per ognuno di questi) e delle differenze tra
2746         le modalita' di <em>autenticazione</em> (e quindi anche di
2747         criptaggio delle passwords) usate da sistemi GNU/Linux e
2748         Windows:</p>
2749
2750         <dl class="docutils">
2751           <dt>1 Sistema *Unix ( GNU/Linux )</dt>
2752
2753           <dd>E' la password dell'<em>utente di sistema</em> che
2754           viene usata sul sistema operativo su cui gira il software
2755           Samba. E' importante tenere conto anche delle
2756           <em>user-id</em> e <em>group-id</em> degli utenti che
2757           dovranno fisicamente scrivere sui file system. Se un
2758           utente non puo' scrivere in una certa posizione del file
2759           system (ad esempio nella cartella <tt class=
2760           "docutils literal"><span class=
2761           "pre">/mnt/condivisione</span></tt> che sara' stata
2762           necessariamente creata inizialmente dall'utente
2763           <tt class="docutils literal"><span class=
2764           "pre">root</span></tt>) per mancanza dei privilegi di
2765           scrittura allora neanche Samba potra' farlo nel momento
2766           in mette a disposizione la risorsa all'utente. Se si
2767           montano file-system dedicati per le condivisioni
2768           controllare i permessi e propieta' dei <em>punti di
2769           mount*</em>. Queste passwords sono salvate nel solito
2770           file /etc/shadow (richiamato da /etc/passwd).</dd>
2771
2772           <dt>2 Password per l'applicativo Samba</dt>
2773
2774           <dd>Samba deve essere compatibile con Windows e quindi
2775           utilizzare un sistema di criptazione delle password
2776           diverso da /etc/shadow . Le password per Samba possono
2777           essere gestite ad esempio col comando <tt class=
2778           "docutils literal"><span class=
2779           "pre">smbpasswd</span></tt> e vengono generalmente
2780           salvate all'interno di <tt class=
2781           "docutils literal"><span class=
2782           "pre">/var/lib/samba/passdb.tdb</span></tt> .</dd>
2783
2784           <dt>3 Password per Windows.</dt>
2785
2786           <dd>Gli utenti Windows effettuano il log-in alla partenza
2787           della sessione di Windows. Se si avra' l'accortezza di
2788           usare sempre la <em>stessa password</em> data
2789           precedentemente anche a Windows (o viceversa impostare la
2790           password per GNU/Linux / Samba uguale a quella di
2791           Windows) l'utente potra' accedere automaticamente alle
2792           condivisioni a lui disponibili.</dd>
2793         </dl>
2794       </div>
2795
2796       <div class="section" id="creazione-utenti">
2797         <h2><a class="toc-backref" href=
2798         "#id57">6.3&nbsp;&nbsp;&nbsp;Creazione Utenti</a></h2>
2799
2800         <p>Creiamo per primo l'utente sotto GNU/Linux, facendo
2801         attenzione a <em>non dargli una shell di sistema</em>. Gli
2802         utenti Windows che accedono al server solo per le
2803         condivisioni non hanno bisogno di poter eseguire comandi
2804         sul server!</p>
2805
2806         <p>Creazione di un utente denominato sambo:</p>
2807         <pre class="literal-block">
2808 adduser --shell /bin/false sambo
2809 </pre>
2810
2811         <p>Nel file <tt class="docutils literal"><span class=
2812         "pre">/etc/passwd</span></tt> avremo qualcosa come:</p>
2813         <pre class="literal-block">
2814 sambo:x:1001:1001:Sambo utente Samba,,,:/home/sambo:/bin/false
2815 </pre>
2816
2817         <p>Aggiunta dell'utente al database delle password per
2818         Samba e generazione della sua password:</p>
2819         <pre class="literal-block">
2820 smbpasswd -a sambo
2821 </pre>
2822
2823         <p>Se successivamente si vorra' modificare la password di
2824         un utente gia' esistente si usi:</p>
2825         <pre class="literal-block">
2826 smbpasswd  sambo
2827 </pre>
2828
2829         <p>La password sotto Windows verra' modificata sul sistema
2830         Windows.</p>
2831       </div>
2832
2833       <div class="section" id="creare-la-condivisione">
2834         <h2><a class="toc-backref" href=
2835         "#id58">6.4&nbsp;&nbsp;&nbsp;Creare la
2836         condivisione</a></h2>
2837
2838         <p>La condivisione altro non e' che una cartella sul server
2839         che viene resa disponibile ai client negoziando l'accesso
2840         in base a una autenticazione basata su <em>user-name /
2841         password</em>. E' per altro possibile permettere l'accesso
2842         a una risorsa a chiunque indiscriminatamente (a tutti i
2843         <tt class="docutils literal"><span class=
2844         "pre">guest</span></tt>) ma la cosa e' sconsigliabile dal
2845         punto di vista della sicurezza. Si decida se la cartella
2846         condivisa debba risiedere nella <em>home</em> di un utente
2847         (nel caso quest'ultimo ne sia l'unico fruitore) o in una
2848         cartella in /mnt/ (nel caso piu' utenti accedano a questa).
2849         Nel secondo caso si potranno gestire gli accessi sotto
2850         GNU/Linux tramite i gruppi.</p>
2851
2852         <p>Creazione della risorsa sambo_share nella home
2853         dell'utente sambo:</p>
2854         <pre class="literal-block">
2855 # mkdir /home/sambo/sambo_share
2856 # chown sambo:sambo /home/sambo/sambo_share/
2857 </pre>
2858
2859         <div class="section" id=
2860         "sicurezza-permessi-di-esecuzione-sul-server">
2861           <h3><a class="toc-backref" href=
2862           "#id59">6.4.1&nbsp;&nbsp;&nbsp;Sicurezza: permessi di
2863           esecuzione sul server</a></h3>
2864
2865           <p>Bisognerebbe notare sul server i permessi di
2866           esecuzione del file-system che ospita la cartella da
2867           condividere. Se i file che saranno contenuti nella
2868           condivisione saranno da usarsi sotto Windows non c'e'
2869           motivo che questi siano eseguibili sotto GNU/Linux. Si
2870           potrebbe avere quindi, ipotizzando una condivisione in
2871           <tt class="docutils literal"><span class=
2872           "pre">/mnt/share</span></tt> che risieda su di un file
2873           system dedicato:</p>
2874
2875           <p><tt class="docutils literal"><span class=
2876           "pre">/etc/fstab</span></tt></p>
2877
2878           <blockquote>
2879             /dev/hda10 /mnt/share ext3 rw,
2880             <strong>nosuid,noexec</strong> 0 3
2881           </blockquote>
2882
2883           <p>Si noti anche l'uso di <em>nosuid</em> per evitare la
2884           possibilita' di eseguire programmi con credenziali
2885           diverse.</p>
2886         </div>
2887       </div>
2888
2889       <div class="section" id=
2890       "configurazione-dell-applicativo-samba-vero-e-proprio">
2891         <h2><a class="toc-backref" href=
2892         "#id60">6.5&nbsp;&nbsp;&nbsp;Configurazione
2893         dell'applicativo Samba vero e proprio.</a></h2>
2894
2895         <p>Avendo preparato gli utenti (ancora una volta: non si
2896         dia una shell completa a un utente che serve solo per Samba
2897         o la posta elettronica) e la cartella sul file system si
2898         puo' procedere a configurare la condivisione su Samba.</p>
2899
2900         <p>/etc/samba/smb.conf riga ~235 , Share Definitions (in
2901         vim si usi 235gg ):</p>
2902         <pre class="literal-block">
2903 [sambo_share]
2904         # Percorso della cartella condivisa
2905         path = /home/sambo/sambo_share
2906         # Se gli utenti possono scrivere / modificare file
2907         writable = yes
2908         # Negoziazione degli accessi su base utenti / passwords
2909         valid users = sambo
2910
2911         # #######################################
2912         # Altri parametri opzionali di interesse
2913         # Se posso vedere la condivisione da esplora risorse
2914         # anche se non ho i privilegi per accedervi.
2915         browseable = yes
2916         # Commento indicativo della risorsa
2917         comment = Condivisione per Sambo
2918 </pre>
2919
2920         <p>Dopo aver salvato il file si puo' fare un primo
2921         controllo tramite l'utility <tt class=
2922         "docutils literal"><span class="pre">testparm</span></tt> ,
2923         che controlla la sintassi del file di configurazione di
2924         Samba. Se questo non rileva problemi si puo' procedere a un
2925         <tt class="docutils literal"><span class="pre">#</span>
2926         <span class="pre">/etc/init.d/samba</span> <span class=
2927         "pre">restart</span></tt> .</p>
2928       </div>
2929
2930       <div class="section" id="testare-il-servizio">
2931         <h2><a class="toc-backref" href=
2932         "#id61">6.6&nbsp;&nbsp;&nbsp;Testare il Servizio</a></h2>
2933
2934         <p>Come testare il servizio</p>
2935
2936         <p>es:</p>
2937         <pre class="literal-block">
2938 smbclient -U sambo -L localhost
2939 </pre>
2940
2941         <p>Questo comando permette di esplorare la risorsa
2942         qualificandosi come utente, in questo modo potete testare
2943         il corretto funzionamento dell'autenticazione. Si provi
2944         inizialmente a sbagliare la password deliberatamente, poi a
2945         inserirla correttamente: dovrebbero essere visibili le
2946         risorse disponibili al solo utente sambo: la suo /home e la
2947         cartella samba_share:</p>
2948         <pre class="literal-block">
2949 Sharename       Type      Comment
2950 ---------       ----      -------
2951 sambo_share     Disk      Condivisione per Sambo
2952 print$          Disk      Printer Drivers
2953 IPC$            IPC       IPC Service (base server)
2954 sambo           Disk      Home Directories
2955 </pre>
2956
2957         <p>In particolare l'ultima voce relativa alla home
2958         directory dell'utente dovrebbe essere visibile solo agli
2959         utenti autenticati.</p>
2960
2961         <p>In alternativa e' possibile montare realmente la
2962         condivisone anche su GNU/Linux tramite un client per samba
2963         e testarne il corretto funzionamento:</p>
2964         <pre class="literal-block">
2965 mount -t smbfs //localhost/sambo_share /mnt/sambo_mount/ --verbose -o user=sambo
2966 </pre>
2967       </div>
2968     </div>
2969
2970     <div class="section" id="firewall">
2971       <h1><a class="toc-backref" href=
2972       "#id62">7&nbsp;&nbsp;&nbsp;Firewall</a></h1>
2973
2974       <p>In Informatica, nell'ambito delle reti di computer, un
2975       firewall (termine inglese dal significato originario di
2976       parete refrattaria, muro tagliafuoco, muro ignifugo; in
2977       italiano anche parafuoco o parafiamma) e' un componente
2978       passivo di difesa perimetrale che può anche svolgere
2979       funzioni di collegamento tra due o piu' tronconi di rete.
2980       Usualmente la rete viene divisa in due sottoreti: una, detta
2981       esterna, comprende l'intera Internet mentre l'altra interna,
2982       detta LAN (Local Area Network), comprende una sezione piu' o
2983       meno grande di un insieme di computer locali. In alcuni casi
2984       e' possibile che si crei l'esigenza di creare una terza
2985       sottorete detta DMZ (o zona demilitarizzata) atta a contenere
2986       quei sistemi che devono essere isolati dalla rete interna ma
2987       devono comunque essere protetti dal firewall.</p>
2988
2989       <p>Una prima definizione chiusa di firewall è la
2990       seguente:</p>
2991
2992       <p>Apparato di rete hardware o software che filtra tutti i
2993       pacchetti entranti ed uscenti, da e verso una rete o un
2994       computer, applicando regole che contribuiscono alla sicurezza
2995       della stessa.</p>
2996
2997       <p>In realtÃ&nbsp; un firewall può essere realizzato con un
2998       normale computer (con almeno due schede di rete e software
2999       apposito), può essere una funzione inclusa in un router o
3000       può essere un apparato specializzato. Esistono inoltre i
3001       cosiddetti "firewall personali", che sono programmi
3002       installati sui normali calcolatori, che filtrano solamente i
3003       pacchetti che entrano ed escono da quel calcolatore; in tal
3004       caso viene utilizzata una sola scheda di rete.</p>
3005
3006       <p>La funzionalitÃ&nbsp; principale in sostanza Ã¨ quella di
3007       creare un filtro sulle connessioni entranti ed uscenti, in
3008       questo modo il dispositivo innalza il livello di sicurezza
3009       della rete e permette sia agli utenti interni che a quelli
3010       esterni di operare nel massimo della sicurezza. Il firewall
3011       agisce sui pacchetti in transito da e per la zona interna
3012       potendo eseguire su di essi operazioni di: controllo modifica
3013       monitoraggio</p>
3014
3015       <p>Questo grazie alla sua capacitÃ&nbsp; di "aprire" il
3016       pacchetto IP per leggere le informazioni presenti sul suo
3017       header, e in alcuni casi anche di effettuare verifiche sul
3018       contenuto del pacchetto.</p>
3019
3020       <div class="section" id="links">
3021         <h2><a class="toc-backref" href=
3022         "#id63">7.1&nbsp;&nbsp;&nbsp;Links</a></h2>
3023
3024         <ul class="simple">
3025           <li><a class="reference external" href=
3026           "http://openskill.info/topic.php?ID=124">http://openskill.info/topic.php?ID=124</a></li>
3027
3028           <li><a class="reference external" href=
3029           "http://iptables-tutorial.frozentux.net/iptables-tutorial.html">
3030           http://iptables-tutorial.frozentux.net/iptables-tutorial.html</a></li>
3031         </ul>
3032       </div>
3033
3034       <div class="section" id="ipfilter">
3035         <h2><a class="toc-backref" href=
3036         "#id64">7.2&nbsp;&nbsp;&nbsp;Ipfilter</a></h2>
3037
3038         <p>Link: <a class="reference external" href=
3039         "http://iptables-tutorial.frozentux.net/iptables-tutorial.html#IPFILTERING">
3040         http://iptables-tutorial.frozentux.net/iptables-tutorial.html#IPFILTERING</a></p>
3041
3042         <p>Natura di un firewall ip: su cosa lavora (livello 2 e un
3043         po' del 3) e su cosa <em>non</em> lavora (livello 4).
3044         Netfilter lavora anche su parti del livello 3 (TCP, UDP,
3045         etc) e del livello 1 (MAC source address). Iptables
3046         comunque permette di fare il <em>connection-tracking</em>,
3047         mediante il quale possiamo implementare il Network Address
3048         Translation.</p>
3049
3050         <p>Netfilter non ricostruisce il flusso di dati tra
3051         pacchetti, non puo' quindi rilevare la presenza di virus o
3052         simili che si trasmettono su pacchetti separati:
3053         ricomporre, analizzare e tornare a scomporre i frammenti
3054         rtichiederebbe troppa RAM e risorse di sistema, con il
3055         conseguente rischio di saturare il firewall fino
3056         all'abbandono dei nuovi pacchetti in transito. Ci sono
3057         altri software piu' adatti a questi compiti, ad esempio un
3058         proxy HTTP come Squid che e' appunto una applicazione di
3059         quarto livello, progettata e strutturata per analizzare e
3060         modificare i flussi di dati (il <em>contenuto</em> dei
3061         pacchetti, non le sole <em>inestazioni</em>) facendo
3062         abbondate uso delle risorse RAM e di calcolo del sistema.
3063         Non a caso su macchine embedded dalle prestazioni molto
3064         ridotte (CPU ARM ~250Mhz con ~30MB di RAM) Squid sfrutta al
3065         massimo le risorse di sistema per gestire il traffico di
3066         una rete 10/100, mentre il lavoro tipico svolto da
3067         netfilter e' quasi irrilevante.</p>
3068       </div>
3069
3070       <div class="section" id="progettazione-di-un-firewall">
3071         <h2><a class="toc-backref" href=
3072         "#id65">7.3&nbsp;&nbsp;&nbsp;Progettazione di un
3073         firewall</a></h2>
3074
3075         <p>Per implementare un firewall bisogna decidere un aio di
3076         cose: la collocazione e l'approccio (inclusivo o esclusivo)
3077         al filtraggio, il tipo di hardware.</p>
3078
3079         <div class="section" id="collocazione">
3080           <h3><a class="toc-backref" href=
3081           "#id66">7.3.1&nbsp;&nbsp;&nbsp;Collocazione</a></h3>
3082
3083           <p>DMZ e MZ, internet, intranet, extranet. Frammentazione
3084           della rete, decidere se diversi reparti di una azienda si
3085           possano vedere tra loro e in che misura.</p>
3086
3087           <p>Collocazione:</p>
3088
3089           <blockquote>
3090             <ol class="arabic simple">
3091               <li>sul router</li>
3092
3093               <li>tra router e servers / LAN</li>
3094
3095               <li>Unico server / router / firewall e connessi
3096               rischi. considerare l'acquisto di un router hardware
3097               dedicato.</li>
3098             </ol>
3099           </blockquote>
3100
3101           <dl class="docutils">
3102             <dt>Layeed security:</dt>
3103
3104             <dd>Implementare piu' device / software sui diversi
3105             livelli: <a class="reference external" href=
3106             "http://iptables-tutorial.frozentux.net/iptables-tutorial.html#HOWTOPLANANIPFILTER">
3107             http://iptables-tutorial.frozentux.net/iptables-tutorial.html#HOWTOPLANANIPFILTER</a></dd>
3108           </dl>
3109         </div>
3110
3111         <div class="section" id="policy-di-default">
3112           <h3><a class="toc-backref" href=
3113           "#id67">7.3.2&nbsp;&nbsp;&nbsp;Policy di default</a></h3>
3114
3115           <p>Drop o Accept: conseguenze per sicurezza, facilita' di
3116           gestione.</p>
3117         </div>
3118
3119         <div class="section" id="hardware">
3120           <h3><a class="toc-backref" href=
3121           "#id68">7.3.3&nbsp;&nbsp;&nbsp;Hardware</a></h3>
3122
3123           <p>Sostanzialmente potremmo distinquere due tipologie di
3124           hardware:</p>
3125
3126           <dl class="docutils">
3127             <dt>Network appliance dedicata::</dt>
3128
3129             <dd>Un dispositivo hardware dedicato alla funzione di
3130             Firewall, ad es un Cisco / Fortigate. Si noti che molti
3131             firewall economici altro non sono che Linux box molto
3132             striminzite.</dd>
3133
3134             <dt>Server / Personal computer:</dt>
3135
3136             <dd>Un server sul quale viene fatto girare Netfilter ad
3137             uso del server stesso e della rete connessa.</dd>
3138           </dl>
3139
3140           <p>Vantaggi e svantaggi: consumo elettrico, efficenza,
3141           flessibilita', strumenti di gestione, sicurezza,
3142           OpenBSD.</p>
3143         </div>
3144       </div>
3145
3146       <div class="section" id=
3147       "percorso-dei-pacchetti-tra-tabelle-e-catene">
3148         <h2><a class="toc-backref" href=
3149         "#id69">7.4&nbsp;&nbsp;&nbsp;Percorso dei pacchetti tra
3150         tabelle e catene</a></h2>
3151
3152         <p>link: <a class="reference external" href=
3153         "http://iptables-tutorial.frozentux.net/iptables-tutorial.html#TRAVERSINGOFTABLES">
3154         http://iptables-tutorial.frozentux.net/iptables-tutorial.html#TRAVERSINGOFTABLES</a></p>
3155       </div>
3156
3157       <div class="section" id="concetti-di-base">
3158         <h2><a class="toc-backref" href=
3159         "#id70">7.5&nbsp;&nbsp;&nbsp;Concetti di base</a></h2>
3160
3161         <div class="section" id="tabelle-catene-regole">
3162           <h3><a class="toc-backref" href=
3163           "#id71">7.5.1&nbsp;&nbsp;&nbsp;Tabelle, catene,
3164           regole</a></h3>
3165
3166           <p>Iptables lavora su 3 tabelle (tables) di default:</p>
3167
3168           <ul class="simple">
3169             <li>filter - Regola il firewalling: quali pacchetti
3170             accettare, quali bloccare</li>
3171
3172             <li>nat - Regola le attivitÃ&nbsp; di natting</li>
3173
3174             <li>mangle - Interviene sulla alterazione dei
3175             pacchetti.</li>
3176           </ul>
3177
3178           <p>Ogni tabella ha delle catene (chains) predefinite
3179           (INPUT, OUTPUT, FORWARD ... ) a cui possono essere
3180           aggiunte catene custom. Ogni catena è composta da un
3181           elenco di regole (rules) che identificano pacchetti di
3182           rete secono criteri diversi (es: -p tcp --dport 80 -d
3183           10.0.0.45) Ogni regola termina con una indicazione
3184           (target) su cosa fare dei pacchetti identificati dalla
3185           regola stessa (es: -j ACCEPT, -j DROP ...)</p>
3186         </div>
3187
3188         <div class="section" id="match">
3189           <h3><a class="toc-backref" href=
3190           "#id72">7.5.2&nbsp;&nbsp;&nbsp;Match</a></h3>
3191
3192           <p>I Match di una regola (rule) servono a testare un
3193           pacchetto per valutare se corrisponda a certe
3194           caratteriscttiche. I match di possono servire a
3195           controllare se un pacchetto e' destinato a una porta
3196           particolare o utilizza un protocollo particolare.</p>
3197
3198           <p>Alcuni esempi:</p>
3199
3200           <dl class="docutils">
3201             <dt>-p [!] proto</dt>
3202
3203             <dd>Protocollo IP. Secondo IP number o nome (es: tcp,
3204             udp, gre, ah...)</dd>
3205
3206             <dt>-s [!] address[/mask]</dt>
3207
3208             <dd>Indirizzo IP sorgente (o network con maschera di
3209             sottorete)</dd>
3210
3211             <dt>-d [!] address[/mask]</dt>
3212
3213             <dd>Indirizzo IP destinazione (o network)</dd>
3214
3215             <dt>-i [!] interface[+]</dt>
3216
3217             <dd>Interfaccia di rete di entrata ([+] wildcard)</dd>
3218
3219             <dt>-o [!] interface[+]</dt>
3220
3221             <dd>Interfaccia di rete di uscita ([+] wildcard)</dd>
3222           </dl>
3223
3224           <table class="docutils option-list" frame="void" rules=
3225           "none">
3226             <col class="option">
3227             <col class="description">
3228
3229             <tbody valign="top">
3230               <tr>
3231                 <td class="option-group"><kbd><span class=
3232                 "option">-f</span></kbd></td>
3233
3234                 <td>Frammento di pacchetto</td>
3235               </tr>
3236             </tbody>
3237           </table>
3238         </div>
3239
3240         <div class="section" id="targets">
3241           <h3><a class="toc-backref" href=
3242           "#id73">7.5.3&nbsp;&nbsp;&nbsp;Targets</a></h3>
3243
3244           <p>Se un pacchetto soddisfa le condizioni del Match
3245           <em>salta</em> (jump) su uno dei target possibili, in
3246           caso contrario continua il suo percorso tra regole catene
3247           e tabelle.</p>
3248
3249           <p>Target principali:</p>
3250
3251           <dl class="docutils">
3252             <dt><em>-j ACCEPT</em></dt>
3253
3254             <dd>Il pachetto matchato viene accettato e procede
3255             verso la sua destinazione. Si usa per definire il
3256             traffico permesso.</dd>
3257
3258             <dt><em>-j DROP</em></dt>
3259
3260             <dd>Il pacchetto viene rifiutato e scartato, senza
3261             alcuna notifica al mittente. Si usa, in alternativa a
3262             REJECT, per bloccare traffico.</dd>
3263
3264             <dt><em>-j REJECT</em></dt>
3265
3266             <dd>Il pacchetto viene rifiutato. Al mittente viene
3267             mandato un pacchetto (configurabile) di notifica tipo
3268             ICMP port-unreachable (--reject-with
3269             icmp-port-unreachable)</dd>
3270           </dl>
3271
3272           <table class="docutils option-list" frame="void" rules=
3273           "none">
3274             <col class="option">
3275             <col class="description">
3276
3277             <tbody valign="top">
3278               <tr>
3279                 <td class="option-group"><kbd><span class=
3280                 "option">-t <var>LOG</var></span></kbd></td>
3281
3282                 <td>Il pacchetto viene loggato via syslog e procede
3283                 l'attraversamento della catena. Opzioni:
3284                 (--log-level, --log-prefix, --log-tcp-sequence,
3285                 --log-tcp-options, --log-ip-options)</td>
3286               </tr>
3287
3288               <tr>
3289                 <td class="option-group"><kbd><span class=
3290                 "option">-j <var>DNAT</var></span></kbd></td>
3291
3292                 <td>Viene modificato l'IP di destinazione del
3293                 pacchetto. Target disponibile solo in nat /
3294                 PREROUTING e nat / OUTPUT. L'opzione
3295                 --to-destination IP:porta definisce il nuovo IP di
3296                 destinazione. Si usa tipicamente su network
3297                 firewall che nattano server di una DMZ</td>
3298               </tr>
3299
3300               <tr>
3301                 <td class="option-group"><kbd><span class=
3302                 "option">-j <var>SNAT</var></span></kbd></td>
3303
3304                 <td>Viene modificato l'IP sorgente. Solo in nat /
3305                 POSTROUTING. Prevede l'opzione --to-source
3306                 IP:porta. Si usa per permettere l'accesso a
3307                 Internet da una rete locale con IP privati.</td>
3308               </tr>
3309
3310               <tr>
3311                 <td class="option-group"><kbd><span class=
3312                 "option">-j <var>MASQUERADE</var></span></kbd></td>
3313
3314                 <td>Simile a SNAT, si applica quando i pacchetti
3315                 escono da interfacce con IP dinamico (dialup, adsl,
3316                 dhcp...). Si usa solo in nat / POSTROUTING e
3317                 prevede l'opzione --to-ports porte.</td>
3318               </tr>
3319
3320               <tr>
3321                 <td class="option-group"><kbd><span class=
3322                 "option">-j <var>REDIRECT</var></span></kbd></td>
3323
3324                 <td>Redirige il pacchetto ad una porta locale.
3325                 Usabile solo in nat / PREROUTING e nat / OUTPUT è
3326                 previsto per fare un transparent proxy (con proxy
3327                 server in esecuzione sulla macchina con
3328                 iptables)</td>
3329               </tr>
3330
3331               <tr>
3332                 <td class="option-group"><kbd><span class=
3333                 "option">-j <var>RETURN</var></span></kbd></td>
3334
3335                 <td>Interrompe l'attraversamento della catena. Se
3336                 questa è una secondaria, il pacchetto torna ad
3337                 attraversare la catena madre da punto in cui aveva
3338                 fatto il salto nella secondaria. Se il RETURN è in
3339                 una delle catene di default, il pacchetto
3340                 interrompe l'attraversamento e segue la policy di
3341                 default.</td>
3342               </tr>
3343
3344               <tr>
3345                 <td class="option-group"><kbd><span class=
3346                 "option">-j <var>TOS</var></span></kbd></td>
3347
3348                 <td>Usabile solo nella tabella mangle, permette di
3349                 cambiare il TOS (Type Of Service) di un pacchetto
3350                 con l'opzione --set-tos. Per un elenco dei
3351                 parametri disponibili: iptables -j TOS -h</td>
3352               </tr>
3353
3354               <tr>
3355                 <td class="option-group"><kbd><span class=
3356                 "option">-j <var>MIRROR</var></span></kbd></td>
3357
3358                 <td>Curioso e sperimentale, questo target invia un
3359                 pacchetto speculare al mittente. In pratica è come
3360                 se facesse da specchio per tutti i pacchetti
3361                 ricevuti. Da usare con cautela, per evitare
3362                 attacchi DOS indiretti.</td>
3363               </tr>
3364             </tbody>
3365           </table>
3366         </div>
3367       </div>
3368
3369       <div class="section" id="tabella-filter">
3370         <h2><a class="toc-backref" href=
3371         "#id74">7.6&nbsp;&nbsp;&nbsp;Tabella Filter</a></h2>
3372
3373         <p>E' quella implicita e predefinita (-t filter) Riguarda
3374         le attivitÃ&nbsp; di filtraggio del traffico. Ha 3 catene
3375         di default: INPUT - Riguarda tutti i pacchetti destinati al
3376         sistema. In entrata da ogni interfaccia. OUTPUT - Riguarda
3377         i pacchetti che sono originati dal sistema e destinati ad
3378         uscire. FORWARD - Riguarda i pacchetti che attraversano il
3379         sistema, con IP sorgente e destinazione esterni.</p>
3380
3381         <p>Esempio per permettere accesso alla porta 80 locale:
3382         iptables -t filter -I INPUT -p tcp --dport 80 -j ACCEPT
3383         Analoga a: iptables -I INPUT -p tcp --dport 80 -j
3384         ACCEPT</p>
3385
3386         <p>Esempio per permettere ad un pacchetto con IP sorgente
3387         10.0.0.4 di raggiungere il server 192.168.0.1 attraversando
3388         il firewall: iptables -I FORWARD -s 10.0.0.4 -d 192.168.0.1
3389         -j ACCEPT</p>
3390       </div>
3391
3392       <div class="section" id=
3393       "flush-automatico-per-macchine-remote">
3394         <h2><a class="toc-backref" href=
3395         "#id75">7.7&nbsp;&nbsp;&nbsp;Flush automatico per macchine
3396         remote</a></h2>
3397
3398         <p>Se state provando una configurazione del firewall per
3399         una macchina remota e' buona norma per evitare brutte
3400         figure attivare uno script che faccia il <em>flush</em>
3401         delle regole dopo qualche minuto. Potreste infatti
3402         inavvertitamente impostare una regola che vi impedisca di
3403         raggiungere la macchina remota, cosi' da non poter neanche
3404         eliminare quella regola e ripristinare la situazioe
3405         precedente.</p>
3406
3407         <p><em>Veramnete</em>, prima di lavorare sul firewall di
3408         una macchina remota inpostate almeno un <tt class=
3409         "docutils literal"><span class="pre">at</span> <span class=
3410         "pre">now</span> <span class="pre">+5</span> <span class=
3411         "pre">min</span></tt> o con un'oretta di margine per fare
3412         il <em>flush</em> delle regole (su tutte le tabelle):</p>
3413         <pre class="literal-block">
3414     at now +5 min
3415 at&gt; /sbin/iptables -F
3416 at&gt; [CTR+d]
3417 </pre>
3418       </div>
3419
3420       <div class="section" id="gestione-regole-rules">
3421         <h2><a class="toc-backref" href=
3422         "#id76">7.8&nbsp;&nbsp;&nbsp;Gestione regole
3423         (rules)</a></h2>
3424
3425         <p>Il comando iptables viene usato per ogni attivitÃ&nbsp;
3426         di gestione e configurazione.</p>
3427
3428         <p>Inserimento regole:</p>
3429
3430         <dl class="docutils">
3431           <dt>iptables -A CATENA ...</dt>
3432
3433           <dd>Aggiunge una regola alla fine della catena
3434           indicata</dd>
3435
3436           <dt>iptables -I CATENA [#] ...</dt>
3437
3438           <dd>Inserisce alla riga # (default 1) una regola nella
3439           catena indicata</dd>
3440
3441           <dt>iptables -N CATENA</dt>
3442
3443           <dd>Crea una nuova catena custom</dd>
3444
3445           <dt>iptables -P CATENA TARGET</dt>
3446
3447           <dd>Imposta il target di default per la catena
3448           indicata</dd>
3449         </dl>
3450
3451         <p>Rimozione regole e azzeramenti:</p>
3452
3453         <dl class="docutils">
3454           <dt>iptables -F [catena]</dt>
3455
3456           <dd>Ripulisce tutte le catene (o quella indicata)</dd>
3457
3458           <dt>iptables -X [catena]</dt>
3459
3460           <dd>Ripulisce tutte le catene custom (o quella
3461           indicata)</dd>
3462
3463           <dt>iptables -Z [catena]</dt>
3464
3465           <dd>Azzera i contatori sulle catene</dd>
3466
3467           <dt>iptables -D catena #</dt>
3468
3469           <dd>Cancella la regola numero # dalla catena
3470           indicata</dd>
3471         </dl>
3472
3473         <p>Interrogazione:</p>
3474
3475         <dl class="docutils">
3476           <dt>iptables -L</dt>
3477
3478           <dd>Elenca le regole esistenti</dd>
3479
3480           <dt>iptables -L -n -v</dt>
3481
3482           <dd>Elenca, senza risolvere gli host, in modo verboso le
3483           regole esistenti</dd>
3484         </dl>
3485       </div>
3486     </div>
3487
3488     <div class="section" id="note">
3489       <h1><a class="toc-backref" href=
3490       "#id77">8&nbsp;&nbsp;&nbsp;NOTE</a></h1>
3491
3492       <ul class="simple">
3493         <li>controllare apache</li>
3494       </ul>
3495
3496       <p>sintassi: in <tt class="docutils literal"><span class=
3497       "pre">monospace</span></tt> :</p>
3498
3499       <ul class="simple">
3500         <li>nomi di files</li>
3501
3502         <li>comandi</li>
3503
3504         <li>pacchetti</li>
3505       </ul>
3506     </div>
3507   </div>
3508 </body>
3509 </html>