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