1 <?xml version="1.0" encoding="utf-8"?>
2 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN">
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/">
13 <title>Servizi Di rete passo a passo</title>
14 <style type="text/css">
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.
21 Default cascading style sheet for the HTML output of Docutils.
23 See http://docutils.sf.net/docs/howto/html-stylesheets.html for how to
24 customize this style sheet.
27 /* used to remove borders from tables and images */
28 .borderless, table.borderless td, table.borderless th {
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 }
37 /* Override more specific margin styles with "! important". */
38 margin-top: 0 ! important }
40 .last, .with-subtitle {
41 margin-bottom: 0 ! important }
47 text-decoration: none ;
54 margin-bottom: 0.5em }
56 /* Uncomment (and remove this text!) to get bold-faced definition list terms
64 div.abstract p.topic-title {
68 div.admonition, div.attention, div.caution, div.danger, div.error,
69 div.hint, div.important, div.note, div.tip, div.warning {
71 border: medium outset ;
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 {
78 font-family: sans-serif }
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 {
85 font-family: sans-serif }
87 /* Uncomment (and remove this text!) to get reduced vertical space in
89 div.compound .compound-first, div.compound .compound-middle {
90 margin-bottom: 0.5em }
92 div.compound .compound-last, div.compound .compound-middle {
101 div.dedication p.topic-title {
109 div.footer, div.header {
118 div.line-block div.line-block {
124 margin: 0 0 0.5em 1em ;
125 border: medium outset ;
127 background-color: #ffffee ;
132 div.sidebar p.rubric {
133 font-family: sans-serif ;
136 div.system-messages {
139 div.system-messages h1 {
143 border: medium outset ;
146 div.system-message p.system-message-title {
153 h1.section-subtitle, h2.section-subtitle, h3.section-subtitle,
154 h4.section-subtitle, h5.section-subtitle, h6.section-subtitle {
172 ol.simple, ul.simple {
176 list-style: decimal }
179 list-style: lower-alpha }
182 list-style: upper-alpha }
185 list-style: lower-roman }
188 list-style: upper-roman }
202 white-space: nowrap }
211 font-family: sans-serif ;
216 font-family: sans-serif ;
228 pre.literal-block, pre.doctest-block {
233 font-family: sans-serif ;
234 font-style: oblique }
236 span.classifier-delimiter {
237 font-family: sans-serif ;
241 font-family: sans-serif }
244 white-space: nowrap }
252 span.section-subtitle {
253 /* font-size relative to parent (h1..h6 element) */
257 border-left: solid 1px gray;
265 margin-bottom: 0.5em }
268 border-left: solid 1px black;
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 }
277 table.docutils th.field-name, table.docinfo th.docinfo-name {
280 white-space: nowrap ;
283 h1 tt.docutils, h2 tt.docutils, h3 tt.docutils,
284 h4 tt.docutils, h5 tt.docutils, h6 tt.docutils {
288 list-style-type: none }
294 <div class="document" id="servizi-di-rete-passo-a-passo">
295 <h1 class="title">Servizi Di rete passo a passo</h1>
297 <h2 class="subtitle" id=
298 "appunti-sulla-installazione-e-configurazione-dei-servizi">
299 Appunti sulla installazione e configurazione dei servizi</h2>
302 <table class="docutils field-list" frame="void" rules="none">
303 <col class="field-name">
304 <col class="field-body">
308 <th class="field-name">Author:</th>
310 <td class="field-body">Andrea Manni</td>
314 <th class="field-name">Copyright:</th>
316 <td class="field-body">GFDL</td>
320 <th class="field-name">Version:</th>
322 <td class="field-body">0.3</td>
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>
335 <div class="contents topic" id="indice-degli-argomenti">
336 <p class="topic-title first">Indice degli argomenti</p>
338 <ul class="auto-toc simple">
340 <a class="reference internal" href=
341 "#configurazione-sistema" id="id5" name=
342 "id5">1 Configurazione sistema</a>
344 <ul class="auto-toc">
345 <li><a class="reference internal" href=
346 "#solo-per-uso-interno" id="id6" name=
347 "id6">1.1 Solo per uso
350 <li><a class="reference internal" href="#rete" id="id7"
351 name="id7">1.2 Rete</a></li>
353 <li><a class="reference internal" href=
354 "#bash-completion" id="id8" name=
355 "id8">1.3 Bash completion</a></li>
357 <li><a class="reference internal" href="#vim" id="id9"
358 name="id9">1.4 Vim</a></li>
360 <li><a class="reference internal" href="#vnc" id="id10"
361 name="id10">1.5 VNC</a></li>
363 <li><a class="reference internal" href=
364 "#lista-dei-pacchetti-di-base" id="id11" name=
365 "id11">1.6 Lista dei pacchetti di
369 <a class="reference internal" href=
370 "#apt-configurazione" id="id12" name=
371 "id12">1.7 Apt configurazione</a>
373 <ul class="auto-toc">
374 <li><a class="reference internal" href=
375 "#sources-list" id="id13" name=
376 "id13">1.7.1 sources.list</a></li>
378 <li><a class="reference internal" href=
379 "#etc-apt-apt-conf" id="id14" name=
380 "id14">1.7.2 /etc/apt/apt.conf</a></li>
386 <li><a class="reference internal" href="#squid" id="id15"
387 name="id15">2 Squid</a></li>
390 <a class="reference internal" href="#apache" id="id16"
391 name="id16">3 Apache</a>
393 <ul class="auto-toc">
394 <li><a class="reference internal" href=
395 "#configurazione-di-apache" id="id17" name=
396 "id17">3.1 Configurazione di
399 <li><a class="reference internal" href="#apache-conf"
401 "id18">3.2 apache.conf</a></li>
404 <a class="reference internal" href=
405 "#installazione-di-php" id="id19" name=
406 "id19">3.3 Installazione di PHP</a>
408 <ul class="auto-toc">
409 <li><a class="reference internal" href=
410 "#test-del-modulo-php" id="id20" name=
411 "id20">3.3.1 Test del modulo
414 <li><a class="reference internal" href=
415 "#installazione-del-supporto-per-mysql" id="id21"
416 name="id21">3.3.2 Installazione
417 del supporto per Mysql</a></li>
419 <li><a class="reference internal" href=
420 "#phpmyadmin" id="id22" name=
421 "id22">3.3.3 phpmyadmin</a></li>
423 <li><a class="reference internal" href=
424 "#installazione-del-supporto-per-postgresql" id=
426 "id23">3.3.4 Installazione del
427 supporto per Postgresql</a></li>
432 <a class="reference internal" href="#virtual-hosts"
433 id="id24" name="id24">3.4 Virtual
436 <ul class="auto-toc">
437 <li><a class="reference internal" href=
438 "#gestione-dns" id="id25" name=
439 "id25">3.4.1 Gestione DNS</a></li>
441 <li><a class="reference internal" href=
442 "#virtual-host" id="id26" name=
443 "id26">3.4.2 Virtual host</a></li>
447 <li><a class="reference internal" href=
448 "#user-authentication" id="id27" name=
449 "id27">3.5 User
450 Authentication</a></li>
452 <li><a class="reference internal" href="#cavets" id=
453 "id28" name="id28">3.6 Cavets</a></li>
458 <a class="reference internal" href="#domain-name-system"
459 id="id29" name="id29">4 Domain Name
462 <ul class="auto-toc">
463 <li><a class="reference internal" href=
464 "#informazioni-di-base-sul-servizio-dns" id="id30"
465 name="id30">4.1 Informazioni di base
466 sul servizio DNS.</a></li>
468 <li><a class="reference internal" href=
469 "#nomi-di-dominio" id="id31" name=
470 "id31">4.2 Nomi di dominio</a></li>
472 <li><a class="reference internal" href=
473 "#tipologie-di-record" id="id32" name=
474 "id32">4.3 Tipologie di
477 <li><a class="reference internal" href="#utilizzo" id=
479 "id33">4.4 Utilizzo</a></li>
481 <li><a class="reference internal" href=
482 "#risoluzione-dei-nomi-di-dominio" id="id34" name=
483 "id34">4.5 Risoluzione dei nomi di
488 <li><a class="reference internal" href="#dnsmasq" id="id35"
489 name="id35">5 DNSmasq</a></li>
492 <a class="reference internal" href="#samba" id="id36"
493 name="id36">6 Samba</a>
495 <ul class="auto-toc">
496 <li><a class="reference internal" href="#pacchetti" id=
498 "id37">6.1 Pacchetti</a></li>
500 <li><a class="reference internal" href=
501 "#passwords-e-autenticazione" id="id38" name=
502 "id38">6.2 Passwords e
503 autenticazione</a></li>
505 <li><a class="reference internal" href=
506 "#creazione-utenti" id="id39" name=
507 "id39">6.3 Creazione Utenti</a></li>
510 <a class="reference internal" href=
511 "#creare-la-condivisione" id="id40" name=
512 "id40">6.4 Creare la
515 <ul class="auto-toc">
516 <li><a class="reference internal" href=
517 "#sicurezza-permessi-di-esecuzione-sul-server" id=
519 "id41">6.4.1 Sicurezza: permessi
520 di esecuzione sul server</a></li>
524 <li><a class="reference internal" href=
525 "#configurazione-dell-applicativo-samba-vero-e-proprio"
527 "id42">6.5 Configurazione
528 dell'applicativo Samba vero e proprio.</a></li>
530 <li><a class="reference internal" href=
531 "#testare-il-servizio" id="id43" name=
532 "id43">6.6 Testare il
537 <li><a class="reference internal" href="#note" id="id44"
538 name="id44">7 NOTE</a></li>
542 <p>Generato con: <a class="reference external" href=
543 "http://docutils.sourceforge.net/rst.html">http://docutils.sourceforge.net/rst.html</a></p>
545 <div class="section" id="configurazione-sistema">
546 <h1><a class="toc-backref" href=
547 "#id5">1 Configurazione sistema</a></h1>
549 <div class="section" id="solo-per-uso-interno">
550 <h2><a class="toc-backref" href=
551 "#id6">1.1 Solo per uso interno</a></h2>
553 <p>Impostazioni di base per la configurazione del sistema
554 operativo e della rete nel laboratorio 208 facente parte
555 della rete piffa.net .</p>
557 <p>Qui riportati per comodita' degli studenti (e del
558 docente che non sara' <strong>mai piu'</strong> costretto a
562 <div class="section" id="rete">
563 <h2><a class="toc-backref" href=
564 "#id7">1.2 Rete</a></h2>
566 <p>Parametri della rete attualmente in uso:</p>
568 <table border="1" class="docutils">
576 <td colspan="2">Parametri della rete</td>
582 <td>10.10.208.0/24</td>
588 <td>255.255.255.0</td>
594 <td>10.10.208.255</td>
600 <td>10.10.208.254</td>
606 <td>10.10.208.250 persistente</td>
612 <td>10.10.208.254</td>
618 <td>10.10.208.250 persistente</td>
623 <p>Sul portatile di Andrea, corrispondente all'ip 254, gira
624 un DHCP, proxy http e mirror di Debian ( <a class=
625 "reference external" href=
626 "http://debian.piffa.net">http://debian.piffa.net</a>). Se
627 Andrea non e' in aula (o ancora peggio non c'e' il suo
628 portatile Net) gli studenti dovranno darsi un indirizzo ip
629 manualmente e disabilitare il proxy (che pero' e
630 trasparente, quindi fate pure come se non ci fosse ;) .</p>
633 <div class="section" id="bash-completion">
634 <h2><a class="toc-backref" href=
635 "#id8">1.3 Bash completion</a></h2>
637 <p>Il completamento automatico della shell (che si attiva
638 premendo il tasto tab una o due volte mentre si sta
639 scrivendo un termine) permette di comporre automaticamente
640 i nomi dei comandi e i percorsi dei file, sopratutto la
641 composizione automatica dei percorsi dei file e' di grande
644 <p>Bash_completion permette di integrare il completamento
645 automatico con i nomi dei pacchetti e oggetti dei comandi:
646 ad es. volendo digitare <tt class=
647 "docutils literal"><span class="pre">apt-get</span>
648 <span class="pre">inst[TAB]</span> <span class=
649 "pre">xtigh[TAB]</span></tt> ora verra' completatato
650 automaticamente sia la parola <tt class=
651 "docutils literal"><span class="pre">install</span></tt>
652 che il nome del pacchetto <tt class=
653 "docutils literal"><span class=
654 "pre">xtightvncviewer</span></tt>.</p>
656 <p>Abilitare /etc/bash_completion nel file <tt class=
657 "docutils literal"><span class=
658 "pre">/etc/bash.bashrc</span></tt> oppure includerlo nel
659 proprio <tt class="docutils literal"><span class=
660 "pre">~/.bashrc</span></tt> (che sarebbe il file
661 <em>nascosto</em>, quindi con un punto all'inizio del nome
662 del file, di configurazione della shell bash per ogni
663 utente, presente nella propria <em>home
665 <pre class="literal-block">
666 echo ". /etc/bash_completion" >> ~/.bashrc
669 <p>Esempio di ~/.bahsrc</p>
670 <pre class="literal-block">
671 # ~/.bashrc: executed by bash(1) for non-login shells.
673 export PS1='\h:\w\$ '
676 # Decommentare le seguenti righr per abilitare la colorazione dei
678 export LS_OPTIONS='--color=auto'
680 alias ls='ls $LS_OPTIONS'
681 alias ll='ls $LS_OPTIONS -l'
682 alias l='ls $LS_OPTIONS -lA'
684 # Some more alias to avoid making mistakes:
689 # questo abilita bash completion
690 . /etc/bash_completion
693 <p>Il file <tt class="docutils literal"><span class=
694 "pre">/etc/bash_completion</span></tt> deve essere presente
695 nel sistema, in caso contrario installare il pacchetto:
696 <tt class="docutils literal"><span class=
697 "pre">bash-completion</span></tt>. Generalmente l'utente
698 <tt class="docutils literal"><span class=
699 "pre">root</span></tt> ha un file <tt class=
700 "docutils literal"><span class="pre">.bashrc</span></tt>
701 preimpostato analogo a quello citato sopra, a differenza
702 dei normali utenti di sistema.</p>
707 <li><a class="reference external" href=
708 "http://www.debian-administration.org/articles/316">An
709 introduction to bash completion</a></li>
711 <li><a class="reference external" href=
712 "http://www.caliban.org/bash/">Working more productively
713 with bash 2.x/3.x</a></li>
717 <div class="section" id="vim">
718 <h2><a class="toc-backref" href=
719 "#id9">1.4 Vim</a></h2>
721 <p>Vim e' l'editor di testo preferito dai sistemisti,
722 quindi sara' conveniente impostare fin da subito alcune
723 impostazioni per renderlo piu' comodo.</p>
725 <p>Assicurarsi che sia installata nel sistema la versione
726 completa dell'editor <tt class=
727 "docutils literal"><span class="pre">vim</span></tt>
728 nstallando il pacchetto vimi:</p>
729 <pre class="literal-block">
730 # apt-get install vim
732 e modificare il file di configurazione generale ``/etc/vim/vimrc`` ::
734 " All system-wide defaults are set in $VIMRUNTIME/debian.vim (usually just
735 " /usr/share/vim/vimcurrent/debian.vim) and sourced by the call to :runtime
736 " you can find below. If you wish to change any of those settings, you should
737 " do it in this file (/etc/vim/vimrc), since debian.vim will be overwritten
738 " everytime an upgrade of the vim packages is performed. It is recommended to
739 " make changes after sourcing debian.vim since it alters the value of the
740 " 'compatible' option.
742 " This line should not be removed as it ensures that various options are
743 " properly set to work with the Vim-related packages available in Debian.
746 " Uncomment the next line to make Vim more Vi-compatible
747 " NOTE: debian.vim sets 'nocompatible'. Setting 'compatible' changes numerous
748 " options, so any other options should be set AFTER setting 'compatible'.
751 " Vim5 and later versions support syntax highlighting. Uncommenting the next
752 " line enables syntax highlighting by default.
755 " If using a dark background within the editing area and syntax highlighting
756 " turn on this option as well
759 " Uncomment the following to have Vim jump to the last position when
763 au BufReadPost * if line("'\"") > 0 && line("'\"") <= line("$")
764 \| exe "normal! g'\"" | endif
767 " Uncomment the following to have Vim load indentation rules and plugins
768 " according to the detected filetype.
770 filetype plugin indent on
773 " The following are commented out as they cause vim to behave a lot
774 " differently from regular Vi. They are highly recommended though.
775 set showcmd " Show (partial) command in status line.
776 "set showmatch " Show matching brackets.
777 set ignorecase " Do case insensitive matching
778 "set smartcase " Do smart case matching
779 "set incsearch " Incremental search
780 set autowrite " Automatically save before commands like :next and :make
781 "set hidden " Hide buffers when they are abandoned
782 "set mouse=a " Enable mouse usage (all modes) in terminals
784 " Source a global configuration file if available
785 " XXX Deprecated, please move your changes here in /etc/vim/vimrc
786 if filereadable("/etc/vim/vimrc.local")
787 source /etc/vim/vimrc.local
792 <div class="section" id="vnc">
793 <h2><a class="toc-backref" href=
794 "#id10">1.5 VNC</a></h2>
796 <p>I Virtual Network Computing (o VNC) sono software di
797 controllo remoto e servono per amministrare il proprio
798 computer a distanza o visuallizare la sessione di lavoro di
799 un altro computer sul proprio a scopo didattico.
800 Installando un server VNC sulla propria macchina ed
801 impostando una opportuna password si consente ai client VNC
802 di ricevere una immagine dello schermo ed eventualmente di
803 inviare input di tastiera e mouse al computer server
804 (durante le lezioni questo non e' possibile per gli
805 studenti, solo Andrea esegue i comandi). In pratica si può
806 gestire il computer server da un'altra postazione, come se
807 fosse il proprio computer fisico.</p>
809 <p>Scaricare il pacchetto <tt class=
810 "docutils literal"><span class=
811 "pre">xtightvncviewer</span></tt> e lo script <tt class=
812 "docutils literal"><span class="pre">guarda.sh</span></tt>
813 in una posizione (collocazione nel <em>path</em> degli
814 utenti, es <tt class="docutils literal"><span class=
815 "pre">echo</span> <span class="pre">$PATH</span></tt> per
816 visualizzare l'attuale path ) comoda per gli utenti ( in
817 genere <tt class="docutils literal"><span class=
818 "pre">/bin</span></tt> ), rndere eseguibile lo script.</p>
821 <pre class="literal-block">
824 wget http://debian.piffa.net/guarda.sh
829 <p>Si noti che non e' possibile lanciare un applicativo sul
830 server grafico di un utente da una shell in cui si sta
831 lavorando come altro utente, anche se root. E' quindi
832 necessario essere l'utente di sistema che si e' loggato
833 inizialmente nella sessione grafica per poter lanciare lo
834 script guarda.sh da una shell.</p>
836 <p>Controllare con <tt class=
837 "docutils literal"><span class="pre">whoami</span></tt> di
838 essere l'utente normale (es <tt class=
839 "docutils literal"><span class="pre">utente</span>
840 <span class="pre">|</span> <span class=
841 "pre">studente</span> <span class="pre">|</span>
842 <span class="pre">proprio</span> <span class=
843 "pre">nome</span></tt> ), in caso si sia assunta una altra
844 <tt class="docutils literal"><span class=
845 "pre">id</span></tt> si apra un altra shell o si esca da
846 quella attuale con <tt class=
847 "docutils literal"><span class="pre">exit</span></tt> .</p>
850 <div class="section" id="lista-dei-pacchetti-di-base">
851 <h2><a class="toc-backref" href=
852 "#id11">1.6 Lista dei pacchetti di
855 <p>I pacchetti installati generalmente <a class=
856 "footnote-reference" href="#id2" id="id1" name=
857 "id1">[1]</a> per poter seguire le lezioni sono:</p>
858 <pre class="literal-block">
859 kde-core kdm kde-i18n-it xorg vim less xtightvncviewer
862 <table class="docutils footnote" frame="void" id="id2"
871 <td class="label"><a class="fn-backref" href=
874 <td><tt class="docutils literal"><span class=
875 "pre">kde-core</span></tt> e' piu' leggero del
876 pacchetto <tt class="docutils literal"><span class=
877 "pre">kde</span></tt>, esiste anche un equivalente
878 <tt class="docutils literal"><span class=
879 "pre">gnome-core</span> <span class=
880 "pre">gnome</span></tt> e il log-in manager
881 <tt class="docutils literal"><span class=
882 "pre">gdm</span></tt> per il l'ambiente grafico
889 <div class="section" id="apt-configurazione">
890 <h2><a class="toc-backref" href=
891 "#id12">1.7 Apt configurazione</a></h2>
893 <p>Vediamo i due file principali di apt:</p>
896 <li><tt class="docutils literal"><span class=
897 "pre">/etc/apt/sources.list</span></tt></li>
899 <li><tt class="docutils literal"><span class=
900 "pre">/etc/apt/apt.conf</span></tt></li>
903 <div class="section" id="sources-list">
904 <h3><a class="toc-backref" href=
905 "#id13">1.7.1 sources.list</a></h3>
907 <p>Questo file contiene i sorgenti da cui <em>apt</em>
908 preleva i pacchetti da installare tramite <em>dpkg</em>,
909 vengono quindi precisati i metodi (ad es. http / ftp /
910 cdrom / file), la release che si vuole tracciare (es
911 <tt class="docutils literal"><span class=
912 "pre">stable,</span> <span class="pre">testing,</span>
913 <span class="pre">unstable</span></tt> oppure i
914 corrispondenti release name es: <tt class=
915 "docutils literal"><span class="pre">Lenny,</span>
916 <span class="pre">Squeeze,</span> <span class=
917 "pre">Sid</span></tt>), i rami di interesse (es:
918 <tt class="docutils literal"><span class=
919 "pre">main</span></tt> che e' l'archivio principale,
920 <tt class="docutils literal"><span class=
921 "pre">non-free</span></tt> per il software non libero,
922 <tt class="docutils literal"><span class=
923 "pre">contrib</span></tt> per i pacchetti non realizzati
924 dai manutentori ufficiali).</p>
926 <p>Gli archivi sono generalmente:</p>
929 <li><tt class="docutils literal"><span class=
930 "pre">deb</span></tt> per pacchetti Debian binari</li>
932 <li><tt class="docutils literal"><span class=
933 "pre">deb-src</span></tt> per i pacchetti sorgenti
934 (quindi da compilare, come il kernel) degli stessi
935 pacchetti binari. In genere se non compilate spesso
936 potete evitare di tracciare i sorgenti per risparmiare
940 <p><tt class="docutils literal"><span class=
941 "pre">/etc/apt/sources.list</span></tt></p>
942 <pre class="literal-block">
943 # esempio di accesso a un CDROM:
944 # cdrom:[Debian GNU/Linux 5.0.1 _Lenny_ - Official i386 kde-CD Binary-1 20090$
946 # Archivio principale debian via http su piffa.net,
947 # non funziona al difuori dell'aula dei corsi
948 deb http://debian.piffa.net/debian/ Lenny main
949 # deb http://debian.piffa.net/debian/ Lenny non-free contrib
951 # Mirror da kernel.org da usare a casa:
952 deb http://mirrors.eu.kernel.org/debian/ Lenny main
954 # Security dal sito principale
955 deb http://security.debian.org/ Lenny/updates main
956 deb-src http://security.debian.org/ Lenny/updates main
958 # Debian volatile per le cose soggette a cambiamenti non legati
959 # a dinamiche di sicurezza
960 deb http://volatile.debian.org/debian-volatile Lenny/volatile main
961 deb-src http://volatile.debian.org/debian-volatile Lenny/volatile main
963 # Esempio di accesso a un filesystem locale contenente i pacchetti:
964 # deb file:/mnt/mirror Sid main non-free contrib
968 <div class="section" id="etc-apt-apt-conf">
969 <h3><a class="toc-backref" href=
970 "#id14">1.7.2 /etc/apt/apt.conf</a></h3>
972 <p>Questo file contiene le opzioni di apt, come ad
973 esempio il proxy:</p>
974 <pre class="literal-block">
975 Acquire::http::Proxy "http://10.10.208.254:3128"
978 <p>Si tenga conto che se si imposta un proxy per apt sul
979 proprio portatile e tornati a casa propria si vuole
980 scaricare nuovi pacchetti si dovra' disabilitare il
986 <div class="section" id="squid">
987 <h1><a class="toc-backref" href=
988 "#id15">2 Squid</a></h1>
991 <div class="section" id="apache">
992 <h1><a class="toc-backref" href=
993 "#id16">3 Apache</a></h1>
995 <p>Pacchetti da installare:</p>
996 <pre class="literal-block">
1000 <p>Con la release 2.0 di Apache viene automaticamente resa
1001 disponibile anche la versione SSL (Secure Socket Layer,
1002 cpnnessioni criptate ) del web server.</p>
1004 <div class="section" id="configurazione-di-apache">
1005 <h2><a class="toc-backref" href=
1006 "#id17">3.1 Configurazione di
1009 <p>I file di configurazione di apache si trovano nella
1010 cartella: <tt class="docutils literal"><span class=
1011 "pre">/etc/apache2</span></tt> e sono strutturati come
1012 descritto nel file <tt class=
1013 "docutils literal"><span class="pre">/usr/share/doc/apache2/README.Debian.gz</span></tt>
1014 . Sostanzialmente lo schema e' il seguente:</p>
1016 <dl class="docutils">
1017 <dt>apache2.conf</dt>
1019 <dd>File di configurazione principale del servizio
1020 httpd.conf e' il vecchio file di configurazione di
1021 Apache1, presente per motivi di retrocompatibilita' e'
1022 generalemente vuoto.</dd>
1026 <dd>In questo file vengono specificate le porte sulle
1027 quali resta in ascolto il server web. Si noti che
1028 utilizzando dei virtual hosts generalmente viene
1029 specificata per questi la porta su cui ascoltare nel file
1030 di configurazione del virtual host, ad es: <tt class=
1031 "docutils literal"><span class=
1032 "pre"><VirtualHost</span> <span class=
1033 "pre">*:80></span></tt></dd>
1035 <dt>sites-available</dt>
1037 <dd>In questa cartella vengono raccolti i file di
1038 configurazione dei virtual host disponibili.</dd>
1040 <dt>sites-enabled</dt>
1042 <dd>In questa cartella sono contenuti dei link simbolici
1043 ai files in ../sites-available : se il link e' presente
1044 in questa cartella il virtual host e' abilitato.</dd>
1046 <dt>mods-available</dt>
1048 <dd>Stesso metodo per i moduli: in questa cartella ci
1049 sono i moduli veri e propri che verranno poi abilitati
1050 grazie all'esistenza di link simbolici nella cartella
1053 <dt>mods-enabled</dt>
1055 <dd>Moduli abilitati, effettivamente caricati.</dd>
1059 <div class="section" id="apache-conf">
1060 <h2><a class="toc-backref" href=
1061 "#id18">3.2 apache.conf</a></h2>
1063 <p>File di configurazione del servizio Apache, contiene le
1064 impostazioni generiche (ad esempio utilizzo della RAM e
1065 risorse di sistema) dell'intero servizio. Nella
1066 configurazione di default per Debian non viene definito un
1067 vero e proprio sito di default ma solo dei virtual
1070 <p>Guardiamo alcune direttive interessanti:</p>
1072 <dl class="docutils">
1075 <dd>Numero di secondi da aspettare prima di chiudere la
1076 connessione con il client. Questo parametro serve a
1077 liberare le risorse di sistema nel caso che un client,
1078 magar a causa di una connessione particolarmente lenta o
1079 instabili, tenga attivo indefinitivamente un processo di
1084 <dd>L'estensione keep-alive (http 1.0) congiuntamente
1085 alle connessioni persistenti (http 1.1) permettono al
1086 server di rispondere a piu' richieste dei client mediante
1087 la stessa connessione. Il protocoll http per sua natura
1088 e' connectio-less e senza stato, quindi ogni risorsa
1089 richiesta (per pagine web si pensi ad esempio alle
1090 immagini) dal client necessita di una connessione
1091 autonoma. Keep-alive permette di ottimizzare la
1092 connessione anche fino al 50% a seconda delle situazioni
1095 <dt>Server-Pool Size Regulation</dt>
1097 <dd>Questi parametri (StartServers, MinSpareServers, ecc.
1098 Tutti spiegati nel manuale di apache) servono per
1099 attribuire le risorse di sistema disponibili al server
1100 Apache. Tenere questi parametri bassi serve a limitare il
1101 rischio di Denial of Service per il server, nel caso
1102 offra altri servizi. I settagi di default sono come
1103 sempre abbastanza conservativi, se si conta di usare il
1104 proprio Apache per servire un sito web con molti
1105 visitatori sara' necessario aumentare sensibilmente le
1106 impostazioni di base.</dd>
1108 <dt>AccessFileName</dt>
1110 <dd>Il nome del file che viene onorato per modificare le
1111 impostazioni per una singola directory, legato alla
1112 direttiva AllowOverride .</dd>
1116 <div class="section" id="installazione-di-php">
1117 <h2><a class="toc-backref" href=
1118 "#id19">3.3 Installazione di PHP</a></h2>
1120 <p>Pacchetti da installare: <tt class=
1121 "docutils literal"><span class="pre">php5</span>
1122 <span class="pre">php-pear</span></tt></p>
1124 <div class="section" id="test-del-modulo-php">
1125 <h3><a class="toc-backref" href=
1126 "#id20">3.3.1 Test del modulo
1129 <p>Creare nella cartella <tt class=
1130 "docutils literal"><span class="pre">/var/www</span></tt>
1131 (o altra cartella visibile) un file con estensione *.php
1132 (es <tt class="docutils literal"><span class=
1133 "pre">/var/ww/info.php</span></tt> contenete codice php
1134 eseguibile dall'interprete, ad es:</p>
1135 <pre class="literal-block">
1136 <?php phpinfo() ; ?>
1139 <p>Questa funzione di php generera' la tipica pagina con
1140 le impostazioni attuali per php, se richiamando la pagina
1141 (es: <tt class="docutils literal"><span class=
1142 "pre">http://localhost/info.php</span></tt> ) verra
1143 generata la pagina e resa disponibile tramite apache agli
1144 utenti allora l'integrazione tra PHP e Apache sara'
1145 corretta. In caso contrario se il client http proporra di
1146 scaricare la pagina invece che visualizzarla nel browser:
1147 non funziona l'interprete di php o sono mal configurati i
1151 <div class="section" id=
1152 "installazione-del-supporto-per-mysql">
1153 <h3><a class="toc-backref" href=
1154 "#id21">3.3.2 Installazione del supporto
1157 <p>Installare i pacchetti:</p>
1158 <pre class="literal-block">
1159 php5-mysql phpmyadmin
1162 <p>Controllare tramite la pagina php.info che sia
1163 abilitato il supporto per Mysql (ripartito Apache,
1164 ricaricare la pagina e cercare con CTRL+f <tt class=
1165 "docutils literal"><span class=
1166 "pre">mysql</span></tt>).</p>
1169 <div class="section" id="phpmyadmin">
1170 <h3><a class="toc-backref" href=
1171 "#id22">3.3.3 phpmyadmin</a></h3>
1173 <p>L'interfaccia web Phpmyadmin non richede
1174 necessariamente la presenza di un database Mysql locale,
1175 puo' infatti essere utilizzata per gestire databases
1176 remoti (il suo file di configurazione: <tt class=
1177 "docutils literal"><span class=
1178 "pre">/etc/phpmyadmin/config.inc.php</span></tt> ). Nel
1179 caso si voglia installare localmente Mysql si utilizzi il
1180 pacchetto <tt class="docutils literal"><span class=
1181 "pre">mysql-server</span></tt> .</p>
1183 <p>Phpmyadmin dovrebbe essere disponibile all'URL:
1184 <tt class="docutils literal"><span class=
1185 "pre">http://localhost/phpmyadmin/</span></tt>, se cosi
1186 non fosse controllare che sia incluso il file <tt class=
1187 "docutils literal"><span class=
1188 "pre">/etc/phpmyadmin/apache.conf</span></tt> in
1189 <tt class="docutils literal"><span class=
1190 "pre">/etc/apache2/conf.d/</span></tt> .</p>
1193 <div class="section" id=
1194 "installazione-del-supporto-per-postgresql">
1195 <h3><a class="toc-backref" href=
1196 "#id23">3.3.4 Installazione del supporto
1197 per Postgresql</a></h3>
1199 <p>Installare i pacchetti:</p>
1200 <pre class="literal-block">
1201 php5-pgsql phppgadmin
1204 <p>Controllare tramite la pagina php.info che sia
1205 abilitato il supporto per PostgreSQL (ripartito Apache,
1206 ricaricare la pagina e cercare con CTRL+f <tt class=
1207 "docutils literal"><span class=
1208 "pre">pgsql</span></tt>).</p>
1212 <div class="section" id="virtual-hosts">
1213 <h2><a class="toc-backref" href=
1214 "#id24">3.4 Virtual hosts</a></h2>
1218 <li><a class="reference external" href=
1219 "http://www.apacheweek.com/features/vhost">http://www.apacheweek.com/features/vhost</a></li>
1221 <li><a class="reference external" href=
1222 "http://www.onlamp.com/pub/a/apache/2004/01/08/apacheckbk.html">
1223 http://www.onlamp.com/pub/a/apache/2004/01/08/apacheckbk.html</a></li>
1227 <p>I virtual host permettono di avere piu' siti internet
1228 disponibile tramite lo stesso server web, eventualmente
1229 mappati su un solo indirizzo ip. Sono generalemente di due
1234 <li>Basati su indirizzi ip diversi. Se si ha la
1235 possibilita' di avere piu' indirizzi ip dedicati per i
1236 diversi siti che si vuole servire. ES: <VirtualHost
1237 192.168.0.2:80> . Soluzione dispendiosa, si tende ad
1238 usarla solo se servono certificati di sicurezza (SSL )
1239 dedicati per ogni sito.</li>
1241 <li>Basati su nomi di dominio diversi che puntano allo
1242 stesso ip. Soluzione piu' economica e diffusa che si
1243 basa sulle funzionalita' di http 1.1 .</li>
1247 <p>Prenderemo in esame la gestione di virtual hosts basati
1248 su nomi di dominio.</p>
1250 <div class="section" id="gestione-dns">
1251 <h3><a class="toc-backref" href=
1252 "#id25">3.4.1 Gestione DNS</a></h3>
1254 <p>Prima di tutto per poter impostare i virtual hosts
1255 dovete avere un server DNS che risolva i vostri nomi di
1256 dominio sull'indirizzo ip del server. Questo si puo'
1257 ottenere in vari modi, ad es:</p>
1261 <li>Bind Impostare i campi A nelle proprie zone
1262 gestite dal server dns Bind. Ad es: <tt class=
1263 "docutils literal"><span class=
1264 "pre">papo</span>
1266 "pre">A</span>
1267 <span class="pre">212.22.136.248</span></tt></li>
1269 <li>Servizio DNS dinamico on line. Utilizzare un
1270 servizio come ad es: <a class="reference external"
1272 "https://www.dyndns.com/">https://www.dyndns.com/</a>
1273 per mappare nomi di dominio sul proprio indirizzo ip,
1274 comodo ad esempio se si dispone di un indirzzo ip
1275 pubblico (anche se dinamico) per la propria
1276 connessione ad internet.</li>
1278 <li>Dnsmasq Utilizzabile a livello locale per fare
1279 dei test, utilizzando direttive come: <tt class=
1280 "docutils literal"><span class=
1281 "pre">address=/davide.piffa.net/10.10.208.178</span></tt></li>
1283 <li>/etc/hosts Per prove <em>strettamente a livello
1284 locale</em> potete impostare i nomi dei vostri
1285 virtual server nel file /etc/hosts .</li>
1289 <p>Testare con dig (disponibile nel pacchetto <tt class=
1290 "docutils literal"><span class="pre">dnsutils</span></tt>
1291 ) il nome di dominio che si vuole utilizzare:</p>
1292 <pre class="literal-block">
1295 ; <<>> DiG 9.5.1-P1 <<>> 177.piffa.net
1296 ;; global options: printcmd
1298 ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 38036
1299 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
1301 ;; QUESTION SECTION:
1302 ;177.piffa.net. IN A
1305 177.piffa.net. 0 IN A 10.10.208.177
1307 ;; Query time: 12 msec
1308 ;; SERVER: 10.10.208.254#53(10.10.208.254)
1309 ;; WHEN: Wed May 6 12:27:08 2009
1310 ;; MSG SIZE rcvd: 47
1313 <p>La parte interessante e' <tt class=
1314 "docutils literal"><span class=
1315 "pre">177.piffa.net.</span>
1317 "pre">0</span>
1318 <span class="pre">IN</span>
1320 "pre">A</span>
1321 <span class="pre">10.10.208.177</span></tt> . Il nome di
1322 dominio 177.piffa.net viene risolto sull'ip 10.10.208.177
1323 , nel nostro Apache (che risponde all'ip 10.10.208.177 )
1324 dovra' essere disponibile un virtual host che corrisponde
1325 al nome <tt class="docutils literal"><span class=
1326 "pre">177.piffa.net</span></tt> .</p>
1329 <div class="section" id="virtual-host">
1330 <h3><a class="toc-backref" href=
1331 "#id26">3.4.2 Virtual host</a></h3>
1333 <p>Esempio di Virtual host</p>
1337 <div class="section" id="user-authentication">
1338 <h2><a class="toc-backref" href=
1339 "#id27">3.5 User Authentication</a></h2>
1341 <p>link: <a class="reference external" href=
1342 "http://www.apacheweek.com/features/userauth">http://www.apacheweek.com/features/userauth</a></p>
1345 <div class="section" id="cavets">
1346 <h2><a class="toc-backref" href=
1347 "#id28">3.6 Cavets</a></h2>
1349 <p>Problemi di cache:</p>
1353 <li>Proxy: nei settaggi del browser specificare di non
1354 utilizzare un server proxy http per il sito web locale
1355 (o per gli altri che si stanno monitorando). Se si ha
1356 il controllo del proxy server: stopparlo, ricaricare la
1357 pagina (operazione che fallira'), far ripartire il
1358 proxy, ricaricare la pagina.</li>
1360 <li>Provare con un altro browser, o cercare di svuotare
1361 la cache chiudere/riaprire l'applicativo. Provare a
1362 fermare Apache, ricaricare la pagina (operazione che
1363 fallira'), far ripartire il Apache, ricaricare la
1370 <div class="section" id="domain-name-system">
1371 <h1><a class="toc-backref" href=
1372 "#id29">4 Domain Name System</a></h1>
1374 <div class="section" id=
1375 "informazioni-di-base-sul-servizio-dns">
1376 <h2><a class="toc-backref" href=
1377 "#id30">4.1 Informazioni di base sul
1378 servizio DNS.</a></h2>
1380 <p>Domain Name System (spesso indicato con DNS) è un
1381 servizio utilizzato per la risoluzione di nomi di host in
1382 indirizzi IP e viceversa. Il servizio è realizzato tramite
1383 un database distribuito, costituito dai server DNS.</p>
1385 <p>Il nome DNS denota anche il protocollo che regola il
1386 funzionamento del servizio, i programmi che lo
1387 implementano, i server su cui questi girano, l'insieme di
1388 questi server che cooperano per fornire il servizio.</p>
1390 <p>I nomi DNS, o "nomi di dominio", sono una delle
1391 caratteristiche più visibili di Internet.</p>
1393 <p>C'è confusione in merito alla definizione
1394 dell'acronimo: la S spesso viene interpretata come service,
1395 ma la definizione corretta è system.</p>
1397 <p>L'operazione di convertire un nome in un indirizzo è
1398 detta risoluzione DNS, convertire un indirizzo IP in nome
1399 è detto risoluzione inversa.</p>
1402 <div class="section" id="nomi-di-dominio">
1403 <h2><a class="toc-backref" href=
1404 "#id31">4.2 Nomi di dominio</a></h2>
1406 <p>Un nome a dominio è costituito da una serie di stringhe
1407 separate da punti, ad esempio it.wikipedia.org. A
1408 differenza degli indirizzi IP, dove la parte più
1409 importante del numero è la prima partendo da sinistra, in
1410 un nome DNS la parte più importante è la prima partendo
1411 da destra. Questa è detta dominio di primo livello (o TLD,
1412 Top Level Domain), per esempio .org o .it.</p>
1414 <p>Un dominio di secondo livello consiste in due parti, per
1415 esempio wikipedia.org, e così via. Ogni ulteriore elemento
1416 specifica un'ulteriore suddivisione. Quando un dominio di
1417 secondo livello viene registrato all'assegnatario, questo
1418 è autorizzato a usare i nomi di dominio relativi ai
1419 successivi livelli come it.wikipedia.org (dominio di terzo
1420 livello) e altri come some.other.stuff.wikipedia.org
1421 (dominio di quinto livello) e così via.</p>
1424 <div class="section" id="tipologie-di-record">
1425 <h2><a class="toc-backref" href=
1426 "#id32">4.3 Tipologie di record</a></h2>
1428 <p>Ad un nome DNS possono corrispondere diversi tipi di
1429 informazioni. Per questo motivo, esistono diversi tipi di
1430 record DNS. Ogni voce del database DNS deve essere
1431 caratterizzata da un tipo. I principali tipi sono:</p>
1434 <li>Record A - Indica la corrispondenza tra un nome ed
1435 uno (o più) indirizzi IP (per la precisione indirizzi
1436 IPv4, ovvero la versione attualmente in uso).</li>
1438 <li>Record MX - (Mail eXchange) indica a quali server
1439 debba essere inviata la posta elettronica per un certo
1442 <li>Record CNAME - Sono usati per creare un alias, ovvero
1443 per fare in modo che lo stesso calcolatore sia noto con
1444 più nomi. Uno degli utilizzi di questo tipo di record
1445 consiste nell'attribuire ad un host che offre più
1446 servizi un nome per ciascun servizio. In questo modo, i
1447 servizi possono poi essere spostati su altri host senza
1448 dover riconfigurare i client, ma modificando solo il
1451 <li>Record PTR - Il DNS viene utilizzato anche per
1452 realizzare la risoluzione inversa, ovvero per far
1453 corrispondere ad un indirizzo IP il corrispondente nome a
1454 dominio. Per questo si usano i record di tipo "PTR" (e
1455 una apposita zona dello spazio dei nomi
1458 <li>Record AAAA - Restituisce un indirizzo IPv6.</li>
1460 <li>Record SRV - Identificano il server per un
1461 determinato servizio all'interno di un dominio. Possono
1462 essere considerati una generalizzazione dei record
1465 <li>Record TXT - Associano campi di testo arbitrari ad un
1466 dominio. Questi campi possono contenere una descrizione
1467 informativa oppure essere utilizzati per realizzare
1471 <p>Vi sono anche tipi di record "di servizio", necessari al
1472 funzionamento del database distribuito: * Record NS -
1473 Utilizzato per indicare quali siano i server DNS
1474 autoritativi per un certo dominio, ovvero per delegarne la
1475 gestione. * Record SOA - (Start of Authority) usato per la
1476 gestione delle zone DNS.</p>
1479 <div class="section" id="utilizzo">
1480 <h2><a class="toc-backref" href=
1481 "#id33">4.4 Utilizzo</a></h2>
1483 <p>I computer vengono identificati in rete grazie agli
1484 indirizzi <em>IP</em>, questi pero' non sono comodi per gli
1485 utenti come riferimento per i vari server. Ad esempio
1486 sarebbe scomodoriferirsi al motore di ricerca Goggle con
1487 uno dei suoi IP: <tt class="docutils literal"><span class=
1488 "pre">74.125.43.104</span></tt>, e' preferibile usare il
1489 nome di dominio <em>www.google.com</em>:</p>
1490 <pre class="literal-block">
1491 ping -c 1 www.google.com
1492 PING www.l.google.com (74.125.43.104) 56(84) bytes of data.
1496 <div class="section" id="risoluzione-dei-nomi-di-dominio">
1497 <h2><a class="toc-backref" href=
1498 "#id34">4.5 Risoluzione dei nomi di
1501 <p>Ci sono vari strumenti per interrogare i server DNS e
1502 ottenere l'indirizzo IP associato al nome di dominio che ci
1504 <pre class="literal-block">
1505 $ host www.piffa.net
1506 www.piffa.net is an alias for piffa.net.
1507 piffa.net has address 65.98.21.97
1508 piffa.net mail is handled by 10 65.98.21.97
1511 $ nslookup www.piffa.net
1512 Server: 192.168.0.10
1513 Address: 192.168.0.10#53
1515 Non-authoritative answer:
1516 www.piffa.net canonical name = piffa.net.
1518 Address: 65.98.21.97
1523 ; <<>> DiG 9.6.0-P1 <<>> www.piffa.net
1524 ;; global options: +cmd
1526 ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 47751
1527 ;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 4, ADDITIONAL: 4
1529 ;; QUESTION SECTION:
1530 ;www.piffa.net. IN A
1533 www.piffa.net. 3489 IN CNAME piffa.net.
1534 piffa.net. 3489 IN A 65.98.21.97
1536 ;; AUTHORITY SECTION:
1537 piffa.net. 86289 IN NS ns2.mydomain.com.
1538 piffa.net. 86289 IN NS ns1.mydomain.com.
1539 piffa.net. 86289 IN NS ns4.mydomain.com.
1540 piffa.net. 86289 IN NS ns3.mydomain.com.
1542 ;; ADDITIONAL SECTION:
1543 ns1.mydomain.com. 96208 IN A 64.94.117.193
1544 ns2.mydomain.com. 96208 IN A 64.94.31.67
1545 ns3.mydomain.com. 96208 IN A 66.150.161.137
1546 ns4.mydomain.com. 96208 IN A 63.251.83.74
1548 ;; Query time: 1 msec
1549 ;; SERVER: 192.168.0.10#53(192.168.0.10)
1550 ;; WHEN: Sun May 10 21:23:11 2009
1551 ;; MSG SIZE rcvd: 209
1556 <div class="section" id="dnsmasq">
1557 <h1><a class="toc-backref" href=
1558 "#id35">5 DNSmasq</a></h1>
1560 <p>Dnsmasq puo' svolgere le funzioni di un DNS cache /
1561 forwarder e un server DHCP caratterizzato dalla facilita' di
1562 configurazione, dalla leggerezza e dalla possibilita' di
1563 modificare rapidamente i record DNS serviti alla rete. Puo'
1564 essere anche utilizzato come <cite>server per il boot da rete
1565 <http://www.debian-administration.org/articles/478>_</cite>
1568 <p>Dnsmasq e' un interessante alternativa all'uso del server
1569 DNS Bind in modalita' cache-only (non autoritativo)
1570 accompagnato dal server DHCPD. I vantaggi sono:</p>
1573 <li>Leggerezza: puo' essere fatto girare su una macchina
1574 relativamente debole in caso di bisogno.</li>
1576 <li>Rapidita' di configurazione (in particolare per servire
1577 dei record A / MX alla rete, modificando al volo i valori
1578 originali ospitati sul server DNS Publico).</li>
1580 <li>Ben integrato con connssioni PPP (utile se dovete
1581 rendere disponibile rapidamente una connessione a internet
1582 a una rete in difficolta').</li>
1585 <p>Tutto cio' rende Dnsmasq una soluzione valida in
1586 particolare quando si deve intervenire in una rete
1587 pre-esistente in cui il server principale e' in crisi: si
1588 potra' utilizzare Dnsmasq anche su una macchina piu' debole e
1589 <em>mascherare</em> i servizi al momento non disponibili.
1590 Molto utile per scopi didattici, sopratutto per testare
1591 server SMTP impostando al volo i campi MX per nomi di dominio
1595 <div class="section" id="samba">
1596 <h1><a class="toc-backref" href=
1597 "#id36">6 Samba</a></h1>
1599 <p>Samba e' un progetto libero che fornisce servizi di
1600 condivisione di file e stampanti a client SMB/CIFS.</p>
1602 <p>Samba e' liberamente disponibile, al contrario di altre
1603 implementazioni SMB/CIFS, e permette di ottenere
1604 interoperabilita' tra Linux, Unix, Mac OS X e Windows.</p>
1606 <p>Samba e' un software che puo girare su piattaforme che non
1607 siano Microsoft Windows, per esempio, UNIX, Linux, IBM System
1608 390, OpenVMS e altri sistemi operativi. Samba utilizza il
1609 protocollo TCP/IP utilizzando i servizi offerti sul server
1610 ospite. Quando correttamente configurato, permette di
1611 interagire con client o server Microsoft Windows come se
1612 fosse un file e print server Microsoft agendo da Primary
1613 Domain Controller (PDC) o come Backup Domain Controller, puo'
1614 inoltre prendere parte ad un dominio Active Directory.</p>
1616 <div class="section" id="pacchetti">
1617 <h2><a class="toc-backref" href=
1618 "#id37">6.1 Pacchetti</a></h2>
1620 <p>Pacchetti da installare per utilizzare Samba in
1621 modalita' client <a class="footnote-reference" href="#id4"
1622 id="id3" name="id3">[2]</a></p>
1623 <pre class="literal-block">
1627 <p>Pacchetti da installare per utilizzare Samba in
1628 modalita' server:</p>
1629 <pre class="literal-block">
1630 samba smbfs smbclient
1633 <table class="docutils footnote" frame="void" id="id4"
1640 <tbody valign="top">
1642 <td class="label"><a class="fn-backref" href=
1645 <td>Anche se nato per i sistemi Windows, Samba puo'
1646 essere usato anche per montare cartelle sotto
1647 GNU/Linux come alternativa a NFS. Per la condivisione
1648 di stampanti sarebbe invece opportuno intervenire
1649 direttamente su <tt class=
1650 "docutils literal"><span class=
1651 "pre">CUPS</span></tt>.</td>
1656 <p>Durante la prima installazione viene chiesto il nome del
1657 gruppo di appartenenza, il default per Windows e'
1658 <tt class="docutils literal"><span class=
1659 "pre">WORKGROUP</span></tt>. In aula usiamo invece
1660 <tt class="docutils literal"><span class=
1661 "pre">208</span></tt> .</p>
1663 <p>Per riconfigurare Samba si usi il comando:</p>
1664 <pre class="literal-block">
1665 dpkg-reconfigure samba-common
1669 <div class="section" id="passwords-e-autenticazione">
1670 <h2><a class="toc-backref" href=
1671 "#id38">6.2 Passwords e
1672 autenticazione</a></h2>
1674 <p>Per poter configurare Samba in modo che usi un sistema
1675 di negoziazione degli accessi alle cartelle condivise
1676 basato su accoppiate <em>nome utente / password</em>
1677 bisogna distinguere tra 3 livelli di password (e
1678 generalmente volete usare <em>sempre la stessa
1679 password</em> per ognuno di questi) e delle differenze tra
1680 le modalita' di <em>autenticazione</em> (e quindi anche di
1681 criptaggio delle passwords) usate da sistemi GNU/Linux e
1684 <dl class="docutils">
1685 <dt>1 Sistema *Unix ( GNU/Linux )</dt>
1687 <dd>E' la password dell'<em>utente di sistema</em> che
1688 viene usata sul sistema operativo su cui gira il software
1689 Samba. E' importante tenere conto anche delle
1690 <em>user-id</em> e <em>group-id</em> degli utenti che
1691 dovranno fisicamente scrivere sui file system. Se un
1692 utente non puo' scrivere in una certa posizione del file
1693 system (ad esempio nella cartella <tt class=
1694 "docutils literal"><span class=
1695 "pre">/mnt/condivisione</span></tt> che sara' stata
1696 necessariamente creata inizialmente dall'utente
1697 <tt class="docutils literal"><span class=
1698 "pre">root</span></tt>) per mancanza dei privilegi di
1699 scrittura allora neanche Samba potra' farlo nel momento
1700 in mette a disposizione la risorsa all'utente. Se si
1701 montano file-system dedicati per le condivisioni
1702 controllare i permessi e propieta' dei <em>punti di
1703 mount*</em>. Queste passwords sono salvate nel solito
1704 file /etc/shadow (richiamato da /etc/passwd).</dd>
1706 <dt>2 Password per l'applicativo Samba</dt>
1708 <dd>Samba deve essere compatibile con Windows e quindi
1709 utilizzare un sistema di criptazione delle password
1710 diverso da /etc/shadow . Le password per Samba possono
1711 essere gestite ad esempio col comando <tt class=
1712 "docutils literal"><span class=
1713 "pre">smbpasswd</span></tt> e vengono generalmente
1714 salvate all'interno di <tt class=
1715 "docutils literal"><span class=
1716 "pre">/var/lib/samba/passdb.tdb</span></tt> .</dd>
1718 <dt>3 Password per Windows.</dt>
1720 <dd>Gli utenti Windows effettuano il log-in alla partenza
1721 della sessione di Windows. Se si avra' l'accortezza di
1722 usare sempre la <em>stessa password</em> data
1723 precedentemente anche a Windows (o viceversa impostare la
1724 password per GNU/Linux / Samba uguale a quella di
1725 Windows) l'utente potra' accedere automaticamente alle
1726 condivisioni a lui disponibili.</dd>
1730 <div class="section" id="creazione-utenti">
1731 <h2><a class="toc-backref" href=
1732 "#id39">6.3 Creazione Utenti</a></h2>
1734 <p>Creiamo per primo l'utente sotto GNU/Linux, facendo
1735 attenzione a <em>non dargli una shell di sistema</em>. Gli
1736 utenti Windows che accedono al server solo per le
1737 condivisioni non hanno bisogno di poter eseguire comandi
1740 <p>Creazione di un utente denominato sambo:</p>
1741 <pre class="literal-block">
1742 adduser --shell /bin/false sambo
1745 <p>Nel file <tt class="docutils literal"><span class=
1746 "pre">/etc/passwd</span></tt> avremo qualcosa come:</p>
1747 <pre class="literal-block">
1748 sambo:x:1001:1001:Sambo utente Samba,,,:/home/sambo:/bin/false
1751 <p>Aggiunta dell'utente al database delle password per
1752 Samba e generazione della sua password:</p>
1753 <pre class="literal-block">
1757 <p>Se successivamente si vorra' modificare la password di
1758 un utente gia' esistente si usi:</p>
1759 <pre class="literal-block">
1763 <p>La password sotto Windows verra' modificata sul sistema
1767 <div class="section" id="creare-la-condivisione">
1768 <h2><a class="toc-backref" href=
1769 "#id40">6.4 Creare la
1770 condivisione</a></h2>
1772 <p>La condivisione altro non e' che una cartella sul server
1773 che viene resa disponibile ai client negoziando l'accesso
1774 in base a una autenticazione basata su <em>user-name /
1775 password</em>. E' per altro possibile permettere l'accesso
1776 a una risorsa a chiunque indiscriminatamente (a tutti i
1777 <tt class="docutils literal"><span class=
1778 "pre">guest</span></tt>) ma la cosa e' sconsigliabile dal
1779 punto di vista della sicurezza. Si decida se la cartella
1780 condivisa debba risiedere nella <em>home</em> di un utente
1781 (nel caso quest'ultimo ne sia l'unico fruitore) o in una
1782 cartella in /mnt/ (nel caso piu' utenti accedano a questa).
1783 Nel secondo caso si potranno gestire gli accessi sotto
1784 GNU/Linux tramite i gruppi.</p>
1786 <p>Creazione della risorsa sambo_share nella home
1787 dell'utente sambo:</p>
1788 <pre class="literal-block">
1789 # mkdir /home/sambo/sambo_share
1790 # chown sambo:sambo /home/sambo/sambo_share/
1793 <div class="section" id=
1794 "sicurezza-permessi-di-esecuzione-sul-server">
1795 <h3><a class="toc-backref" href=
1796 "#id41">6.4.1 Sicurezza: permessi di
1797 esecuzione sul server</a></h3>
1799 <p>Bisognerebbe notare sul server i permessi di
1800 esecuzione del file-system che ospita la cartella da
1801 condividere. Se i file che saranno contenuti nella
1802 condivisione saranno da usarsi sotto Windows non c'e'
1803 motivo che questi siano eseguibili sotto GNU/Linux. Si
1804 potrebbe avere quindi, ipotizzando una condivisione in
1805 <tt class="docutils literal"><span class=
1806 "pre">/mnt/share</span></tt> che risieda su di un file
1807 system dedicato:</p>
1809 <p><tt class="docutils literal"><span class=
1810 "pre">/etc/fstab</span></tt></p>
1813 /dev/hda10 /mnt/share ext3 rw,
1814 <strong>nosuid,noexec</strong> 0 3
1817 <p>Si noti anche l'uso di <em>nosuid</em> per evitare la
1818 possibilita' di eseguire programmi con credenziali
1823 <div class="section" id=
1824 "configurazione-dell-applicativo-samba-vero-e-proprio">
1825 <h2><a class="toc-backref" href=
1826 "#id42">6.5 Configurazione
1827 dell'applicativo Samba vero e proprio.</a></h2>
1829 <p>Avendo preparato gli utenti (ancora una volta: non si
1830 dia una shell completa a un utente che serve solo per Samba
1831 o la posta elettronica) e la cartella sul file system si
1832 puo' procedere a configurare la condivisione su Samba.</p>
1834 <p>/etc/samba/smb.conf riga ~235 , Share Definitions (in
1835 vim si usi 235gg ):</p>
1836 <pre class="literal-block">
1838 # Percorso della cartella condivisa
1839 path = /home/sambo/sambo_share
1840 # Se gli utenti possono scrivere / modificare file
1842 # Negoziazione degli accessi su base utenti / passwords
1845 # #######################################
1846 # Altri parametri opzionali di interesse
1847 # Se posso vedere la condivisione da esplora risorse
1848 # anche se non ho i privilegi per accedervi.
1850 # Commento indicativo della risorsa
1851 comment = Condivisione per Sambo
1854 <p>Dopo aver salvato il file si puo' fare un primo
1855 controllo tramite l'utility <tt class=
1856 "docutils literal"><span class="pre">testparm</span></tt> ,
1857 che controlla la sintassi del file di configurazione di
1858 Samba. Se questo non rileva problemi si puo' procedere a un
1859 <tt class="docutils literal"><span class="pre">#</span>
1860 <span class="pre">/etc/init.d/samba</span> <span class=
1861 "pre">restart</span></tt> .</p>
1864 <div class="section" id="testare-il-servizio">
1865 <h2><a class="toc-backref" href=
1866 "#id43">6.6 Testare il Servizio</a></h2>
1868 <p>Come testare il servizio</p>
1871 <pre class="literal-block">
1872 smbclient -U sambo -L localhost
1875 <p>Questo comando permette di esplorare la risorsa
1876 qualificandosi come utente, in questo modo potete testare
1877 il corretto funzionamento dell'autenticazione. Si provi
1878 inizialmente a sbagliare la password deliberatamente, poi a
1879 inserirla correttamente: dovrebbero essere visibili le
1880 risorse disponibili al solo utente sambo: la suo /home e la
1881 cartella samba_share:</p>
1882 <pre class="literal-block">
1883 Sharename Type Comment
1884 --------- ---- -------
1885 sambo_share Disk Condivisione per Sambo
1886 print$ Disk Printer Drivers
1887 IPC$ IPC IPC Service (base server)
1888 sambo Disk Home Directories
1891 <p>In particolare l'ultima voce relativa alla home
1892 directory dell'utente dovrebbe essere visibile solo agli
1893 utenti autenticati.</p>
1895 <p>In alternativa e' possibile montare realmente la
1896 condivisone anche su GNU/Linux tramite un client per samba
1897 e testarne il corretto funzionamento:</p>
1898 <pre class="literal-block">
1899 mount -t smbfs //localhost/sambo_share /mnt/sambo_mount/ --verbose -o user=sambo
1904 <div class="section" id="note">
1905 <h1><a class="toc-backref" href=
1906 "#id44">7 NOTE</a></h1>
1909 <li>controllare apache</li>
1912 <p>sintassi: in <tt class="docutils literal"><span class=
1913 "pre">monospace</span></tt> :</p>
1916 <li>nomi di files</li>