]> git.piffa.net Git - doc/.git/blob - servizi.html
d601518b00d998057d08a64c20af4622876aed6d
[doc/.git] / servizi.html
1 <?xml version="1.0" encoding="utf-8"?>
2 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN">
3
4 <html lang="it">
5 <head>
6   <meta name="generator" content=
7   "HTML Tidy for Linux/x86 (vers 7 December 2008), see www.w3.org">
8   <meta http-equiv="Content-Type" content=
9   "text/html; charset=iso-8859-1">
10   <meta name="generator" content=
11   "Docutils 0.5: http://docutils.sourceforge.net/">
12
13   <title>Servizi di rete passo a passo</title>
14   <style type="text/css">
15
16   /*
17   :Author: David Goodger (goodger@python.org)
18   :Id: $Id: html4css1.css 5196 2007-06-03 20:25:28Z wiemann $
19   :Copyright: This stylesheet has been placed in the public domain.
20
21   Default cascading style sheet for the HTML output of Docutils.
22
23   See http://docutils.sf.net/docs/howto/html-stylesheets.html for how to
24   customize this style sheet.
25   */
26
27   /* used to remove borders from tables and images */
28   .borderless, table.borderless td, table.borderless th {
29   border: 0 }
30
31   table.borderless td, table.borderless th {
32   /* Override padding for "table.docutils td" with "! important".
33      The right padding separates the table cells. */
34   padding: 0 0.5em 0 0 ! important }
35
36   .first {
37   /* Override more specific margin styles with "! important". */
38   margin-top: 0 ! important }
39
40   .last, .with-subtitle {
41   margin-bottom: 0 ! important }
42
43   .hidden {
44   display: none }
45
46   a.toc-backref {
47   text-decoration: none ;
48   color: black }
49
50   blockquote.epigraph {
51   margin: 2em 5em ; }
52
53   dl.docutils dd {
54   margin-bottom: 0.5em }
55
56   /* Uncomment (and remove this text!) to get bold-faced definition list terms
57   dl.docutils dt {
58   font-weight: bold }
59   */
60
61   div.abstract {
62   margin: 2em 5em }
63
64   div.abstract p.topic-title {
65   font-weight: bold ;
66   text-align: center }
67
68   div.admonition, div.attention, div.caution, div.danger, div.error,
69   div.hint, div.important, div.note, div.tip, div.warning {
70   margin: 2em ;
71   border: medium outset ;
72   padding: 1em }
73
74   div.admonition p.admonition-title, div.hint p.admonition-title,
75   div.important p.admonition-title, div.note p.admonition-title,
76   div.tip p.admonition-title {
77   font-weight: bold ;
78   font-family: sans-serif }
79
80   div.attention p.admonition-title, div.caution p.admonition-title,
81   div.danger p.admonition-title, div.error p.admonition-title,
82   div.warning p.admonition-title {
83   color: red ;
84   font-weight: bold ;
85   font-family: sans-serif }
86
87   /* Uncomment (and remove this text!) to get reduced vertical space in
88    compound paragraphs.
89   div.compound .compound-first, div.compound .compound-middle {
90   margin-bottom: 0.5em }
91
92   div.compound .compound-last, div.compound .compound-middle {
93   margin-top: 0.5em }
94   */
95
96   div.dedication {
97   margin: 2em 5em ;
98   text-align: center ;
99   font-style: italic }
100
101   div.dedication p.topic-title {
102   font-weight: bold ;
103   font-style: normal }
104
105   div.figure {
106   margin-left: 2em ;
107   margin-right: 2em }
108
109   div.footer, div.header {
110   clear: both;
111   font-size: smaller }
112
113   div.line-block {
114   display: block ;
115   margin-top: 1em ;
116   margin-bottom: 1em }
117
118   div.line-block div.line-block {
119   margin-top: 0 ;
120   margin-bottom: 0 ;
121   margin-left: 1.5em }
122
123   div.sidebar {
124   margin: 0 0 0.5em 1em ;
125   border: medium outset ;
126   padding: 1em ;
127   background-color: #ffffee ;
128   width: 40% ;
129   float: right ;
130   clear: right }
131
132   div.sidebar p.rubric {
133   font-family: sans-serif ;
134   font-size: medium }
135
136   div.system-messages {
137   margin: 5em }
138
139   div.system-messages h1 {
140   color: red }
141
142   div.system-message {
143   border: medium outset ;
144   padding: 1em }
145
146   div.system-message p.system-message-title {
147   color: red ;
148   font-weight: bold }
149
150   div.topic {
151   margin: 2em }
152
153   h1.section-subtitle, h2.section-subtitle, h3.section-subtitle,
154   h4.section-subtitle, h5.section-subtitle, h6.section-subtitle {
155   margin-top: 0.4em }
156
157   h1.title {
158   text-align: center }
159
160   h2.subtitle {
161   text-align: center }
162
163   hr.docutils {
164   width: 75% }
165
166   img.align-left {
167   clear: left }
168
169   img.align-right {
170   clear: right }
171
172   ol.simple, ul.simple {
173   margin-bottom: 1em }
174
175   ol.arabic {
176   list-style: decimal }
177
178   ol.loweralpha {
179   list-style: lower-alpha }
180
181   ol.upperalpha {
182   list-style: upper-alpha }
183
184   ol.lowerroman {
185   list-style: lower-roman }
186
187   ol.upperroman {
188   list-style: upper-roman }
189
190   p.attribution {
191   text-align: right ;
192   margin-left: 50% }
193
194   p.caption {
195   font-style: italic }
196
197   p.credits {
198   font-style: italic ;
199   font-size: smaller }
200
201   p.label {
202   white-space: nowrap }
203
204   p.rubric {
205   font-weight: bold ;
206   font-size: larger ;
207   color: maroon ;
208   text-align: center }
209
210   p.sidebar-title {
211   font-family: sans-serif ;
212   font-weight: bold ;
213   font-size: larger }
214
215   p.sidebar-subtitle {
216   font-family: sans-serif ;
217   font-weight: bold }
218
219   p.topic-title {
220   font-weight: bold }
221
222   pre.address {
223   margin-bottom: 0 ;
224   margin-top: 0 ;
225   font-family: serif ;
226   font-size: 100% }
227
228   pre.literal-block, pre.doctest-block {
229   margin-left: 2em ;
230   margin-right: 2em }
231
232   span.classifier {
233   font-family: sans-serif ;
234   font-style: oblique }
235
236   span.classifier-delimiter {
237   font-family: sans-serif ;
238   font-weight: bold }
239
240   span.interpreted {
241   font-family: sans-serif }
242
243   span.option {
244   white-space: nowrap }
245
246   span.pre {
247   white-space: pre }
248
249   span.problematic {
250   color: red }
251
252   span.section-subtitle {
253   /* font-size relative to parent (h1..h6 element) */
254   font-size: 80% }
255
256   table.citation {
257   border-left: solid 1px gray;
258   margin-left: 1px }
259
260   table.docinfo {
261   margin: 2em 4em }
262
263   table.docutils {
264   margin-top: 0.5em ;
265   margin-bottom: 0.5em }
266
267   table.footnote {
268   border-left: solid 1px black;
269   margin-left: 1px }
270
271   table.docutils td, table.docutils th,
272   table.docinfo td, table.docinfo th {
273   padding-left: 0.5em ;
274   padding-right: 0.5em ;
275   vertical-align: top }
276
277   table.docutils th.field-name, table.docinfo th.docinfo-name {
278   font-weight: bold ;
279   text-align: left ;
280   white-space: nowrap ;
281   padding-left: 0 }
282
283   h1 tt.docutils, h2 tt.docutils, h3 tt.docutils,
284   h4 tt.docutils, h5 tt.docutils, h6 tt.docutils {
285   font-size: 100% }
286
287   ul.auto-toc {
288   list-style-type: none }
289
290   </style>
291 </head>
292
293 <body>
294   <div class="document" id="servizi-di-rete-passo-a-passo">
295     <h1 class="title">Servizi di rete passo a passo</h1>
296
297     <h2 class="subtitle" id=
298     "appunti-sulla-installazione-e-configurazione-dei-servizi">
299     Appunti sulla installazione e configurazione dei servizi</h2>
300
301     <blockquote>
302       <table class="docutils field-list" frame="void" rules="none">
303         <col class="field-name">
304         <col class="field-body">
305
306         <tbody valign="top">
307           <tr class="field">
308             <th class="field-name">Author:</th>
309
310             <td class="field-body">Andrea Manni</td>
311           </tr>
312
313           <tr class="field">
314             <th class="field-name">Copyright:</th>
315
316             <td class="field-body">GFDL</td>
317           </tr>
318
319           <tr class="field">
320             <th class="field-name">Version:</th>
321
322             <td class="field-body">0.4</td>
323           </tr>
324         </tbody>
325       </table>
326     </blockquote>
327
328     <p>Questa guida e' dedicata agli studenti delle lezioni di
329     informatica tenute da Andrea nel lab208. Nella parte iniziale
330     sono presenti alcuni richiami alle impostazioni di rete e di
331     installazione del laboratorio 208 (lab208) dove generalmente si
332     tengono le lezioni. Questi parametri non sono interessanti per
333     chiunque si trovasse al di fuori della rete piffa.net .</p>
334
335     <div class="contents topic" id="indice-degli-argomenti">
336       <p class="topic-title first">Indice degli argomenti</p>
337
338       <ul class="auto-toc simple">
339         <li>
340           <a class="reference internal" href=
341           "#configurazione-sistema" id="id5" name=
342           "id5">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="id6" name=
347             "id6">1.1&nbsp;&nbsp;&nbsp;Solo per uso
348             interno</a></li>
349
350             <li><a class="reference internal" href="#rete" id="id7"
351             name="id7">1.2&nbsp;&nbsp;&nbsp;Rete</a></li>
352
353             <li><a class="reference internal" href=
354             "#bash-completion" id="id8" name=
355             "id8">1.3&nbsp;&nbsp;&nbsp;Bash completion</a></li>
356
357             <li><a class="reference internal" href="#vim" id="id9"
358             name="id9">1.4&nbsp;&nbsp;&nbsp;Vim</a></li>
359
360             <li><a class="reference internal" href="#vnc" id="id10"
361             name="id10">1.5&nbsp;&nbsp;&nbsp;VNC</a></li>
362
363             <li><a class="reference internal" href=
364             "#lista-dei-pacchetti-di-base" id="id11" name=
365             "id11">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="id12" name=
371               "id12">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="id13" name=
376                 "id13">1.7.1&nbsp;&nbsp;&nbsp;sources.list</a></li>
377
378                 <li><a class="reference internal" href=
379                 "#etc-apt-apt-conf" id="id14" name=
380                 "id14">1.7.2&nbsp;&nbsp;&nbsp;/etc/apt/apt.conf</a></li>
381               </ul>
382             </li>
383           </ul>
384         </li>
385
386         <li><a class="reference internal" href="#squid" id="id15"
387         name="id15">2&nbsp;&nbsp;&nbsp;Squid</a></li>
388
389         <li>
390           <a class="reference internal" href="#apache" id="id16"
391           name="id16">3&nbsp;&nbsp;&nbsp;Apache</a>
392
393           <ul class="auto-toc">
394             <li><a class="reference internal" href=
395             "#pacchetti-da-installare" id="id17" name=
396             "id17">3.1&nbsp;&nbsp;&nbsp;Pacchetti da
397             installare::</a></li>
398
399             <li><a class="reference internal" href=
400             "#configurazione-di-apache" id="id18" name=
401             "id18">3.2&nbsp;&nbsp;&nbsp;Configurazione di
402             Apache</a></li>
403
404             <li><a class="reference internal" href="#apache-conf"
405             id="id19" name=
406             "id19">3.3&nbsp;&nbsp;&nbsp;apache.conf</a></li>
407
408             <li>
409               <a class="reference internal" href=
410               "#installazione-di-php" id="id20" name=
411               "id20">3.4&nbsp;&nbsp;&nbsp;Installazione di PHP</a>
412
413               <ul class="auto-toc">
414                 <li><a class="reference internal" href=
415                 "#test-del-modulo-php" id="id21" name=
416                 "id21">3.4.1&nbsp;&nbsp;&nbsp;Test del modulo
417                 php</a></li>
418
419                 <li><a class="reference internal" href=
420                 "#installazione-del-supporto-per-mysql" id="id22"
421                 name="id22">3.4.2&nbsp;&nbsp;&nbsp;Installazione
422                 del supporto per Mysql</a></li>
423
424                 <li><a class="reference internal" href=
425                 "#phpmyadmin" id="id23" name=
426                 "id23">3.4.3&nbsp;&nbsp;&nbsp;phpmyadmin</a></li>
427
428                 <li><a class="reference internal" href=
429                 "#installazione-del-supporto-per-postgresql" id=
430                 "id24" name=
431                 "id24">3.4.4&nbsp;&nbsp;&nbsp;Installazione del
432                 supporto per Postgresql</a></li>
433
434                 <li><a class="reference internal" href=
435                 "#phppgadmin" id="id25" name=
436                 "id25">3.4.5&nbsp;&nbsp;&nbsp;phppgadmin</a></li>
437               </ul>
438             </li>
439
440             <li>
441               <a class="reference internal" href="#virtual-hosts"
442               id="id26" name="id26">3.5&nbsp;&nbsp;&nbsp;Virtual
443               hosts</a>
444
445               <ul class="auto-toc">
446                 <li><a class="reference internal" href=
447                 "#gestione-dns" id="id27" name=
448                 "id27">3.5.1&nbsp;&nbsp;&nbsp;Gestione DNS</a></li>
449
450                 <li><a class="reference internal" href=
451                 "#virtual-host" id="id28" name=
452                 "id28">3.5.2&nbsp;&nbsp;&nbsp;Virtual host</a></li>
453               </ul>
454             </li>
455
456             <li>
457               <a class="reference internal" href=
458               "#negoziazione-accessi" id="id29" name=
459               "id29">3.6&nbsp;&nbsp;&nbsp;Negoziazione accessi</a>
460
461               <ul class="auto-toc">
462                 <li><a class="reference internal" href=
463                 "#limiti-su-base-ip" id="id30" name=
464                 "id30">3.6.1&nbsp;&nbsp;&nbsp;Limiti su base
465                 ip</a></li>
466
467                 <li><a class="reference internal" href=
468                 "#user-authentication" id="id31" name=
469                 "id31">3.6.2&nbsp;&nbsp;&nbsp;User
470                 Authentication</a></li>
471               </ul>
472             </li>
473
474             <li><a class="reference internal" href="#cavets" id=
475             "id32" name="id32">3.7&nbsp;&nbsp;&nbsp;Cavets</a></li>
476           </ul>
477         </li>
478
479         <li>
480           <a class="reference internal" href="#domain-name-system"
481           id="id33" name="id33">4&nbsp;&nbsp;&nbsp;Domain Name
482           System</a>
483
484           <ul class="auto-toc">
485             <li><a class="reference internal" href=
486             "#nomi-di-dominio" id="id34" name=
487             "id34">4.1&nbsp;&nbsp;&nbsp;Nomi di dominio</a></li>
488
489             <li><a class="reference internal" href=
490             "#tipologie-di-record" id="id35" name=
491             "id35">4.2&nbsp;&nbsp;&nbsp;Tipologie di
492             record</a></li>
493
494             <li><a class="reference internal" href="#utilizzo" id=
495             "id36" name=
496             "id36">4.3&nbsp;&nbsp;&nbsp;Utilizzo</a></li>
497
498             <li><a class="reference internal" href=
499             "#risoluzione-dei-nomi-di-dominio" id="id37" name=
500             "id37">4.4&nbsp;&nbsp;&nbsp;Risoluzione dei nomi di
501             dominio</a></li>
502
503             <li><a class="reference internal" href="#dig" id="id38"
504             name="id38">4.5&nbsp;&nbsp;&nbsp;Dig</a></li>
505           </ul>
506         </li>
507
508         <li><a class="reference internal" href="#dnsmasq" id="id39"
509         name="id39">5&nbsp;&nbsp;&nbsp;DNSmasq</a></li>
510
511         <li>
512           <a class="reference internal" href="#samba" id="id40"
513           name="id40">6&nbsp;&nbsp;&nbsp;Samba</a>
514
515           <ul class="auto-toc">
516             <li><a class="reference internal" href="#pacchetti" id=
517             "id41" name=
518             "id41">6.1&nbsp;&nbsp;&nbsp;Pacchetti</a></li>
519
520             <li><a class="reference internal" href=
521             "#passwords-e-autenticazione" id="id42" name=
522             "id42">6.2&nbsp;&nbsp;&nbsp;Passwords e
523             autenticazione</a></li>
524
525             <li><a class="reference internal" href=
526             "#creazione-utenti" id="id43" name=
527             "id43">6.3&nbsp;&nbsp;&nbsp;Creazione Utenti</a></li>
528
529             <li>
530               <a class="reference internal" href=
531               "#creare-la-condivisione" id="id44" name=
532               "id44">6.4&nbsp;&nbsp;&nbsp;Creare la
533               condivisione</a>
534
535               <ul class="auto-toc">
536                 <li><a class="reference internal" href=
537                 "#sicurezza-permessi-di-esecuzione-sul-server" id=
538                 "id45" name=
539                 "id45">6.4.1&nbsp;&nbsp;&nbsp;Sicurezza: permessi
540                 di esecuzione sul server</a></li>
541               </ul>
542             </li>
543
544             <li><a class="reference internal" href=
545             "#configurazione-dell-applicativo-samba-vero-e-proprio"
546             id="id46" name=
547             "id46">6.5&nbsp;&nbsp;&nbsp;Configurazione
548             dell'applicativo Samba vero e proprio.</a></li>
549
550             <li><a class="reference internal" href=
551             "#testare-il-servizio" id="id47" name=
552             "id47">6.6&nbsp;&nbsp;&nbsp;Testare il
553             Servizio</a></li>
554           </ul>
555         </li>
556
557         <li><a class="reference internal" href="#note" id="id48"
558         name="id48">7&nbsp;&nbsp;&nbsp;NOTE</a></li>
559       </ul>
560     </div>
561
562     <p>Generato con: <a class="reference external" href=
563     "http://docutils.sourceforge.net/rst.html">http://docutils.sourceforge.net/rst.html</a></p>
564
565     <div class="section" id="configurazione-sistema">
566       <h1><a class="toc-backref" href=
567       "#id5">1&nbsp;&nbsp;&nbsp;Configurazione sistema</a></h1>
568
569       <div class="section" id="solo-per-uso-interno">
570         <h2><a class="toc-backref" href=
571         "#id6">1.1&nbsp;&nbsp;&nbsp;Solo per uso interno</a></h2>
572
573         <p>Impostazioni di base per la configurazione del sistema
574         operativo e della rete nel laboratorio 208 facente parte
575         della rete piffa.net .</p>
576
577         <p>Qui riportati per comodita' degli studenti (e del
578         docente che non sara' <strong>mai piu'</strong> costretto a
579         ripeterli! )</p>
580       </div>
581
582       <div class="section" id="rete">
583         <h2><a class="toc-backref" href=
584         "#id7">1.2&nbsp;&nbsp;&nbsp;Rete</a></h2>
585
586         <p>Parametri della rete attualmente in uso:</p>
587
588         <table border="1" class="docutils">
589           <colgroup>
590             <col width="45%">
591             <col width="55%">
592           </colgroup>
593
594           <tbody valign="top">
595             <tr>
596               <td colspan="2">Parametri della rete</td>
597             </tr>
598
599             <tr>
600               <td>rete</td>
601
602               <td>10.10.208.0/24</td>
603             </tr>
604
605             <tr>
606               <td>netmask</td>
607
608               <td>255.255.255.0</td>
609             </tr>
610
611             <tr>
612               <td>broadcast</td>
613
614               <td>10.10.208.255</td>
615             </tr>
616
617             <tr>
618               <td>gateway</td>
619
620               <td>10.10.208.254</td>
621             </tr>
622
623             <tr>
624               <td>gateway</td>
625
626               <td>10.10.208.250 persistente</td>
627             </tr>
628
629             <tr>
630               <td>DNS</td>
631
632               <td>10.10.208.254</td>
633             </tr>
634
635             <tr>
636               <td>DNS</td>
637
638               <td>10.10.208.250 persistente</td>
639             </tr>
640           </tbody>
641         </table>
642
643         <p>Sul portatile di Andrea, corrispondente all'ip 254, gira
644         un DHCP, proxy http e mirror di Debian ( <a class=
645         "reference external" href=
646         "http://debian.piffa.net">http://debian.piffa.net</a>). Se
647         Andrea non e' in aula (o ancora peggio non c'e' il suo
648         portatile Net) gli studenti dovranno darsi un indirizzo ip
649         manualmente e disabilitare il proxy (che pero' e
650         trasparente, quindi fate pure come se non ci fosse ;) .</p>
651       </div>
652
653       <div class="section" id="bash-completion">
654         <h2><a class="toc-backref" href=
655         "#id8">1.3&nbsp;&nbsp;&nbsp;Bash completion</a></h2>
656
657         <p>Il completamento automatico della shell (che si attiva
658         premendo il tasto tab una o due volte mentre si sta
659         scrivendo un termine) permette di comporre automaticamente
660         i nomi dei comandi e i percorsi dei file, sopratutto la
661         composizione automatica dei percorsi dei file e' di grande
662         importanza.</p>
663
664         <p>Bash_completion permette di integrare il completamento
665         automatico con i nomi dei pacchetti e oggetti dei comandi:
666         ad es. volendo digitare <tt class=
667         "docutils literal"><span class="pre">apt-get</span>
668         <span class="pre">inst[TAB]</span> <span class=
669         "pre">xtigh[TAB]</span></tt> ora verra' completatato
670         automaticamente sia la parola <tt class=
671         "docutils literal"><span class="pre">install</span></tt>
672         che il nome del pacchetto <tt class=
673         "docutils literal"><span class=
674         "pre">xtightvncviewer</span></tt>.</p>
675
676         <p>Abilitare /etc/bash_completion nel file <tt class=
677         "docutils literal"><span class=
678         "pre">/etc/bash.bashrc</span></tt> oppure includerlo nel
679         proprio <tt class="docutils literal"><span class=
680         "pre">~/.bashrc</span></tt> (che sarebbe il file
681         <em>nascosto</em>, quindi con un punto all'inizio del nome
682         del file, di configurazione della shell bash per ogni
683         utente, presente nella propria <em>home
684         directory</em>):</p>
685         <pre class="literal-block">
686 echo ". /etc/bash_completion" &gt;&gt; ~/.bashrc
687 </pre>
688
689         <p>Esempio di ~/.bahsrc</p>
690         <pre class="literal-block">
691 # ~/.bashrc: executed by bash(1) for non-login shells.
692
693 export PS1='\h:\w\$ '
694 umask 022
695
696 # Decommentare le seguenti righr per abilitare la colorazione dei
697 # nomi dei file:
698  export LS_OPTIONS='--color=auto'
699  eval "`dircolors`"
700  alias ls='ls $LS_OPTIONS'
701  alias ll='ls $LS_OPTIONS -l'
702  alias l='ls $LS_OPTIONS -lA'
703
704 # Some more alias to avoid making mistakes:
705 # alias rm='rm -i'
706 # alias cp='cp -i'
707 # alias mv='mv -i'
708
709 # questo abilita bash completion
710 . /etc/bash_completion
711 </pre>
712
713         <p>Il file <tt class="docutils literal"><span class=
714         "pre">/etc/bash_completion</span></tt> deve essere presente
715         nel sistema, in caso contrario installare il pacchetto:
716         <tt class="docutils literal"><span class=
717         "pre">bash-completion</span></tt>. Generalmente l'utente
718         <tt class="docutils literal"><span class=
719         "pre">root</span></tt> ha un file <tt class=
720         "docutils literal"><span class="pre">.bashrc</span></tt>
721         preimpostato analogo a quello citato sopra, a differenza
722         dei normali utenti di sistema.</p>
723
724         <p>Links:</p>
725
726         <ul class="simple">
727           <li><a class="reference external" href=
728           "http://www.debian-administration.org/articles/316">An
729           introduction to bash completion</a></li>
730
731           <li><a class="reference external" href=
732           "http://www.caliban.org/bash/">Working more productively
733           with bash 2.x/3.x</a></li>
734         </ul>
735       </div>
736
737       <div class="section" id="vim">
738         <h2><a class="toc-backref" href=
739         "#id9">1.4&nbsp;&nbsp;&nbsp;Vim</a></h2>
740
741         <p>Vim e' l'editor di testo preferito dai sistemisti,
742         quindi sara' conveniente impostare fin da subito alcune
743         impostazioni per renderlo piu' comodo.</p>
744
745         <p>Assicurarsi che sia installata nel sistema la versione
746         completa dell'editor <tt class=
747         "docutils literal"><span class="pre">vim</span></tt>
748         nstallando il pacchetto vimi:</p>
749         <pre class="literal-block">
750        # apt-get install vim
751
752 e modificare il file di configurazione generale ``/etc/vim/vimrc`` ::
753
754    " All system-wide defaults are set in $VIMRUNTIME/debian.vim (usually just
755    " /usr/share/vim/vimcurrent/debian.vim) and sourced by the call to :runtime
756    " you can find below.  If you wish to change any of those settings, you should
757    " do it in this file (/etc/vim/vimrc), since debian.vim will be overwritten
758    " everytime an upgrade of the vim packages is performed.  It is recommended to
759    " make changes after sourcing debian.vim since it alters the value of the
760    " 'compatible' option.
761
762    " This line should not be removed as it ensures that various options are
763    " properly set to work with the Vim-related packages available in Debian.
764    runtime! debian.vim
765
766    " Uncomment the next line to make Vim more Vi-compatible
767    " NOTE: debian.vim sets 'nocompatible'.  Setting 'compatible' changes numerous
768    " options, so any other options should be set AFTER setting 'compatible'.
769    "set compatible
770
771    " Vim5 and later versions support syntax highlighting. Uncommenting the next
772    " line enables syntax highlighting by default.
773    syntax on
774
775    " If using a dark background within the editing area and syntax highlighting
776    " turn on this option as well
777    set background=dark
778
779    " Uncomment the following to have Vim jump to the last position when
780    " reopening a file
781
782    if has("autocmd")
783      au BufReadPost * if line("'\"") &gt; 0 &amp;&amp; line("'\"") &lt;= line("$")
784        \| exe "normal! g'\"" | endif
785    endif
786
787    " Uncomment the following to have Vim load indentation rules and plugins
788    " according to the detected filetype.
789    if has("autocmd")
790      filetype plugin indent on
791    endif
792
793    " The following are commented out as they cause vim to behave a lot
794    " differently from regular Vi. They are highly recommended though.
795    set showcmd             " Show (partial) command in status line.
796    "set showmatch          " Show matching brackets.
797    set ignorecase          " Do case insensitive matching
798    "set smartcase          " Do smart case matching
799    "set incsearch          " Incremental search
800    set autowrite           " Automatically save before commands like :next and :make
801    "set hidden             " Hide buffers when they are abandoned
802    "set mouse=a            " Enable mouse usage (all modes) in terminals
803
804    " Source a global configuration file if available
805    " XXX Deprecated, please move your changes here in /etc/vim/vimrc
806    if filereadable("/etc/vim/vimrc.local")
807      source /etc/vim/vimrc.local
808    endif
809 </pre>
810       </div>
811
812       <div class="section" id="vnc">
813         <h2><a class="toc-backref" href=
814         "#id10">1.5&nbsp;&nbsp;&nbsp;VNC</a></h2>
815
816         <p>I Virtual Network Computing (o VNC) sono software di
817         controllo remoto e servono per amministrare il proprio
818         computer a distanza o visuallizare la sessione di lavoro di
819         un altro computer sul proprio a scopo didattico.
820         Installando un server VNC sulla propria macchina ed
821         impostando una opportuna password si consente ai client VNC
822         di ricevere una immagine dello schermo ed eventualmente di
823         inviare input di tastiera e mouse al computer server
824         (durante le lezioni questo non e' possibile per gli
825         studenti, solo Andrea esegue i comandi). In pratica si può
826         gestire il computer server da un'altra postazione, come se
827         fosse il proprio computer fisico.</p>
828
829         <p>Scaricare il pacchetto <tt class=
830         "docutils literal"><span class=
831         "pre">xtightvncviewer</span></tt> e lo script <tt class=
832         "docutils literal"><span class="pre">guarda.sh</span></tt>
833         in una posizione (collocazione nel <em>path</em> degli
834         utenti, es <tt class="docutils literal"><span class=
835         "pre">echo</span> <span class="pre">$PATH</span></tt> per
836         visualizzare l'attuale path ) comoda per gli utenti ( in
837         genere <tt class="docutils literal"><span class=
838         "pre">/bin</span></tt> ), rndere eseguibile lo script.</p>
839
840         <p>Procedura:</p>
841         <pre class="literal-block">
842 su root
843 cd /bin
844 wget http://debian.piffa.net/guarda.sh
845 chmod +x guarda.sh
846 exit
847 </pre>
848
849         <p>Si noti che non e' possibile lanciare un applicativo sul
850         server grafico di un utente da una shell in cui si sta
851         lavorando come altro utente, anche se root. E' quindi
852         necessario essere l'utente di sistema che si e' loggato
853         inizialmente nella sessione grafica per poter lanciare lo
854         script guarda.sh da una shell.</p>
855
856         <p>Controllare con <tt class=
857         "docutils literal"><span class="pre">whoami</span></tt> di
858         essere l'utente normale (es <tt class=
859         "docutils literal"><span class="pre">utente</span>
860         <span class="pre">|</span> <span class=
861         "pre">studente</span> <span class="pre">|</span>
862         <span class="pre">proprio</span> <span class=
863         "pre">nome</span></tt> ), in caso si sia assunta una altra
864         <tt class="docutils literal"><span class=
865         "pre">id</span></tt> si apra un altra shell o si esca da
866         quella attuale con <tt class=
867         "docutils literal"><span class="pre">exit</span></tt> .</p>
868       </div>
869
870       <div class="section" id="lista-dei-pacchetti-di-base">
871         <h2><a class="toc-backref" href=
872         "#id11">1.6&nbsp;&nbsp;&nbsp;Lista dei pacchetti di
873         base</a></h2>
874
875         <p>I pacchetti installati generalmente <a class=
876         "footnote-reference" href="#id2" id="id1" name=
877         "id1">[1]</a> per poter seguire le lezioni sono:</p>
878         <pre class="literal-block">
879 kde-core kdm kde-i18n-it xorg vim less xtightvncviewer
880 </pre>
881
882         <table class="docutils footnote" frame="void" id="id2"
883         rules="none">
884           <colgroup>
885             <col class="label">
886             <col>
887           </colgroup>
888
889           <tbody valign="top">
890             <tr>
891               <td class="label"><a class="fn-backref" href=
892               "#id1">[1]</a></td>
893
894               <td><tt class="docutils literal"><span class=
895               "pre">kde-core</span></tt> e' piu' leggero del
896               pacchetto <tt class="docutils literal"><span class=
897               "pre">kde</span></tt>, esiste anche un equivalente
898               <tt class="docutils literal"><span class=
899               "pre">gnome-core</span> <span class=
900               "pre">gnome</span></tt> e il log-in manager
901               <tt class="docutils literal"><span class=
902               "pre">gdm</span></tt> per il l'ambiente grafico
903               Gnome.</td>
904             </tr>
905           </tbody>
906         </table>
907       </div>
908
909       <div class="section" id="apt-configurazione">
910         <h2><a class="toc-backref" href=
911         "#id12">1.7&nbsp;&nbsp;&nbsp;Apt configurazione</a></h2>
912
913         <p>Vediamo i due file principali di apt:</p>
914
915         <ul class="simple">
916           <li><tt class="docutils literal"><span class=
917           "pre">/etc/apt/sources.list</span></tt></li>
918
919           <li><tt class="docutils literal"><span class=
920           "pre">/etc/apt/apt.conf</span></tt></li>
921         </ul>
922
923         <div class="section" id="sources-list">
924           <h3><a class="toc-backref" href=
925           "#id13">1.7.1&nbsp;&nbsp;&nbsp;sources.list</a></h3>
926
927           <p>Questo file contiene i sorgenti da cui <em>apt</em>
928           preleva i pacchetti da installare tramite <em>dpkg</em>,
929           vengono quindi precisati i metodi (ad es. http / ftp /
930           cdrom / file), la release che si vuole tracciare (es
931           <tt class="docutils literal"><span class=
932           "pre">stable,</span> <span class="pre">testing,</span>
933           <span class="pre">unstable</span></tt> oppure i
934           corrispondenti release name es: <tt class=
935           "docutils literal"><span class="pre">Lenny,</span>
936           <span class="pre">Squeeze,</span> <span class=
937           "pre">Sid</span></tt>), i rami di interesse (es:
938           <tt class="docutils literal"><span class=
939           "pre">main</span></tt> che e' l'archivio principale,
940           <tt class="docutils literal"><span class=
941           "pre">non-free</span></tt> per il software non libero,
942           <tt class="docutils literal"><span class=
943           "pre">contrib</span></tt> per i pacchetti non realizzati
944           dai manutentori ufficiali).</p>
945
946           <p>Gli archivi sono generalmente:</p>
947
948           <ul class="simple">
949             <li><tt class="docutils literal"><span class=
950             "pre">deb</span></tt> per pacchetti Debian binari</li>
951
952             <li><tt class="docutils literal"><span class=
953             "pre">deb-src</span></tt> per i pacchetti sorgenti
954             (quindi da compilare, come il kernel) degli stessi
955             pacchetti binari. In genere se non compilate spesso
956             potete evitare di tracciare i sorgenti per risparmiare
957             tempo e banda.</li>
958           </ul>
959
960           <p><tt class="docutils literal"><span class=
961           "pre">/etc/apt/sources.list</span></tt></p>
962           <pre class="literal-block">
963 # esempio di accesso a un CDROM:
964 # cdrom:[Debian GNU/Linux 5.0.1 _Lenny_ - Official i386 kde-CD Binary-1 20090$
965
966 # Archivio principale debian via http su piffa.net,
967 # non funziona al difuori dell'aula dei corsi
968 deb http://debian.piffa.net/debian/ Lenny main
969 # deb http://debian.piffa.net/debian/ Lenny  non-free contrib
970
971 # Mirror da kernel.org da usare a casa:
972 deb http://mirrors.eu.kernel.org/debian/ Lenny main
973
974 # Security dal sito principale
975 deb http://security.debian.org/ Lenny/updates main
976 deb-src http://security.debian.org/ Lenny/updates main
977
978 # Debian volatile per le cose soggette a cambiamenti non legati
979 # a dinamiche di sicurezza
980 deb http://volatile.debian.org/debian-volatile Lenny/volatile main
981 deb-src http://volatile.debian.org/debian-volatile Lenny/volatile main
982
983 # Esempio di accesso a un filesystem locale contenente i pacchetti:
984 # deb file:/mnt/mirror Sid main non-free contrib
985 </pre>
986         </div>
987
988         <div class="section" id="etc-apt-apt-conf">
989           <h3><a class="toc-backref" href=
990           "#id14">1.7.2&nbsp;&nbsp;&nbsp;/etc/apt/apt.conf</a></h3>
991
992           <p>Questo file contiene le opzioni di apt, come ad
993           esempio il proxy:</p>
994           <pre class="literal-block">
995 Acquire::http::Proxy "http://10.10.208.254:3128"
996 </pre>
997
998           <p>Si tenga conto che se si imposta un proxy per apt sul
999           proprio portatile e tornati a casa propria si vuole
1000           scaricare nuovi pacchetti si dovra' disabilitare il
1001           proxy.</p>
1002         </div>
1003       </div>
1004     </div>
1005
1006     <div class="section" id="squid">
1007       <h1><a class="toc-backref" href=
1008       "#id15">2&nbsp;&nbsp;&nbsp;Squid</a></h1>
1009     </div>
1010
1011     <div class="section" id="apache">
1012       <h1><a class="toc-backref" href=
1013       "#id16">3&nbsp;&nbsp;&nbsp;Apache</a></h1>
1014
1015       <p>Apache HTTP Server, o più comunemente Apache, e' il nome
1016       dato alla piattaforma server Web modulare più diffusa (ma
1017       anche al gruppo di lavoro open source che ha creato,
1018       sviluppato e aggiornato il software server), in grado di
1019       operare da sistemi operativi UNIX-Linux e Microsoft.</p>
1020
1021       <p>Un server web e' un processo, e per estensione il computer
1022       su cui Ã¨ in esecuzione, che si occupa di fornire, su
1023       richiesta del browser, una pagina web (spesso scritta in
1024       HTML). Le informazioni inviate dal server web viaggiano in
1025       rete trasportate dal protocollo HTTP. L'insieme di server web
1026       dÃ&nbsp; vita al World Wide Web, uno dei servizi più
1027       utilizzati di Internet.</p>
1028
1029       <div class="section" id="pacchetti-da-installare">
1030         <h2><a class="toc-backref" href=
1031         "#id17">3.1&nbsp;&nbsp;&nbsp;Pacchetti da
1032         installare::</a></h2>
1033
1034         <blockquote>
1035           apache2 apache2-doc
1036         </blockquote>
1037
1038         <p>Con la release 2.0 di Apache viene automaticamente resa
1039         disponibile anche la versione SSL (Secure Socket Layer,
1040         cpnnessioni criptate ) del web server.</p>
1041       </div>
1042
1043       <div class="section" id="configurazione-di-apache">
1044         <h2><a class="toc-backref" href=
1045         "#id18">3.2&nbsp;&nbsp;&nbsp;Configurazione di
1046         Apache</a></h2>
1047
1048         <p>I file di configurazione di apache si trovano nella
1049         cartella: <tt class="docutils literal"><span class=
1050         "pre">/etc/apache2</span></tt> e sono strutturati come
1051         descritto nel file <tt class=
1052         "docutils literal"><span class="pre">/usr/share/doc/apache2/README.Debian.gz</span></tt>
1053         . Sostanzialmente lo schema e' il seguente:</p>
1054
1055         <dl class="docutils">
1056           <dt>apache2.conf</dt>
1057
1058           <dd>
1059             <p class="first">File di configurazione principale del
1060             servizio.</p>
1061
1062             <p class="last">httpd.conf e' il vecchio file di
1063             configurazione di Apache1, presente per motivi di
1064             retrocompatibilita' e' generalemente vuoto.</p>
1065           </dd>
1066
1067           <dt>ports.conf</dt>
1068
1069           <dd>In questo file vengono specificate le porte sulle
1070           quali resta in ascolto il server web. Si noti che
1071           utilizzando dei virtual hosts generalmente viene
1072           specificata per questi la porta su cui ascoltare nel file
1073           di configurazione del virtual host, ad es: <tt class=
1074           "docutils literal"><span class=
1075           "pre">&lt;VirtualHost</span> <span class=
1076           "pre">*:80&gt;</span></tt></dd>
1077
1078           <dt>sites-available</dt>
1079
1080           <dd>In questa cartella vengono raccolti i file di
1081           configurazione dei virtual host disponibili.</dd>
1082
1083           <dt>sites-enabled</dt>
1084
1085           <dd>In questa cartella sono contenuti dei link simbolici
1086           ai files in ../sites-available : se il link e' presente
1087           in questa cartella il virtual host e' abilitato.</dd>
1088
1089           <dt>mods-available</dt>
1090
1091           <dd>Stesso metodo per i moduli: in questa cartella ci
1092           sono i moduli veri e propri che verranno poi abilitati
1093           grazie all'esistenza di link simbolici nella cartella
1094           mods-enabled .</dd>
1095
1096           <dt>mods-enabled</dt>
1097
1098           <dd>Moduli abilitati, effettivamente caricati.</dd>
1099         </dl>
1100       </div>
1101
1102       <div class="section" id="apache-conf">
1103         <h2><a class="toc-backref" href=
1104         "#id19">3.3&nbsp;&nbsp;&nbsp;apache.conf</a></h2>
1105
1106         <p>File di configurazione del servizio Apache, contiene le
1107         impostazioni generiche (ad esempio utilizzo della RAM e
1108         risorse di sistema) dell'intero servizio. Nella
1109         configurazione di default per Debian non viene definito un
1110         vero e proprio sito di default ma solo dei virtual
1111         hosts.</p>
1112
1113         <p>Guardiamo alcune direttive interessanti:</p>
1114
1115         <dl class="docutils">
1116           <dt>Timeout</dt>
1117
1118           <dd>Numero di secondi da aspettare prima di chiudere la
1119           connessione con il client. Questo parametro serve a
1120           liberare le risorse di sistema nel caso che un client,
1121           magar a causa di una connessione particolarmente lenta o
1122           instabili, tenga attivo indefinitivamente un processo di
1123           apache.</dd>
1124
1125           <dt>KeepAlive</dt>
1126
1127           <dd>L'estensione keep-alive (http 1.0) congiuntamente
1128           alle connessioni persistenti (http 1.1) permettono al
1129           server di rispondere a piu' richieste dei client mediante
1130           la stessa connessione. Il protocoll http per sua natura
1131           e' senza stato (<em>statelessi</em> ), quindi ogni
1132           risorsa richiesta (per pagine web si pensi ad esempio
1133           alle immagini) dal client necessita di una connessione
1134           autonoma. Keep-alive permette di ottimizzare la
1135           connessione anche fino al 50% a seconda delle situazioni
1136           e contenuti.</dd>
1137
1138           <dt>Server-Pool Size Regulation</dt>
1139
1140           <dd>Questi parametri (StartServers, MinSpareServers, ecc.
1141           Tutti spiegati nel manuale di apache) servono per
1142           attribuire le risorse di sistema disponibili al server
1143           Apache. Tenere questi parametri bassi serve a limitare il
1144           rischio di Denial of Service per il server, nel caso
1145           offra altri servizi. I settagi di default sono come
1146           sempre abbastanza conservativi, se si conta di usare il
1147           proprio Apache per servire un sito web con molti
1148           visitatori sara' necessario aumentare sensibilmente le
1149           impostazioni di base.</dd>
1150
1151           <dt>AccessFileName</dt>
1152
1153           <dd>Il nome del file che viene onorato per modificare le
1154           impostazioni per una singola directory, legato alla
1155           direttiva AllowOverride .</dd>
1156         </dl>
1157       </div>
1158
1159       <div class="section" id="installazione-di-php">
1160         <h2><a class="toc-backref" href=
1161         "#id20">3.4&nbsp;&nbsp;&nbsp;Installazione di PHP</a></h2>
1162
1163         <p>Pacchetti da installare: <tt class=
1164         "docutils literal"><span class="pre">php5</span>
1165         <span class="pre">php-pear</span></tt></p>
1166
1167         <div class="section" id="test-del-modulo-php">
1168           <h3><a class="toc-backref" href=
1169           "#id21">3.4.1&nbsp;&nbsp;&nbsp;Test del modulo
1170           php</a></h3>
1171
1172           <p>Creare nella cartella <tt class=
1173           "docutils literal"><span class="pre">/var/www</span></tt>
1174           (o altra cartella visibile) un file con estensione *.php
1175           (es <tt class="docutils literal"><span class=
1176           "pre">/var/ww/info.php</span></tt> contenete codice php
1177           eseguibile dall'interprete, ad es:</p>
1178           <pre class="literal-block">
1179 &lt;?php phpinfo() ; ?&gt;
1180 </pre>
1181
1182           <p>Questa funzione di php generera' la tipica pagina con
1183           le impostazioni attuali per PHP. Richiamando la pagina
1184           (es: <tt class="docutils literal"><span class=
1185           "pre">http://localhost/info.php</span></tt> ) verra
1186           generata dall'interprete PHP la pagina HTML e resa
1187           disponibile tramite Apache ai utclient HTTP, a prova del
1188           correto funzionamento del modulo di PHP e della sua
1189           integrazione con il serv web Apache. In caso contrario se
1190           il client http proporra di scaricare la pagina invece che
1191           visualizzarla nel browser: non funziona l'interprete di
1192           php o sono mal configurati i MIME-type. prima di tutto
1193           assicurarsi di aver fatoo ripartire Apache.</p>
1194         </div>
1195
1196         <div class="section" id=
1197         "installazione-del-supporto-per-mysql">
1198           <h3><a class="toc-backref" href=
1199           "#id22">3.4.2&nbsp;&nbsp;&nbsp;Installazione del supporto
1200           per Mysql</a></h3>
1201
1202           <p>Installare i pacchetti:</p>
1203           <pre class="literal-block">
1204 php5-mysql phpmyadmin
1205 </pre>
1206
1207           <p>Controllare tramite la pagina php.info che sia
1208           abilitato il supporto per Mysql (ripartito Apache,
1209           ricaricare la pagina e cercare con CTRL+f <tt class=
1210           "docutils literal"><span class=
1211           "pre">mysql</span></tt>).</p>
1212         </div>
1213
1214         <div class="section" id="phpmyadmin">
1215           <h3><a class="toc-backref" href=
1216           "#id23">3.4.3&nbsp;&nbsp;&nbsp;phpmyadmin</a></h3>
1217
1218           <p>L'interfaccia web Phpmyadmin non richede
1219           necessariamente la presenza di un database Mysql locale,
1220           puo' infatti essere utilizzata per gestire databases
1221           remoti (il suo file di configurazione: <tt class=
1222           "docutils literal"><span class=
1223           "pre">/etc/phpmyadmin/config.inc.php</span></tt> ). Nel
1224           caso si voglia installare localmente Mysql si utilizzi il
1225           pacchetto <tt class="docutils literal"><span class=
1226           "pre">mysql-server</span></tt> .</p>
1227
1228           <p>Phpmyadmin dovrebbe essere disponibile all'URL:
1229           <tt class="docutils literal"><span class=
1230           "pre">http://localhost/phpmyadmin/</span></tt>, se cosi
1231           non fosse controllare che sia incluso il file <tt class=
1232           "docutils literal"><span class=
1233           "pre">/etc/phpmyadmin/apache.conf</span></tt> in
1234           <tt class="docutils literal"><span class=
1235           "pre">/etc/apache2/conf.d/</span></tt> .</p>
1236         </div>
1237
1238         <div class="section" id=
1239         "installazione-del-supporto-per-postgresql">
1240           <h3><a class="toc-backref" href=
1241           "#id24">3.4.4&nbsp;&nbsp;&nbsp;Installazione del supporto
1242           per Postgresql</a></h3>
1243
1244           <p>Installare i pacchetti:</p>
1245           <pre class="literal-block">
1246 php5-pgsql phppgadmin
1247 </pre>
1248
1249           <p>Controllare tramite la pagina php.info che sia
1250           abilitato il supporto per PostgreSQL (ripartito Apache,
1251           ricaricare la pagina e cercare con CTRL+f <tt class=
1252           "docutils literal"><span class=
1253           "pre">pgsql</span></tt>).</p>
1254         </div>
1255
1256         <div class="section" id="phppgadmin">
1257           <h3><a class="toc-backref" href=
1258           "#id25">3.4.5&nbsp;&nbsp;&nbsp;phppgadmin</a></h3>
1259
1260           <p>L'interfaccia web Phppgadmin per il database server
1261           PostgreSQL non richede necessariamente la presenza di un
1262           database locale, puo' infatti essere utilizzata per
1263           gestire databases remoti (il suo file di configurazione:
1264           <tt class="docutils literal"><span class=
1265           "pre">/etc/phppgadmin/config.inc.php</span></tt> ). Nel
1266           caso si voglia installare localmente Mysql si utilizzi il
1267           pacchetto <tt class="docutils literal"><span class=
1268           "pre">postgresql</span></tt> .</p>
1269
1270           <p>Phpmyadmin dovrebbe essere disponibile all'URL:
1271           <tt class="docutils literal"><span class=
1272           "pre">http://localhost/phppgadmin/</span></tt>, se cosi
1273           non fosse controllare che sia incluso il file <tt class=
1274           "docutils literal"><span class=
1275           "pre">/etc/phppgadmin/apache.conf</span></tt> in
1276           <tt class="docutils literal"><span class=
1277           "pre">/etc/apache2/conf.d/</span></tt> .</p>
1278         </div>
1279       </div>
1280
1281       <div class="section" id="virtual-hosts">
1282         <h2><a class="toc-backref" href=
1283         "#id26">3.5&nbsp;&nbsp;&nbsp;Virtual hosts</a></h2>
1284
1285         <blockquote>
1286           <ul class="simple">
1287             <li><a class="reference external" href=
1288             "http://www.apacheweek.com/features/vhost">http://www.apacheweek.com/features/vhost</a></li>
1289
1290             <li><a class="reference external" href=
1291             "http://www.onlamp.com/pub/a/apache/2004/01/08/apacheckbk.html">
1292             http://www.onlamp.com/pub/a/apache/2004/01/08/apacheckbk.html</a></li>
1293           </ul>
1294         </blockquote>
1295
1296         <p>I virtual host permettono di avere piu' siti internet
1297         disponibili tramite lo stesso server web, eventualmente
1298         mappati su un solo indirizzo ip. Sono generalemente di due
1299         tipi:</p>
1300
1301         <blockquote>
1302           <ul class="simple">
1303             <li>Basati su <em>indirizzi ip</em>. Se si ha la
1304             possibilita' di avere piu' indirizzi ip dedicati per i
1305             diversi siti che si vuole servire. ES: <tt class=
1306             "docutils literal"><span class=
1307             "pre">&lt;VirtualHost</span> <span class=
1308             "pre">192.168.0.2:80&gt;</span></tt> . Soluzione
1309             dispendiosa, si tende ad usarla solo se servono
1310             certificati di sicurezza (SSL ) dedicati per ogni
1311             sito.</li>
1312
1313             <li>Basati su <em>nomi di dominio</em> che puntano allo
1314             stesso ip. Soluzione piu' economica e diffusa che si
1315             basa sulle funzionalita' di http 1.1 .</li>
1316           </ul>
1317         </blockquote>
1318
1319         <p>Prenderemo in esame la gestione di virtual hosts basati
1320         su nomi di dominio.</p>
1321
1322         <div class="section" id="gestione-dns">
1323           <h3><a class="toc-backref" href=
1324           "#id27">3.5.1&nbsp;&nbsp;&nbsp;Gestione DNS</a></h3>
1325
1326           <p>Prima di tutto per poter impostare i virtual hosts
1327           dovete avere un server DNS che risolva i vostri nomi di
1328           dominio sull'indirizzo ip del server. Questo si puo'
1329           ottenere in vari modi, ad es:</p>
1330
1331           <blockquote>
1332             <dl class="docutils">
1333               <dt><em>Bind</em> (DNS server)</dt>
1334
1335               <dd>Impostare i campi A nelle proprie zone gestite
1336               dal server dns Bind. Ad es: <tt class=
1337               "docutils literal"><span class=
1338               "pre">papo</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1339               <span class=
1340               "pre">A</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1341               <span class="pre">212.22.136.248</span></tt></dd>
1342
1343               <dt><em>Servizio DNS dinamico on line</em>.</dt>
1344
1345               <dd>Utilizzare un servizio come ad es: <a class=
1346               "reference external" href=
1347               "https://www.dyndns.com/">https://www.dyndns.com/</a>
1348               per mappare nomi di dominio sul proprio indirizzo ip,
1349               comodo ad esempio se si dispone di un indirzzo ip
1350               pubblico (anche se dinamico) per la propria
1351               connessione ad internet.</dd>
1352
1353               <dt><em>Dnsmasq</em> (DNS server)</dt>
1354
1355               <dd>Utilizzabile a livello locale per fare dei test,
1356               utilizzando direttive come: <tt class=
1357               "docutils literal"><span class=
1358               "pre">address=/davide.piffa.net/10.10.208.178</span></tt></dd>
1359
1360               <dt><tt class="docutils literal"><span class=
1361               "pre">/etc/hosts</span></tt></dt>
1362
1363               <dd>Per prove <em>strettamente a livello locale</em>
1364               potete impostare i nomi dei vostri virtual server nel
1365               file /etc/hosts .</dd>
1366             </dl>
1367           </blockquote>
1368           <pre class="literal-block">
1369 # dig 177.piffa.net
1370
1371 ; &lt;&lt;&gt;&gt; DiG 9.5.1-P1 &lt;&lt;&gt;&gt; 177.piffa.net
1372 ;; global options:  printcmd
1373 ;; Got answer:
1374 ;; -&gt;&gt;HEADER&lt;&lt;- opcode: QUERY, status: NOERROR, id: 38036
1375 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
1376
1377 ;; QUESTION SECTION:
1378 ;177.piffa.net.                 IN      A
1379
1380 ;; ANSWER SECTION:
1381 177.piffa.net.          0       IN      A       10.10.208.177
1382
1383 ;; Query time: 12 msec
1384 ;; SERVER: 10.10.208.254#53(10.10.208.254)
1385 ;; WHEN: Wed May  6 12:27:08 2009
1386 ;; MSG SIZE  rcvd: 47
1387 </pre>
1388
1389           <p>La parte interessante e' <tt class=
1390           "docutils literal"><span class=
1391           "pre">177.piffa.net.</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1392           <span class=
1393           "pre">0</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1394           <span class="pre">IN</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1395           <span class=
1396           "pre">A</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1397           <span class="pre">10.10.208.177</span></tt> . Il nome di
1398           dominio 177.piffa.net viene risolto sull'ip 10.10.208.177
1399           , nel nostro Apache (che risponde all'ip 10.10.208.177 )
1400           dovra' essere disponibile un virtual host che corrisponde
1401           al nome <tt class="docutils literal"><span class=
1402           "pre">177.piffa.net</span></tt> .</p>
1403         </div>
1404
1405         <div class="section" id="virtual-host">
1406           <h3><a class="toc-backref" href=
1407           "#id28">3.5.2&nbsp;&nbsp;&nbsp;Virtual host</a></h3>
1408
1409           <p>Esempio di Virtual host:</p>
1410           <pre class="literal-block">
1411 &lt;VirtualHost *:80 &gt;
1412     ServerName 177.piffa.net
1413     DocumentRoot /var/www/177.piffa.net/
1414     ServerAdmin webmaster@177.piffa.net
1415 &lt;/VirtualHost&gt;
1416 </pre>
1417
1418           <ol class="arabic simple">
1419             <li><tt class="docutils literal"><span class=
1420             "pre">&lt;VirtualHost</span> <span class=
1421             "pre">\*:80</span> <span class="pre">&gt;</span></tt>
1422             La prima riga indica l'inizio della stanza relativa al
1423             nostro virtual host, che ascolotera' su qualunque
1424             indirizzo ip (nel caso il server abbia piu' indirizzi
1425             dai quali e' raggiungibile) sulla porta <tt class=
1426             "docutils literal"><span class=
1427             "pre">80</span></tt>.</li>
1428
1429             <li><tt class="docutils literal"><span class=
1430             "pre">Server/name</span></tt> precisa quale sara' il
1431             nome di dominio a cui verra' associato questo sito
1432             rispetto ad altri eventualmenti presenti sullo stesso
1433             server web.</li>
1434
1435             <li><tt class="docutils literal"><span class=
1436             "pre">DocumentRoot</span></tt> : il path della
1437             directory che contiene le pagine del sito.</li>
1438
1439             <li><tt class="docutils literal"><span class=
1440             "pre">ServerAdmin</span></tt>: l'indirizzo del
1441             webmaster, in modo da poterlo contattare in caso di
1442             problemi col sito.</li>
1443
1444             <li><tt class="docutils literal"><span class=
1445             "pre">&lt;/VirtualHost&gt;</span></tt>: <em>tag</em> di
1446             chiusura della stanza di definizione del virtual
1447             host.</li>
1448           </ol>
1449
1450           <p>Quelle che abbiamo appena visto sono le direttive
1451           essenziali per definire un sito virtuale, potrebbe essere
1452           utile aggiungene altre:</p>
1453
1454           <ul>
1455             <li>
1456               <dl class="first docutils">
1457                 <dt><tt class="docutils literal"><span class=
1458                 "pre">ErrorLog</span> <span class=
1459                 "pre">/var/log/apache2/177.piffa.net/error.log</span></tt></dt>
1460
1461                 <dd>
1462                   <p class="first last">Log degli errori separato
1463                   dai restanti siti web ospitati dal server.</p>
1464                 </dd>
1465               </dl>
1466             </li>
1467
1468             <li>
1469               <dl class="first docutils">
1470                 <dt><tt class="docutils literal"><span class=
1471                 "pre">LogLevel</span> <span class=
1472                 "pre">warn</span></tt></dt>
1473
1474                 <dd>
1475                   <p class="first last">Livello di importanza degli
1476                   eventi loggati= warning <em>attenzione</em> .</p>
1477                 </dd>
1478               </dl>
1479             </li>
1480
1481             <li>
1482               <dl class="first docutils">
1483                 <dt><tt class="docutils literal"><span class=
1484                 "pre">CustomLog</span> <span class=
1485                 "pre">/var/log/apache2/177.piffa.net/access.log</span>
1486                 <span class="pre">combined</span></tt></dt>
1487
1488                 <dd>
1489                   <p class="first last">Log di accesso separati
1490                   dagli altri siti, utile anche qua per statistiche
1491                   di accesso per il solo sito virtuale.</p>
1492                 </dd>
1493               </dl>
1494             </li>
1495           </ul>
1496
1497           <p>Potrebbe essere utile modificare le impostazioni di
1498           una intera directory, ad esempio per abilitare
1499           l'<tt class="docutils literal"><span class=
1500           "pre">AuthConfig</span></tt>:</p>
1501           <pre class="literal-block">
1502 &lt;Directory "/var/www/miosito.net/privata"&gt;
1503         AllowOverride AuthConfig
1504         Options ExecCGI Indexes MultiViews FollowSymLinks
1505         Order allow,deny
1506         Allow from all
1507 &lt;/Directory&gt;
1508 </pre>
1509
1510           <p><tt class="docutils literal"><span class=
1511           "pre">AllowOverride</span> <span class=
1512           "pre">AuthConfig</span></tt> ora vale per l'intera
1513           directory, come le altre opzioni.</p>
1514         </div>
1515       </div>
1516
1517       <div class="section" id="negoziazione-accessi">
1518         <h2><a class="toc-backref" href=
1519         "#id29">3.6&nbsp;&nbsp;&nbsp;Negoziazione accessi</a></h2>
1520
1521         <p>Tipicamente quando si installa un server web il proprio
1522         desiderio e' di dare accesso ai materiali disponibili al
1523         maggior numero di visitatori possibile. Talvolta pero' puo
1524         essere utile o necessario limitare gli accessi, ad esempio
1525         per escludere un <em>bot</em> indesiderato che scansiona
1526         ininterottamente le nostre pagine o per creare una <em>Area
1527         Riservata</em> i cui materiali non devono essere
1528         disponibile a tutti.</p>
1529
1530         <div class="section" id="limiti-su-base-ip">
1531           <h3><a class="toc-backref" href=
1532           "#id30">3.6.1&nbsp;&nbsp;&nbsp;Limiti su base ip</a></h3>
1533
1534           <p>La forma piu' semplice di restrizine degli accessi e'
1535           su base degli indirizzi IP dei client: tipicamente i siti
1536           web sono settati per dare accesso a chiunque:</p>
1537           <pre class="literal-block">
1538 &lt;VirtualHost *:80 &gt;
1539        # ...
1540        Order allow,deny
1541        Allow from all
1542 &lt;/VirtualHost&gt;
1543 </pre>
1544
1545           <p>Potremmo negare l'accesso a uno o piu' indirizzi IP in
1546           questo modo:</p>
1547           <pre class="literal-block">
1548 &lt;VirtualHost *:80 &gt;
1549        Order allow,deny
1550        Allow from all
1551        Deny from 192.168.0.1
1552 &lt;/VirtualHost&gt;
1553 </pre>
1554
1555           <p>Ora l'IP 192.168.0.1 non potra' piu' accedere ai
1556           materiali dell'intero sito virtuale, oppure potremmo
1557           lavorare su una sola directory:</p>
1558           <pre class="literal-block">
1559 &lt;Directory "/var/www/miosito.net/limitata"&gt;
1560        Order allow,deny
1561        Allow from 192.168.0.0./24
1562        Deny from all
1563 &lt;/Directory&gt;
1564 </pre>
1565
1566           <p>In questo modo solo la classe IP <tt class=
1567           "docutils literal"><span class=
1568           "pre">192.168.0.0/24</span></tt> potra' accedere alla
1569           directory <tt class="docutils literal"><span class=
1570           "pre">/limitata</span></tt> Si tenga pero' conto che e'
1571           relativamente facile per un malintenzionato cambiare il
1572           propio indirizzo ip, oppure collegarsi da un altra zona.
1573           Meno facile e' accedere ad una classe privata trovandosi
1574           all'esterno di questa, ma e' comunque possibile mandare
1575           delle richieste <tt class="docutils literal"><span class=
1576           "pre">GET</span></tt> per cercare di mandare in Denial Of
1577           Service il webserver.</p>
1578         </div>
1579
1580         <div class="section" id="user-authentication">
1581           <h3><a class="toc-backref" href=
1582           "#id31">3.6.2&nbsp;&nbsp;&nbsp;User
1583           Authentication</a></h3>
1584
1585           <p>A volte conviene negoziare gli accessi ad un area di
1586           un sito tramite autenticazione basata sull'accopiata
1587           <em>nome utente / password</em>. Questo puo' venire utile
1588           per creare una area download <em>intranet</em>, alla
1589           quale possano accedere solo gli utenti previsti a
1590           prescindere dagli indirizzi IP dei loro client. Per
1591           quanto esistano soluzioni piu' granulari e sofisticate
1592           per ottenere questo, <em>mod-auth</em> puo'essere
1593           sufficente. E mod auth non richiede l'installazione di
1594           software aggiuntivi.</p>
1595
1596           <p>link: <a class="reference external" href=
1597           "http://www.apacheweek.com/features/userauth">http://www.apacheweek.com/features/userauth</a></p>
1598         </div>
1599       </div>
1600
1601       <div class="section" id="cavets">
1602         <h2><a class="toc-backref" href=
1603         "#id32">3.7&nbsp;&nbsp;&nbsp;Cavets</a></h2>
1604
1605         <p>Problemi di cache:</p>
1606
1607         <blockquote>
1608           <ul class="simple">
1609             <li>Proxy: nei settaggi del browser specificare di non
1610             utilizzare un server proxy http per il sito web locale
1611             (o per gli altri che si stanno monitorando). Se si ha
1612             il controllo del proxy server: stopparlo, ricaricare la
1613             pagina (operazione che fallira'), far ripartire il
1614             proxy, ricaricare la pagina.</li>
1615
1616             <li>Provare con un altro browser, o cercare di svuotare
1617             la cache chiudere/riaprire l'applicativo. Provare a
1618             fermare Apache, ricaricare la pagina (operazione che
1619             fallira'), far ripartire Apache, ricaricare la
1620             pagina.</li>
1621           </ul>
1622         </blockquote>
1623       </div>
1624     </div>
1625
1626     <div class="section" id="domain-name-system">
1627       <h1><a class="toc-backref" href=
1628       "#id33">4&nbsp;&nbsp;&nbsp;Domain Name System</a></h1>
1629
1630       <p>Domain Name System (spesso indicato con DNS) Ã¨ un
1631       servizio utilizzato per la risoluzione di nomi di host in
1632       indirizzi IP e viceversa. Il servizio Ã¨ realizzato tramite
1633       un database distribuito, costituito dai server DNS.</p>
1634
1635       <p>Il nome DNS denota anche il protocollo che regola il
1636       funzionamento del servizio, i programmi che lo implementano,
1637       i server su cui questi girano, l'insieme di questi server che
1638       cooperano per fornire il servizio.</p>
1639
1640       <p>I nomi DNS, o "nomi di dominio", sono una delle
1641       caratteristiche più visibili di Internet.</p>
1642
1643       <p>C'è confusione in merito alla definizione dell'acronimo:
1644       la S spesso viene interpretata come service, ma la
1645       definizione corretta Ã¨ system.</p>
1646
1647       <p>L'operazione di convertire un nome in un indirizzo Ã¨
1648       detta risoluzione DNS, convertire un indirizzo IP in nome Ã¨
1649       detto risoluzione inversa.</p>
1650
1651       <div class="section" id="nomi-di-dominio">
1652         <h2><a class="toc-backref" href=
1653         "#id34">4.1&nbsp;&nbsp;&nbsp;Nomi di dominio</a></h2>
1654
1655         <p>Un nome a dominio Ã¨ costituito da una serie di stringhe
1656         separate da punti, ad esempio it.wikipedia.org. A
1657         differenza degli indirizzi IP, dove la parte più
1658         importante del numero Ã¨ la prima partendo da sinistra, in
1659         un nome DNS la parte più importante Ã¨ la prima partendo
1660         da destra. Questa Ã¨ detta dominio di primo livello (o TLD,
1661         Top Level Domain), per esempio .org o .it.</p>
1662
1663         <p>Un dominio di secondo livello consiste in due parti, per
1664         esempio wikipedia.org, e così via. Ogni ulteriore elemento
1665         specifica un'ulteriore suddivisione. Quando un dominio di
1666         secondo livello viene registrato all'assegnatario, questo
1667         Ã¨ autorizzato a usare i nomi di dominio relativi ai
1668         successivi livelli come it.wikipedia.org (dominio di terzo
1669         livello) e altri come some.other.stuff.wikipedia.org
1670         (dominio di quinto livello) e così via.</p>
1671       </div>
1672
1673       <div class="section" id="tipologie-di-record">
1674         <h2><a class="toc-backref" href=
1675         "#id35">4.2&nbsp;&nbsp;&nbsp;Tipologie di record</a></h2>
1676
1677         <p>Ad un nome DNS possono corrispondere diversi tipi di
1678         informazioni. Per questo motivo, esistono diversi tipi di
1679         record DNS. Ogni voce del database DNS deve essere
1680         caratterizzata da un tipo. I principali tipi sono:</p>
1681
1682         <ul class="simple">
1683           <li>Record A - Indica la corrispondenza tra un nome ed
1684           uno (o più) indirizzi IP (per la precisione indirizzi
1685           IPv4, ovvero la versione attualmente in uso).</li>
1686
1687           <li>Record MX - (Mail eXchange) indica a quali server
1688           debba essere inviata la posta elettronica per un certo
1689           dominio.</li>
1690
1691           <li>Record CNAME - Sono usati per creare un alias, ovvero
1692           per fare in modo che lo stesso calcolatore sia noto con
1693           più nomi. Uno degli utilizzi di questo tipo di record
1694           consiste nell'attribuire ad un host che offre più
1695           servizi un nome per ciascun servizio. In questo modo, i
1696           servizi possono poi essere spostati su altri host senza
1697           dover riconfigurare i client, ma modificando solo il
1698           DNS.</li>
1699
1700           <li>Record PTR - Il DNS viene utilizzato anche per
1701           realizzare la risoluzione inversa, ovvero per far
1702           corrispondere ad un indirizzo IP il corrispondente nome a
1703           dominio. Per questo si usano i record di tipo "PTR" (e
1704           una apposita zona dello spazio dei nomi
1705           in-addr.arpa).</li>
1706
1707           <li>Record AAAA - Restituisce un indirizzo IPv6.</li>
1708
1709           <li>Record SRV - Identificano il server per un
1710           determinato servizio all'interno di un dominio. Possono
1711           essere considerati una generalizzazione dei record
1712           MX.</li>
1713
1714           <li>Record TXT - Associano campi di testo arbitrari ad un
1715           dominio. Questi campi possono contenere una descrizione
1716           informativa oppure essere utilizzati per realizzare
1717           servizi.</li>
1718         </ul>
1719
1720         <p>Vi sono anche tipi di record "di servizio", necessari al
1721         funzionamento del database distribuito: * Record NS -
1722         Utilizzato per indicare quali siano i server DNS
1723         autoritativi per un certo dominio, ovvero per delegarne la
1724         gestione. * Record SOA - (Start of Authority) usato per la
1725         gestione delle zone DNS.</p>
1726       </div>
1727
1728       <div class="section" id="utilizzo">
1729         <h2><a class="toc-backref" href=
1730         "#id36">4.3&nbsp;&nbsp;&nbsp;Utilizzo</a></h2>
1731
1732         <p>I computer vengono identificati in rete grazie agli
1733         indirizzi <em>IP</em>, questi pero' non sono comodi per gli
1734         utenti come riferimento per i vari server. Ad esempio
1735         sarebbe scomodoriferirsi al motore di ricerca Goggle con
1736         uno dei suoi IP: <tt class="docutils literal"><span class=
1737         "pre">74.125.43.104</span></tt>, e' preferibile usare il
1738         nome di dominio <em>www.google.com</em>:</p>
1739         <pre class="literal-block">
1740 ping -c 1 www.google.com
1741 PING www.l.google.com (74.125.43.104) 56(84) bytes of data.
1742 </pre>
1743       </div>
1744
1745       <div class="section" id="risoluzione-dei-nomi-di-dominio">
1746         <h2><a class="toc-backref" href=
1747         "#id37">4.4&nbsp;&nbsp;&nbsp;Risoluzione dei nomi di
1748         dominio</a></h2>
1749
1750         <p>Ci sono vari strumenti per interrogare i server DNS e
1751         ottenere l'indirizzo IP associato al nome di dominio che ci
1752         interessa:</p>
1753         <pre class="literal-block">
1754 $ host www.piffa.net
1755 www.piffa.net is an alias for piffa.net.
1756 piffa.net has address 65.98.21.97
1757 piffa.net mail is handled by 10 65.98.21.97
1758
1759
1760 $ nslookup www.piffa.net
1761 Server:         192.168.0.10
1762 Address:        192.168.0.10#53
1763
1764 Non-authoritative answer:
1765 www.piffa.net   canonical name = piffa.net.
1766 Name:   piffa.net
1767 Address: 65.98.21.97
1768
1769
1770 $ dig www.piffa.net
1771
1772 ; &lt;&lt;&gt;&gt; DiG 9.6.0-P1 &lt;&lt;&gt;&gt; www.piffa.net
1773 ;; global options: +cmd
1774 ;; Got answer:
1775 ;; -&gt;&gt;HEADER&lt;&lt;- opcode: QUERY, status: NOERROR, id: 47751
1776 ;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 4, ADDITIONAL: 4
1777
1778 ;; QUESTION SECTION:
1779 ;www.piffa.net.                 IN      A
1780
1781 ;; ANSWER SECTION:
1782 www.piffa.net.          3489    IN      CNAME   piffa.net.
1783 piffa.net.              3489    IN      A       65.98.21.97
1784
1785 ;; AUTHORITY SECTION:
1786 piffa.net.              86289   IN      NS      ns2.mydomain.com.
1787 piffa.net.              86289   IN      NS      ns1.mydomain.com.
1788 piffa.net.              86289   IN      NS      ns4.mydomain.com.
1789 piffa.net.              86289   IN      NS      ns3.mydomain.com.
1790
1791 ;; ADDITIONAL SECTION:
1792 ns1.mydomain.com.       96208   IN      A       64.94.117.193
1793 ns2.mydomain.com.       96208   IN      A       64.94.31.67
1794 ns3.mydomain.com.       96208   IN      A       66.150.161.137
1795 ns4.mydomain.com.       96208   IN      A       63.251.83.74
1796
1797 ;; Query time: 1 msec
1798 ;; SERVER: 192.168.0.10#53(192.168.0.10)
1799 ;; WHEN: Sun May 10 21:23:11 2009
1800 ;; MSG SIZE  rcvd: 209
1801 </pre>
1802
1803         <p>Lo strumento piu' esaustivo e' <tt class=
1804         "docutils literal"><span class="pre">dig</span></tt>,
1805         installabile con il pacchetto <tt class=
1806         "docutils literal"><span class="pre">dnsutils</span></tt>
1807         .</p>
1808       </div>
1809
1810       <div class="section" id="dig">
1811         <h2><a class="toc-backref" href=
1812         "#id38">4.5&nbsp;&nbsp;&nbsp;Dig</a></h2>
1813
1814         <p>Vediamo alcune opzioni utili nell'utilizzo di <tt class=
1815         "docutils literal"><span class="pre">dig</span></tt> per
1816         l'inerrogazione dei DNS Server:</p>
1817         <pre class="literal-block">
1818 $ dig www.google.it
1819
1820 ; &lt;&lt;&gt;&gt; DiG 9.6.0-P1 &lt;&lt;&gt;&gt; www.google.it
1821 ;; global options: +cmd
1822 ;; Got answer:
1823 ;; -&gt;&gt;HEADER&lt;&lt;- opcode: QUERY, status: NOERROR, id: 18816
1824 ;; flags: qr rd ra; QUERY: 1, ANSWER: 6, AUTHORITY: 7, ADDITIONAL: 0
1825
1826 ;; QUESTION SECTION:
1827 ;www.google.it.                 IN      A
1828
1829 ;; ANSWER SECTION:
1830 www.google.it.          250683  IN      CNAME   www.google.com.
1831 www.google.com.         334819  IN      CNAME   www.l.google.com.
1832 www.l.google.com.       186     IN      A       74.125.43.103
1833 www.l.google.com.       186     IN      A       74.125.43.104
1834 www.l.google.com.       186     IN      A       74.125.43.147
1835 www.l.google.com.       186     IN      A       74.125.43.99
1836
1837 ;; AUTHORITY SECTION:
1838 l.google.com.           80856   IN      NS      f.l.google.com.
1839 l.google.com.           80856   IN      NS      d.l.google.com.
1840 l.google.com.           80856   IN      NS      b.l.google.com.
1841 l.google.com.           80856   IN      NS      c.l.google.com.
1842 l.google.com.           80856   IN      NS      a.l.google.com.
1843 l.google.com.           80856   IN      NS      e.l.google.com.
1844 l.google.com.           80856   IN      NS      g.l.google.com.
1845
1846 ;; Query time: 1 msec
1847 ;; SERVER: 192.168.0.10#53(192.168.0.10)
1848 ;; WHEN: Sun May 10 21:34:47 2009
1849 ;; MSG SIZE  rcvd: 255
1850 </pre>
1851
1852         <dl class="docutils">
1853           <dt>$ dig</dt>
1854
1855           <dd>(semza opzioni o oggetti) Fornisce l'elenco dei
1856           <em>root servers</em> utilizzati. I root server sono i
1857           server che mantengono le informazioni sui domini di primo
1858           livello (TLD) e sono quindi il punto di partenza per
1859           scorrere nella directory dei DNS per recuperare le
1860           informazioni (tipicamente un campo <tt class=
1861           "docutils literal"><span class="pre">A</span></tt> per un
1862           indirizzo IP) che ci servono per raggiungere un certo
1863           servizio.</dd>
1864         </dl>
1865
1866         <p>$ dig</p>
1867
1868         <blockquote>
1869           <p>...</p>
1870
1871           <p>;; ANSWER SECTION: . 192032 IN NS C.ROOT-SERVERS.NET.
1872           . 192032 IN NS E.ROOT-SERVERS.NET. . 192032 IN NS
1873           B.ROOT-SERVERS.NET. . 192032 IN NS L.ROOT-SERVERS.NET. .
1874           192032 IN NS A.ROOT-SERVERS.NET. . 192032 IN NS
1875           F.ROOT-SERVERS.NET. . 192032 IN NS H.ROOT-SERVERS.NET. .
1876           192032 IN NS G.ROOT-SERVERS.NET. . 192032 IN NS
1877           K.ROOT-SERVERS.NET. . 192032 IN NS M.ROOT-SERVERS.NET. .
1878           192032 IN NS I.ROOT-SERVERS.NET. . 192032 IN NS
1879           J.ROOT-SERVERS.NET. . 192032 IN NS
1880           D.ROOT-SERVERS.NET.</p>
1881
1882           <p>...</p>
1883         </blockquote>
1884       </div>
1885     </div>
1886
1887     <div class="section" id="dnsmasq">
1888       <h1><a class="toc-backref" href=
1889       "#id39">5&nbsp;&nbsp;&nbsp;DNSmasq</a></h1>
1890
1891       <p>Dnsmasq puo' svolgere le funzioni di un DNS cache /
1892       forwarder e un server DHCP caratterizzato dalla facilita' di
1893       configurazione, dalla leggerezza e dalla possibilita' di
1894       modificare rapidamente i record DNS serviti alla rete. Puo'
1895       essere anche utilizzato come <cite>server per il boot da rete
1896       &lt;http://www.debian-administration.org/articles/478&gt;_</cite>
1897       .</p>
1898
1899       <p>Dnsmasq e' un interessante alternativa all'uso del server
1900       DNS Bind in modalita' cache-only (non autoritativo)
1901       accompagnato dal server DHCPD. I vantaggi sono:</p>
1902
1903       <ul class="simple">
1904         <li>Leggerezza: puo' essere fatto girare su una macchina
1905         relativamente debole in caso di bisogno.</li>
1906
1907         <li>Rapidita' di configurazione (in particolare per servire
1908         dei record A / MX alla rete, modificando al volo i valori
1909         originali ospitati sul server DNS Publico).</li>
1910
1911         <li>Ben integrato con connssioni PPP (utile se dovete
1912         rendere disponibile rapidamente una connessione a internet
1913         a una rete in difficolta').</li>
1914       </ul>
1915
1916       <p>Tutto cio' rende Dnsmasq una soluzione valida in
1917       particolare quando si deve intervenire in una rete
1918       pre-esistente in cui il server principale e' in crisi: si
1919       potra' utilizzare Dnsmasq anche su una macchina piu' debole e
1920       <em>mascherare</em> i servizi al momento non disponibili.
1921       Molto utile per scopi didattici, sopratutto per testare
1922       server SMTP impostando al volo i campi MX per nomi di dominio
1923       fittizi.</p>
1924     </div>
1925
1926     <div class="section" id="samba">
1927       <h1><a class="toc-backref" href=
1928       "#id40">6&nbsp;&nbsp;&nbsp;Samba</a></h1>
1929
1930       <p>Samba e' un progetto libero che fornisce servizi di
1931       condivisione di file e stampanti a client SMB/CIFS.</p>
1932
1933       <p>Samba e' liberamente disponibile, al contrario di altre
1934       implementazioni SMB/CIFS, e permette di ottenere
1935       interoperabilita' tra Linux, Unix, Mac OS X e Windows.</p>
1936
1937       <p>Samba e' un software che puo girare su piattaforme che non
1938       siano Microsoft Windows, per esempio, UNIX, Linux, IBM System
1939       390, OpenVMS e altri sistemi operativi. Samba utilizza il
1940       protocollo TCP/IP utilizzando i servizi offerti sul server
1941       ospite. Quando correttamente configurato, permette di
1942       interagire con client o server Microsoft Windows come se
1943       fosse un file e print server Microsoft agendo da Primary
1944       Domain Controller (PDC) o come Backup Domain Controller, puo'
1945       inoltre prendere parte ad un dominio Active Directory.</p>
1946
1947       <div class="section" id="pacchetti">
1948         <h2><a class="toc-backref" href=
1949         "#id41">6.1&nbsp;&nbsp;&nbsp;Pacchetti</a></h2>
1950
1951         <p>Pacchetti da installare per utilizzare Samba in
1952         modalita' client <a class="footnote-reference" href="#id4"
1953         id="id3" name="id3">[2]</a></p>
1954         <pre class="literal-block">
1955 samba-client
1956 </pre>
1957
1958         <p>Pacchetti da installare per utilizzare Samba in
1959         modalita' server:</p>
1960         <pre class="literal-block">
1961 samba smbfs smbclient
1962 </pre>
1963
1964         <table class="docutils footnote" frame="void" id="id4"
1965         rules="none">
1966           <colgroup>
1967             <col class="label">
1968             <col>
1969           </colgroup>
1970
1971           <tbody valign="top">
1972             <tr>
1973               <td class="label"><a class="fn-backref" href=
1974               "#id3">[2]</a></td>
1975
1976               <td>Anche se nato per i sistemi Windows, Samba puo'
1977               essere usato anche per montare cartelle sotto
1978               GNU/Linux come alternativa a NFS. Per la condivisione
1979               di stampanti sarebbe invece opportuno intervenire
1980               direttamente su <tt class=
1981               "docutils literal"><span class=
1982               "pre">CUPS</span></tt>.</td>
1983             </tr>
1984           </tbody>
1985         </table>
1986
1987         <p>Durante la prima installazione viene chiesto il nome del
1988         gruppo di appartenenza, il default per Windows e'
1989         <tt class="docutils literal"><span class=
1990         "pre">WORKGROUP</span></tt>. In aula usiamo invece
1991         <tt class="docutils literal"><span class=
1992         "pre">208</span></tt> .</p>
1993
1994         <p>Per riconfigurare Samba si usi il comando:</p>
1995         <pre class="literal-block">
1996 dpkg-reconfigure samba-common
1997 </pre>
1998       </div>
1999
2000       <div class="section" id="passwords-e-autenticazione">
2001         <h2><a class="toc-backref" href=
2002         "#id42">6.2&nbsp;&nbsp;&nbsp;Passwords e
2003         autenticazione</a></h2>
2004
2005         <p>Per poter configurare Samba in modo che usi un sistema
2006         di negoziazione degli accessi alle cartelle condivise
2007         basato su accoppiate <em>nome utente / password</em>
2008         bisogna distinguere tra 3 livelli di password (e
2009         generalmente volete usare <em>sempre la stessa
2010         password</em> per ognuno di questi) e delle differenze tra
2011         le modalita' di <em>autenticazione</em> (e quindi anche di
2012         criptaggio delle passwords) usate da sistemi GNU/Linux e
2013         Windows:</p>
2014
2015         <dl class="docutils">
2016           <dt>1 Sistema *Unix ( GNU/Linux )</dt>
2017
2018           <dd>E' la password dell'<em>utente di sistema</em> che
2019           viene usata sul sistema operativo su cui gira il software
2020           Samba. E' importante tenere conto anche delle
2021           <em>user-id</em> e <em>group-id</em> degli utenti che
2022           dovranno fisicamente scrivere sui file system. Se un
2023           utente non puo' scrivere in una certa posizione del file
2024           system (ad esempio nella cartella <tt class=
2025           "docutils literal"><span class=
2026           "pre">/mnt/condivisione</span></tt> che sara' stata
2027           necessariamente creata inizialmente dall'utente
2028           <tt class="docutils literal"><span class=
2029           "pre">root</span></tt>) per mancanza dei privilegi di
2030           scrittura allora neanche Samba potra' farlo nel momento
2031           in mette a disposizione la risorsa all'utente. Se si
2032           montano file-system dedicati per le condivisioni
2033           controllare i permessi e propieta' dei <em>punti di
2034           mount*</em>. Queste passwords sono salvate nel solito
2035           file /etc/shadow (richiamato da /etc/passwd).</dd>
2036
2037           <dt>2 Password per l'applicativo Samba</dt>
2038
2039           <dd>Samba deve essere compatibile con Windows e quindi
2040           utilizzare un sistema di criptazione delle password
2041           diverso da /etc/shadow . Le password per Samba possono
2042           essere gestite ad esempio col comando <tt class=
2043           "docutils literal"><span class=
2044           "pre">smbpasswd</span></tt> e vengono generalmente
2045           salvate all'interno di <tt class=
2046           "docutils literal"><span class=
2047           "pre">/var/lib/samba/passdb.tdb</span></tt> .</dd>
2048
2049           <dt>3 Password per Windows.</dt>
2050
2051           <dd>Gli utenti Windows effettuano il log-in alla partenza
2052           della sessione di Windows. Se si avra' l'accortezza di
2053           usare sempre la <em>stessa password</em> data
2054           precedentemente anche a Windows (o viceversa impostare la
2055           password per GNU/Linux / Samba uguale a quella di
2056           Windows) l'utente potra' accedere automaticamente alle
2057           condivisioni a lui disponibili.</dd>
2058         </dl>
2059       </div>
2060
2061       <div class="section" id="creazione-utenti">
2062         <h2><a class="toc-backref" href=
2063         "#id43">6.3&nbsp;&nbsp;&nbsp;Creazione Utenti</a></h2>
2064
2065         <p>Creiamo per primo l'utente sotto GNU/Linux, facendo
2066         attenzione a <em>non dargli una shell di sistema</em>. Gli
2067         utenti Windows che accedono al server solo per le
2068         condivisioni non hanno bisogno di poter eseguire comandi
2069         sul server!</p>
2070
2071         <p>Creazione di un utente denominato sambo:</p>
2072         <pre class="literal-block">
2073 adduser --shell /bin/false sambo
2074 </pre>
2075
2076         <p>Nel file <tt class="docutils literal"><span class=
2077         "pre">/etc/passwd</span></tt> avremo qualcosa come:</p>
2078         <pre class="literal-block">
2079 sambo:x:1001:1001:Sambo utente Samba,,,:/home/sambo:/bin/false
2080 </pre>
2081
2082         <p>Aggiunta dell'utente al database delle password per
2083         Samba e generazione della sua password:</p>
2084         <pre class="literal-block">
2085 smbpasswd -a sambo
2086 </pre>
2087
2088         <p>Se successivamente si vorra' modificare la password di
2089         un utente gia' esistente si usi:</p>
2090         <pre class="literal-block">
2091 smbpasswd  sambo
2092 </pre>
2093
2094         <p>La password sotto Windows verra' modificata sul sistema
2095         Windows.</p>
2096       </div>
2097
2098       <div class="section" id="creare-la-condivisione">
2099         <h2><a class="toc-backref" href=
2100         "#id44">6.4&nbsp;&nbsp;&nbsp;Creare la
2101         condivisione</a></h2>
2102
2103         <p>La condivisione altro non e' che una cartella sul server
2104         che viene resa disponibile ai client negoziando l'accesso
2105         in base a una autenticazione basata su <em>user-name /
2106         password</em>. E' per altro possibile permettere l'accesso
2107         a una risorsa a chiunque indiscriminatamente (a tutti i
2108         <tt class="docutils literal"><span class=
2109         "pre">guest</span></tt>) ma la cosa e' sconsigliabile dal
2110         punto di vista della sicurezza. Si decida se la cartella
2111         condivisa debba risiedere nella <em>home</em> di un utente
2112         (nel caso quest'ultimo ne sia l'unico fruitore) o in una
2113         cartella in /mnt/ (nel caso piu' utenti accedano a questa).
2114         Nel secondo caso si potranno gestire gli accessi sotto
2115         GNU/Linux tramite i gruppi.</p>
2116
2117         <p>Creazione della risorsa sambo_share nella home
2118         dell'utente sambo:</p>
2119         <pre class="literal-block">
2120 # mkdir /home/sambo/sambo_share
2121 # chown sambo:sambo /home/sambo/sambo_share/
2122 </pre>
2123
2124         <div class="section" id=
2125         "sicurezza-permessi-di-esecuzione-sul-server">
2126           <h3><a class="toc-backref" href=
2127           "#id45">6.4.1&nbsp;&nbsp;&nbsp;Sicurezza: permessi di
2128           esecuzione sul server</a></h3>
2129
2130           <p>Bisognerebbe notare sul server i permessi di
2131           esecuzione del file-system che ospita la cartella da
2132           condividere. Se i file che saranno contenuti nella
2133           condivisione saranno da usarsi sotto Windows non c'e'
2134           motivo che questi siano eseguibili sotto GNU/Linux. Si
2135           potrebbe avere quindi, ipotizzando una condivisione in
2136           <tt class="docutils literal"><span class=
2137           "pre">/mnt/share</span></tt> che risieda su di un file
2138           system dedicato:</p>
2139
2140           <p><tt class="docutils literal"><span class=
2141           "pre">/etc/fstab</span></tt></p>
2142
2143           <blockquote>
2144             /dev/hda10 /mnt/share ext3 rw,
2145             <strong>nosuid,noexec</strong> 0 3
2146           </blockquote>
2147
2148           <p>Si noti anche l'uso di <em>nosuid</em> per evitare la
2149           possibilita' di eseguire programmi con credenziali
2150           diverse.</p>
2151         </div>
2152       </div>
2153
2154       <div class="section" id=
2155       "configurazione-dell-applicativo-samba-vero-e-proprio">
2156         <h2><a class="toc-backref" href=
2157         "#id46">6.5&nbsp;&nbsp;&nbsp;Configurazione
2158         dell'applicativo Samba vero e proprio.</a></h2>
2159
2160         <p>Avendo preparato gli utenti (ancora una volta: non si
2161         dia una shell completa a un utente che serve solo per Samba
2162         o la posta elettronica) e la cartella sul file system si
2163         puo' procedere a configurare la condivisione su Samba.</p>
2164
2165         <p>/etc/samba/smb.conf riga ~235 , Share Definitions (in
2166         vim si usi 235gg ):</p>
2167         <pre class="literal-block">
2168 [sambo_share]
2169         # Percorso della cartella condivisa
2170         path = /home/sambo/sambo_share
2171         # Se gli utenti possono scrivere / modificare file
2172         writable = yes
2173         # Negoziazione degli accessi su base utenti / passwords
2174         valid users = sambo
2175
2176         # #######################################
2177         # Altri parametri opzionali di interesse
2178         # Se posso vedere la condivisione da esplora risorse
2179         # anche se non ho i privilegi per accedervi.
2180         browseable = yes
2181         # Commento indicativo della risorsa
2182         comment = Condivisione per Sambo
2183 </pre>
2184
2185         <p>Dopo aver salvato il file si puo' fare un primo
2186         controllo tramite l'utility <tt class=
2187         "docutils literal"><span class="pre">testparm</span></tt> ,
2188         che controlla la sintassi del file di configurazione di
2189         Samba. Se questo non rileva problemi si puo' procedere a un
2190         <tt class="docutils literal"><span class="pre">#</span>
2191         <span class="pre">/etc/init.d/samba</span> <span class=
2192         "pre">restart</span></tt> .</p>
2193       </div>
2194
2195       <div class="section" id="testare-il-servizio">
2196         <h2><a class="toc-backref" href=
2197         "#id47">6.6&nbsp;&nbsp;&nbsp;Testare il Servizio</a></h2>
2198
2199         <p>Come testare il servizio</p>
2200
2201         <p>es:</p>
2202         <pre class="literal-block">
2203 smbclient -U sambo -L localhost
2204 </pre>
2205
2206         <p>Questo comando permette di esplorare la risorsa
2207         qualificandosi come utente, in questo modo potete testare
2208         il corretto funzionamento dell'autenticazione. Si provi
2209         inizialmente a sbagliare la password deliberatamente, poi a
2210         inserirla correttamente: dovrebbero essere visibili le
2211         risorse disponibili al solo utente sambo: la suo /home e la
2212         cartella samba_share:</p>
2213         <pre class="literal-block">
2214 Sharename       Type      Comment
2215 ---------       ----      -------
2216 sambo_share     Disk      Condivisione per Sambo
2217 print$          Disk      Printer Drivers
2218 IPC$            IPC       IPC Service (base server)
2219 sambo           Disk      Home Directories
2220 </pre>
2221
2222         <p>In particolare l'ultima voce relativa alla home
2223         directory dell'utente dovrebbe essere visibile solo agli
2224         utenti autenticati.</p>
2225
2226         <p>In alternativa e' possibile montare realmente la
2227         condivisone anche su GNU/Linux tramite un client per samba
2228         e testarne il corretto funzionamento:</p>
2229         <pre class="literal-block">
2230 mount -t smbfs //localhost/sambo_share /mnt/sambo_mount/ --verbose -o user=sambo
2231 </pre>
2232       </div>
2233     </div>
2234
2235     <div class="section" id="note">
2236       <h1><a class="toc-backref" href=
2237       "#id48">7&nbsp;&nbsp;&nbsp;NOTE</a></h1>
2238
2239       <ul class="simple">
2240         <li>controllare apache</li>
2241       </ul>
2242
2243       <p>sintassi: in <tt class="docutils literal"><span class=
2244       "pre">monospace</span></tt> :</p>
2245
2246       <ul class="simple">
2247         <li>nomi di files</li>
2248
2249         <li>comandi</li>
2250
2251         <li>pacchetti</li>
2252       </ul>
2253     </div>
2254   </div>
2255 </body>
2256 </html>