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.4</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="id6" name=
342 "id6">1 Configurazione sistema</a>
344 <ul class="auto-toc">
345 <li><a class="reference internal" href=
346 "#solo-per-uso-interno" id="id7" name=
347 "id7">1.1 Solo per uso
350 <li><a class="reference internal" href="#rete" id="id8"
351 name="id8">1.2 Rete</a></li>
353 <li><a class="reference internal" href=
354 "#bash-completion" id="id9" name=
355 "id9">1.3 Bash completion</a></li>
357 <li><a class="reference internal" href="#vim" id="id10"
358 name="id10">1.4 Vim</a></li>
360 <li><a class="reference internal" href="#vnc" id="id11"
361 name="id11">1.5 VNC</a></li>
363 <li><a class="reference internal" href=
364 "#lista-dei-pacchetti-di-base" id="id12" name=
365 "id12">1.6 Lista dei pacchetti di
369 <a class="reference internal" href=
370 "#apt-configurazione" id="id13" name=
371 "id13">1.7 Apt configurazione</a>
373 <ul class="auto-toc">
374 <li><a class="reference internal" href=
375 "#sources-list" id="id14" name=
376 "id14">1.7.1 sources.list</a></li>
378 <li><a class="reference internal" href=
379 "#etc-apt-apt-conf" id="id15" name=
380 "id15">1.7.2 /etc/apt/apt.conf</a></li>
386 <li><a class="reference internal" href="#squid" id="id16"
387 name="id16">2 Squid</a></li>
390 <a class="reference internal" href="#apache" id="id17"
391 name="id17">3 Apache</a>
393 <ul class="auto-toc">
394 <li><a class="reference internal" href=
395 "#pacchetti-da-installare" id="id18" name=
396 "id18">3.1 Pacchetti da
397 installare::</a></li>
399 <li><a class="reference internal" href=
400 "#configurazione-di-apache" id="id19" name=
401 "id19">3.2 Configurazione di
404 <li><a class="reference internal" href="#apache-conf"
406 "id20">3.3 apache.conf</a></li>
409 <a class="reference internal" href=
410 "#installazione-di-php" id="id21" name=
411 "id21">3.4 Installazione di PHP</a>
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 Test del modulo
419 <li><a class="reference internal" href=
420 "#installazione-del-supporto-per-mysql" id="id23"
421 name="id23">3.4.2 Installazione
422 del supporto per Mysql</a></li>
424 <li><a class="reference internal" href=
425 "#phpmyadmin" id="id24" name=
426 "id24">3.4.3 phpmyadmin</a></li>
428 <li><a class="reference internal" href=
429 "#installazione-del-supporto-per-postgresql" id=
431 "id25">3.4.4 Installazione del
432 supporto per Postgresql</a></li>
434 <li><a class="reference internal" href=
435 "#phppgadmin" id="id26" name=
436 "id26">3.4.5 phppgadmin</a></li>
441 <a class="reference internal" href="#virtual-hosts"
442 id="id27" name="id27">3.5 Virtual
445 <ul class="auto-toc">
446 <li><a class="reference internal" href=
447 "#gestione-dns" id="id28" name=
448 "id28">3.5.1 Gestione DNS</a></li>
450 <li><a class="reference internal" href=
451 "#virtual-host" id="id29" name=
452 "id29">3.5.2 Virtual host</a></li>
457 <a class="reference internal" href=
458 "#negoziazione-accessi" id="id30" name=
459 "id30">3.6 Negoziazione accessi</a>
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 Limiti su base
467 <li><a class="reference internal" href=
468 "#user-authentication" id="id32" name=
469 "id32">3.6.2 User
470 Authentication</a></li>
474 <li><a class="reference internal" href=
475 "#definire-la-cartella" id="id33" name=
476 "id33">3.7 Definire la
479 <li><a class="reference internal" href=
480 "#creazione-del-database-delle-passwords" id="id34"
481 name="id34">3.8 Creazione del database
482 delle passwords</a></li>
484 <li><a class="reference internal" href="#id3" id="id35"
485 name="id35">3.9 Configurazione di
488 <li><a class="reference internal" href="#cavets" id=
490 "id36">3.10 Cavets</a></li>
495 <a class="reference internal" href="#domain-name-system"
496 id="id37" name="id37">4 Domain Name
499 <ul class="auto-toc">
500 <li><a class="reference internal" href=
501 "#nomi-di-dominio" id="id38" name=
502 "id38">4.1 Nomi di dominio</a></li>
504 <li><a class="reference internal" href=
505 "#tipologie-di-record" id="id39" name=
506 "id39">4.2 Tipologie di
509 <li><a class="reference internal" href="#utilizzo" id=
511 "id40">4.3 Utilizzo</a></li>
513 <li><a class="reference internal" href=
514 "#risoluzione-dei-nomi-di-dominio" id="id41" name=
515 "id41">4.4 Risoluzione dei nomi di
518 <li><a class="reference internal" href="#dig" id="id42"
519 name="id42">4.5 Dig</a></li>
523 <li><a class="reference internal" href="#dnsmasq" id="id43"
524 name="id43">5 DNSmasq</a></li>
527 <a class="reference internal" href="#samba" id="id44"
528 name="id44">6 Samba</a>
530 <ul class="auto-toc">
531 <li><a class="reference internal" href="#pacchetti" id=
533 "id45">6.1 Pacchetti</a></li>
535 <li><a class="reference internal" href=
536 "#passwords-e-autenticazione" id="id46" name=
537 "id46">6.2 Passwords e
538 autenticazione</a></li>
540 <li><a class="reference internal" href=
541 "#creazione-utenti" id="id47" name=
542 "id47">6.3 Creazione Utenti</a></li>
545 <a class="reference internal" href=
546 "#creare-la-condivisione" id="id48" name=
547 "id48">6.4 Creare la
550 <ul class="auto-toc">
551 <li><a class="reference internal" href=
552 "#sicurezza-permessi-di-esecuzione-sul-server" id=
554 "id49">6.4.1 Sicurezza: permessi
555 di esecuzione sul server</a></li>
559 <li><a class="reference internal" href=
560 "#configurazione-dell-applicativo-samba-vero-e-proprio"
562 "id50">6.5 Configurazione
563 dell'applicativo Samba vero e proprio.</a></li>
565 <li><a class="reference internal" href=
566 "#testare-il-servizio" id="id51" name=
567 "id51">6.6 Testare il
572 <li><a class="reference internal" href="#note" id="id52"
573 name="id52">7 NOTE</a></li>
577 <p>Generato con: <a class="reference external" href=
578 "http://docutils.sourceforge.net/rst.html">http://docutils.sourceforge.net/rst.html</a></p>
580 <div class="section" id="configurazione-sistema">
581 <h1><a class="toc-backref" href=
582 "#id6">1 Configurazione sistema</a></h1>
584 <div class="section" id="solo-per-uso-interno">
585 <h2><a class="toc-backref" href=
586 "#id7">1.1 Solo per uso interno</a></h2>
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>
592 <p>Qui riportati per comodita' degli studenti (e del
593 docente che non sara' <strong>mai piu'</strong> costretto a
597 <div class="section" id="rete">
598 <h2><a class="toc-backref" href=
599 "#id8">1.2 Rete</a></h2>
601 <p>Parametri della rete attualmente in uso:</p>
603 <table border="1" class="docutils">
611 <td colspan="2">Parametri della rete</td>
617 <td>10.10.208.0/24</td>
623 <td>255.255.255.0</td>
629 <td>10.10.208.255</td>
635 <td>10.10.208.254</td>
641 <td>10.10.208.250 persistente</td>
647 <td>10.10.208.254</td>
653 <td>10.10.208.250 persistente</td>
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>
668 <div class="section" id="bash-completion">
669 <h2><a class="toc-backref" href=
670 "#id9">1.3 Bash completion</a></h2>
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
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>
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
700 <pre class="literal-block">
701 echo ". /etc/bash_completion" >> ~/.bashrc
704 <p>Esempio di ~/.bahsrc</p>
705 <pre class="literal-block">
706 # ~/.bashrc: executed by bash(1) for non-login shells.
708 export PS1='\h:\w\$ '
711 # Decommentare le seguenti righr per abilitare la colorazione dei
713 export LS_OPTIONS='--color=auto'
715 alias ls='ls $LS_OPTIONS'
716 alias ll='ls $LS_OPTIONS -l'
717 alias l='ls $LS_OPTIONS -lA'
719 # Some more alias to avoid making mistakes:
724 # questo abilita bash completion
725 . /etc/bash_completion
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>
742 <li><a class="reference external" href=
743 "http://www.debian-administration.org/articles/316">An
744 introduction to bash completion</a></li>
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>
752 <div class="section" id="vim">
753 <h2><a class="toc-backref" href=
754 "#id10">1.4 Vim</a></h2>
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>
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
767 e modificare il file di configurazione generale ``/etc/vim/vimrc`` ::
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.
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.
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'.
786 " Vim5 and later versions support syntax highlighting. Uncommenting the next
787 " line enables syntax highlighting by default.
790 " If using a dark background within the editing area and syntax highlighting
791 " turn on this option as well
794 " Uncomment the following to have Vim jump to the last position when
798 au BufReadPost * if line("'\"") > 0 && line("'\"") <= line("$")
799 \| exe "normal! g'\"" | endif
802 " Uncomment the following to have Vim load indentation rules and plugins
803 " according to the detected filetype.
805 filetype plugin indent on
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
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
827 <div class="section" id="vnc">
828 <h2><a class="toc-backref" href=
829 "#id11">1.5 VNC</a></h2>
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>
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>
856 <pre class="literal-block">
859 wget http://debian.piffa.net/guarda.sh
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>
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>
885 <div class="section" id="lista-dei-pacchetti-di-base">
886 <h2><a class="toc-backref" href=
887 "#id12">1.6 Lista dei pacchetti di
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
897 <table class="docutils footnote" frame="void" id="id2"
906 <td class="label"><a class="fn-backref" href=
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
924 <div class="section" id="apt-configurazione">
925 <h2><a class="toc-backref" href=
926 "#id13">1.7 Apt configurazione</a></h2>
928 <p>Vediamo i due file principali di apt:</p>
931 <li><tt class="docutils literal"><span class=
932 "pre">/etc/apt/sources.list</span></tt></li>
934 <li><tt class="docutils literal"><span class=
935 "pre">/etc/apt/apt.conf</span></tt></li>
938 <div class="section" id="sources-list">
939 <h3><a class="toc-backref" href=
940 "#id14">1.7.1 sources.list</a></h3>
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>
961 <p>Gli archivi sono generalmente:</p>
964 <li><tt class="docutils literal"><span class=
965 "pre">deb</span></tt> per pacchetti Debian binari</li>
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
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$
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
986 # Mirror da kernel.org da usare a casa:
987 deb http://mirrors.eu.kernel.org/debian/ Lenny main
989 # Security dal sito principale
990 deb http://security.debian.org/ Lenny/updates main
991 deb-src http://security.debian.org/ Lenny/updates main
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
998 # Esempio di accesso a un filesystem locale contenente i pacchetti:
999 # deb file:/mnt/mirror Sid main non-free contrib
1003 <div class="section" id="etc-apt-apt-conf">
1004 <h3><a class="toc-backref" href=
1005 "#id15">1.7.2 /etc/apt/apt.conf</a></h3>
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"
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
1021 <div class="section" id="squid">
1022 <h1><a class="toc-backref" href=
1023 "#id16">2 Squid</a></h1>
1026 <div class="section" id="apache">
1027 <h1><a class="toc-backref" href=
1028 "#id17">3 Apache</a></h1>
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>
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à vita al World Wide Web, uno dei servizi più
1042 utilizzati di Internet.</p>
1044 <div class="section" id="pacchetti-da-installare">
1045 <h2><a class="toc-backref" href=
1046 "#id18">3.1 Pacchetti da
1047 installare::</a></h2>
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>
1058 <div class="section" id="configurazione-di-apache">
1059 <h2><a class="toc-backref" href=
1060 "#id19">3.2 Configurazione di
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>
1070 <dl class="docutils">
1071 <dt>apache2.conf</dt>
1074 <p class="first">File di configurazione principale del
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>
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"><VirtualHost</span> <span class=
1091 "pre">*:80></span></tt></dd>
1093 <dt>sites-available</dt>
1095 <dd>In questa cartella vengono raccolti i file di
1096 configurazione dei virtual host disponibili.</dd>
1098 <dt>sites-enabled</dt>
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>
1104 <dt>mods-available</dt>
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
1111 <dt>mods-enabled</dt>
1113 <dd>Moduli abilitati, effettivamente caricati.</dd>
1117 <div class="section" id="apache-conf">
1118 <h2><a class="toc-backref" href=
1119 "#id20">3.3 apache.conf</a></h2>
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
1128 <p>Guardiamo alcune direttive interessanti:</p>
1130 <dl class="docutils">
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
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
1153 <dt>Server-Pool Size Regulation</dt>
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>
1166 <dt>AccessFileName</dt>
1168 <dd>Il nome del file che viene onorato per modificare le
1169 impostazioni per una singola directory, legato alla
1170 direttiva AllowOverride .</dd>
1174 <div class="section" id="installazione-di-php">
1175 <h2><a class="toc-backref" href=
1176 "#id21">3.4 Installazione di PHP</a></h2>
1178 <p>Pacchetti da installare: <tt class=
1179 "docutils literal"><span class="pre">php5</span>
1180 <span class="pre">php-pear</span></tt></p>
1182 <div class="section" id="test-del-modulo-php">
1183 <h3><a class="toc-backref" href=
1184 "#id22">3.4.1 Test del modulo
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 <?php phpinfo() ; ?>
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>
1211 <div class="section" id=
1212 "installazione-del-supporto-per-mysql">
1213 <h3><a class="toc-backref" href=
1214 "#id23">3.4.2 Installazione del supporto
1217 <p>Installare i pacchetti:</p>
1218 <pre class="literal-block">
1219 php5-mysql phpmyadmin
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>
1229 <div class="section" id="phpmyadmin">
1230 <h3><a class="toc-backref" href=
1231 "#id24">3.4.3 phpmyadmin</a></h3>
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>
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>
1253 <div class="section" id=
1254 "installazione-del-supporto-per-postgresql">
1255 <h3><a class="toc-backref" href=
1256 "#id25">3.4.4 Installazione del supporto
1257 per Postgresql</a></h3>
1259 <p>Installare i pacchetti:</p>
1260 <pre class="literal-block">
1261 php5-pgsql phppgadmin
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>
1271 <div class="section" id="phppgadmin">
1272 <h3><a class="toc-backref" href=
1273 "#id26">3.4.5 phppgadmin</a></h3>
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>
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>
1296 <div class="section" id="virtual-hosts">
1297 <h2><a class="toc-backref" href=
1298 "#id27">3.5 Virtual hosts</a></h2>
1302 <li><a class="reference external" href=
1303 "http://www.apacheweek.com/features/vhost">http://www.apacheweek.com/features/vhost</a></li>
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>
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
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"><VirtualHost</span> <span class=
1323 "pre">192.168.0.2:80></span></tt> . Soluzione
1324 dispendiosa, si tende ad usarla solo se servono
1325 certificati di sicurezza (SSL ) dedicati per ogni
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>
1334 <p>Prenderemo in esame la gestione di virtual hosts basati
1335 su nomi di dominio.</p>
1337 <div class="section" id="gestione-dns">
1338 <h3><a class="toc-backref" href=
1339 "#id28">3.5.1 Gestione DNS</a></h3>
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>
1347 <dl class="docutils">
1348 <dt><em>Bind</em> (DNS server)</dt>
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>
1355 "pre">A</span>
1356 <span class="pre">212.22.136.248</span></tt></dd>
1358 <dt><em>Servizio DNS dinamico on line</em>.</dt>
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>
1368 <dt><em>Dnsmasq</em> (DNS server)</dt>
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>
1375 <dt><tt class="docutils literal"><span class=
1376 "pre">/etc/hosts</span></tt></dt>
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>
1383 <pre class="literal-block">
1386 ; <<>> DiG 9.5.1-P1 <<>> 177.piffa.net
1387 ;; global options: printcmd
1389 ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 38036
1390 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
1392 ;; QUESTION SECTION:
1393 ;177.piffa.net. IN A
1396 177.piffa.net. 0 IN A 10.10.208.177
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
1404 <p>La parte interessante e' <tt class=
1405 "docutils literal"><span class=
1406 "pre">177.piffa.net.</span>
1408 "pre">0</span>
1409 <span class="pre">IN</span>
1411 "pre">A</span>
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>
1420 <div class="section" id="virtual-host">
1421 <h3><a class="toc-backref" href=
1422 "#id29">3.5.2 Virtual host</a></h3>
1424 <p>Esempio di Virtual host:</p>
1425 <pre class="literal-block">
1426 <VirtualHost *:80 >
1427 ServerName 177.piffa.net
1428 DocumentRoot /var/www/177.piffa.net/
1429 ServerAdmin webmaster@177.piffa.net
1430 </VirtualHost>
1433 <ol class="arabic simple">
1434 <li><tt class="docutils literal"><span class=
1435 "pre"><VirtualHost</span> <span class=
1436 "pre">\*:80</span> <span class="pre">></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>
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
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>
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>
1459 <li><tt class="docutils literal"><span class=
1460 "pre"></VirtualHost></span></tt>: <em>tag</em> di
1461 chiusura della stanza di definizione del virtual
1465 <p>Quelle che abbiamo appena visto sono le direttive
1466 essenziali per definire un sito virtuale, potrebbe essere
1467 utile aggiungene altre:</p>
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>
1477 <p class="first last">Log degli errori separato
1478 dai restanti siti web ospitati dal server.</p>
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>
1490 <p class="first last">Livello di importanza degli
1491 eventi loggati= warning <em>attenzione</em> .</p>
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>
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>
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 <Directory "/var/www/miosito.net/privata">
1518 AllowOverride AuthConfig
1519 Options ExecCGI Indexes MultiViews FollowSymLinks
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>
1532 <div class="section" id="negoziazione-accessi">
1533 <h2><a class="toc-backref" href=
1534 "#id30">3.6 Negoziazione accessi</a></h2>
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>
1545 <div class="section" id="limiti-su-base-ip">
1546 <h3><a class="toc-backref" href=
1547 "#id31">3.6.1 Limiti su base ip</a></h3>
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 <VirtualHost *:80 >
1555 <Directory "/var/www/177.piffa.net">
1559 </VirtualHost>
1562 <p>Potremmo negare l'accesso a uno o piu' indirizzi IP in
1564 <pre class="literal-block">
1565 <VirtualHost *:80 >
1566 <Directory "/var/www/177.piffa.net">
1569 Deny from 192.168.0.1
1571 </VirtualHost>
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 <Directory "/var/www/miosito.net/limitata">
1580 Allow from 192.168.0.0./24
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>
1599 <div class="section" id="user-authentication">
1600 <h3><a class="toc-backref" href=
1601 "#id32">3.6.2 User
1602 Authentication</a></h3>
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>
1615 <p>link: <a class="reference external" href=
1616 "http://www.apacheweek.com/features/userauth">http://www.apacheweek.com/features/userauth</a></p>
1620 <div class="section" id="definire-la-cartella">
1621 <h2><a class="toc-backref" href=
1622 "#id33">3.7 Definire la cartella</a></h2>
1624 <p>Decidere quale sara' il <em>path</em> della cartella da
1625 sottoporre ad autentizazione:(e creiamo la cartella):</p>
1628 mkdir /var/www/177.piffa.net/privata
1632 <div class="section" id=
1633 "creazione-del-database-delle-passwords">
1634 <h2><a class="toc-backref" href=
1635 "#id34">3.8 Creazione del database delle
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>
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
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>
1661 <div class="section" id="id3">
1662 <h2><a class="toc-backref" href=
1663 "#id35">3.9 Configurazione di
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>
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
1678 # File generato precedentemente con htpasswd
1679 AuthUserFile /home/utente/passwords
1681 # Negoziazione degli accessi
1682 # valid users permette l'accesso agli utenti specificati
1683 # nel file generato da htpasswd
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>
1692 <div class="section" id="cavets">
1693 <h2><a class="toc-backref" href=
1694 "#id36">3.10 Cavets</a></h2>
1696 <p>Problemi di cache:</p>
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>
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
1717 <div class="section" id="domain-name-system">
1718 <h1><a class="toc-backref" href=
1719 "#id37">4 Domain Name System</a></h1>
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>
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>
1731 <p>I nomi DNS, o "nomi di dominio", sono una delle
1732 caratteristiche più visibili di Internet.</p>
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>
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>
1742 <div class="section" id="nomi-di-dominio">
1743 <h2><a class="toc-backref" href=
1744 "#id38">4.1 Nomi di dominio</a></h2>
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>
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>
1764 <div class="section" id="tipologie-di-record">
1765 <h2><a class="toc-backref" href=
1766 "#id39">4.2 Tipologie di record</a></h2>
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>
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>
1778 <li>Record MX - (Mail eXchange) indica a quali server
1779 debba essere inviata la posta elettronica per un certo
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
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
1798 <li>Record AAAA - Restituisce un indirizzo IPv6.</li>
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
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
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>
1819 <div class="section" id="utilizzo">
1820 <h2><a class="toc-backref" href=
1821 "#id40">4.3 Utilizzo</a></h2>
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.
1836 <div class="section" id="risoluzione-dei-nomi-di-dominio">
1837 <h2><a class="toc-backref" href=
1838 "#id41">4.4 Risoluzione dei nomi di
1841 <p>Ci sono vari strumenti per interrogare i server DNS e
1842 ottenere l'indirizzo IP associato al nome di dominio che ci
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
1851 $ nslookup www.piffa.net
1852 Server: 192.168.0.10
1853 Address: 192.168.0.10#53
1855 Non-authoritative answer:
1856 www.piffa.net canonical name = piffa.net.
1858 Address: 65.98.21.97
1863 ; <<>> DiG 9.6.0-P1 <<>> www.piffa.net
1864 ;; global options: +cmd
1866 ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 47751
1867 ;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 4, ADDITIONAL: 4
1869 ;; QUESTION SECTION:
1870 ;www.piffa.net. IN A
1873 www.piffa.net. 3489 IN CNAME piffa.net.
1874 piffa.net. 3489 IN A 65.98.21.97
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.
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
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
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>
1901 <div class="section" id="dig">
1902 <h2><a class="toc-backref" href=
1903 "#id42">4.5 Dig</a></h2>
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">
1911 ; <<>> DiG 9.6.0-P1 <<>> www.google.it
1912 ;; global options: +cmd
1914 ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 18816
1915 ;; flags: qr rd ra; QUERY: 1, ANSWER: 6, AUTHORITY: 7, ADDITIONAL: 0
1917 ;; QUESTION SECTION:
1918 ;www.google.it. IN A
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
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.
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
1943 <dl class="docutils">
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
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>
1978 <div class="section" id="dnsmasq">
1979 <h1><a class="toc-backref" href=
1980 "#id43">5 DNSmasq</a></h1>
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 <http://www.debian-administration.org/articles/478>_</cite>
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>
1995 <li>Leggerezza: puo' essere fatto girare su una macchina
1996 relativamente debole in caso di bisogno.</li>
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>
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>
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
2017 <div class="section" id="samba">
2018 <h1><a class="toc-backref" href=
2019 "#id44">6 Samba</a></h1>
2021 <p>Samba e' un progetto libero che fornisce servizi di
2022 condivisione di file e stampanti a client SMB/CIFS.</p>
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>
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>
2038 <div class="section" id="pacchetti">
2039 <h2><a class="toc-backref" href=
2040 "#id45">6.1 Pacchetti</a></h2>
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">
2049 <p>Pacchetti da installare per utilizzare Samba in
2050 modalita' server:</p>
2051 <pre class="literal-block">
2052 samba smbfs smbclient
2055 <table class="docutils footnote" frame="void" id="id5"
2062 <tbody valign="top">
2064 <td class="label"><a class="fn-backref" href=
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>
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>
2085 <p>Per riconfigurare Samba si usi il comando:</p>
2086 <pre class="literal-block">
2087 dpkg-reconfigure samba-common
2091 <div class="section" id="passwords-e-autenticazione">
2092 <h2><a class="toc-backref" href=
2093 "#id46">6.2 Passwords e
2094 autenticazione</a></h2>
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
2106 <dl class="docutils">
2107 <dt>1 Sistema *Unix ( GNU/Linux )</dt>
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>
2128 <dt>2 Password per l'applicativo Samba</dt>
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>
2140 <dt>3 Password per Windows.</dt>
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>
2152 <div class="section" id="creazione-utenti">
2153 <h2><a class="toc-backref" href=
2154 "#id47">6.3 Creazione Utenti</a></h2>
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
2162 <p>Creazione di un utente denominato sambo:</p>
2163 <pre class="literal-block">
2164 adduser --shell /bin/false sambo
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
2173 <p>Aggiunta dell'utente al database delle password per
2174 Samba e generazione della sua password:</p>
2175 <pre class="literal-block">
2179 <p>Se successivamente si vorra' modificare la password di
2180 un utente gia' esistente si usi:</p>
2181 <pre class="literal-block">
2185 <p>La password sotto Windows verra' modificata sul sistema
2189 <div class="section" id="creare-la-condivisione">
2190 <h2><a class="toc-backref" href=
2191 "#id48">6.4 Creare la
2192 condivisione</a></h2>
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>
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/
2215 <div class="section" id=
2216 "sicurezza-permessi-di-esecuzione-sul-server">
2217 <h3><a class="toc-backref" href=
2218 "#id49">6.4.1 Sicurezza: permessi di
2219 esecuzione sul server</a></h3>
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>
2231 <p><tt class="docutils literal"><span class=
2232 "pre">/etc/fstab</span></tt></p>
2235 /dev/hda10 /mnt/share ext3 rw,
2236 <strong>nosuid,noexec</strong> 0 3
2239 <p>Si noti anche l'uso di <em>nosuid</em> per evitare la
2240 possibilita' di eseguire programmi con credenziali
2245 <div class="section" id=
2246 "configurazione-dell-applicativo-samba-vero-e-proprio">
2247 <h2><a class="toc-backref" href=
2248 "#id50">6.5 Configurazione
2249 dell'applicativo Samba vero e proprio.</a></h2>
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>
2256 <p>/etc/samba/smb.conf riga ~235 , Share Definitions (in
2257 vim si usi 235gg ):</p>
2258 <pre class="literal-block">
2260 # Percorso della cartella condivisa
2261 path = /home/sambo/sambo_share
2262 # Se gli utenti possono scrivere / modificare file
2264 # Negoziazione degli accessi su base utenti / passwords
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.
2272 # Commento indicativo della risorsa
2273 comment = Condivisione per Sambo
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>
2286 <div class="section" id="testare-il-servizio">
2287 <h2><a class="toc-backref" href=
2288 "#id51">6.6 Testare il Servizio</a></h2>
2290 <p>Come testare il servizio</p>
2293 <pre class="literal-block">
2294 smbclient -U sambo -L localhost
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
2313 <p>In particolare l'ultima voce relativa alla home
2314 directory dell'utente dovrebbe essere visibile solo agli
2315 utenti autenticati.</p>
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
2326 <div class="section" id="note">
2327 <h1><a class="toc-backref" href=
2328 "#id52">7 NOTE</a></h1>
2331 <li>controllare apache</li>
2334 <p>sintassi: in <tt class="docutils literal"><span class=
2335 "pre">monospace</span></tt> :</p>
2338 <li>nomi di files</li>