<html lang="it">
<head>
<meta name="generator" content=
- "HTML Tidy for Linux/x86 (vers 6 November 2007), see www.w3.org">
+ "HTML Tidy for Linux/x86 (vers 7 December 2008), see www.w3.org">
<meta http-equiv="Content-Type" content=
"text/html; charset=iso-8859-1">
<meta name="generator" content=
"Docutils 0.5: http://docutils.sourceforge.net/">
- <title>Servizi passo a passo</title>
+ <title>Servizi Di rete passo a passo</title>
<style type="text/css">
/*
</head>
<body>
- <div class="document" id="servizi-passo-a-passo">
- <h1 class="title">Servizi passo a passo</h1>
+ <div class="document" id="servizi-di-rete-passo-a-passo">
+ <h1 class="title">Servizi Di rete passo a passo</h1>
<h2 class="subtitle" id=
"appunti-sulla-installazione-e-configurazione-dei-servizi">
<tr class="field">
<th class="field-name">Version:</th>
- <td class="field-body">0.2</td>
+ <td class="field-body">0.3</td>
</tr>
</tbody>
</table>
<p>Questa guida e' dedicata agli studenti delle lezioni di
informatica tenute da Andrea nel lab208. Nella parte iniziale
- sono presenti alcuni richiami alle impostazioni tipiche di rete
- e di installazione del laboratorio 208 (lab208) dove
- generalmente si tengono le lezioni. Questi parametri non sono
- interessanti per chiunque si trovasse al di fuori della rete
- piffa.net .</p>
+ sono presenti alcuni richiami alle impostazioni di rete e di
+ installazione del laboratorio 208 (lab208) dove generalmente si
+ tengono le lezioni. Questi parametri non sono interessanti per
+ chiunque si trovasse al di fuori della rete piffa.net .</p>
- <div class="contents topic" id="indice">
- <p class="topic-title first">Indice</p>
+ <div class="contents topic" id="indice-degli-argomenti">
+ <p class="topic-title first">Indice degli argomenti</p>
- <ul class="simple">
+ <ul class="auto-toc simple">
<li>
<a class="reference internal" href=
"#configurazione-sistema" id="id5" name=
- "id5">Configurazione sistema</a>
+ "id5">1 Configurazione sistema</a>
- <ul>
+ <ul class="auto-toc">
<li><a class="reference internal" href=
- "#solo-per-uso-interno" id="id6" name="id6">Solo per
- uso interno</a></li>
+ "#solo-per-uso-interno" id="id6" name=
+ "id6">1.1 Solo per uso
+ interno</a></li>
<li><a class="reference internal" href="#rete" id="id7"
- name="id7">Rete</a></li>
+ name="id7">1.2 Rete</a></li>
<li><a class="reference internal" href=
- "#bash-completion" id="id8" name="id8">Bash
- completion</a></li>
+ "#bash-completion" id="id8" name=
+ "id8">1.3 Bash completion</a></li>
<li><a class="reference internal" href="#vim" id="id9"
- name="id9">Vim</a></li>
+ name="id9">1.4 Vim</a></li>
<li><a class="reference internal" href="#vnc" id="id10"
- name="id10">VNC</a></li>
+ name="id10">1.5 VNC</a></li>
<li><a class="reference internal" href=
"#lista-dei-pacchetti-di-base" id="id11" name=
- "id11">Lista dei pacchetti di base</a></li>
+ "id11">1.6 Lista dei pacchetti di
+ base</a></li>
<li>
<a class="reference internal" href=
- "#apt-configurazione" id="id12" name="id12">Apt
- configurazione</a>
+ "#apt-configurazione" id="id12" name=
+ "id12">1.7 Apt configurazione</a>
- <ul>
+ <ul class="auto-toc">
<li><a class="reference internal" href=
"#sources-list" id="id13" name=
- "id13">sources.list</a></li>
+ "id13">1.7.1 sources.list</a></li>
<li><a class="reference internal" href=
"#etc-apt-apt-conf" id="id14" name=
- "id14">/etc/apt/apt.conf</a></li>
+ "id14">1.7.2 /etc/apt/apt.conf</a></li>
+ </ul>
+ </li>
+ </ul>
+ </li>
+
+ <li><a class="reference internal" href="#squid" id="id15"
+ name="id15">2 Squid</a></li>
+
+ <li>
+ <a class="reference internal" href="#apache" id="id16"
+ name="id16">3 Apache</a>
+
+ <ul class="auto-toc">
+ <li><a class="reference internal" href=
+ "#configurazione-di-apache" id="id17" name=
+ "id17">3.1 Configurazione di
+ Apache</a></li>
+
+ <li><a class="reference internal" href="#apache-conf"
+ id="id18" name=
+ "id18">3.2 apache.conf</a></li>
+
+ <li>
+ <a class="reference internal" href=
+ "#installazione-di-php" id="id19" name=
+ "id19">3.3 Installazione di PHP</a>
+
+ <ul class="auto-toc">
+ <li><a class="reference internal" href=
+ "#test-del-modulo-php" id="id20" name=
+ "id20">3.3.1 Test del modulo
+ php</a></li>
+
+ <li><a class="reference internal" href=
+ "#installazione-del-supporto-per-mysql" id="id21"
+ name="id21">3.3.2 Installazione
+ del supporto per Mysql</a></li>
+
+ <li><a class="reference internal" href=
+ "#phpmyadmin" id="id22" name=
+ "id22">3.3.3 phpmyadmin</a></li>
+
+ <li><a class="reference internal" href=
+ "#installazione-del-supporto-per-postgresql" id=
+ "id23" name=
+ "id23">3.3.4 Installazione del
+ supporto per Postgresql</a></li>
+ </ul>
+ </li>
+
+ <li>
+ <a class="reference internal" href="#virtual-hosts"
+ id="id24" name="id24">3.4 Virtual
+ hosts</a>
+
+ <ul class="auto-toc">
+ <li><a class="reference internal" href=
+ "#gestione-dns" id="id25" name=
+ "id25">3.4.1 Gestione DNS</a></li>
+
+ <li><a class="reference internal" href=
+ "#virtual-host" id="id26" name=
+ "id26">3.4.2 Virtual host</a></li>
</ul>
</li>
+
+ <li><a class="reference internal" href=
+ "#user-authentication" id="id27" name=
+ "id27">3.5 User
+ Authentication</a></li>
+
+ <li><a class="reference internal" href="#cavets" id=
+ "id28" name="id28">3.6 Cavets</a></li>
</ul>
</li>
- <li><a class="reference internal" href="#servizi" id="id15"
- name="id15">Servizi</a></li>
+ <li>
+ <a class="reference internal" href="#domain-name-system"
+ id="id29" name="id29">4 Domain Name
+ System</a>
+
+ <ul class="auto-toc">
+ <li><a class="reference internal" href=
+ "#informazioni-di-base-sul-servizio-dns" id="id30"
+ name="id30">4.1 Informazioni di base
+ sul servizio DNS.</a></li>
+
+ <li><a class="reference internal" href=
+ "#nomi-di-dominio" id="id31" name=
+ "id31">4.2 Nomi di dominio</a></li>
+
+ <li><a class="reference internal" href=
+ "#tipologie-di-record" id="id32" name=
+ "id32">4.3 Tipologie di
+ record</a></li>
- <li><a class="reference internal" href="#squid" id="id16"
- name="id16">Squid</a></li>
+ <li><a class="reference internal" href="#utilizzo" id=
+ "id33" name=
+ "id33">4.4 Utilizzo</a></li>
- <li><a class="reference internal" href="#apache" id="id17"
- name="id17">Apache</a></li>
+ <li><a class="reference internal" href=
+ "#risoluzione-dei-nomi-di-dominio" id="id34" name=
+ "id34">4.5 Risoluzione dei nomi di
+ dominio</a></li>
+ </ul>
+ </li>
- <li><a class="reference internal" href="#dnsmasq" id="id18"
- name="id18">DNSmasq</a></li>
+ <li><a class="reference internal" href="#dnsmasq" id="id35"
+ name="id35">5 DNSmasq</a></li>
<li>
- <a class="reference internal" href="#samba" id="id19"
- name="id19">Samba</a>
+ <a class="reference internal" href="#samba" id="id36"
+ name="id36">6 Samba</a>
+
+ <ul class="auto-toc">
+ <li><a class="reference internal" href="#pacchetti" id=
+ "id37" name=
+ "id37">6.1 Pacchetti</a></li>
- <ul>
<li><a class="reference internal" href=
- "#creazione-utenti" id="id20" name="id20">Creazione
- Utenti</a></li>
+ "#passwords-e-autenticazione" id="id38" name=
+ "id38">6.2 Passwords e
+ autenticazione</a></li>
<li><a class="reference internal" href=
- "#creare-la-condivisione" id="id21" name="id21">Creare
- la condivisione</a></li>
+ "#creazione-utenti" id="id39" name=
+ "id39">6.3 Creazione Utenti</a></li>
+
+ <li>
+ <a class="reference internal" href=
+ "#creare-la-condivisione" id="id40" name=
+ "id40">6.4 Creare la
+ condivisione</a>
+
+ <ul class="auto-toc">
+ <li><a class="reference internal" href=
+ "#sicurezza-permessi-di-esecuzione-sul-server" id=
+ "id41" name=
+ "id41">6.4.1 Sicurezza: permessi
+ di esecuzione sul server</a></li>
+ </ul>
+ </li>
<li><a class="reference internal" href=
"#configurazione-dell-applicativo-samba-vero-e-proprio"
- id="id22" name="id22">Configurazione dell'applicativo
- Samba vero e proprio.</a></li>
+ id="id42" name=
+ "id42">6.5 Configurazione
+ dell'applicativo Samba vero e proprio.</a></li>
<li><a class="reference internal" href=
- "#testare-il-servizio" id="id23" name="id23">Testare il
+ "#testare-il-servizio" id="id43" name=
+ "id43">6.6 Testare il
Servizio</a></li>
</ul>
</li>
- <li><a class="reference internal" href="#note" id="id24"
- name="id24">NOTE</a></li>
+ <li><a class="reference internal" href="#note" id="id44"
+ name="id44">7 NOTE</a></li>
</ul>
</div>
"http://docutils.sourceforge.net/rst.html">http://docutils.sourceforge.net/rst.html</a></p>
<div class="section" id="configurazione-sistema">
- <h1><a class="toc-backref" href="#id5">Configurazione
- sistema</a></h1>
+ <h1><a class="toc-backref" href=
+ "#id5">1 Configurazione sistema</a></h1>
<div class="section" id="solo-per-uso-interno">
- <h2><a class="toc-backref" href="#id6">Solo per uso
- interno</a></h2>
+ <h2><a class="toc-backref" href=
+ "#id6">1.1 Solo per uso interno</a></h2>
<p>Impostazioni di base per la configurazione del sistema
operativo e della rete nel laboratorio 208 facente parte
della rete piffa.net .</p>
+
+ <p>Qui riportati per comodita' degli studenti (e del
+ docente che non sara' <strong>mai piu'</strong> costretto a
+ ripeterli! )</p>
</div>
<div class="section" id="rete">
- <h2><a class="toc-backref" href="#id7">Rete</a></h2>
+ <h2><a class="toc-backref" href=
+ "#id7">1.2 Rete</a></h2>
<p>Parametri della rete attualmente in uso:</p>
</tr>
</tbody>
</table>
+
+ <p>Sul portatile di Andrea, corrispondente all'ip 254, gira
+ un DHCP, proxy http e mirror di Debian ( <a class=
+ "reference external" href=
+ "http://debian.piffa.net">http://debian.piffa.net</a>). Se
+ Andrea non e' in aula (o ancora peggio non c'e' il suo
+ portatile Net) gli studenti dovranno darsi un indirizzo ip
+ manualmente e disabilitare il proxy (che pero' e
+ trasparente, quindi fate pure come se non ci fosse ;) .</p>
</div>
<div class="section" id="bash-completion">
- <h2><a class="toc-backref" href="#id8">Bash
- completion</a></h2>
+ <h2><a class="toc-backref" href=
+ "#id8">1.3 Bash completion</a></h2>
+
+ <p>Il completamento automatico della shell (che si attiva
+ premendo il tasto tab una o due volte mentre si sta
+ scrivendo un termine) permette di comporre automaticamente
+ i nomi dei comandi e i percorsi dei file, sopratutto la
+ composizione automatica dei percorsi dei file e' di grande
+ importanza.</p>
+
+ <p>Bash_completion permette di integrare il completamento
+ automatico con i nomi dei pacchetti e oggetti dei comandi:
+ ad es. volendo digitare <tt class=
+ "docutils literal"><span class="pre">apt-get</span>
+ <span class="pre">inst[TAB]</span> <span class=
+ "pre">xtigh[TAB]</span></tt> ora verra' completatato
+ automaticamente sia la parola <tt class=
+ "docutils literal"><span class="pre">install</span></tt>
+ che il nome del pacchetto <tt class=
+ "docutils literal"><span class=
+ "pre">xtightvncviewer</span></tt>.</p>
<p>Abilitare /etc/bash_completion nel file <tt class=
"docutils literal"><span class=
- "pre">/etc/bash.bashrc</span></tt> oppure <tt class=
- "docutils literal"><span class=
- "pre">~/.bashrc</span></tt></p>
+ "pre">/etc/bash.bashrc</span></tt> oppure includerlo nel
+ proprio <tt class="docutils literal"><span class=
+ "pre">~/.bashrc</span></tt> (che sarebbe il file
+ <em>nascosto</em>, quindi con un punto all'inizio del nome
+ del file, di configurazione della shell bash per ogni
+ utente, presente nella propria <em>home
+ directory</em>):</p>
+ <pre class="literal-block">
+echo ". /etc/bash_completion" >> ~/.bashrc
+</pre>
+
+ <p>Esempio di ~/.bahsrc</p>
<pre class="literal-block">
+# ~/.bashrc: executed by bash(1) for non-login shells.
+
+export PS1='\h:\w\$ '
+umask 022
+
+# Decommentare le seguenti righr per abilitare la colorazione dei
+# nomi dei file:
+ export LS_OPTIONS='--color=auto'
+ eval "`dircolors`"
+ alias ls='ls $LS_OPTIONS'
+ alias ll='ls $LS_OPTIONS -l'
+ alias l='ls $LS_OPTIONS -lA'
+
+# Some more alias to avoid making mistakes:
+# alias rm='rm -i'
+# alias cp='cp -i'
+# alias mv='mv -i'
+
+# questo abilita bash completion
. /etc/bash_completion
</pre>
<p>Il file <tt class="docutils literal"><span class=
- "pre">/etc/bash_completion</span></tt> deve essere ,ente
+ "pre">/etc/bash_completion</span></tt> deve essere presente
nel sistema, in caso contrario installare il pacchetto:
<tt class="docutils literal"><span class=
- "pre">bash-completion</span></tt></p>
+ "pre">bash-completion</span></tt>. Generalmente l'utente
+ <tt class="docutils literal"><span class=
+ "pre">root</span></tt> ha un file <tt class=
+ "docutils literal"><span class="pre">.bashrc</span></tt>
+ preimpostato analogo a quello citato sopra, a differenza
+ dei normali utenti di sistema.</p>
+
+ <p>Links:</p>
+
+ <ul class="simple">
+ <li><a class="reference external" href=
+ "http://www.debian-administration.org/articles/316">An
+ introduction to bash completion</a></li>
+
+ <li><a class="reference external" href=
+ "http://www.caliban.org/bash/">Working more productively
+ with bash 2.x/3.x</a></li>
+ </ul>
</div>
<div class="section" id="vim">
- <h2><a class="toc-backref" href="#id9">Vim</a></h2>
+ <h2><a class="toc-backref" href=
+ "#id9">1.4 Vim</a></h2>
- <p>Sara' opportuno installare la versione completa
- dell'editor vim tramite il pacchetto vim e modificare il
- file di configurazione generale <tt class=
- "docutils literal"><span class=
- "pre">/etc/vim/vimrc</span></tt></p>
+ <p>Vim e' l'editor di testo preferito dai sistemisti,
+ quindi sara' conveniente impostare fin da subito alcune
+ impostazioni per renderlo piu' comodo.</p>
+
+ <p>Assicurarsi che sia installata nel sistema la versione
+ completa dell'editor <tt class=
+ "docutils literal"><span class="pre">vim</span></tt>
+ nstallando il pacchetto vimi:</p>
<pre class="literal-block">
-" All system-wide defaults are set in $VIMRUNTIME/debian.vim (usually just
-" /usr/share/vim/vimcurrent/debian.vim) and sourced by the call to :runtime
-" you can find below. If you wish to change any of those settings, you should
-" do it in this file (/etc/vim/vimrc), since debian.vim will be overwritten
-" everytime an upgrade of the vim packages is performed. It is recommended to
-" make changes after sourcing debian.vim since it alters the value of the
-" 'compatible' option.
-
-" This line should not be removed as it ensures that various options are
-" properly set to work with the Vim-related packages available in Debian.
-runtime! debian.vim
-
-" Uncomment the next line to make Vim more Vi-compatible
-" NOTE: debian.vim sets 'nocompatible'. Setting 'compatible' changes numerous
-" options, so any other options should be set AFTER setting 'compatible'.
-"set compatible
-
-" Vim5 and later versions support syntax highlighting. Uncommenting the next
-" line enables syntax highlighting by default.
-syntax on
-
-" If using a dark background within the editing area and syntax highlighting
-" turn on this option as well
-set background=dark
-
-" Uncomment the following to have Vim jump to the last position when
-" reopening a file
-
-if has("autocmd")
- au BufReadPost * if line("'\"") > 0 && line("'\"") <= line("$")
- \| exe "normal! g'\"" | endif
-endif
-
-" Uncomment the following to have Vim load indentation rules and plugins
-" according to the detected filetype.
-if has("autocmd")
- filetype plugin indent on
-endif
-
-" The following are commented out as they cause vim to behave a lot
-" differently from regular Vi. They are highly recommended though.
-set showcmd " Show (partial) command in status line.
-"set showmatch " Show matching brackets.
-set ignorecase " Do case insensitive matching
-"set smartcase " Do smart case matching
-"set incsearch " Incremental search
-set autowrite " Automatically save before commands like :next and :make
-"set hidden " Hide buffers when they are abandoned
-"set mouse=a " Enable mouse usage (all modes) in terminals
-
-" Source a global configuration file if available
-" XXX Deprecated, please move your changes here in /etc/vim/vimrc
-if filereadable("/etc/vim/vimrc.local")
- source /etc/vim/vimrc.local
-endif
+ # apt-get install vim
+
+e modificare il file di configurazione generale ``/etc/vim/vimrc`` ::
+
+ " All system-wide defaults are set in $VIMRUNTIME/debian.vim (usually just
+ " /usr/share/vim/vimcurrent/debian.vim) and sourced by the call to :runtime
+ " you can find below. If you wish to change any of those settings, you should
+ " do it in this file (/etc/vim/vimrc), since debian.vim will be overwritten
+ " everytime an upgrade of the vim packages is performed. It is recommended to
+ " make changes after sourcing debian.vim since it alters the value of the
+ " 'compatible' option.
+
+ " This line should not be removed as it ensures that various options are
+ " properly set to work with the Vim-related packages available in Debian.
+ runtime! debian.vim
+
+ " Uncomment the next line to make Vim more Vi-compatible
+ " NOTE: debian.vim sets 'nocompatible'. Setting 'compatible' changes numerous
+ " options, so any other options should be set AFTER setting 'compatible'.
+ "set compatible
+
+ " Vim5 and later versions support syntax highlighting. Uncommenting the next
+ " line enables syntax highlighting by default.
+ syntax on
+
+ " If using a dark background within the editing area and syntax highlighting
+ " turn on this option as well
+ set background=dark
+
+ " Uncomment the following to have Vim jump to the last position when
+ " reopening a file
+
+ if has("autocmd")
+ au BufReadPost * if line("'\"") > 0 && line("'\"") <= line("$")
+ \| exe "normal! g'\"" | endif
+ endif
+
+ " Uncomment the following to have Vim load indentation rules and plugins
+ " according to the detected filetype.
+ if has("autocmd")
+ filetype plugin indent on
+ endif
+
+ " The following are commented out as they cause vim to behave a lot
+ " differently from regular Vi. They are highly recommended though.
+ set showcmd " Show (partial) command in status line.
+ "set showmatch " Show matching brackets.
+ set ignorecase " Do case insensitive matching
+ "set smartcase " Do smart case matching
+ "set incsearch " Incremental search
+ set autowrite " Automatically save before commands like :next and :make
+ "set hidden " Hide buffers when they are abandoned
+ "set mouse=a " Enable mouse usage (all modes) in terminals
+
+ " Source a global configuration file if available
+ " XXX Deprecated, please move your changes here in /etc/vim/vimrc
+ if filereadable("/etc/vim/vimrc.local")
+ source /etc/vim/vimrc.local
+ endif
</pre>
</div>
<div class="section" id="vnc">
- <h2><a class="toc-backref" href="#id10">VNC</a></h2>
+ <h2><a class="toc-backref" href=
+ "#id10">1.5 VNC</a></h2>
+
+ <p>I Virtual Network Computing (o VNC) sono software di
+ controllo remoto e servono per amministrare il proprio
+ computer a distanza o visuallizare la sessione di lavoro di
+ un altro computer sul proprio a scopo didattico.
+ Installando un server VNC sulla propria macchina ed
+ impostando una opportuna password si consente ai client VNC
+ di ricevere una immagine dello schermo ed eventualmente di
+ inviare input di tastiera e mouse al computer server
+ (durante le lezioni questo non e' possibile per gli
+ studenti, solo Andrea esegue i comandi). In pratica si può
+ gestire il computer server da un'altra postazione, come se
+ fosse il proprio computer fisico.</p>
<p>Scaricare il pacchetto <tt class=
"docutils literal"><span class=
"pre">xtightvncviewer</span></tt> e lo script <tt class=
"docutils literal"><span class="pre">guarda.sh</span></tt>
- che deve essere reso eseguibile in una posizione
- (collocazione nel <em>path</em> degli utenti, es <tt class=
- "docutils literal"><span class="pre">echo</span>
- <span class="pre">$PATH</span></tt> per visualizzare
- l'attuale path ) comoda per gli utenti.</p>
+ in una posizione (collocazione nel <em>path</em> degli
+ utenti, es <tt class="docutils literal"><span class=
+ "pre">echo</span> <span class="pre">$PATH</span></tt> per
+ visualizzare l'attuale path ) comoda per gli utenti ( in
+ genere <tt class="docutils literal"><span class=
+ "pre">/bin</span></tt> ), rndere eseguibile lo script.</p>
<p>Procedura:</p>
<pre class="literal-block">
</pre>
<p>Si noti che non e' possibile lanciare un applicativo sul
- server grafico di un utente da una shell in cui si e'
- loggati come altro utente, anchee se root. E' quindi
+ server grafico di un utente da una shell in cui si sta
+ lavorando come altro utente, anche se root. E' quindi
necessario essere l'utente di sistema che si e' loggato
inizialmente nella sessione grafica per poter lanciare lo
- script guarda.sh .</p>
+ script guarda.sh da una shell.</p>
<p>Controllare con <tt class=
"docutils literal"><span class="pre">whoami</span></tt> di
</div>
<div class="section" id="lista-dei-pacchetti-di-base">
- <h2><a class="toc-backref" href="#id11">Lista dei pacchetti
- di base</a></h2>
+ <h2><a class="toc-backref" href=
+ "#id11">1.6 Lista dei pacchetti di
+ base</a></h2>
<p>I pacchetti installati generalmente <a class=
"footnote-reference" href="#id2" id="id1" name=
<td><tt class="docutils literal"><span class=
"pre">kde-core</span></tt> e' piu' leggero del
pacchetto <tt class="docutils literal"><span class=
- "pre">kde</span></tt></td>
+ "pre">kde</span></tt>, esiste anche un equivalente
+ <tt class="docutils literal"><span class=
+ "pre">gnome-core</span> <span class=
+ "pre">gnome</span></tt> e il log-in manager
+ <tt class="docutils literal"><span class=
+ "pre">gdm</span></tt> per il l'ambiente grafico
+ Gnome.</td>
</tr>
</tbody>
</table>
</div>
<div class="section" id="apt-configurazione">
- <h2><a class="toc-backref" href="#id12">Apt
- configurazione</a></h2>
+ <h2><a class="toc-backref" href=
+ "#id12">1.7 Apt configurazione</a></h2>
<p>Vediamo i due file principali di apt:</p>
<div class="section" id="sources-list">
<h3><a class="toc-backref" href=
- "#id13">sources.list</a></h3>
+ "#id13">1.7.1 sources.list</a></h3>
<p>Questo file contiene i sorgenti da cui <em>apt</em>
preleva i pacchetti da installare tramite <em>dpkg</em>,
<div class="section" id="etc-apt-apt-conf">
<h3><a class="toc-backref" href=
- "#id14">/etc/apt/apt.conf</a></h3>
+ "#id14">1.7.2 /etc/apt/apt.conf</a></h3>
<p>Questo file contiene le opzioni di apt, come ad
esempio il proxy:</p>
<pre class="literal-block">
Acquire::http::Proxy "http://10.10.208.254:3128"
</pre>
+
+ <p>Si tenga conto che se si imposta un proxy per apt sul
+ proprio portatile e tornati a casa propria si vuole
+ scaricare nuovi pacchetti si dovra' disabilitare il
+ proxy.</p>
</div>
</div>
</div>
- <div class="section" id="servizi">
- <h1><a class="toc-backref" href="#id15">Servizi</a></h1>
- </div>
-
<div class="section" id="squid">
- <h1><a class="toc-backref" href="#id16">Squid</a></h1>
+ <h1><a class="toc-backref" href=
+ "#id15">2 Squid</a></h1>
</div>
<div class="section" id="apache">
- <h1><a class="toc-backref" href="#id17">Apache</a></h1>
+ <h1><a class="toc-backref" href=
+ "#id16">3 Apache</a></h1>
+
+ <p>Pacchetti da installare:</p>
+ <pre class="literal-block">
+apache2 apache2-doc
+</pre>
+
+ <p>Con la release 2.0 di Apache viene automaticamente resa
+ disponibile anche la versione SSL (Secure Socket Layer,
+ cpnnessioni criptate ) del web server.</p>
+
+ <div class="section" id="configurazione-di-apache">
+ <h2><a class="toc-backref" href=
+ "#id17">3.1 Configurazione di
+ Apache</a></h2>
+
+ <p>I file di configurazione di apache si trovano nella
+ cartella: <tt class="docutils literal"><span class=
+ "pre">/etc/apache2</span></tt> e sono strutturati come
+ descritto nel file <tt class=
+ "docutils literal"><span class="pre">/usr/share/doc/apache2/README.Debian.gz</span></tt>
+ . Sostanzialmente lo schema e' il seguente:</p>
+
+ <dl class="docutils">
+ <dt>apache2.conf</dt>
+
+ <dd>File di configurazione principale del servizio
+ httpd.conf e' il vecchio file di configurazione di
+ Apache1, presente per motivi di retrocompatibilita' e'
+ generalemente vuoto.</dd>
+
+ <dt>ports.conf</dt>
+
+ <dd>In questo file vengono specificate le porte sulle
+ quali resta in ascolto il server web. Si noti che
+ utilizzando dei virtual hosts generalmente viene
+ specificata per questi la porta su cui ascoltare nel file
+ di configurazione del virtual host, ad es: <tt class=
+ "docutils literal"><span class=
+ "pre"><VirtualHost</span> <span class=
+ "pre">*:80></span></tt></dd>
+
+ <dt>sites-available</dt>
+
+ <dd>In questa cartella vengono raccolti i file di
+ configurazione dei virtual host disponibili.</dd>
+
+ <dt>sites-enabled</dt>
+
+ <dd>In questa cartella sono contenuti dei link simbolici
+ ai files in ../sites-available : se il link e' presente
+ in questa cartella il virtual host e' abilitato.</dd>
+
+ <dt>mods-available</dt>
+
+ <dd>Stesso metodo per i moduli: in questa cartella ci
+ sono i moduli veri e propri che verranno poi abilitati
+ grazie all'esistenza di link simbolici nella cartella
+ mods-enabled .</dd>
+
+ <dt>mods-enabled</dt>
+
+ <dd>Moduli abilitati, effettivamente caricati.</dd>
+ </dl>
+ </div>
+
+ <div class="section" id="apache-conf">
+ <h2><a class="toc-backref" href=
+ "#id18">3.2 apache.conf</a></h2>
+
+ <p>File di configurazione del servizio Apache, contiene le
+ impostazioni generiche (ad esempio utilizzo della RAM e
+ risorse di sistema) dell'intero servizio. Nella
+ configurazione di default per Debian non viene definito un
+ vero e proprio sito di default ma solo dei virtual
+ hosts.</p>
+
+ <p>Guardiamo alcune direttive interessanti:</p>
+
+ <dl class="docutils">
+ <dt>timeout</dt>
+
+ <dd>Numero di secondi da aspettare prima di chiudere la
+ connessione con il client. Questo parametro serve a
+ liberare le risorse di sistema nel caso che un client,
+ magar a causa di una connessione particolarmente lenta o
+ instabili, tenga attivo indefinitivamente un processo di
+ apache.</dd>
+
+ <dt>KeepAlive</dt>
+
+ <dd>L'estensione keep-alive (http 1.0) congiuntamente
+ alle connessioni persistenti (http 1.1) permettono al
+ server di rispondere a piu' richieste dei client mediante
+ la stessa connessione. Il protocoll http per sua natura
+ e' connectio-less e senza stato, quindi ogni risorsa
+ richiesta (per pagine web si pensi ad esempio alle
+ immagini) dal client necessita di una connessione
+ autonoma. Keep-alive permette di ottimizzare la
+ connessione anche fino al 50% a seconda delle situazioni
+ e contenuti.</dd>
+
+ <dt>Server-Pool Size Regulation</dt>
+
+ <dd>Questi parametri (StartServers, MinSpareServers, ecc.
+ Tutti spiegati nel manuale di apache) servono per
+ attribuire le risorse di sistema disponibili al server
+ Apache. Tenere questi parametri bassi serve a limitare il
+ rischio di Denial of Service per il server, nel caso
+ offra altri servizi. I settagi di default sono come
+ sempre abbastanza conservativi, se si conta di usare il
+ proprio Apache per servire un sito web con molti
+ visitatori sara' necessario aumentare sensibilmente le
+ impostazioni di base.</dd>
+
+ <dt>AccessFileName</dt>
+
+ <dd>Il nome del file che viene onorato per modificare le
+ impostazioni per una singola directory, legato alla
+ direttiva AllowOverride .</dd>
+ </dl>
+ </div>
+
+ <div class="section" id="installazione-di-php">
+ <h2><a class="toc-backref" href=
+ "#id19">3.3 Installazione di PHP</a></h2>
+
+ <p>Pacchetti da installare: <tt class=
+ "docutils literal"><span class="pre">php5</span>
+ <span class="pre">php-pear</span></tt></p>
+
+ <div class="section" id="test-del-modulo-php">
+ <h3><a class="toc-backref" href=
+ "#id20">3.3.1 Test del modulo
+ php</a></h3>
+
+ <p>Creare nella cartella <tt class=
+ "docutils literal"><span class="pre">/var/www</span></tt>
+ (o altra cartella visibile) un file con estensione *.php
+ (es <tt class="docutils literal"><span class=
+ "pre">/var/ww/info.php</span></tt> contenete codice php
+ eseguibile dall'interprete, ad es:</p>
+ <pre class="literal-block">
+<?php phpinfo() ; ?>
+</pre>
+
+ <p>Questa funzione di php generera' la tipica pagina con
+ le impostazioni attuali per php, se richiamando la pagina
+ (es: <tt class="docutils literal"><span class=
+ "pre">http://localhost/info.php</span></tt> ) verra
+ generata la pagina e resa disponibile tramite apache agli
+ utenti allora l'integrazione tra PHP e Apache sara'
+ corretta. In caso contrario se il client http proporra di
+ scaricare la pagina invece che visualizzarla nel browser:
+ non funziona l'interprete di php o sono mal configurati i
+ MIME-type.</p>
+ </div>
+
+ <div class="section" id=
+ "installazione-del-supporto-per-mysql">
+ <h3><a class="toc-backref" href=
+ "#id21">3.3.2 Installazione del supporto
+ per Mysql</a></h3>
+
+ <p>Installare i pacchetti:</p>
+ <pre class="literal-block">
+php5-mysql phpmyadmin
+</pre>
+
+ <p>Controllare tramite la pagina php.info che sia
+ abilitato il supporto per Mysql (ripartito Apache,
+ ricaricare la pagina e cercare con CTRL+f <tt class=
+ "docutils literal"><span class=
+ "pre">mysql</span></tt>).</p>
+ </div>
+
+ <div class="section" id="phpmyadmin">
+ <h3><a class="toc-backref" href=
+ "#id22">3.3.3 phpmyadmin</a></h3>
+
+ <p>L'interfaccia web Phpmyadmin non richede
+ necessariamente la presenza di un database Mysql locale,
+ puo' infatti essere utilizzata per gestire databases
+ remoti (il suo file di configurazione: <tt class=
+ "docutils literal"><span class=
+ "pre">/etc/phpmyadmin/config.inc.php</span></tt> ). Nel
+ caso si voglia installare localmente Mysql si utilizzi il
+ pacchetto <tt class="docutils literal"><span class=
+ "pre">mysql-server</span></tt> .</p>
+
+ <p>Phpmyadmin dovrebbe essere disponibile all'URL:
+ <tt class="docutils literal"><span class=
+ "pre">http://localhost/phpmyadmin/</span></tt>, se cosi
+ non fosse controllare che sia incluso il file <tt class=
+ "docutils literal"><span class=
+ "pre">/etc/phpmyadmin/apache.conf</span></tt> in
+ <tt class="docutils literal"><span class=
+ "pre">/etc/apache2/conf.d/</span></tt> .</p>
+ </div>
+
+ <div class="section" id=
+ "installazione-del-supporto-per-postgresql">
+ <h3><a class="toc-backref" href=
+ "#id23">3.3.4 Installazione del supporto
+ per Postgresql</a></h3>
+
+ <p>Installare i pacchetti:</p>
+ <pre class="literal-block">
+php5-pgsql phppgadmin
+</pre>
+
+ <p>Controllare tramite la pagina php.info che sia
+ abilitato il supporto per PostgreSQL (ripartito Apache,
+ ricaricare la pagina e cercare con CTRL+f <tt class=
+ "docutils literal"><span class=
+ "pre">pgsql</span></tt>).</p>
+ </div>
+ </div>
+
+ <div class="section" id="virtual-hosts">
+ <h2><a class="toc-backref" href=
+ "#id24">3.4 Virtual hosts</a></h2>
+
+ <blockquote>
+ <ul class="simple">
+ <li><a class="reference external" href=
+ "http://www.apacheweek.com/features/vhost">http://www.apacheweek.com/features/vhost</a></li>
+
+ <li><a class="reference external" href=
+ "http://www.onlamp.com/pub/a/apache/2004/01/08/apacheckbk.html">
+ http://www.onlamp.com/pub/a/apache/2004/01/08/apacheckbk.html</a></li>
+ </ul>
+ </blockquote>
+
+ <p>I virtual host permettono di avere piu' siti internet
+ disponibile tramite lo stesso server web, eventualmente
+ mappati su un solo indirizzo ip. Sono generalemente di due
+ tipi:</p>
+
+ <blockquote>
+ <ul class="simple">
+ <li>Basati su indirizzi ip diversi. Se si ha la
+ possibilita' di avere piu' indirizzi ip dedicati per i
+ diversi siti che si vuole servire. ES: <VirtualHost
+ 192.168.0.2:80> . Soluzione dispendiosa, si tende ad
+ usarla solo se servono certificati di sicurezza (SSL )
+ dedicati per ogni sito.</li>
+
+ <li>Basati su nomi di dominio diversi che puntano allo
+ stesso ip. Soluzione piu' economica e diffusa che si
+ basa sulle funzionalita' di http 1.1 .</li>
+ </ul>
+ </blockquote>
+
+ <p>Prenderemo in esame la gestione di virtual hosts basati
+ su nomi di dominio.</p>
+
+ <div class="section" id="gestione-dns">
+ <h3><a class="toc-backref" href=
+ "#id25">3.4.1 Gestione DNS</a></h3>
+
+ <p>Prima di tutto per poter impostare i virtual hosts
+ dovete avere un server DNS che risolva i vostri nomi di
+ dominio sull'indirizzo ip del server. Questo si puo'
+ ottenere in vari modi, ad es:</p>
+
+ <blockquote>
+ <ul class="simple">
+ <li>Bind Impostare i campi A nelle proprie zone
+ gestite dal server dns Bind. Ad es: <tt class=
+ "docutils literal"><span class=
+ "pre">papo</span>
+ <span class=
+ "pre">A</span>
+ <span class="pre">212.22.136.248</span></tt></li>
+
+ <li>Servizio DNS dinamico on line. Utilizzare un
+ servizio come ad es: <a class="reference external"
+ href=
+ "https://www.dyndns.com/">https://www.dyndns.com/</a>
+ per mappare nomi di dominio sul proprio indirizzo ip,
+ comodo ad esempio se si dispone di un indirzzo ip
+ pubblico (anche se dinamico) per la propria
+ connessione ad internet.</li>
+
+ <li>Dnsmasq Utilizzabile a livello locale per fare
+ dei test, utilizzando direttive come: <tt class=
+ "docutils literal"><span class=
+ "pre">address=/davide.piffa.net/10.10.208.178</span></tt></li>
+
+ <li>/etc/hosts Per prove <em>strettamente a livello
+ locale</em> potete impostare i nomi dei vostri
+ virtual server nel file /etc/hosts .</li>
+ </ul>
+ </blockquote>
+
+ <p>Testare con dig (disponibile nel pacchetto <tt class=
+ "docutils literal"><span class="pre">dnsutils</span></tt>
+ ) il nome di dominio che si vuole utilizzare:</p>
+ <pre class="literal-block">
+# dig 177.piffa.net
+
+; <<>> DiG 9.5.1-P1 <<>> 177.piffa.net
+;; global options: printcmd
+;; Got answer:
+;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 38036
+;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
+
+;; QUESTION SECTION:
+;177.piffa.net. IN A
+
+;; ANSWER SECTION:
+177.piffa.net. 0 IN A 10.10.208.177
+
+;; Query time: 12 msec
+;; SERVER: 10.10.208.254#53(10.10.208.254)
+;; WHEN: Wed May 6 12:27:08 2009
+;; MSG SIZE rcvd: 47
+</pre>
+
+ <p>La parte interessante e' <tt class=
+ "docutils literal"><span class=
+ "pre">177.piffa.net.</span>
+ <span class=
+ "pre">0</span>
+ <span class="pre">IN</span>
+ <span class=
+ "pre">A</span>
+ <span class="pre">10.10.208.177</span></tt> . Il nome di
+ dominio 177.piffa.net viene risolto sull'ip 10.10.208.177
+ , nel nostro Apache (che risponde all'ip 10.10.208.177 )
+ dovra' essere disponibile un virtual host che corrisponde
+ al nome <tt class="docutils literal"><span class=
+ "pre">177.piffa.net</span></tt> .</p>
+ </div>
+
+ <div class="section" id="virtual-host">
+ <h3><a class="toc-backref" href=
+ "#id26">3.4.2 Virtual host</a></h3>
+
+ <p>Esempio di Virtual host</p>
+ </div>
+ </div>
+
+ <div class="section" id="user-authentication">
+ <h2><a class="toc-backref" href=
+ "#id27">3.5 User Authentication</a></h2>
+
+ <p>link: <a class="reference external" href=
+ "http://www.apacheweek.com/features/userauth">http://www.apacheweek.com/features/userauth</a></p>
+ </div>
+
+ <div class="section" id="cavets">
+ <h2><a class="toc-backref" href=
+ "#id28">3.6 Cavets</a></h2>
+
+ <p>Problemi di cache:</p>
+
+ <blockquote>
+ <ul class="simple">
+ <li>Proxy: nei settaggi del browser specificare di non
+ utilizzare un server proxy http per il sito web locale
+ (o per gli altri che si stanno monitorando). Se si ha
+ il controllo del proxy server: stopparlo, ricaricare la
+ pagina (operazione che fallira'), far ripartire il
+ proxy, ricaricare la pagina.</li>
+
+ <li>Provare con un altro browser, o cercare di svuotare
+ la cache chiudere/riaprire l'applicativo. Provare a
+ fermare Apache, ricaricare la pagina (operazione che
+ fallira'), far ripartire il Apache, ricaricare la
+ pagina.</li>
+ </ul>
+ </blockquote>
+ </div>
+ </div>
+
+ <div class="section" id="domain-name-system">
+ <h1><a class="toc-backref" href=
+ "#id29">4 Domain Name System</a></h1>
+
+ <div class="section" id=
+ "informazioni-di-base-sul-servizio-dns">
+ <h2><a class="toc-backref" href=
+ "#id30">4.1 Informazioni di base sul
+ servizio DNS.</a></h2>
+
+ <p>Domain Name System (spesso indicato con DNS) è un
+ servizio utilizzato per la risoluzione di nomi di host in
+ indirizzi IP e viceversa. Il servizio è realizzato tramite
+ un database distribuito, costituito dai server DNS.</p>
+
+ <p>Il nome DNS denota anche il protocollo che regola il
+ funzionamento del servizio, i programmi che lo
+ implementano, i server su cui questi girano, l'insieme di
+ questi server che cooperano per fornire il servizio.</p>
+
+ <p>I nomi DNS, o "nomi di dominio", sono una delle
+ caratteristiche più visibili di Internet.</p>
+
+ <p>C'è confusione in merito alla definizione
+ dell'acronimo: la S spesso viene interpretata come service,
+ ma la definizione corretta è system.</p>
+
+ <p>L'operazione di convertire un nome in un indirizzo è
+ detta risoluzione DNS, convertire un indirizzo IP in nome
+ è detto risoluzione inversa.</p>
+ </div>
+
+ <div class="section" id="nomi-di-dominio">
+ <h2><a class="toc-backref" href=
+ "#id31">4.2 Nomi di dominio</a></h2>
+
+ <p>Un nome a dominio è costituito da una serie di stringhe
+ separate da punti, ad esempio it.wikipedia.org. A
+ differenza degli indirizzi IP, dove la parte più
+ importante del numero è la prima partendo da sinistra, in
+ un nome DNS la parte più importante è la prima partendo
+ da destra. Questa è detta dominio di primo livello (o TLD,
+ Top Level Domain), per esempio .org o .it.</p>
+
+ <p>Un dominio di secondo livello consiste in due parti, per
+ esempio wikipedia.org, e così via. Ogni ulteriore elemento
+ specifica un'ulteriore suddivisione. Quando un dominio di
+ secondo livello viene registrato all'assegnatario, questo
+ è autorizzato a usare i nomi di dominio relativi ai
+ successivi livelli come it.wikipedia.org (dominio di terzo
+ livello) e altri come some.other.stuff.wikipedia.org
+ (dominio di quinto livello) e così via.</p>
+ </div>
+
+ <div class="section" id="tipologie-di-record">
+ <h2><a class="toc-backref" href=
+ "#id32">4.3 Tipologie di record</a></h2>
+
+ <p>Ad un nome DNS possono corrispondere diversi tipi di
+ informazioni. Per questo motivo, esistono diversi tipi di
+ record DNS. Ogni voce del database DNS deve essere
+ caratterizzata da un tipo. I principali tipi sono:</p>
+
+ <ul class="simple">
+ <li>Record A - Indica la corrispondenza tra un nome ed
+ uno (o più) indirizzi IP (per la precisione indirizzi
+ IPv4, ovvero la versione attualmente in uso).</li>
+
+ <li>Record MX - (Mail eXchange) indica a quali server
+ debba essere inviata la posta elettronica per un certo
+ dominio.</li>
+
+ <li>Record CNAME - Sono usati per creare un alias, ovvero
+ per fare in modo che lo stesso calcolatore sia noto con
+ più nomi. Uno degli utilizzi di questo tipo di record
+ consiste nell'attribuire ad un host che offre più
+ servizi un nome per ciascun servizio. In questo modo, i
+ servizi possono poi essere spostati su altri host senza
+ dover riconfigurare i client, ma modificando solo il
+ DNS.</li>
+
+ <li>Record PTR - Il DNS viene utilizzato anche per
+ realizzare la risoluzione inversa, ovvero per far
+ corrispondere ad un indirizzo IP il corrispondente nome a
+ dominio. Per questo si usano i record di tipo "PTR" (e
+ una apposita zona dello spazio dei nomi
+ in-addr.arpa).</li>
+
+ <li>Record AAAA - Restituisce un indirizzo IPv6.</li>
+
+ <li>Record SRV - Identificano il server per un
+ determinato servizio all'interno di un dominio. Possono
+ essere considerati una generalizzazione dei record
+ MX.</li>
+
+ <li>Record TXT - Associano campi di testo arbitrari ad un
+ dominio. Questi campi possono contenere una descrizione
+ informativa oppure essere utilizzati per realizzare
+ servizi.</li>
+ </ul>
+
+ <p>Vi sono anche tipi di record "di servizio", necessari al
+ funzionamento del database distribuito: * Record NS -
+ Utilizzato per indicare quali siano i server DNS
+ autoritativi per un certo dominio, ovvero per delegarne la
+ gestione. * Record SOA - (Start of Authority) usato per la
+ gestione delle zone DNS.</p>
+ </div>
+
+ <div class="section" id="utilizzo">
+ <h2><a class="toc-backref" href=
+ "#id33">4.4 Utilizzo</a></h2>
+
+ <p>I computer vengono identificati in rete grazie agli
+ indirizzi <em>IP</em>, questi pero' non sono comodi per gli
+ utenti come riferimento per i vari server. Ad esempio
+ sarebbe scomodoriferirsi al motore di ricerca Goggle con
+ uno dei suoi IP: <tt class="docutils literal"><span class=
+ "pre">74.125.43.104</span></tt>, e' preferibile usare il
+ nome di dominio <em>www.google.com</em>:</p>
+ <pre class="literal-block">
+ping -c 1 www.google.com
+PING www.l.google.com (74.125.43.104) 56(84) bytes of data.
+</pre>
+ </div>
+
+ <div class="section" id="risoluzione-dei-nomi-di-dominio">
+ <h2><a class="toc-backref" href=
+ "#id34">4.5 Risoluzione dei nomi di
+ dominio</a></h2>
+
+ <p>Ci sono vari strumenti per interrogare i server DNS e
+ ottenere l'indirizzo IP associato al nome di dominio che ci
+ interessa:</p>
+ <pre class="literal-block">
+$ host www.piffa.net
+ www.piffa.net is an alias for piffa.net.
+ piffa.net has address 65.98.21.97
+ piffa.net mail is handled by 10 65.98.21.97
+
+
+$ nslookup www.piffa.net
+ Server: 192.168.0.10
+ Address: 192.168.0.10#53
+
+ Non-authoritative answer:
+ www.piffa.net canonical name = piffa.net.
+ Name: piffa.net
+ Address: 65.98.21.97
+
+
+ $ dig www.piffa.net
+
+ ; <<>> DiG 9.6.0-P1 <<>> www.piffa.net
+ ;; global options: +cmd
+ ;; Got answer:
+ ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 47751
+ ;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 4, ADDITIONAL: 4
+
+ ;; QUESTION SECTION:
+ ;www.piffa.net. IN A
+
+ ;; ANSWER SECTION:
+ www.piffa.net. 3489 IN CNAME piffa.net.
+ piffa.net. 3489 IN A 65.98.21.97
+
+ ;; AUTHORITY SECTION:
+ piffa.net. 86289 IN NS ns2.mydomain.com.
+ piffa.net. 86289 IN NS ns1.mydomain.com.
+ piffa.net. 86289 IN NS ns4.mydomain.com.
+ piffa.net. 86289 IN NS ns3.mydomain.com.
+
+ ;; ADDITIONAL SECTION:
+ ns1.mydomain.com. 96208 IN A 64.94.117.193
+ ns2.mydomain.com. 96208 IN A 64.94.31.67
+ ns3.mydomain.com. 96208 IN A 66.150.161.137
+ ns4.mydomain.com. 96208 IN A 63.251.83.74
+
+ ;; Query time: 1 msec
+ ;; SERVER: 192.168.0.10#53(192.168.0.10)
+ ;; WHEN: Sun May 10 21:23:11 2009
+ ;; MSG SIZE rcvd: 209
+</pre>
+ </div>
</div>
<div class="section" id="dnsmasq">
- <h1><a class="toc-backref" href="#id18">DNSmasq</a></h1>
+ <h1><a class="toc-backref" href=
+ "#id35">5 DNSmasq</a></h1>
+
+ <p>Dnsmasq puo' svolgere le funzioni di un DNS cache /
+ forwarder e un server DHCP caratterizzato dalla facilita' di
+ configurazione, dalla leggerezza e dalla possibilita' di
+ modificare rapidamente i record DNS serviti alla rete. Puo'
+ essere anche utilizzato come <cite>server per il boot da rete
+ <http://www.debian-administration.org/articles/478>_</cite>
+ .</p>
+
+ <p>Dnsmasq e' un interessante alternativa all'uso del server
+ DNS Bind in modalita' cache-only (non autoritativo)
+ accompagnato dal server DHCPD. I vantaggi sono:</p>
+
+ <ul class="simple">
+ <li>Leggerezza: puo' essere fatto girare su una macchina
+ relativamente debole in caso di bisogno.</li>
+
+ <li>Rapidita' di configurazione (in particolare per servire
+ dei record A / MX alla rete, modificando al volo i valori
+ originali ospitati sul server DNS Publico).</li>
+
+ <li>Ben integrato con connssioni PPP (utile se dovete
+ rendere disponibile rapidamente una connessione a internet
+ a una rete in difficolta').</li>
+ </ul>
+
+ <p>Tutto cio' rende Dnsmasq una soluzione valida in
+ particolare quando si deve intervenire in una rete
+ pre-esistente in cui il server principale e' in crisi: si
+ potra' utilizzare Dnsmasq anche su una macchina piu' debole e
+ <em>mascherare</em> i servizi al momento non disponibili.
+ Molto utile per scopi didattici, sopratutto per testare
+ server SMTP impostando al volo i campi MX per nomi di dominio
+ fittizi.</p>
</div>
<div class="section" id="samba">
- <h1><a class="toc-backref" href="#id19">Samba</a></h1>
+ <h1><a class="toc-backref" href=
+ "#id36">6 Samba</a></h1>
<p>Samba e' un progetto libero che fornisce servizi di
condivisione di file e stampanti a client SMB/CIFS.</p>
<p>Samba e' liberamente disponibile, al contrario di altre
implementazioni SMB/CIFS, e permette di ottenere
- interoperabilità tra Linux, Unix, Mac OS X e
- Windows.</p>
+ interoperabilita' tra Linux, Unix, Mac OS X e Windows.</p>
- <p>Samba e' un software che può girare su piattaforme che
- non siano Microsoft Windows, per esempio, UNIX, Linux, IBM
- System 390, OpenVMS e altri sistemi operativi. Samba utilizza
- il protocollo TCP/IP utilizzando i servizi offerti sul server
+ <p>Samba e' un software che puo girare su piattaforme che non
+ siano Microsoft Windows, per esempio, UNIX, Linux, IBM System
+ 390, OpenVMS e altri sistemi operativi. Samba utilizza il
+ protocollo TCP/IP utilizzando i servizi offerti sul server
ospite. Quando correttamente configurato, permette di
interagire con client o server Microsoft Windows come se
fosse un file e print server Microsoft agendo da Primary
- Domain Controller (PDC) o come Backup Domain Controller, può
+ Domain Controller (PDC) o come Backup Domain Controller, puo'
inoltre prendere parte ad un dominio Active Directory.</p>
- <p>Pacchetti da installare per utilizzare Samba in modalita'
- client <a class="footnote-reference" href="#id4" id="id3"
- name="id3">[2]</a></p>
- <pre class="literal-block">
+ <div class="section" id="pacchetti">
+ <h2><a class="toc-backref" href=
+ "#id37">6.1 Pacchetti</a></h2>
+
+ <p>Pacchetti da installare per utilizzare Samba in
+ modalita' client <a class="footnote-reference" href="#id4"
+ id="id3" name="id3">[2]</a></p>
+ <pre class="literal-block">
samba-client
</pre>
- <p>Pacchetti da installare per utilizzare Samba in modalita'
- server:</p>
- <pre class="literal-block">
+ <p>Pacchetti da installare per utilizzare Samba in
+ modalita' server:</p>
+ <pre class="literal-block">
samba smbfs smbclient
</pre>
- <table class="docutils footnote" frame="void" id="id4" rules=
- "none">
- <colgroup>
- <col class="label">
- <col>
- </colgroup>
+ <table class="docutils footnote" frame="void" id="id4"
+ rules="none">
+ <colgroup>
+ <col class="label">
+ <col>
+ </colgroup>
- <tbody valign="top">
- <tr>
- <td class="label"><a class="fn-backref" href=
- "#id3">[2]</a></td>
-
- <td>Anche se nato per le i sistemi Windows, Samba puo'
- essere usato anche per montare cartelle sotto GNU/Linux
- come alternativa a NFS. Per la condivisione di
- stampanti sarebbe invece opportuno intervenire
- direttamente su <tt class=
- "docutils literal"><span class=
- "pre">CUPS</span></tt>.</td>
- </tr>
- </tbody>
- </table>
+ <tbody valign="top">
+ <tr>
+ <td class="label"><a class="fn-backref" href=
+ "#id3">[2]</a></td>
+
+ <td>Anche se nato per i sistemi Windows, Samba puo'
+ essere usato anche per montare cartelle sotto
+ GNU/Linux come alternativa a NFS. Per la condivisione
+ di stampanti sarebbe invece opportuno intervenire
+ direttamente su <tt class=
+ "docutils literal"><span class=
+ "pre">CUPS</span></tt>.</td>
+ </tr>
+ </tbody>
+ </table>
- <p>Durante la prima installazione viene chiesto il nome del
- gruppo di appartenenza, il default per Windows e' <tt class=
- "docutils literal"><span class="pre">WORKGROUP</span></tt>.
- In aula usiamo invece <tt class=
- "docutils literal"><span class="pre">208</span></tt> .</p>
+ <p>Durante la prima installazione viene chiesto il nome del
+ gruppo di appartenenza, il default per Windows e'
+ <tt class="docutils literal"><span class=
+ "pre">WORKGROUP</span></tt>. In aula usiamo invece
+ <tt class="docutils literal"><span class=
+ "pre">208</span></tt> .</p>
- <p>Se necessario per riconfigurare Samba si usi il
- comando:</p>
- <pre class="literal-block">
+ <p>Per riconfigurare Samba si usi il comando:</p>
+ <pre class="literal-block">
dpkg-reconfigure samba-common
</pre>
+ </div>
- <p>Quando si utilizza Samba bisogna tener conto di 3 livelli
- di password (e generalmente volete usare <em>sempre la stessa
- password</em> per ognuno di questi) e delle differenze tra le
- modalita' di autenticazione (e quindi anche di criptaggio
- delle passwords) usate da sistemi GNU/Linux e Windows:</p>
-
- <dl class="docutils">
- <dt>1 Sistema *Unix ( GNU/Linux )</dt>
-
- <dd>E' la password dell'utente di sistema che viene usata
- sul sistema operativo su cui gira il software Samba. E'
- importante tenere conto anche delle <em>user-id</em> e
- <em>group-id</em> degli utenti che dovranno fisicamente
- scrivere sui file system. Se un utente non puo' scrivere in
- una certa posizione del file system (ad esempio nella
- cartella <tt class="docutils literal"><span class=
- "pre">/mnt/condivisione</span></tt> che sara' stata
- necessariamente creata inizialmente dall'utente <tt class=
- "docutils literal"><span class="pre">root</span></tt>) per
- mancanza di privilegi allora neanche Samba potra' farlo nel
- momento in mette a disposizione la risorsa all'utente. Se
- si montano file-system dedicati per le condivisioni
- controllare i permessi e propieta' dei <em>punti di
- mount*</em>. Queste passwords sono salvate nel solito file
- /etc/shadow (richiamato da /etc/passwd).</dd>
-
- <dt>2 Password per l'applicativo Samba</dt>
-
- <dd>Samba deve essere compatibile con Windows e quindi
- utilizzare un sistema di criptazione delle password diverso
- da /etc/shadow.a Le password per Samba possono essere
- gestite ad esempio col comando <tt class=
- "docutils literal"><span class="pre">smbpasswd</span></tt>
- e vengono generalmente salvate all'interno di <tt class=
- "docutils literal"><span class=
- "pre">/var/lib/samba/passdb.tdb</span></tt> .</dd>
-
- <dt>3 Password per Windows.</dt>
-
- <dd>Gli utenti Windows effettuano il log-in alla partenza
- della sessione di Windows. Se si avra' l'accortezza di
- usare sempre stessa password data precedentemente anche a
- Windows (o viceversa impostare la password per GNU/Linux /
- Samba uguale a quella di Windows) l'utente potra' accedere
- automaticamente alle condivisioni a lui disponibili.</dd>
- </dl>
+ <div class="section" id="passwords-e-autenticazione">
+ <h2><a class="toc-backref" href=
+ "#id38">6.2 Passwords e
+ autenticazione</a></h2>
+
+ <p>Per poter configurare Samba in modo che usi un sistema
+ di negoziazione degli accessi alle cartelle condivise
+ basato su accoppiate <em>nome utente / password</em>
+ bisogna distinguere tra 3 livelli di password (e
+ generalmente volete usare <em>sempre la stessa
+ password</em> per ognuno di questi) e delle differenze tra
+ le modalita' di <em>autenticazione</em> (e quindi anche di
+ criptaggio delle passwords) usate da sistemi GNU/Linux e
+ Windows:</p>
+
+ <dl class="docutils">
+ <dt>1 Sistema *Unix ( GNU/Linux )</dt>
+
+ <dd>E' la password dell'<em>utente di sistema</em> che
+ viene usata sul sistema operativo su cui gira il software
+ Samba. E' importante tenere conto anche delle
+ <em>user-id</em> e <em>group-id</em> degli utenti che
+ dovranno fisicamente scrivere sui file system. Se un
+ utente non puo' scrivere in una certa posizione del file
+ system (ad esempio nella cartella <tt class=
+ "docutils literal"><span class=
+ "pre">/mnt/condivisione</span></tt> che sara' stata
+ necessariamente creata inizialmente dall'utente
+ <tt class="docutils literal"><span class=
+ "pre">root</span></tt>) per mancanza dei privilegi di
+ scrittura allora neanche Samba potra' farlo nel momento
+ in mette a disposizione la risorsa all'utente. Se si
+ montano file-system dedicati per le condivisioni
+ controllare i permessi e propieta' dei <em>punti di
+ mount*</em>. Queste passwords sono salvate nel solito
+ file /etc/shadow (richiamato da /etc/passwd).</dd>
+
+ <dt>2 Password per l'applicativo Samba</dt>
+
+ <dd>Samba deve essere compatibile con Windows e quindi
+ utilizzare un sistema di criptazione delle password
+ diverso da /etc/shadow . Le password per Samba possono
+ essere gestite ad esempio col comando <tt class=
+ "docutils literal"><span class=
+ "pre">smbpasswd</span></tt> e vengono generalmente
+ salvate all'interno di <tt class=
+ "docutils literal"><span class=
+ "pre">/var/lib/samba/passdb.tdb</span></tt> .</dd>
+
+ <dt>3 Password per Windows.</dt>
+
+ <dd>Gli utenti Windows effettuano il log-in alla partenza
+ della sessione di Windows. Se si avra' l'accortezza di
+ usare sempre la <em>stessa password</em> data
+ precedentemente anche a Windows (o viceversa impostare la
+ password per GNU/Linux / Samba uguale a quella di
+ Windows) l'utente potra' accedere automaticamente alle
+ condivisioni a lui disponibili.</dd>
+ </dl>
+ </div>
<div class="section" id="creazione-utenti">
- <h2><a class="toc-backref" href="#id20">Creazione
- Utenti</a></h2>
+ <h2><a class="toc-backref" href=
+ "#id39">6.3 Creazione Utenti</a></h2>
<p>Creiamo per primo l'utente sotto GNU/Linux, facendo
attenzione a <em>non dargli una shell di sistema</em>. Gli
<p>Nel file <tt class="docutils literal"><span class=
"pre">/etc/passwd</span></tt> avremo qualcosa come:</p>
<pre class="literal-block">
-sambo:x:1001:1001:Sambo utente Samba!,,,:/home/sambo:/bin/false
+sambo:x:1001:1001:Sambo utente Samba,,,:/home/sambo:/bin/false
</pre>
<p>Aggiunta dell'utente al database delle password per
Samba e generazione della sua password:</p>
-
- <blockquote>
- smbpasswd -a sambo
- </blockquote>
+ <pre class="literal-block">
+smbpasswd -a sambo
+</pre>
<p>Se successivamente si vorra' modificare la password di
un utente gia' esistente si usi:</p>
-
- <blockquote>
- smbpasswd sambo
- </blockquote>
+ <pre class="literal-block">
+smbpasswd sambo
+</pre>
<p>La password sotto Windows verra' modificata sul sistema
Windows.</p>
</div>
<div class="section" id="creare-la-condivisione">
- <h2><a class="toc-backref" href="#id21">Creare la
+ <h2><a class="toc-backref" href=
+ "#id40">6.4 Creare la
condivisione</a></h2>
<p>La condivisione altro non e' che una cartella sul server
- che viene resa disponibile sui client negoziando l'accesso
- in base all'autenticazione tramite user-name / password. Si
- decida se fisicamente debba risiedere nella home di un
- utente (nel caso quest'ultimo ne sia l'unico fruitore) o in
- una cartella in /mnt/ nel caso piu' utenti accedano a
- questa. Nel secondo caso si gestiscano gli accessi sotto
+ che viene resa disponibile ai client negoziando l'accesso
+ in base a una autenticazione basata su <em>user-name /
+ password</em>. E' per altro possibile permettere l'accesso
+ a una risorsa a chiunque indiscriminatamente (a tutti i
+ <tt class="docutils literal"><span class=
+ "pre">guest</span></tt>) ma la cosa e' sconsigliabile dal
+ punto di vista della sicurezza. Si decida se la cartella
+ condivisa debba risiedere nella <em>home</em> di un utente
+ (nel caso quest'ultimo ne sia l'unico fruitore) o in una
+ cartella in /mnt/ (nel caso piu' utenti accedano a questa).
+ Nel secondo caso si potranno gestire gli accessi sotto
GNU/Linux tramite i gruppi.</p>
<p>Creazione della risorsa sambo_share nella home
# chown sambo:sambo /home/sambo/sambo_share/
</pre>
- <p>Bisognerebbe notare i permessi di esecuzione del
- file-system che ospita la cartella. Se i file che saranno
- contenuti nella condivisione saranno da usarsi sotto
- Windows non c'e' motivo che questi siano eseguibili sotto
- GNU/Linux. Si potrebbe avere quindi, ipotizzando una
- condivisione in /mnt/share che consista in un file system
- dedicato:</p>
+ <div class="section" id=
+ "sicurezza-permessi-di-esecuzione-sul-server">
+ <h3><a class="toc-backref" href=
+ "#id41">6.4.1 Sicurezza: permessi di
+ esecuzione sul server</a></h3>
+
+ <p>Bisognerebbe notare sul server i permessi di
+ esecuzione del file-system che ospita la cartella da
+ condividere. Se i file che saranno contenuti nella
+ condivisione saranno da usarsi sotto Windows non c'e'
+ motivo che questi siano eseguibili sotto GNU/Linux. Si
+ potrebbe avere quindi, ipotizzando una condivisione in
+ <tt class="docutils literal"><span class=
+ "pre">/mnt/share</span></tt> che risieda su di un file
+ system dedicato:</p>
- <p>In /etc/fstab</p>
- <pre class="literal-block">
-/dev/hda10 /mnt/share ext3 rw,nosuid,noexec 0 3
-</pre>
+ <p><tt class="docutils literal"><span class=
+ "pre">/etc/fstab</span></tt></p>
- <p>Si noti anche l'uso di <em>nosuid</em> per evitare la
- possibilita' di eseguire programmi con credenziali diverse
- da quelle originali.</p>
+ <blockquote>
+ /dev/hda10 /mnt/share ext3 rw,
+ <strong>nosuid,noexec</strong> 0 3
+ </blockquote>
+
+ <p>Si noti anche l'uso di <em>nosuid</em> per evitare la
+ possibilita' di eseguire programmi con credenziali
+ diverse.</p>
+ </div>
</div>
<div class="section" id=
"configurazione-dell-applicativo-samba-vero-e-proprio">
- <h2><a class="toc-backref" href="#id22">Configurazione
+ <h2><a class="toc-backref" href=
+ "#id42">6.5 Configurazione
dell'applicativo Samba vero e proprio.</a></h2>
<p>Avendo preparato gli utenti (ancora una volta: non si
writable = yes
# Negoziazione degli accessi su base utenti / passwords
valid users = sambo
+
+ # #######################################
# Altri parametri opzionali di interesse
# Se posso vedere la condivisione da esplora risorse
# anche se non ho i privilegi per accedervi.
</pre>
<p>Dopo aver salvato il file si puo' fare un primo
- controllo tramite l'utility testparm , che controlla la
- sintassi del file di configurazione di Samba. Se questo non
- rileva problemi si puo' procedere a un /etc/samba#
- /etc/init.d/samba restart .</p>
+ controllo tramite l'utility <tt class=
+ "docutils literal"><span class="pre">testparm</span></tt> ,
+ che controlla la sintassi del file di configurazione di
+ Samba. Se questo non rileva problemi si puo' procedere a un
+ <tt class="docutils literal"><span class="pre">#</span>
+ <span class="pre">/etc/init.d/samba</span> <span class=
+ "pre">restart</span></tt> .</p>
</div>
<div class="section" id="testare-il-servizio">
- <h2><a class="toc-backref" href="#id23">Testare il
- Servizio</a></h2>
+ <h2><a class="toc-backref" href=
+ "#id43">6.6 Testare il Servizio</a></h2>
<p>Come testare il servizio</p>
sambo Disk Home Directories
</pre>
+ <p>In particolare l'ultima voce relativa alla home
+ directory dell'utente dovrebbe essere visibile solo agli
+ utenti autenticati.</p>
+
<p>In alternativa e' possibile montare realmente la
condivisone anche su GNU/Linux tramite un client per samba
- e testare il corretto funzionamento:</p>
+ e testarne il corretto funzionamento:</p>
<pre class="literal-block">
mount -t smbfs //localhost/sambo_share /mnt/sambo_mount/ --verbose -o user=sambo
</pre>
</div>
<div class="section" id="note">
- <h1><a class="toc-backref" href="#id24">NOTE</a></h1>
+ <h1><a class="toc-backref" href=
+ "#id44">7 NOTE</a></h1>
<ul class="simple">
- <li>controllato fino alla riga 289</li>
-
- <li>definizioni degli applicativi prese direttamente da
- wikipedia</li>
+ <li>controllare apache</li>
</ul>
<p>sintassi: in <tt class="docutils literal"><span class=