<html lang="it">
<head>
<meta name="generator" content=
- "HTML Tidy for Linux/x86 (vers 25 March 2009), see www.w3.org">
+ "HTML Tidy for Linux (vers 25 March 2009), 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/">
+ "Docutils 0.6: http://docutils.sourceforge.net/">
<title>Servizi di rete passo a passo</title>
<style type="text/css">
/*
Author: Peter Parente
- Date: 2008/01/22
- Version: 1.0
+ Modyfied by: Andrea Manni
+ Date: 2010/01/22
+ Version: 1.1
Copyright: This stylesheet has been placed in the public domain - free to edit and use for all uses.
*/
}
a.toc-backref {
+ margin-left:20px;
text-decoration: none;
}
<tr class="field">
<th class="field-name">Version:</th>
- <td class="field-body">0.94</td>
+ <td class="field-body">0.95</td>
</tr>
</tbody>
</table>
<li><a class="reference internal" href=
"#eseguire-una-query-dns-con-dig" id="id46" name=
"id46">4.5.2 Eseguire una query
- DNS con <tt class="docutils literal"><span class=
- "pre">dig</span></tt>::</a></li>
+ DNS con <tt class=
+ "docutils literal">dig</tt>::</a></li>
<li><a class="reference internal" href="#id3" id=
"id47" name="id47">4.5.3 Virtual
force</a></li>
</ul>
</li>
+
+ <li>
+ <a class="reference internal" href="#proc-filesystem"
+ id="id127" name="id127">10.11 Proc
+ filesystem</a>
+
+ <ul class="auto-toc">
+ <li><a class="reference internal" href=
+ "#ip-forward" id="id128" name=
+ "id128">10.11.1 ip_forward</a></li>
+
+ <li><a class="reference internal" href=
+ "#ip-default-ttl" id="id129" name=
+ "id129">10.11.2 ip_default_ttl</a></li>
+
+ <li><a class="reference internal" href=
+ "#ip-local-port-range" id="id130" name=
+ "id130">10.11.3 ip_local_port_range</a></li>
+ </ul>
+ </li>
</ul>
</li>
<li>
<a class="reference internal" href="#ftp-server" id=
- "id127" name="id127">11 FTP Server</a>
+ "id131" name="id131">11 FTP Server</a>
<ul class="auto-toc">
<li><a class="reference internal" href="#id8" id=
- "id128" name=
- "id128">11.1 Pacchetti</a></li>
+ "id132" name=
+ "id132">11.1 Pacchetti</a></li>
<li><a class="reference internal" href="#sessioni-ftp"
- id="id129" name="id129">11.2 Sessioni
+ id="id133" name="id133">11.2 Sessioni
ftp</a></li>
<li><a class="reference internal" href=
- "#configurazione-iniziale" id="id130" name=
- "id130">11.3 Configurazione
+ "#configurazione-iniziale" id="id134" name=
+ "id134">11.3 Configurazione
iniziale</a></li>
<li><a class="reference internal" href=
- "#abilitare-gli-utenti-locali" id="id131" name=
- "id131">11.4 Abilitare gli utenti
+ "#abilitare-gli-utenti-locali" id="id135" name=
+ "id135">11.4 Abilitare gli utenti
locali</a></li>
<li><a class="reference internal" href="#jail-chroot"
- id="id132" name="id132">11.5 Jail
+ id="id136" name="id136">11.5 Jail
chroot</a></li>
<li><a class="reference internal" href=
- "#permessi-sul-filesystem" id="id133" name=
- "id133">11.6 Permessi sul
+ "#permessi-sul-filesystem" id="id137" name=
+ "id137">11.6 Permessi sul
filesystem</a></li>
<li><a class="reference internal" href=
- "#shell-dell-utente" id="id134" name=
- "id134">11.7 Shell
+ "#shell-dell-utente" id="id138" name=
+ "id138">11.7 Shell
dell'utente</a></li>
<li><a class="reference internal" href="#altre-opzioni"
- id="id135" name="id135">11.8 Altre
+ id="id139" name="id139">11.8 Altre
opzioni</a></li>
</ul>
</li>
</ul>
</div>
- <p>Generato il 2010-02-09 con: <a class="reference external"
+ <p>Generato il 2010-05-19 con: <a class="reference external"
href=
"http://docutils.sourceforge.net/rst.html">http://docutils.sourceforge.net/rst.html</a></p>
comodita' degli studenti, gli altri lettori possono
considerarli come riferimento per comprendere i valori
espressi nei vari file di configurazione. Ad esempio:
- quando leggerete <tt class="docutils literal"><span class=
- "pre">10.10.208.248:3128</span></tt> saprete che si tratta
- del nostro <em>proxy http</em> in ascolto sulla porta
- <cite>3128</cite>, stara' quindi a voi sostituire i dati
- con gli equivalenti <em>IP</em> della vostra rete.</p>
+ quando leggerete <tt class=
+ "docutils literal">10.10.208.248:3128</tt> saprete che si
+ tratta del nostro <em>proxy http</em> in ascolto sulla
+ porta <cite>3128</cite>, stara' quindi a voi sostituire i
+ dati con gli equivalenti <em>IP</em> della vostra rete.</p>
</div>
<div class="section" id="rete">
<p>Dal server locale degli studeti,
<strong>Bender</strong>, corrispondente all'IP <tt class=
- "docutils literal"><span class=
- "pre">10.10.208.248</span></tt>, vengono erogati i servizi
- DHCP, DNS, gateway (con NAT), proxy http e mirror della
- distribuzione Debian ( <a class="reference external" href=
+ "docutils literal">10.10.208.248</tt>, vengono erogati i
+ servizi DHCP, DNS, gateway (con NAT), proxy http e mirror
+ della distribuzione Debian ( <a class="reference external"
+ href=
"http://debian.piffa.net">http://debian.piffa.net</a>).
Altri servizi in esecuzione sul server:</p>
<p>Durante il corso delle lezioni e' opportuno che le
macchine degli studenti si appoggino al server Bender
- (ottetto finale <tt class="docutils literal"><span class=
- "pre">248</span></tt>), nel caso questo non fosse
- raggiungibile (ad esempio per permettere impostazioni di
- DHCP / routing diverse) sara' comunque disponibile il
- <tt class="docutils literal"><span class=
- "pre">10.10.208.254</span></tt> come gateway | DNS per la
- rete <tt class="docutils literal"><span class=
- "pre">10.10.208.10</span></tt>.</p>
+ (ottetto finale <tt class="docutils literal">248</tt>), nel
+ caso questo non fosse raggiungibile (ad esempio per
+ permettere impostazioni di DHCP / routing diverse) sara'
+ comunque disponibile il <tt class=
+ "docutils literal">10.10.208.254</tt> come gateway | DNS
+ per la rete <tt class=
+ "docutils literal">10.10.208.10</tt>.</p>
<p><strong>Non e' piu' possibile</strong> raggiungere
Bender tramite l'IP pubblico <tt class=
- "docutils literal"><span class=
- "pre">212.22.136.248</span></tt> o <em>qualsiasi altro
- ip</em> della classe <tt class=
- "docutils literal"><span class="pre">C</span> <span class=
- "pre">212.22.136.0/24</span></tt> precedentemente
- disponibile.</p>
+ "docutils literal">212.22.136.248</tt> o <em>qualsiasi
+ altro ip</em> della classe <tt class="docutils literal">C
+ 212.22.136.0/24</tt> precedentemente disponibile.</p>
<p>Il computer del docente con il server VNC e' sempre
configurato con l'ottetto finale: <tt class=
- "docutils literal"><span class="pre">177</span></tt> della
- rete utilizzata durante le lezioni (quindi generalmente la
- VNC sara' disponibile sul <tt class=
- "docutils literal"><span class=
- "pre">10.10.208.177:1</span></tt>.</p>
+ "docutils literal">177</tt> della rete utilizzata durante
+ le lezioni (quindi generalmente la VNC sara' disponibile
+ sul <tt class="docutils literal">10.10.208.177:1</tt>.</p>
<p>Gli studenti sono pregati di non impedire l'accesso SSH
alla propria macchina dal computer del docente, e non
modificare la password dell'utente <tt class=
- "docutils literal"><span class="pre">root</span></tt> del
- sistema operativo <em>pre-istallato</em> (ad es:
- <em>Diurno</em>).</p>
+ "docutils literal">root</tt> del sistema operativo
+ <em>pre-istallato</em> (ad es: <em>Diurno</em>).</p>
<div class="section" id="interfaces">
<h3><a class="toc-backref" href=
<p>Controllare il nome della propria scheda di rete: a
volte <em>udev</em> rinomina la prima scheda a <tt class=
- "docutils literal"><span class="pre">eth1</span></tt>,
- oppure potreste avere piu' di una scheda di rete (anche
- un'interfaccia <em>firewire</em> puo' essere
- automaticamente abilitata come scheda di rete).</p>
+ "docutils literal">eth1</tt>, oppure potreste avere piu'
+ di una scheda di rete (anche un'interfaccia
+ <em>firewire</em> puo' essere automaticamente abilitata
+ come scheda di rete).</p>
<p>Se si usano <em>schede di rete virtuali</em> ( eth0:1
, eth0:1 , ...) ricordarsi che queste dipendono dalla
scheda fisica a cui sono associate: abbattere con
- <tt class="docutils literal"><span class=
- "pre">ifconfig</span> <span class="pre">down</span>
- <span class="pre">eth0</span></tt> la scheda principale
- fara' cadere anche queste. Tornando ad attivare la scada
- principale con <tt class="docutils literal"><span class=
- "pre">ifconfig</span> <span class="pre">eth0</span>
- <span class="pre">up</span></tt> la virtuale tornera'
- attiva: nel caso voleste disabilitarla dovrete quindi
- sempre abbattere manualmente la scheda virtuale
+ <tt class="docutils literal">ifconfig down eth0</tt> la
+ scheda principale fara' cadere anche queste. Tornando ad
+ attivare la scada principale con <tt class=
+ "docutils literal">ifconfig eth0 up</tt> la virtuale
+ tornera' attiva: nel caso voleste disabilitarla dovrete
+ quindi sempre abbattere manualmente la scheda virtuale
<em>prima</em> della scheda reale.</p>
<p>I DNS vanno indicati nel file <tt class=
- "docutils literal"><span class=
- "pre">/etc/resolv.conf</span></tt> , la cui sintassi e'
- spiegata al punto 4.6 . Come DNS si <em>deve</em> usare
- il server Bender, alcuni parametri dei software di
- installazione, risoluzione dei mirror, vengono
- opportunamente modificatia da questo DNS.</p>
+ "docutils literal">/etc/resolv.conf</tt> , la cui
+ sintassi e' spiegata al punto 4.6 . Come DNS si
+ <em>deve</em> usare il server Bender, alcuni parametri
+ dei software di installazione, risoluzione dei mirror,
+ vengono opportunamente modificatia da questo DNS.</p>
</div>
</div>
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' completato
+ inst[TAB] xtigh[TAB]</tt> ora verra' completato
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>
+ "docutils literal">install</tt> che il nome del pacchetto
+ <tt class="docutils literal">xtightvncviewer</tt>.</p>
<p>Abilitare /etc/bash_completion nel file <tt class=
- "docutils literal"><span class=
- "pre">/etc/bash.bashrc</span></tt> oppure includerlo nel
- proprio <tt class="docutils literal"><span class=
+ "docutils literal">/etc/bash.bashrc</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
. /etc/bash_completion
</pre>
- <p>Il file <tt class="docutils literal"><span class=
- "pre">/etc/bash_completion</span></tt> deve essere presente
- nel sistema, in caso contrario installare il pacchetto:
- <tt class="docutils literal"><span class=
+ <p>Il file <tt class=
+ "docutils literal">/etc/bash_completion</tt> deve essere
+ presente nel sistema, in caso contrario installare il
+ pacchetto: <tt class="docutils literal"><span class=
"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>
+ <tt class="docutils literal">root</tt> ha un file
+ <tt class="docutils literal">.bashrc</tt> preimpostato
+ analogo a quello citato sopra, a differenza dei normali
+ utenti di sistema.</p>
<p>Links:</p>
<p>Assicurarsi che sia installata nel sistema la versione
completa dell'editor installando il pacchetto <tt class=
- "docutils literal"><span class="pre">vim</span></tt>:</p>
+ "docutils literal">vim</tt>:</p>
<pre class="literal-block">
# apt-get install vim
</pre>
<p>Modificare poi il file di configurazione generale
- <tt class="docutils literal"><span class=
- "pre">/etc/vim/vimrc</span></tt></p>
+ <tt class="docutils literal">/etc/vim/vimrc</tt></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
</pre>
<p>I principianti faranno bene ad esercitarsi con
- <tt class="docutils literal"><span class=
- "pre">vimtutor</span> <span class="pre">it</span></tt>.</p>
+ <tt class="docutils literal">vimtutor it</tt>.</p>
<p>Altri link per VIM:</p>
proprio a scopo didattico.</p>
<p>Per collegarvi al server del docente usate lo script
- <tt class="docutils literal"><span class=
- "pre">guarda.sh</span></tt> che dovrebbe gia essere
- disponibili sui sistemi preconfigurati, oppure potete
- invocare direttamente il collegamento con:</p>
+ <tt class="docutils literal">guarda.sh</tt> che dovrebbe
+ gia essere disponibili sui sistemi preconfigurati, oppure
+ potete invocare direttamente il collegamento con:</p>
<pre class="literal-block">
xtightvncviewer -viewonly 10.10.208.177:1
</pre>
<p>Se il comando non fosse disponibile installate il
- pacchetto <tt class="docutils literal"><span class=
- "pre">xtightvncviewer</span></tt>. Potete anche scaricare
- lo script <tt class="docutils literal"><span class=
- "pre">guarda.sh</span></tt> e renderlo eseguibile, ed
+ pacchetto <tt class=
+ "docutils literal">xtightvncviewer</tt>. Potete anche
+ scaricare lo script <tt class=
+ "docutils literal">guarda.sh</tt> e renderlo eseguibile, ed
eventualmente creare una voce nel menu di KDE per
richiamarlo.</p>
</pre>
<p>Per eseguire lo script digitare semplicemente <tt class=
- "docutils literal"><span class="pre">guarda.sh</span></tt>,
- oppure creare un link / collegamento sul Desktop allo
- script <tt class="docutils literal"><span class=
- "pre">/usr/local/bin/guarda.sh</span></tt>.</p>
+ "docutils literal">guarda.sh</tt>, oppure creare un link /
+ collegamento sul Desktop allo script <tt class=
+ "docutils literal">/usr/local/bin/guarda.sh</tt>.</p>
<p>Le impostazioni del server VNC sono:</p>
inizialmente nella sessione grafica per poter lanciare lo
script guarda.sh da una shell.</p>
- <p>Controllare con <tt class=
- "docutils literal"><span class="pre">whoami</span></tt> di
- essere l'utente normale (es <tt class=
- "docutils literal"><span class="pre">utente</span>
- <span class="pre">|</span> <span class=
- "pre">studente</span> <span class="pre">|</span>
- <span class="pre">proprio</span> <span class=
- "pre">nome</span></tt> ), in caso si sia assunta una altra
- <tt class="docutils literal"><span class=
- "pre">id</span></tt> si apra un altra shell o si esca da
- quella attuale con <tt class=
- "docutils literal"><span class="pre">exit</span></tt> .</p>
+ <p>Controllare con <tt class="docutils literal">whoami</tt>
+ di essere l'utente normale (es <tt class=
+ "docutils literal">utente | studente | proprio nome</tt> ),
+ in caso si sia assunta una altra <tt class=
+ "docutils literal">id</tt> si apra un altra shell o si esca
+ da quella attuale con <tt class=
+ "docutils literal">exit</tt> .</p>
</div>
<div class="section" id="lista-dei-pacchetti-di-base">
<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>. Esiste un equivalente
- <tt class="docutils literal"><span class=
+ pacchetto <tt class="docutils literal">kde</tt>.
+ Esiste un equivalente <tt class=
+ "docutils literal"><span class=
"pre">gnome-core</span></tt> per chi preferisce
Gnome, nel caso si potrebbe installare il log-in
manager <cite>gdm</cite> al posto di
<p>Vediamo i due file principali di apt:</p>
<ul class="simple">
- <li><tt class="docutils literal"><span class=
- "pre">/etc/apt/sources.list</span></tt></li>
+ <li><tt class=
+ "docutils literal">/etc/apt/sources.list</tt></li>
- <li><tt class="docutils literal"><span class=
- "pre">/etc/apt/apt.conf</span></tt></li>
+ <li><tt class=
+ "docutils literal">/etc/apt/apt.conf</tt></li>
</ul>
<div class="section" id="sources-list">
preleva i pacchetti da installare tramite <em>dpkg</em>,
vengono quindi precisati i metodi (ad es. http / ftp /
cdrom / file), la release che si vuole tracciare (es
- <tt class="docutils literal"><span class=
- "pre">stable,</span> <span class="pre">testing,</span>
- <span class="pre">unstable</span></tt> oppure i
- corrispondenti release name es: <tt class=
- "docutils literal"><span class="pre">Lenny,</span>
- <span class="pre">Squeeze,</span> <span class=
- "pre">Sid</span></tt>), i rami di interesse (es:
- <tt class="docutils literal"><span class=
- "pre">main</span></tt> che e' l'archivio principale,
- <tt class="docutils literal"><span class=
+ <tt class="docutils literal">stable, testing,
+ unstable</tt> oppure i corrispondenti release name es:
+ <tt class="docutils literal">Lenny, Squeeze, Sid</tt>), i
+ rami di interesse (es: <tt class=
+ "docutils literal">main</tt> che e' l'archivio
+ principale, <tt class="docutils literal"><span class=
"pre">non-free</span></tt> per il software non libero,
- <tt class="docutils literal"><span class=
- "pre">contrib</span></tt> per i pacchetti non realizzati
- dai manutentori ufficiali).</p>
+ <tt class="docutils literal">contrib</tt> per i pacchetti
+ non realizzati dai manutentori ufficiali).</p>
<p>Gli archivi sono generalmente:</p>
<ul class="simple">
- <li><tt class="docutils literal"><span class=
- "pre">deb</span></tt> per pacchetti Debian binari,
- pronti per l'installazione.</li>
+ <li><tt class="docutils literal">deb</tt> per pacchetti
+ Debian binari, pronti per l'installazione.</li>
<li><tt class="docutils literal"><span class=
"pre">deb-src</span></tt> per i pacchetti sorgenti
tempo e banda.</li>
</ul>
- <p><tt class="docutils literal"><span class=
- "pre">/etc/apt/sources.list</span></tt></p>
+ <p><tt class=
+ "docutils literal">/etc/apt/sources.list</tt></p>
<pre class="literal-block">
# esempio di accesso a un CDROM:
# cdrom:[Debian GNU/Linux 5.0.1 _Lenny_ - Official i386 kde-CD Binary-1 20090$
scaricare nuovi pacchetti si dovra' disabilitare il proxy
commentando la riga con ";" (''punto-e-virgola''). Su un
portatile vi conviene tracciare il mirror <tt class=
- "docutils literal"><span class=
- "pre">ftp.it.debian.org</span></tt> senza impostare il
- proxy: in aula verra' rediretto al mirror locale e a casa
- vi appoggerete al mirror ufficiale.</p>
+ "docutils literal">ftp.it.debian.org</tt> senza impostare
+ il proxy: in aula verra' rediretto al mirror locale e a
+ casa vi appoggerete al mirror ufficiale.</p>
<p>E' consigliabile impostare il proxy per apt anche in
presenza di un proxy-http <em>trasparente</em>.</p>
approccio alla navigazione basato su NAT.</p>
<p>Squid ascolta di default sulla porta <tt class=
- "docutils literal"><span class="pre">3128</span></tt>, per
- quanto in genere la porta preferita per i servizi di caching
- http sia la <tt class="docutils literal"><span class=
- "pre">8080</span></tt>. Per utilizzarlo subito anche per apt
- si aggiunga ad <tt class="docutils literal"><span class=
- "pre">/etc/apt/apt.conf</span></tt></p>
+ "docutils literal">3128</tt>, per quanto in genere la porta
+ preferita per i servizi di caching http sia la <tt class=
+ "docutils literal">8080</tt>. Per utilizzarlo subito anche
+ per apt si aggiunga ad <tt class=
+ "docutils literal">/etc/apt/apt.conf</tt></p>
<pre class="literal-block">
Acquire::http::Proxy "10.10.208.254:3128";
</pre>
<p>egue un estratto delle direttive principali viste in
aula presenti nel file di configurazione <tt class=
- "docutils literal"><span class=
- "pre">/etc/squid3/squid.conf</span></tt> .</p>
+ "docutils literal">/etc/squid3/squid.conf</tt> .</p>
<div class="section" id="cache-dir">
<h3><a class="toc-backref" href=
conto dello spazio disponibile, dimensioni tipiche e
massime degli oggetti che si vuole tenere in cache (un
solo file .iso occupa circa <tt class=
- "docutils literal"><span class="pre">700</span>
- <span class="pre">MB</span></tt>, il pacchetto
+ "docutils literal">700 MB</tt>, il pacchetto
Openoffice.org circa 150 MB, un pacchetto Debian circa 20
MB), e in fine del numero dei client.</p>
Cache_dir</a></h3>
<p>Ora possiamo impostare la cache nel file di
- configurazione <tt class="docutils literal"><span class=
- "pre">/etc/squid3/squid.conf</span></tt>:</p>
+ configurazione <tt class=
+ "docutils literal">/etc/squid3/squid.conf</tt>:</p>
<pre class="literal-block">
#TAG: cache_dir (riga 1628)
# Usage:
realizzare un server gateway / NAT / Squid si tenga
presente che Squid e' relativamente esoso di risorse
rispetto agli altri servizi: avra' bisogno di <tt class=
- "docutils literal"><span class="pre">~25MB</span></tt>
- (MegaByte) di RAM e <em>~150MHZ di CPU ARM</em> per
- servire decorosamente una decina di client http su una
- rete ethernet 10/100. In questo caso non fate scendere
- <tt class="docutils literal"><span class=
- "pre">cache_mem</span></tt> sotto i <tt class=
- "docutils literal"><span class="pre">2/4</span>
- <span class="pre">MB</span></tt> pena un accesso continuo
+ "docutils literal">~25MB</tt> (MegaByte) di RAM e
+ <em>~150MHZ di CPU ARM</em> per servire decorosamente una
+ decina di client http su una rete ethernet 10/100. In
+ questo caso non fate scendere <tt class=
+ "docutils literal">cache_mem</tt> sotto i <tt class=
+ "docutils literal">2/4 MB</tt> pena un accesso continuo
al supporto di storaggio.</p>
<p>Se invece si disponesse di una macchina dedicata a
<p>Questo parametro imposta la dimensione minima degli
oggetti salvati nella cache. Settato a <tt class=
- "docutils literal"><span class="pre">0</span></tt> o a
- valori molto piccoli puo' influire negativamente sulla
- frammentazione del filesytem e consumare un numero
- elevato di <em>inode</em> (cosa non piu' importante con
- ext4 o altri filesytem).</p>
+ "docutils literal">0</tt> o a valori molto piccoli puo'
+ influire negativamente sulla frammentazione del filesytem
+ e consumare un numero elevato di <em>inode</em> (cosa non
+ piu' importante con ext4 o altri filesytem).</p>
<p>In scenari con connessioni molto veloci ( >~10Mb),
pochi client (una decina) e server poco performanti nella
<p>Per poter limitare gli accessi a Squid dal punto di
vista dell'applicazione (quarto livello TCP/IP) si
identifichera' inizialmente l'entita' <em>rete locale</em>
- (es: <tt class="docutils literal"><span class=
- "pre">localnet</span></tt>) con una ACL di tipo
- <em>src</em> (indirizzi IP sorgenti) indicando la
- <em>classe / range di IP</em> della nostra rete.</p>
+ (es: <tt class="docutils literal">localnet</tt>) con una
+ ACL di tipo <em>src</em> (indirizzi IP sorgenti) indicando
+ la <em>classe / range di IP</em> della nostra rete.</p>
<blockquote>
Dopodiche l'accesso (<tt class=
- "docutils literal"><span class=
- "pre">http_access</span></tt>) si concedera'
+ "docutils literal">http_access</tt>) si concedera'
(<em>allow</em>) a questa entita' (es: <tt class=
- "docutils literal"><span class=
- "pre">localnet</span></tt>) negando chiunque altro.
+ "docutils literal">localnet</tt>) negando chiunque altro.
</blockquote>
<p>Per maggiori dettagli sulla sintassi utilizzabile per
"#id29">2.2.1 ACL e http access</a></h3>
<p>Si proceda a creare una <tt class=
- "docutils literal"><span class="pre">ACL</span></tt> di
- tipo <tt class="docutils literal"><span class=
- "pre">src</span></tt> per identificare la nostra rete
- locale, poi si abiliti l'accesso a questa con la
- direttiva <tt class="docutils literal"><span class=
- "pre">http_access</span></tt>. Tutto quanto non e'
- espressamente autorizzato viene poi negato da un
- <tt class="docutils literal"><span class=
- "pre">http_access</span> <span class="pre">deny</span>
- <span class="pre">all</span></tt> finale.</p>
+ "docutils literal">ACL</tt> di tipo <tt class=
+ "docutils literal">src</tt> per identificare la nostra
+ rete locale, poi si abiliti l'accesso a questa con la
+ direttiva <tt class="docutils literal">http_access</tt>.
+ Tutto quanto non e' espressamente autorizzato viene poi
+ negato da un <tt class="docutils literal">http_access
+ deny all</tt> finale.</p>
<pre class="literal-block">
# TAG: acl
# Defining an Access List
corretto funzionamento per assicurarsi di non aver creato
un <em>open-relay</em>. Per fare dei test significativi
serve utilizzare degli host remoti: ci si connetta via ssh
- a questi e si usi <tt class="docutils literal"><span class=
- "pre">wget</span></tt> da riga di comando.</p>
+ a questi e si usi <tt class="docutils literal">wget</tt> da
+ riga di comando.</p>
<div class="section" id="client-wgetrc">
<h3><a class="toc-backref" href=
"#id31">2.3.1 Client: ~/.wgetrc</a></h3>
- <p>Nel file <tt class="docutils literal"><span class=
- "pre">.wgetrc</span></tt> (si noti il punto iniziale: e'
- un file nascosto) si puo' impostare il proxy per wget. Si
- utilizzi l'indirizzo IP del server che si vuole testare,
- e si seguano i log <tt class=
- "docutils literal"><span class=
- "pre">/var/log/squid3/access.log</span></tt> sul
+ <p>Nel file <tt class="docutils literal">.wgetrc</tt> (si
+ noti il punto iniziale: e' un file nascosto) si puo'
+ impostare il proxy per wget. Si utilizzi l'indirizzo IP
+ del server che si vuole testare, e si seguano i log
+ <tt class=
+ "docutils literal">/var/log/squid3/access.log</tt> sul
server.</p>
<p>Da notare che la prova va' fatta su una macchina della
rete che si vuole testare, non da <em>localhost</em>. Per
altro se si utilizzasse <em>direttamente</em> <tt class=
- "docutils literal"><span class=
- "pre">localhost</span></tt> non si testerebbe la
+ "docutils literal">localhost</tt> non si testerebbe la
<em>ACL</em> predisposta, dato che si si rientrerebbe
nella ACL (pre-configurata di default) <tt class=
- "docutils literal"><span class=
- "pre">localhost</span></tt>.</p>
+ "docutils literal">localhost</tt>.</p>
<dl class="docutils">
<dt>.wgetrc</dt>
<p>In oltre e' possibile configurare diversi
<em>analizzatori di log</em> come <tt class=
- "docutils literal"><span class=
- "pre">Webalizer</span></tt> per studiare i log di
+ "docutils literal">Webalizer</tt> per studiare i log di
Squid.</p>
</div>
</div>
disponibile.</p>
<p>File di configurazione: <tt class=
- "docutils literal"><span class=
- "pre">/etc/tinyproxy/tinyproxy.conf</span></tt></p>
+ "docutils literal">/etc/tinyproxy/tinyproxy.conf</tt></p>
<pre class="literal-block">
# Porta su cui ascoltare
Port 3128
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>
+ cartella: <tt class="docutils literal">/etc/apache2</tt> e
+ sono strutturati come descritto nel file <tt class=
+ "docutils literal">/usr/share/doc/apache2/README.Debian.gz</tt>
. Sostanzialmente lo schema e' il seguente:</p>
<dl class="docutils">
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>
+ "docutils literal"><VirtualHost *:80></tt></dd>
<dt>sites-available</dt>
"#id38">4.4 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>
+ "docutils literal">php5 <span class=
+ "pre">php-pear</span></tt></p>
<div class="section" id="test-del-modulo-php">
<h3><a class="toc-backref" href=
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/www/info.php</span></tt> contenete codice php
- eseguibile dall'interprete, ad es:</p>
+ "docutils literal">/var/www</tt> (o altra cartella
+ visibile) un file con estensione *.php (es <tt class=
+ "docutils literal">/var/www/info.php</tt> contenete
+ codice php eseguibile dall'interprete, ad es:</p>
<pre class="literal-block">
<?php phpinfo() ; ?>
</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>
+ "docutils literal">mysql</tt>).</p>
</div>
<div class="section" id="phpmyadmin">
necessariamente la presenza di un database Mysql locale,
puo' infatti essere utilizzata per gestire database
remoti (il suo file di configurazione: <tt class=
+ "docutils literal">/etc/phpmyadmin/config.inc.php</tt> ).
+ Nel caso si voglia installare localmente Mysql si
+ utilizzi il pacchetto <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>
+ "docutils literal">/etc/phpmyadmin/apache.conf</tt> in
+ <tt class="docutils literal">/etc/apache2/conf.d/</tt>
+ .</p>
</div>
<div class="section" id=
<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>
+ "docutils literal">pgsql</tt>).</p>
</div>
<div class="section" id="phppgadmin">
PostgreSQL non richiede necessariamente la presenza di un
database locale, puo' infatti essere utilizzata per
gestire database remoti (il suo file di configurazione:
- <tt class="docutils literal"><span class=
- "pre">/etc/phppgadmin/config.inc.php</span></tt> ). Nel
- caso si voglia installare localmente Mysql si utilizzi il
- pacchetto <tt class="docutils literal"><span class=
- "pre">postgresql</span></tt> .</p>
+ <tt class=
+ "docutils literal">/etc/phppgadmin/config.inc.php</tt> ).
+ Nel caso si voglia installare localmente Mysql si
+ utilizzi il pacchetto <tt class=
+ "docutils literal">postgresql</tt> .</p>
<p>Phpmyadmin dovrebbe essere disponibile all'URL:
<tt class="docutils literal"><span class=
"pre">http://localhost/phppgadmin/</span></tt>, se cosi
non fosse controllare che sia incluso il file <tt class=
- "docutils literal"><span class=
- "pre">/etc/phppgadmin/apache.conf</span></tt> in
- <tt class="docutils literal"><span class=
- "pre">/etc/apache2/conf.d/</span></tt> .</p>
+ "docutils literal">/etc/phppgadmin/apache.conf</tt> in
+ <tt class="docutils literal">/etc/apache2/conf.d/</tt>
+ .</p>
</div>
</div>
<li>Basati su <em>indirizzi IP</em>. Se si ha la
possibilita' di avere piu' indirizzi IP dedicati per i
diversi siti che si vuole servire. ES: <tt class=
- "docutils literal"><span class=
- "pre"><VirtualHost</span> <span class=
- "pre">192.168.0.2:80></span></tt> . Soluzione
- dispendiosa, si tende ad usarla solo se servono
- certificati di sicurezza (SSL ) dedicati per ogni
- sito.</li>
+ "docutils literal"><VirtualHost
+ 192.168.0.2:80></tt> . Soluzione dispendiosa, si
+ tende ad usarla solo se servono certificati di
+ sicurezza (SSL ) dedicati per ogni sito.</li>
<li>Basati su <em>nomi di dominio</em> che puntano allo
stesso IP. Soluzione piu' economica e diffusa che si
<blockquote>
<dl class="docutils">
- <dt><tt class="docutils literal"><span class=
- "pre">/etc/hosts</span></tt></dt>
+ <dt><tt class="docutils literal">/etc/hosts</tt></dt>
<dd>Per prove sul proprio sistema potete impostare i
nomi dei vostri virtual server nel file /etc/hosts
<dd>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></dd>
+ "docutils literal">papo
+ A
+ 212.22.136.248</tt></dd>
</dl>
</blockquote>
</div>
<div class="section" id="eseguire-una-query-dns-con-dig">
<h3><a class="toc-backref" href=
"#id46">4.5.2 Eseguire una query DNS con
- <tt class="docutils literal"><span class=
- "pre">dig</span></tt>::</a></h3>
+ <tt class="docutils literal">dig</tt>::</a></h3>
<p>Per testare la corretta risoluzione dei vostri nomi di
dominio sui relaivi indirizzi IP si usi dig (o altre
utlity, vedere la sezione relativa i DNS). Dig e'
contenuto nel pacchetto <tt class=
- "docutils literal"><span class=
- "pre">dnsutils</span></tt>.</p>
+ "docutils literal">dnsutils</tt>.</p>
<blockquote>
<p># dig 177.piffa.net</p>
</blockquote>
<p>La parte interessante e' l'<em>ANSWER SECTION</em>:
- <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> (<tt class=
- "docutils literal"><span class=
- "pre">ServerName</span></tt>) .</p>
+ <tt class=
+ "docutils literal">177.piffa.net.
+ 0
+ IN
+ A 10.10.208.177</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">177.piffa.net</tt> (<tt class=
+ "docutils literal">ServerName</tt>) .</p>
<p>Il server DNS utilizzato dal sistema e' evidenziato
- dalla stringa: <tt class="docutils literal"><span class=
- "pre">;;</span> <span class="pre">SERVER:</span>
- <span class=
- "pre">10.10.28.248#53(10.10.28.248)</span></tt> che
- dovrebbe corrispondere a quanto impostato nel vostro
- <tt class="docutils literal"><span class=
- "pre">/etc/resolv.conf</span></tt>. Se il vostro browser
- web utilizza un proxy http sara questo a risolvere i nomi
- di dominio, tipicamente potete disabilitare l'uso del
- proxy per determinati domini nella sezione di
- configurazione del browser.</p>
+ dalla stringa: <tt class="docutils literal">;; SERVER:
+ 10.10.28.248#53(10.10.28.248)</tt> che dovrebbe
+ corrispondere a quanto impostato nel vostro <tt class=
+ "docutils literal">/etc/resolv.conf</tt>. Se il vostro
+ browser web utilizza un proxy http sara questo a
+ risolvere i nomi di dominio, tipicamente potete
+ disabilitare l'uso del proxy per determinati domini nella
+ sezione di configurazione del browser.</p>
</div>
<div class="section" id="id3">
</pre>
<ol class="arabic simple">
- <li><tt class="docutils literal"><span class=
- "pre"><VirtualHost</span> <span class=
- "pre">\*:80</span> <span class="pre">></span></tt>
- La prima riga indica l'inizio della stanza relativa al
- nostro virtual host, che ascoltera' su qualunque
- indirizzo IP (nel caso il server abbia piu' indirizzi
- dai quali e' raggiungibile) sulla porta <tt class=
- "docutils literal"><span class=
- "pre">80</span></tt>.</li>
-
- <li><tt class="docutils literal"><span class=
- "pre">Server/name</span></tt> precisa quale sara' il
- nome di dominio a cui verra' associato questo sito
- rispetto ad altri eventualmente presenti sullo stesso
- server web.</li>
+ <li><tt class="docutils literal"><VirtualHost
+ <span class="pre">\*:80</span> ></tt> La prima riga
+ indica l'inizio della stanza relativa al nostro virtual
+ host, che ascoltera' su qualunque indirizzo IP (nel
+ caso il server abbia piu' indirizzi dai quali e'
+ raggiungibile) sulla porta <tt class=
+ "docutils literal">80</tt>.</li>
+
+ <li><tt class="docutils literal">Server/name</tt>
+ precisa quale sara' il nome di dominio a cui verra'
+ associato questo sito rispetto ad altri eventualmente
+ presenti sullo stesso server web.</li>
+
+ <li><tt class="docutils literal">DocumentRoot</tt> : il
+ path della directory che contiene le pagine del
+ sito.</li>
- <li><tt class="docutils literal"><span class=
- "pre">DocumentRoot</span></tt> : il path della
- directory che contiene le pagine del sito.</li>
+ <li><tt class="docutils literal">ServerAdmin</tt>:
+ l'indirizzo del webmaster, in modo da poterlo
+ contattare in caso di problemi col sito.</li>
- <li><tt class="docutils literal"><span class=
- "pre">ServerAdmin</span></tt>: l'indirizzo del
- webmaster, in modo da poterlo contattare in caso di
- problemi col sito.</li>
-
- <li><tt class="docutils literal"><span class=
- "pre"></VirtualHost></span></tt>: <em>tag</em> di
- chiusura della stanza di definizione del virtual
- host.</li>
+ <li><tt class=
+ "docutils literal"></VirtualHost></tt>:
+ <em>tag</em> di chiusura della stanza di definizione
+ del virtual host.</li>
</ol>
<p>Quelle che abbiamo appena visto sono le direttive
<ul>
<li>
<dl class="first docutils">
- <dt><tt class="docutils literal"><span class=
- "pre">ErrorLog</span> <span class=
- "pre">/var/log/apache2/177.piffa.net/error.log</span></tt></dt>
+ <dt><tt class="docutils literal">ErrorLog
+ /var/log/apache2/177.piffa.net/error.log</tt></dt>
<dd>
<p class="first last">Log degli errori separato
<li>
<dl class="first docutils">
- <dt><tt class="docutils literal"><span class=
- "pre">LogLevel</span> <span class=
- "pre">warn</span></tt></dt>
+ <dt><tt class="docutils literal">LogLevel
+ warn</tt></dt>
<dd>
<p class="first last">Livello di importanza degli
<li>
<dl class="first docutils">
- <dt><tt class="docutils literal"><span class=
- "pre">CustomLog</span> <span class=
- "pre">/var/log/apache2/177.piffa.net/access.log</span>
- <span class="pre">combined</span></tt></dt>
+ <dt><tt class="docutils literal">CustomLog
+ /var/log/apache2/177.piffa.net/access.log
+ combined</tt></dt>
<dd>
<p class="first last">Log di accesso separati
<p>Potrebbe essere utile modificare le impostazioni di
una intera directory, ad esempio per abilitare
- l'<tt class="docutils literal"><span class=
- "pre">AuthConfig</span></tt>:</p>
+ l'<tt class="docutils literal">AuthConfig</tt>:</p>
<pre class="literal-block">
<Directory "/var/www/miosito.net/privata">
AllowOverride AuthConfig
</Directory>
</pre>
- <p><tt class="docutils literal"><span class=
- "pre">AllowOverride</span> <span class=
- "pre">AuthConfig</span></tt> ora vale per l'intera
- directory, come le altre opzioni.</p>
+ <p><tt class="docutils literal">AllowOverride
+ AuthConfig</tt> ora vale per l'intera directory, come le
+ altre opzioni.</p>
</div>
</div>
</pre>
<p>In questo modo solo la classe IP <tt class=
- "docutils literal"><span class=
- "pre">192.168.0.0/24</span></tt> potra' accedere alla
- directory <tt class="docutils literal"><span class=
- "pre">/limitata</span></tt> Si tenga pero' conto che e'
- relativamente facile per un malintenzionato cambiare il
- proprio indirizzo IP, oppure collegarsi da un altra zona.
- Meno facile e' accedere ad una classe privata trovandosi
- all'esterno di questa, ma ci sono comunque soluzioni piu'
- eleganti.</p>
+ "docutils literal">192.168.0.0/24</tt> potra' accedere
+ alla directory <tt class=
+ "docutils literal">/limitata</tt> Si tenga pero' conto
+ che e' relativamente facile per un malintenzionato
+ cambiare il proprio indirizzo IP, oppure collegarsi da un
+ altra zona. Meno facile e' accedere ad una classe privata
+ trovandosi all'esterno di questa, ma ci sono comunque
+ soluzioni piu' eleganti.</p>
<ul class="simple">
<li>Mod_access: <a class="reference external" href=
da sottoporre ad autenticazione:</p>
<blockquote>
- <tt class="docutils literal"><span class=
- "pre">mkdir</span> <span class=
- "pre">/var/www/177.piffa.net/privata</span></tt>
+ <tt class="docutils literal">mkdir
+ /var/www/177.piffa.net/privata</tt>
</blockquote>
</div>
<p>Un modo semplice per gestire una database di
<em>user-id / passwords</em> e' utilizzare l'utility
- <tt class="docutils literal"><span class=
- "pre">htpasswd</span></tt> di Apache. Questa crea un file
- in cui un <em>crypt</em> delle password viene associato
- agli utenti.</p>
+ <tt class="docutils literal">htpasswd</tt> di Apache.
+ Questa crea un file in cui un <em>crypt</em> delle
+ password viene associato agli utenti.</p>
<p>Si dovra' decidere dove tenere questo file, la cosa
importante e' che non sia visibile nel sito web: non deve
<p>Creiamo (con il <em>flag</em> <tt class=
"docutils literal"><span class="pre">-c</span></tt>) il
- file <tt class="docutils literal"><span class=
- "pre">/home/utente/passwords</span></tt> con l'utente
- <tt class="docutils literal"><span class=
- "pre">luca</span></tt>:</p>
+ file <tt class=
+ "docutils literal">/home/utente/passwords</tt> con
+ l'utente <tt class="docutils literal">luca</tt>:</p>
<pre class="literal-block">
htpasswd -c /home/utente/passwords luca
</pre>
- <p><tt class="docutils literal"><span class=
- "pre">htpasswd</span></tt> ci chiedera' la password da
- associare all'utente <tt class=
- "docutils literal"><span class="pre">luca</span></tt>.
- Per successive modifiche della password o aggiunta di
- nuovi utenti non sara' necessario usare il flag
- <tt class="docutils literal"><span class=
- "pre">-c</span></tt>.</p>
+ <p><tt class="docutils literal">htpasswd</tt> ci
+ chiedera' la password da associare all'utente <tt class=
+ "docutils literal">luca</tt>. Per successive modifiche
+ della password o aggiunta di nuovi utenti non sara'
+ necessario usare il flag <tt class=
+ "docutils literal"><span class="pre">-c</span></tt>.</p>
</div>
<div class="section" id="id4">
<p>Ora possiamo passare alla configurazione vera e
propria di Apache, ma con una novita': andremo a inserire
- la voce in un <tt class="docutils literal"><span class=
- "pre">.htaccess</span></tt> invece che modificare
- (tramite una direttiva <tt class=
- "docutils literal"><span class=
- "pre"><Directory></span></tt> ) il file di
+ la voce in un <tt class="docutils literal">.htaccess</tt>
+ invece che modificare (tramite una direttiva <tt class=
+ "docutils literal"><Directory></tt> ) il file di
impostazione del virtual-host.</p>
<p>Questo per motivi pratici: solo l'utente <em>root</em>
<p>Abilitiamo l'AllowOverride nel file di configurazione
del virtual host per la sola directory <tt class=
- "docutils literal"><span class=
- "pre">privata</span></tt>:</p>
+ "docutils literal">privata</tt>:</p>
<pre class="literal-block">
<VirtualHost *:80 >
ServerName 177.piffa.net
fare un restart / reload di Apache.</p>
<p>Ora sara' possibile, anche per l'utente di sistema,
- creare un file <tt class="docutils literal"><span class=
- "pre">.htaccess</span></tt> che sara' onorato da
+ creare un file <tt class=
+ "docutils literal">.htaccess</tt> che sara' onorato da
Apache.</p>
<p>/var/www/177.piffa.net/privata/.htaccess</p>
<dt>Oltre a <tt class="docutils literal"><span class=
"pre">valid-users</span></tt> si potrebbe scegliere di
usare la formula <tt class=
- "docutils literal"><span class="pre">users</span></tt>
- che permette di elencare esplicitamente gli
- utenti::</dt>
+ "docutils literal">users</tt> che permette di elencare
+ esplicitamente gli utenti::</dt>
<dd>require user pippo pluto</dd>
</dl>
</dl>
<p>I gruppi vengono definiti in un file in modo simile a
- <tt class="docutils literal"><span class=
- "pre">/etc/groups</span></tt> per gli utenti di
- sistema:</p>
+ <tt class="docutils literal">/etc/groups</tt> per gli
+ utenti di sistema:</p>
<pre class="literal-block">
staff:andrea sara
studenti: lucap federico luca
</pre>
<p>da richiamare tramite la direttiva <tt class=
- "docutils literal"><span class=
- "pre">AuthGroupFile</span></tt>.</p>
+ "docutils literal">AuthGroupFile</tt>.</p>
</div>
</div>
dominio</em>.</p>
<p>Ad esempio all'IP <tt class=
- "docutils literal"><span class=
- "pre">212.22.136.248</span></tt> era associato un PTR
+ "docutils literal">212.22.136.248</tt> era associato un PTR
+ <tt class="docutils literal">bender.piffa.net</tt>,
+ corrispondente al record <tt class=
+ "docutils literal">212</tt> facente parte della zona
<tt class="docutils literal"><span class=
- "pre">bender.piffa.net</span></tt>, corrispondente al
- record <tt class="docutils literal"><span class=
- "pre">212</span></tt> facente parte della zona <tt class=
- "docutils literal"><span class=
"pre">136.22.212.in-addr.arpa</span></tt> gestito dal
provider Tiscali/Nextra proprietario della classe C
- <tt class="docutils literal"><span class=
- "pre">212.22.136.0</span></tt>. Se avete un solo IP
- conviene lasciare al fornitore la gestire del PTR, ma se
- avete a disposizione un'itera classe potete chiedere sempre
- al vostro provider che vi <em>deleghi</em> la gestione
- della zona tramite i vostri DNS.</p>
+ <tt class="docutils literal">212.22.136.0</tt>. Se avete un
+ solo IP conviene lasciare al fornitore la gestire del PTR,
+ ma se avete a disposizione un'itera classe potete chiedere
+ sempre al vostro provider che vi <em>deleghi</em> la
+ gestione della zona tramite i vostri DNS.</p>
<p>Per alcuni servizi, ad esempio la spedizione della posta
elettronica, e' richiedeiesto che venga impostata
separate da punti, ad esempio bender.piffa.net. I nomi di
dominio si leggono da destra verso sinistra: <em>TLD</em> o
dominio di primo livello <tt class=
- "docutils literal"><span class="pre">net</span></tt>,
- secondo livello <tt class="docutils literal"><span class=
- "pre">piffa</span></tt>, terzo livello <tt class=
- "docutils literal"><span class="pre">bender</span></tt>. Il
- dominio di primo livello (o TLD, Top Level Domain,
- pronunciato <em>tilde</em> in Italia), per esempio .net o
- .it sono limitati e decisi direttamente dall'ente
- assegnatario ICANN ( Internet Corporation for Assigned
- Names and Numbers).</p>
+ "docutils literal">net</tt>, secondo livello <tt class=
+ "docutils literal">piffa</tt>, terzo livello <tt class=
+ "docutils literal">bender</tt>. Il dominio di primo livello
+ (o TLD, Top Level Domain, pronunciato <em>tilde</em> in
+ Italia), per esempio .net o .it sono limitati e decisi
+ direttamente dall'ente assegnatario ICANN ( Internet
+ Corporation for Assigned Names and Numbers).</p>
<p>L'utente finale potra' chiedere l'assegnazione (pagando
un contributo al Register preferito per il mantenimento
delle spese dell'infrastruttura) di un dominio di
<em>secondo</em> livello (es <tt class=
- "docutils literal"><span class="pre">piffa</span></tt>) di
- una delle varie TLD disponibili (noi italiani diciamo
- <em>tildi</em>), sempre che non sia gia' stato assegnato a
- qualcun altro.</p>
+ "docutils literal">piffa</tt>) di una delle varie TLD
+ disponibili (noi italiani diciamo <em>tildi</em>), sempre
+ che non sia gia' stato assegnato a qualcun altro.</p>
<p>Ottenuto il secondo livello sara' l'utente a gestirlo:
potra' in stanziare domini di terzo livello (es <tt class=
- "docutils literal"><span class="pre">bender</span></tt>) e
- anche oltre (es www.andrea.bender.piffa.net). Tali records
- saranno mantenuti dall'utente, sotto la sua responsbilita':
- se il proprio server DNS non fosse raggiungibile o
- risultasse mal configurato gli utenti non potrebbero
- risolvere / raggiungere i siti di loro interesse.</p>
+ "docutils literal">bender</tt>) e anche oltre (es
+ www.andrea.bender.piffa.net). Tali records saranno
+ mantenuti dall'utente, sotto la sua responsbilita': se il
+ proprio server DNS non fosse raggiungibile o risultasse mal
+ configurato gli utenti non potrebbero risolvere /
+ raggiungere i siti di loro interesse.</p>
<p>Tipicamente si ha almeno un server DNS secondario per
garantire la sussistenza del servizio in caso di guasto del
indirizzi <em>IP</em>, questi pero' non sono comodi per gli
utenti come riferimento per i vari server. Ad esempio
sarebbe scomodo riferirsi 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>
+ uno dei suoi IP: <tt class=
+ "docutils literal">74.125.43.104</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>
<p>Lo strumento piu' esaustivo e' <tt class=
- "docutils literal"><span class="pre">dig</span></tt>,
- installabile con il pacchetto <tt class=
- "docutils literal"><span class="pre">dnsutils</span></tt>
- .</p>
+ "docutils literal">dig</tt>, installabile con il pacchetto
+ <tt class="docutils literal">dnsutils</tt> .</p>
</div>
<div class="section" id="dig">
"#id61">5.6 Dig</a></h2>
<p>Vediamo alcune opzioni utili nell'utilizzo di <tt class=
- "docutils literal"><span class="pre">dig</span></tt> per
- l'interrogazione dei DNS Server:</p>
+ "docutils literal">dig</tt> per l'interrogazione dei DNS
+ Server:</p>
<pre class="literal-block">
$ dig www.google.it
livello (TLD) e sono quindi il punto di partenza per
scorrere nella directory dei DNS per recuperare le
informazioni (tipicamente un campo <tt class=
- "docutils literal"><span class="pre">A</span></tt> per un
- indirizzo IP) che ci servono per raggiungere un certo
- servizio.</dd>
+ "docutils literal">A</tt> per un indirizzo IP) che ci
+ servono per raggiungere un certo servizio.</dd>
</dl>
<p>$ dig</p>
<dt>dig @nome_dns</dt>
<dd>Permette di fare una query ad un server dns
- particolare. Es: <tt class=
- "docutils literal"><span class="pre">dig</span>
- <span class="pre">@151.99.25.1</span> <span class=
- "pre">www.google.it</span></tt></dd>
+ particolare. Es: <tt class="docutils literal">dig
+ @151.99.25.1 www.google.it</tt></dd>
<dt>dig MX www.google.it</dt>
<h2><a class="toc-backref" href=
"#id62">5.7 resolv.conf</a></h2>
- <p>Il file <tt class="docutils literal"><span class=
- "pre">/etc/resolv.conf</span></tt> contiene le impostazioni
- sul dns usato dal sistema, in genere anche altre
- applicazioni che devono effettuare query DNS leggono
+ <p>Il file <tt class=
+ "docutils literal">/etc/resolv.conf</tt> contiene le
+ impostazioni sul dns usato dal sistema, in genere anche
+ altre applicazioni che devono effettuare query DNS leggono
resolv.conf per conoscere l'ubicazione del DNS.</p>
<p>/etc/resolv.conf:</p>
<blockquote>
<ul class="simple">
- <li><tt class="docutils literal"><span class=
- "pre">nameserver</span></tt>: indica il nameserver da
- utilizzare, indicato con l'indirizzo IP.</li>
-
- <li><tt class="docutils literal"><span class=
- "pre">domain</span></tt>: indica il nome di dominio
- della rete attuale, vedi voce successiva.</li>
-
- <li><tt class="docutils literal"><span class=
- "pre">search</span></tt>: nome di dominio usato dalla
- rete sul quale cercare gli hosts. Ad esempio se
- impostato su <tt class="docutils literal"><span class=
- "pre">piffa.net</span></tt> pingando l' host <tt class=
- "docutils literal"><span class="pre">bender</span></tt>
- viene automaticamente fatto un tentativo di ricerca per
- <tt class="docutils literal"><span class=
- "pre">bender.piffa.net</span></tt>.</li>
+ <li><tt class="docutils literal">nameserver</tt>:
+ indica il nameserver da utilizzare, indicato con
+ l'indirizzo IP.</li>
+
+ <li><tt class="docutils literal">domain</tt>: indica il
+ nome di dominio della rete attuale, vedi voce
+ successiva.</li>
+
+ <li><tt class="docutils literal">search</tt>: nome di
+ dominio usato dalla rete sul quale cercare gli hosts.
+ Ad esempio se impostato su <tt class=
+ "docutils literal">piffa.net</tt> pingando l' host
+ <tt class="docutils literal">bender</tt> viene
+ automaticamente fatto un tentativo di ricerca per
+ <tt class=
+ "docutils literal">bender.piffa.net</tt>.</li>
</ul>
</blockquote>
servizio che possiate reindirizzare col DNS.</p>
<p>Utilizzare un server DHCP e una DNS cache come
- <tt class="docutils literal"><span class=
- "pre">Dnsmasq</span></tt> possono permettervi di risolvere
- al volo molte delle problematiche relative alla
- configurazione della vostra LAN: ad esempio dover
- intervenire manualmente su decine di client per modificare
- le impostazioni di SMTP | gateway | DNS | proxy.</p>
+ <tt class="docutils literal">Dnsmasq</tt> possono
+ permettervi di risolvere al volo molte delle problematiche
+ relative alla configurazione della vostra LAN: ad esempio
+ dover intervenire manualmente su decine di client per
+ modificare le impostazioni di SMTP | gateway | DNS |
+ proxy.</p>
<p>Si veda anche la pagina man di resolv.conf.</p>
(ADSL compresa) o simile questo file potrebbe' essere
riscritto automaticamente in base a quanto ottenuto dal
DHCP. Si veda la documentazione del pacchetto <tt class=
- "docutils literal"><span class=
- "pre">resolvconf</span></tt>.</p>
+ "docutils literal">resolvconf</tt>.</p>
</div>
</div>
<p>Il contenuto del file e' un associazione tra un
<em>IP</em> e stringhe di testo (anche piu' di una per IP)
- es: <tt class="docutils literal"><span class=
- "pre">mirror</span></tt> o veri e propi nomi di dominio
- <tt class="docutils literal"><span class=
- "pre">mirror.piffa.net</span></tt>. Si puo inserire un nome
- semplice come <em>casa</em> per riferirsi ad un host che si
- ha necessita' di contattare spesso, oppure mappare un nome
- di dominio completo su un indirizzo IP.</p>
+ es: <tt class="docutils literal">mirror</tt> o veri e propi
+ nomi di dominio <tt class=
+ "docutils literal">mirror.piffa.net</tt>. Si puo inserire
+ un nome semplice come <em>casa</em> per riferirsi ad un
+ host che si ha necessita' di contattare spesso, oppure
+ mappare un nome di dominio completo su un indirizzo IP.</p>
<p>Il problema e' la gestione di questo file su molti
hosts: quando gli host cambiano IP si devono aggiornare
particolarmente gravosa ma che andra' fatta per ogni client
della vostra LAN. Un metodo semplice per distribuire questo
file e' utilizzare <tt class=
- "docutils literal"><span class="pre">Dnsmasq</span></tt>:
- questo infatti legge e onora il file <tt class=
- "docutils literal"><span class="pre">hosts</span></tt> che
+ "docutils literal">Dnsmasq</tt>: questo infatti legge e
+ onora il file <tt class="docutils literal">hosts</tt> che
avete prodotto e lo rende disponibile ai clients tramite le
query DNS.</p>
interrogheranno per tradurre nomi di host e domini in
indirizzi IP, risolvendo il problema della
<em>distribuzione</em> del file <tt class=
- "docutils literal"><span class="pre">hosts</span></tt> tra
- molteplici clients. Infatti il servizio DNS indica appunto
- una <em>directory distribuita</em> per la risoluzione dei
- nomi di dominio, risolvendo i problemi dell'aggiornamento e
- diffusione dei continui cambiamenti di questa.</p>
+ "docutils literal">hosts</tt> tra molteplici clients.
+ Infatti il servizio DNS indica appunto una <em>directory
+ distribuita</em> per la risoluzione dei nomi di dominio,
+ risolvendo i problemi dell'aggiornamento e diffusione dei
+ continui cambiamenti di questa.</p>
<p>Modificare la risoluzione di un nome di dominio
esistente (ad esempio riconducendola a un IP interno) e' un
modo drastico e funzionale per <em>annullarlo</em>
rendendolo non disponibile alla propria rete locale. Ad
esempio aggiungere al file <tt class=
- "docutils literal"><span class=
- "pre">/etc/hosts</span></tt>:</p>
+ "docutils literal">/etc/hosts</tt>:</p>
<pre class="literal-block">
127.0.0.1 www.facebook.com
</pre>
<p>Impedira' agli utenti della LAN di raggiungere
<em>facebook</em>, ora reindirizzato a <tt class=
- "docutils literal"><span class=
- "pre">localhost</span></tt>.</p>
+ "docutils literal">localhost</tt>.</p>
<p>Oppure si potrebbe ricondurre l'indirizzo IP di un
server HTTP pubblico usato per i downloads (ad esempio un
mirror della propia distribuzione come <tt class=
- "docutils literal"><span class=
- "pre">ftp.it.debian.org</span></tt>) a un equivalente
+ "docutils literal">ftp.it.debian.org</tt>) a un equivalente
mirror creato all'interno della rete locale, riducendo il
traffico verso l'esterno e aumentando notevolmente la
velocita' di scaricamento.</p>
<p>Ogni computer ha un <em>proprio nome</em> visualizzabile
(e modificabile) con il comando <tt class=
- "docutils literal"><span class="pre">hostname</span></tt>.
- Quando utilizzate a una shell su un host in genere
- l'hostname compare nel prompt della shell.</p>
+ "docutils literal">hostname</tt>. Quando utilizzate a una
+ shell su un host in genere l'hostname compare nel prompt
+ della shell.</p>
<p>Per visualizzare il nome dell'host su cui si sta
operando si digiti semplicemnte <tt class=
- "docutils literal"><span class="pre">hostname</span></tt>,
- lo stesso comando con un oggetto modifica temporaneamente
- il nome dell'host. Per modificare in modo permanente il
- nome del computer si modifichi il contenuto del file
- <tt class="docutils literal"><span class=
- "pre">/etc/hostname</span></tt>.</p>
+ "docutils literal">hostname</tt>, lo stesso comando con un
+ oggetto modifica temporaneamente il nome dell'host. Per
+ modificare in modo permanente il nome del computer si
+ modifichi il contenuto del file <tt class=
+ "docutils literal">/etc/hostname</tt>.</p>
<p>Si faccia attenzione a non aver un hostname puramente
- numerico: ad es. <tt class="docutils literal"><span class=
- "pre">161</span></tt>. E' opportuno che il nome sia
- comunque un alfanumerico: <tt class=
- "docutils literal"><span class="pre">host-161</span></tt> o
- simile.</p>
+ numerico: ad es. <tt class="docutils literal">161</tt>. E'
+ opportuno che il nome sia comunque un alfanumerico:
+ <tt class="docutils literal"><span class=
+ "pre">host-161</span></tt> o simile.</p>
<div class="section" id="fqdn">
<h3><a class="toc-backref" href=
<p>Non e' automatico che un servizio, ad esempio un
server di posta, si qualifichi leggendo il contenuto del
- file <tt class="docutils literal"><span class=
- "pre">hostname</span></tt> aggiungendo come suffisso il
- dominio della rete di cui fa parte l' host: a volte
- questo parametro puo' essere specificato nel file di
- configurazione del servizio:</p>
+ file <tt class="docutils literal">hostname</tt>
+ aggiungendo come suffisso il dominio della rete di cui fa
+ parte l' host: a volte questo parametro puo' essere
+ specificato nel file di configurazione del servizio:</p>
<pre class="literal-block">
* Squid (HTTP proxy): ``visible_hostname``
connettetivita' a una rete momentaneamente sprovvista), dalla
possibilita' di modificare rapidamente i record DNS serviti
alla rete anche grazie alla distribuzione del file <tt class=
- "docutils literal"><span class="pre">/etc/hosts</span></tt>
- locale. Puo' essere anche utilizzato come <cite>server per il
- boot da rete
+ "docutils literal">/etc/hosts</tt> locale. Puo' essere anche
+ utilizzato come <cite>server per il boot da rete
<http://www.debian-administration.org/articles/478>_</cite>
.</p>
"#id67">6.1 Configurazione</a></h2>
<p>Vediamo alcune direttive di basi del file di
- configurazione <tt class="docutils literal"><span class=
- "pre">/etc/dnsmasq.conf</span></tt> utili per la
+ configurazione <tt class=
+ "docutils literal">/etc/dnsmasq.conf</tt> utili per la
configurazione sia del DNS cache che per il DHCP
server:</p>
<dt>expand_hosts</dt>
- <dd>Aggiunge il <tt class="docutils literal"><span class=
- "pre">nome</span> <span class="pre">host</span></tt> (
- <tt class="docutils literal"><span class=
- "pre">/etc/hostname</span></tt>) dei client al nome di
- dominio per qualificarli in rete, senza bisogno di dover
- comporre a un elenco statico di record nel file
- <tt class="docutils literal"><span class=
- "pre">/etc/hosts</span></tt> o nello stesso file di
- configurazione di dnsmasq. Es: se un vostro client si
- chiama <tt class="docutils literal"><span class=
- "pre">chrome</span></tt> e il vostro dominio <tt class=
- "docutils literal"><span class=
- "pre">piffa.net</span></tt> dnsmasq rendera' disponibile
- il campo <em>A</em> per il dominio <tt class=
- "docutils literal"><span class=
- "pre">chrome.piffa.net</span></tt> diretto all'ip che
- verra' assegnato al client.</dd>
+ <dd>Aggiunge il <tt class="docutils literal">nome
+ host</tt> ( <tt class=
+ "docutils literal">/etc/hostname</tt>) dei client al nome
+ di dominio per qualificarli in rete, senza bisogno di
+ dover comporre a un elenco statico di record nel file
+ <tt class="docutils literal">/etc/hosts</tt> o nello
+ stesso file di configurazione di dnsmasq. Es: se un
+ vostro client si chiama <tt class=
+ "docutils literal">chrome</tt> e il vostro dominio
+ <tt class="docutils literal">piffa.net</tt> dnsmasq
+ rendera' disponibile il campo <em>A</em> per il dominio
+ <tt class="docutils literal">chrome.piffa.net</tt>
+ diretto all'ip che verra' assegnato al client.</dd>
</dl>
</div>
<p>Si faccia <em>attenzione</em>: in una rete puo' essere
presente <strong>un solo server DHCP</strong>, o per meglio
dire qualunque server DHCP ascolta sul broadcast <tt class=
- "docutils literal"><span class=
- "pre">255.255.255.255</span></tt> e potrebbe rispondere a
- un pacchetto di richiesta DHCP. Quindi non fate partire
- inavvertitamente un server DHCP in una rete gia' servita e
- <strong>non vi azzardate ad andare in giro con un portatile
- con un server DHCP attivo</strong> nelle reti altrui.
- Questo vale anche per i laboratori di informatica dei corsi
- di reti: non fate partire il vostro server DHCP se siete
- collegati alla rete interna!</p>
+ "docutils literal">255.255.255.255</tt> e potrebbe
+ rispondere a un pacchetto di richiesta DHCP. Quindi non
+ fate partire inavvertitamente un server DHCP in una rete
+ gia' servita e <strong>non vi azzardate ad andare in giro
+ con un portatile con un server DHCP attivo</strong> nelle
+ reti altrui. Questo vale anche per i laboratori di
+ informatica dei corsi di reti: non fate partire il vostro
+ server DHCP se siete collegati alla rete interna!</p>
<p>/etc/dnsmasq.conf (riga 118):</p>
<pre class="literal-block">
"#id69">6.3 DNS cache</a></h2>
<p>Dnsmasq lavora di default come cache dns: inserire al
- file <tt class="docutils literal"><span class=
- "pre">/etc/resolv.conf</span></tt> il nameserver localhost
- in cima alla lista dei <em>nameserver</em> disponibili.</p>
+ file <tt class="docutils literal">/etc/resolv.conf</tt> il
+ nameserver localhost in cima alla lista dei
+ <em>nameserver</em> disponibili.</p>
<blockquote>
nameserver 127.0.0.1
<p>Questo pero' potrebbe essere problematico se un altro
servizio, ad esempio il DHCP client, riscrive il contenuto
- del file <tt class="docutils literal"><span class=
- "pre">/etc/resolv.conf</span></tt>. Per superare il
+ del file <tt class=
+ "docutils literal">/etc/resolv.conf</tt>. Per superare il
problema si aggiunga (riga 20) al file di configurazione
- <tt class="docutils literal"><span class=
- "pre">/etc/dhcp3/dhclient.conf</span></tt></p>
+ <tt class=
+ "docutils literal">/etc/dhcp3/dhclient.conf</tt></p>
<pre class="literal-block">
prepend domain-name-servers 127.0.0.1;
</pre>
<p>Oppure potrebbe essere il nostro <em>PPP client</em>
(per la connessione ADSL) a intervenire sul file <tt class=
- "docutils literal"><span class=
- "pre">//etc/resolv.conf</span></tt>, si modifichi quindi
- <tt class="docutils literal"><span class=
+ "docutils literal">//etc/resolv.conf</tt>, si modifichi
+ quindi <tt class="docutils literal"><span class=
"pre">/etc/ppp/peers/dsl-provider</span></tt> commentando
- <tt class="docutils literal"><span class=
- "pre">usepeerdns</span></tt>. Se la vostra connessione ad
- internet e' ADSL raramente dovreste aver bisogno di
- cambiare i DNS una volta impostati (a meno che non usiate
- un portatile!).</p>
+ <tt class="docutils literal">usepeerdns</tt>. Se la vostra
+ connessione ad internet e' ADSL raramente dovreste aver
+ bisogno di cambiare i DNS una volta impostati (a meno che
+ non usiate un portatile!).</p>
</div>
</div>
"#id71">7.1 DNS cache</a></h2>
<p>Bind appena installato funzionera' come DNS cache: si
- faccia un test con un <tt class=
- "docutils literal"><span class="pre">dig</span>
- <span class="pre">@localhost</span></tt> . Bind a
- differenza di Dnsmasq e' autonomo: non ha bisogno di
- forwardare (inoltrare) le query a un DNS esterno: queste
- verranno risolte direttamente da Bind partendo dai <em>DNS
- root servers</em>.</p>
+ faccia un test con un <tt class="docutils literal">dig
+ @localhost</tt> . Bind a differenza di Dnsmasq e' autonomo:
+ non ha bisogno di forwardare (inoltrare) le query a un DNS
+ esterno: queste verranno risolte direttamente da Bind
+ partendo dai <em>DNS root servers</em>.</p>
<p>E' comunque possibile impostare dei DNS forwarders,
tipicamente i DNS server forniti dal proprio provider, per
<p>Per poi aggiungere all'interno della stanza options la
direttiva che abilita' l'entita' <tt class=
- "docutils literal"><span class=
- "pre">localnet</span></tt>:</p>
+ "docutils literal">localnet</tt>:</p>
<p>/etc/bind/named.conf.options</p>
<pre class="literal-block">
<p>Prima di tutti impostiamo il server bind per gestire
la zona, per non fare confusione e' opportuno inserire le
propie zone DNS nel file <tt class=
- "docutils literal"><span class=
- "pre">named.conf.local</span></tt> e non in <tt class=
- "docutils literal"><span class=
- "pre">named.conf</span></tt>.</p>
+ "docutils literal">named.conf.local</tt> e non in
+ <tt class="docutils literal">named.conf</tt>.</p>
<p>named.conf.local:</p>
<pre class="literal-block">
<p>Ora dovremo preparare il file contenente i record DNS
della zona <em>piffa.net</em>, come abbiamo indicato
prima questi saranno contenuti nel file <tt class=
- "docutils literal"><span class=
- "pre">/etc/bind/pz/piffa.net</span></tt> . Tenere le zone
- dentro una sottocartella e' buona abitudine, usare
- <tt class="docutils literal"><span class=
- "pre">pz</span></tt> per queste e' una vecchia
- abitudine.</p>
+ "docutils literal">/etc/bind/pz/piffa.net</tt> . Tenere
+ le zone dentro una sottocartella e' buona abitudine,
+ usare <tt class="docutils literal">pz</tt> per queste e'
+ una vecchia abitudine.</p>
<p>piffa.net:</p>
<pre class="literal-block">
<p>All'interno di questo file si possono inserire dei
commenti con il carattere <tt class=
- "docutils literal"><span class="pre">;</span></tt>
- (punto-e-virgola), si faccia attenzione alla rigida
- sintassi: apertura e chiusura delle parentesi tonde nella
- parte <tt class="docutils literal"><span class=
- "pre">IN</span> <span class="pre">SOA</span></tt>, uso
- del <tt class="docutils literal"><span class=
- "pre">punto</span></tt> finale per precisare un nome di
- dominio specifico (<em>FQDN</em>: Fully-qualified Domain
- Name) come <tt class="docutils literal"><span class=
- "pre">test.piffa.net.</span></tt> a differenza degli
- altri domini di terzo livello come <tt class=
- "docutils literal"><span class=
- "pre">pop,imap,smtp</span></tt> .</p>
+ "docutils literal">;</tt> (punto-e-virgola), si faccia
+ attenzione alla rigida sintassi: apertura e chiusura
+ delle parentesi tonde nella parte <tt class=
+ "docutils literal">IN SOA</tt>, uso del <tt class=
+ "docutils literal">punto</tt> finale per precisare un
+ nome di dominio specifico (<em>FQDN</em>: Fully-qualified
+ Domain Name) come <tt class=
+ "docutils literal">test.piffa.net.</tt> a differenza
+ degli altri domini di terzo livello come <tt class=
+ "docutils literal">pop,imap,smtp</tt> .</p>
<p>La zona inizia con una direttiva <tt class=
- "docutils literal"><span class="pre">$TTL</span>
- <span class="pre">3D</span></tt> (RFC 2308) che indica la
+ "docutils literal">$TTL 3D</tt> (RFC 2308) che indica la
durata (in questo caso tre giorni) che ogni record
dovrebbe avrebbe nella cache degli altri serber DNS.
Questo valore dovrebbe essere superiore a un giorno, se
</pre>
<p>Segue poi il nome della zona, indicato con la
- <tt class="docutils literal"><span class=
- "pre">@</span></tt> per richiamare la zona originale
- precisata nel file <tt class=
- "docutils literal"><span class=
- "pre">named.conf.options</span></tt> . Segue il campo
- <tt class="docutils literal"><span class=
- "pre">SOA</span></tt>.</p>
+ <tt class="docutils literal">@</tt> per richiamare la
+ zona originale precisata nel file <tt class=
+ "docutils literal">named.conf.options</tt> . Segue il
+ campo <tt class="docutils literal">SOA</tt>.</p>
<div class="section" id="soa-start-of-authority-record">
<h4><a class="toc-backref" href=
<dd>email-addr: indirizzo email della persona
responsabile di questa zona, il primo punto viene
tradotto in una <em>chiocciola</em> <tt class=
- "docutils literal"><span class="pre">@</span></tt>
- dato che questo carattere ha un'altro utilizzo
- all'interno di questo file. Il referente della zona
- <strong>deve</strong> essere un email valido e
- controllato, come consuetudine si usa <tt class=
- "docutils literal"><span class=
- "pre">hostmaster@dominio.tilde</span></tt> .</dd>
+ "docutils literal">@</tt> dato che questo carattere
+ ha un'altro utilizzo all'interno di questo file. Il
+ referente della zona <strong>deve</strong> essere un
+ email valido e controllato, come consuetudine si usa
+ <tt class=
+ "docutils literal">hostmaster@dominio.tilde</tt>
+ .</dd>
<dt>200905245 serial number</dt>
<dd>Questo valore serve per indicare quando e' stato
modificato questo file di configurazione, secondo il
- formato <tt class="docutils literal"><span class=
- "pre">yyyymmddss</span></tt>: <tt class=
- "docutils literal"><span class="pre">yyyy</span></tt>
- = anno, ''mm'' = mese, ''dd'' = giorno, ''ss'' =
- seriale. Il seriale che deve essere sempre
- specificato anche per una cifra, va incrementato di
- una unita' nel caso vengano fatte piu' modifiche
- <em>nello stesso giorno</em>.</dd>
+ formato <tt class="docutils literal">yyyymmddss</tt>:
+ <tt class="docutils literal">yyyy</tt> = anno, ''mm''
+ = mese, ''dd'' = giorno, ''ss'' = seriale. Il seriale
+ che deve essere sempre specificato anche per una
+ cifra, va incrementato di una unita' nel caso vengano
+ fatte piu' modifiche <em>nello stesso
+ giorno</em>.</dd>
<dt>8H refresh</dt>
<dd>Canonical Name: un alias per un host: ad esempio
per il dominio piffa.net possiamo settare degli alias
- come <tt class="docutils literal"><span class=
- "pre">www.piffa.net,</span> <span class=
- "pre">http.piffa.net,</span> <span class=
- "pre">virtual.piffa.net,</span> <span class=
- "pre">ftp.piffa.net,</span> <span class=
- "pre">imap.piffa.net</span></tt>. Comodo quando
- diversi alias sono sempre riferiti allo stesso
- ip.</dd>
+ come <tt class="docutils literal">www.piffa.net,
+ http.piffa.net, virtual.piffa.net, ftp.piffa.net,
+ imap.piffa.net</tt>. Comodo quando diversi alias sono
+ sempre riferiti allo stesso ip.</dd>
<dt>MX</dt>
per indicare la priorita' di un MX rispettoad un
altro si usa un valore di 2 cifre: il valore piu'
basso indica priorita' piu' bassa. Es: <tt class=
- "docutils literal"><span class=
- "pre">MX</span> <span class=
- "pre">10</span> <span class=
- "pre">smtp.piffa.net.</span></tt> per il server SMTP
- principale e <tt class=
- "docutils literal"><span class="pre">MX</span>
- <span class="pre">40</span> <span class=
- "pre">smtp2.piffa.net</span></tt> per il secondario.
- Non deve essere un cname.</dd>
+ "docutils literal">MX 10
+ smtp.piffa.net.</tt> per il server SMTP principale e
+ <tt class=
+ "docutils literal">MX
+ 40 smtp2.piffa.net</tt> per il secondario. Non deve
+ essere un cname.</dd>
<dt>PTR</dt>
si propaghera' agli slaves automaticamente.</p>
<p>Per attivare uno <em>slave</em> per la nostra zona di
- esempio <tt class="docutils literal"><span class=
- "pre">piffa.net</span></tt> si inserisca nel file
- <tt class="docutils literal"><span class=
- "pre">named.conf.local</span></tt> dello slave server:</p>
+ esempio <tt class="docutils literal">piffa.net</tt> si
+ inserisca nel file <tt class=
+ "docutils literal">named.conf.local</tt> dello slave
+ server:</p>
<pre class="literal-block">
zone "piffa.net" {
type slave;
</pre>
<p>Facendo ripartire Bind il file <tt class=
- "docutils literal"><span class=
- "pre">/etc/bind/pz/piffa.net</span></tt> viene creato
+ "docutils literal">/etc/bind/pz/piffa.net</tt> viene creato
automaticamente.</p>
<p>Segue un estratto di <tt class=
- "docutils literal"><span class=
- "pre">/var/log/syslog</span></tt> al <tt class=
- "docutils literal"><span class="pre">restart</span></tt> di
- <tt class="docutils literal"><span class=
- "pre">bind9</span></tt> sullo slave:</p>
+ "docutils literal">/var/log/syslog</tt> al <tt class=
+ "docutils literal">restart</tt> di <tt class=
+ "docutils literal">bind9</tt> sullo slave:</p>
<pre class="literal-block">
... slave named[2256]: zone piffa.net/IN: loaded serial 200905245
... slave named[2256]: running
interroghera' (inviando un notify) se' stesso per
valutare se i dati relativi alla zona di cui e' slave
sono aggiornati. Si aggiunga quindi al file <tt class=
- "docutils literal"><span class=
- "pre">/etc/bind/named.conf.options</span></tt> dello
- slave: <tt class="docutils literal"><span class=
- "pre">allow-notify</span> <span class="pre">{</span>
- <span class="pre">192.168.0.1;</span> <span class=
- "pre">};</span></tt> all'interno della stanza <tt class=
- "docutils literal"><span class="pre">options</span></tt>,
- in cui l'inidirizzo IP inserito e' quello dello stesso
- slave server.</p>
+ "docutils literal">/etc/bind/named.conf.options</tt>
+ dello slave: <tt class="docutils literal"><span class=
+ "pre">allow-notify</span> { 192.168.0.1; };</tt>
+ all'interno della stanza <tt class=
+ "docutils literal">options</tt>, in cui l'inidirizzo IP
+ inserito e' quello dello stesso slave server.</p>
</div>
</div>
nsupdate</a></h2>
<p>Dalla versione 8 di Bind e' dsponibile l'utility
- <tt class="docutils literal"><span class=
- "pre">nsupdate</span></tt> (disponibile nel pacchetto
- <tt class="docutils literal"><span class=
- "pre">dnsutils</span></tt>) per aggiornare automaticamente
- i record di una zona secondo il paradigma client / server (
- RFC2136 ) . Posto che abbiate a disposizione un server DNS
- Bind on-line su un indirizzo IP fisso e un zona da gestire
- (che potrebbe essere anche solo la delega di un dominio di
- terzo livello come <em>casa.miodominio.net</em>) sara'
- possibile aggiornare automaticamente i record che tirano a
- degli indirizzi IP <em>pubblici ma dnamici</em>, come
- quelli spesso messi a disposizione dei provider per le
- connessioni ad internet residenziali, in modo da poter
- rendere sempre raggiungibile la vostra workstation a casa
- anche dopo un aggiornamento dell'ip dinamico associato alla
- connessione.</p>
+ <tt class="docutils literal">nsupdate</tt> (disponibile nel
+ pacchetto <tt class="docutils literal">dnsutils</tt>) per
+ aggiornare automaticamente i record di una zona secondo il
+ paradigma client / server ( RFC2136 ) . Posto che abbiate a
+ disposizione un server DNS Bind on-line su un indirizzo IP
+ fisso e un zona da gestire (che potrebbe essere anche solo
+ la delega di un dominio di terzo livello come
+ <em>casa.miodominio.net</em>) sara' possibile aggiornare
+ automaticamente i record che tirano a degli indirizzi IP
+ <em>pubblici ma dnamici</em>, come quelli spesso messi a
+ disposizione dei provider per le connessioni ad internet
+ residenziali, in modo da poter rendere sempre raggiungibile
+ la vostra workstation a casa anche dopo un aggiornamento
+ dell'ip dinamico associato alla connessione.</p>
<p>L'auenticazione del client nsupdate che avra' la
possibilita' di aggiornare il server DNS master avviene
<p>Sul client, sul quale non deve essere necessariamente
installato un server DNS Bind ma la sola utility
- <tt class="docutils literal"><span class=
- "pre">nsupdate</span></tt>, generiamo la coppia di chiavi
- con l'utility <tt class="docutils literal"><span class=
+ <tt class="docutils literal">nsupdate</tt>, generiamo la
+ coppia di chiavi con l'utility <tt class=
+ "docutils literal"><span class=
"pre">dnssec-keygen</span></tt> installabile tramite il
- pacchetto <tt class="docutils literal"><span class=
- "pre">bind9utils</span></tt>:</p>
+ pacchetto <tt class=
+ "docutils literal">bind9utils</tt>:</p>
<pre class="literal-block">
dnssec-keygen -a HMAC-MD5 -b 512 -n USER home.piffa.net.
</pre>
<dl class="docutils">
<dt>Per rendere nota al server la chiave pubblica
generata sul client si aggiunga quindi al file
- <tt class="docutils literal"><span class=
- "pre">/etc/bind/named.conf</span></tt> sul
- server::</dt>
+ <tt class="docutils literal">/etc/bind/named.conf</tt>
+ sul server::</dt>
<dd>
<dl class="first last docutils">
<p class="first admonition-title">Nota</p>
<p class="last">La parte <tt class=
- "docutils literal"><span class=
- "pre">secret</span></tt>, che potete leggere
+ "docutils literal">secret</tt>, che potete leggere
direttamente nel file *.key della chiave genearta, e'
scritto <em>tutto sulla stessa riga</em> senza ritorni
a capo.</p>
dell'intera zona</a></h3>
<p>Sul server modifichiamo il file di configurazione
- <tt class="docutils literal"><span class=
- "pre">named.conf.local</span></tt> della zona della quale
- vogliamo concedere l'aggiornamento al client:</p>
+ <tt class="docutils literal">named.conf.local</tt> della
+ zona della quale vogliamo concedere l'aggiornamento al
+ client:</p>
<pre class="literal-block">
zone "piffa.net" {
type master;
<dl class="docutils">
<dt>Sara' necessario assicurarsi che il demone di Bind
sia in grado di modificare il file <tt class=
- "docutils literal"><span class=
- "pre">/etc/bind/pz/piffa.net</span></tt>: dato che
- questo file ora sara' gestito da lui si proceda a
+ "docutils literal">/etc/bind/pz/piffa.net</tt>: dato
+ che questo file ora sara' gestito da lui si proceda a
cedergli la propieta' del file::</dt>
<dd>chown bind /etc/bind/pz/piffa.net</dd>
sistema dei due host devono essere sincronizzati per
poter valutare l'opportunita' di un aggiornamento: si
consigla di installare su entrambi l'utility <tt class=
- "docutils literal"><span class="pre">ntpdate</span></tt>
- e di eseguirla facendo riferimento ai time server di
- Debian:</p>
+ "docutils literal">ntpdate</tt> e di eseguirla facendo
+ riferimento ai time server di Debian:</p>
<pre class="literal-block">
apt-get install ntpdate
ntpdate-debian
</pre>
<p>Per comprendere meglio l'uso dell'utility <tt class=
- "docutils literal"><span class="pre">nsupdate</span></tt>
- si consiglia la lettura della relativa pagina man. Nella
- prima riga viene invocato il comando <tt class=
- "docutils literal"><span class="pre">nsupdate</span></tt>
- impostando col flag <tt class=
- "docutils literal"><span class="pre">-k</span></tt> la
- chiave privata generata precedentemente, con <tt class=
- "docutils literal"><span class="pre">server</span></tt>
- si imposta quale server NS autoritario della zona (che
- abbiamo precedentemente configurato per ricevere gli
- aggiornamenti) vogliamo contattare. Alla riga sucessiva
- <tt class="docutils literal"><span class=
- "pre">update</span></tt> viene aggiunto un record
+ "docutils literal">nsupdate</tt> si consiglia la lettura
+ della relativa pagina man. Nella prima riga viene
+ invocato il comando <tt class=
+ "docutils literal">nsupdate</tt> impostando col flag
<tt class="docutils literal"><span class=
- "pre">A</span></tt> per la il dominio <tt class=
- "docutils literal"><span class=
- "pre">home.piffa.net</span></tt> indirizzato all'IP
- <tt class="docutils literal"><span class=
- "pre">192.168.0.2</span></tt>, poi <tt class=
- "docutils literal"><span class="pre">show</span></tt>
- mostra quanto ci si prepara a comunicare al server con il
- finale <tt class="docutils literal"><span class=
- "pre">send</span></tt> .</p>
+ "pre">-k</span></tt> la chiave privata generata
+ precedentemente, con <tt class=
+ "docutils literal">server</tt> si imposta quale server NS
+ autoritario della zona (che abbiamo precedentemente
+ configurato per ricevere gli aggiornamenti) vogliamo
+ contattare. Alla riga sucessiva <tt class=
+ "docutils literal">update</tt> viene aggiunto un record
+ <tt class="docutils literal">A</tt> per la il dominio
+ <tt class="docutils literal">home.piffa.net</tt>
+ indirizzato all'IP <tt class=
+ "docutils literal">192.168.0.2</tt>, poi <tt class=
+ "docutils literal">show</tt> mostra quanto ci si prepara
+ a comunicare al server con il finale <tt class=
+ "docutils literal">send</tt> .</p>
<p>Si noti che in questo modo <em>l'intera zona</em>
piffa.net e suscettibile di essere modificata dal client,
</pre>
<p>Questo script legge il valore del device di rete
- <tt class="docutils literal"><span class=
- "pre">ppp0</span></tt> creato dal <cite>pppoe</cite> di
- una connessione ADSL per ottenere l'indirizzo IP ottenuto
- dal provider (prima di farlo aspetta 15 secondi per dare
- il tempo al <tt class="docutils literal"><span class=
- "pre">pppoe</span></tt> di negoziare la
+ <tt class="docutils literal">ppp0</tt> creato dal
+ <cite>pppoe</cite> di una connessione ADSL per ottenere
+ l'indirizzo IP ottenuto dal provider (prima di farlo
+ aspetta 15 secondi per dare il tempo al <tt class=
+ "docutils literal">pppoe</tt> di negoziare la
connessione).Vengono poi eliminati gli esistenti valori
- <tt class="docutils literal"><span class=
- "pre">A</span></tt> e <tt class=
- "docutils literal"><span class="pre">MX</span></tt> per
- <tt class="docutils literal"><span class=
- "pre">home.piffa.net</span></tt> (si noti il punto finale
- dopo <em>net</em>) e inseriti quelli attuali.</p>
+ <tt class="docutils literal">A</tt> e <tt class=
+ "docutils literal">MX</tt> per <tt class=
+ "docutils literal">home.piffa.net</tt> (si noti il punto
+ finale dopo <em>net</em>) e inseriti quelli attuali.</p>
<p>Resta da decidere quando richiamare questo script:
l'evento che causa l'assegnazione del nuovo IP in questo
caso e una nuova connessione <tt class=
- "docutils literal"><span class="pre">pppoe</span></tt>,
- quindi sarebbe consigliabile inserire lo script nelle
- routine comprese in <tt class=
- "docutils literal"><span class=
+ "docutils literal">pppoe</tt>, quindi sarebbe
+ consigliabile inserire lo script nelle routine comprese
+ in <tt class="docutils literal"><span class=
"pre">/etc/ppp/ip-up.d</span></tt> (si veda la
documentazione di ppp), nel caso questo non desse i
risultati sperati (per problemi di connessione) come via
estrema si consideri di mettere lo script nella routine
- del demone <tt class="docutils literal"><span class=
- "pre">cron</span></tt> in modo che venga eseguito
- periodicamente (ad esempio ogni giorno).</p>
+ del demone <tt class="docutils literal">cron</tt> in modo
+ che venga eseguito periodicamente (ad esempio ogni
+ giorno).</p>
</div>
</div>
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>
+ "docutils literal">CUPS</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>
+ <tt class="docutils literal">WORKGROUP</tt>. In aula usiamo
+ invece <tt class="docutils literal">208</tt> .</p>
<p>Per riconfigurare Samba si usi il comando:</p>
<pre class="literal-block">
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
+ "docutils literal">/mnt/condivisione</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
+ <tt class="docutils literal">root</tt>) per mancanza dei
+ privilegi di scrittura allora non potra' farlo neanche
+ quando Samba rendera' disponibile la risorsa all'utente.
+ Se si montano file-system dedicati per le condivisioni
controllare i permessi e proprieta' dei <em>punti di
mount*</em>. Queste passwords sono salvate nel solito
file /etc/shadow (richiamato da /etc/passwd).</dd>
<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>
+ diverso da <tt class="docutils literal">/etc/shadow</tt>
+ . Le password per Samba possono essere gestite ad esempio
+ col comando <tt class="docutils literal">smbpasswd</tt> e
+ vengono normalmente salvate all'interno di <tt class=
+ "docutils literal">/var/lib/samba/passdb.tdb</tt> .</dd>
<dt>3 Password per Windows.</dt>
adduser --shell /bin/false sambo
</pre>
- <p>Nel file <tt class="docutils literal"><span class=
- "pre">/etc/passwd</span></tt> avremo qualcosa come:</p>
+ <p>Nel file <tt class="docutils literal">/etc/passwd</tt>
+ comparira' qualcosa come:</p>
<pre class="literal-block">
sambo:x:1001:1001:Sambo utente Samba,,,:/home/sambo:/bin/false
</pre>
smbpasswd sambo
</pre>
- <p>La password sotto Windows verra' modificata sul sistema
+ <p>La password sotto Windows andra' modificata sul sistema
Windows.</p>
</div>
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>
+ <tt class="docutils literal">guest</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
dell'utente sambo:</p>
"#id89">8.4.1 Sicurezza: permessi di
esecuzione sul server</a></h3>
- <p>Bisognerebbe notare sul server i permessi di
+ <p>A lato server si presti attenzione ai 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>
+ <tt class="docutils literal">/mnt/share</tt> che risieda
+ su di un file system dedicato:</p>
- <p><tt class="docutils literal"><span class=
- "pre">/etc/fstab</span></tt></p>
+ <p><tt class="docutils literal">/etc/fstab</tt></p>
<blockquote>
/dev/hda10 /mnt/share ext3 rw,
dell'applicativo Samba vero e proprio.</a></h2>
<p>Avendo preparato gli utenti (ancora una volta: non si
- dia una shell completa a un utente che serve solo per Samba
- o la posta elettronica) e la cartella sul file system si
+ dia una shell completa a un utente che accede solo a Samba
+ o alla posta elettronica) e la cartella sul file system si
puo' procedere a configurare la condivisione su Samba.</p>
<p>/etc/samba/smb.conf riga ~235 , Share Definitions (in
<p>Dopo aver salvato il file si puo' fare un primo
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>
+ "docutils literal">testparm</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"># /etc/init.d/samba restart</tt> .</p>
<div class="section" id="creazione-di-un-gruppo">
<h3><a class="toc-backref" href=
<p>Se si deve condividere una risorsa con un numero
consistente di utenti e' consigliabile lavorare in
termini termini di gruppi piuttosto che elencare la lista
- degli utenti in <tt class="docutils literal"><span class=
- "pre">valid</span> <span class=
- "pre">users</span></tt>.</p>
+ degli utenti in <tt class="docutils literal">valid
+ users</tt>.</p>
<p>Dopo aver creato il gruppo del quale volete facciano
parte i vostri utenti (<tt class=
- "docutils literal"><span class="pre">addgroup</span>
- <span class="pre">nome_gruppo</span></tt>), inserite i
+ "docutils literal">addgroup nome_gruppo</tt>), inserite i
vostri utenti nel gruppo (<tt class=
- "docutils literal"><span class="pre">adduser</span>
- <span class="pre">nome_utente</span> <span class=
- "pre">nome_gruppo</span></tt>) e modificate la direttiva
- <tt class="docutils literal"><span class=
- "pre">valid</span> <span class="pre">users</span></tt> in
- <tt class="docutils literal"><span class=
- "pre">smb.conf</span></tt> per riferirsi ad un gruppo
- piuttosto che a degli utenti. Per riferirsi a un gruppo
- si usi il carattere <tt class=
- "docutils literal"><span class="pre">@</span>
- <span class="pre">chicciola</span></tt> col <tt class=
- "docutils literal"><span class=
- "pre">nome_del_gruppo</span></tt>:</p>
+ "docutils literal">adduser nome_utente nome_gruppo</tt>)
+ e modificate la direttiva <tt class=
+ "docutils literal">valid users</tt> in <tt class=
+ "docutils literal">smb.conf</tt> per riferirsi ad un
+ gruppo piuttosto che a degli utenti. Per riferirsi a un
+ gruppo si usi il carattere <tt class="docutils literal">@
+ chicciola</tt> col <tt class=
+ "docutils literal">nome_del_gruppo</tt>:</p>
<pre class="literal-block">
# Negoziazione degli accessi su base gruppo
valid users = @nome_gruppo
<p>Il server di posta che prenderemo in considerazione e'
Postfix, a seguire un estratto di un file di configurazione
<em>semplice</em> con l'abilitazione delle <em>Maildir</em>
- nelle <tt class="docutils literal"><span class=
- "pre">/home</span></tt> degli utenti per la consegna della
- posta:</p>
+ nelle <tt class="docutils literal">/home</tt> degli utenti
+ per la consegna della posta:</p>
- <p><tt class="docutils literal"><span class=
- "pre">/etc/postfix/main.cf</span></tt>:</p>
+ <p><tt class=
+ "docutils literal">/etc/postfix/main.cf</tt>:</p>
<pre class="literal-block">
# ...segue dalla riga ~30
myhostname = 162.piffa.net
<p>Si noti che IMAP necessita delle <em>Maildir</em>, non
funziona con le Mailbox in <tt class=
- "docutils literal"><span class="pre">/var/mail/</span></tt>
- .</p>
+ "docutils literal">/var/mail/</tt> .</p>
</div>
<div class="section" id="client-a-riga-di-comando">
"mailto:utente@dominio.com">utente@dominio.com</a></dd>
</dl>
- <p>Se il comando <tt class=
- "docutils literal"><span class="pre">mail</span></tt> non
- fosse disponibile si installi il pacchetto <tt class=
- "docutils literal"><span class=
- "pre">mailx</span></tt>.</p>
+ <p>Se il comando <tt class="docutils literal">mail</tt>
+ non fosse disponibile si installi il pacchetto <tt class=
+ "docutils literal">mailx</tt>.</p>
<p>Al primo prompt si digitera' l'oggetto, il testo del
messaggio (per terminare l'inserimento lasciare una riga
- vuota, digitare un <tt class=
- "docutils literal"><span class="pre">punto</span>
- <span class="pre">+</span> <span class=
- "pre">Invio</span></tt> su una riga vuota), la Carbon
- Copy (se necessaria).</p>
+ vuota, digitare un <tt class="docutils literal">punto +
+ Invio</tt> su una riga vuota), la Carbon Copy (se
+ necessaria).</p>
<p>es:</p>
<pre class="literal-block">
gestione della posta.</p>
<p>Mutt ha un file di configurazione <tt class=
- "docutils literal"><span class="pre">.muttrc</span></tt>
- nella <em>home</em> dell'utente, alcuni settaggi possono
- essere utili:</p>
+ "docutils literal">.muttrc</tt> nella <em>home</em>
+ dell'utente, alcuni settaggi possono essere utili:</p>
<dl class="docutils">
<dt>set folder="~/Maildir"</dt>
<dd>Per utilizzare <tt class=
- "docutils literal"><span class=
- "pre">/home/nome_utente/Maildir</span> <span class=
- "pre">come</span> <span class=
- "pre">mailbox</span></tt>, invece del default
- <tt class="docutils literal"><span class=
- "pre">/var/mail/nome_utente</span></tt>.</dd>
+ "docutils literal">/home/nome_utente/Maildir come
+ mailbox</tt>, invece del default <tt class=
+ "docutils literal">/var/mail/nome_utente</tt>.</dd>
<dt>set editor="vim"</dt>
- <dd>Utilizzare <tt class=
- "docutils literal"><span class="pre">vim</span></tt>
+ <dd>Utilizzare <tt class="docutils literal">vim</tt>
come editor per comporre i messaggi.</dd>
</dl>
<p>Per mettere a disposizione degli utenti un client web
per gestire la propria posta si installi il pacchetto:
- <tt class="docutils literal"><span class=
- "pre">squirrelmail</span></tt> . Ci sono tanti altri
- client web disponibili: questo e' particolarmente
- semplice. Naturalmente dovrete aver installato:
- <tt class="docutils literal"><span class=
- "pre">php5</span> <span class="pre">apache2</span></tt>
- .</p>
+ <tt class="docutils literal">squirrelmail</tt> . Ci sono
+ tanti altri client web disponibili: questo e'
+ particolarmente semplice. Naturalmente dovrete aver
+ installato: <tt class="docutils literal">php5
+ apache2</tt> .</p>
<p>L'interfaccia dovrebbe essere disponibile all'url:
<tt class="docutils literal"><span class=
Postfix</a></h3>
<p>Installare il pacchetto: <tt class=
- "docutils literal"><span class="pre">postgrey</span></tt>
- e aggiungere il file di configurazione di Postfix
- <tt class="docutils literal"><span class=
- "pre">/etc/postfix/main.cf</span></tt>:</p>
+ "docutils literal">postgrey</tt> e aggiungere il file di
+ configurazione di Postfix <tt class=
+ "docutils literal">/etc/postfix/main.cf</tt>:</p>
<pre class="literal-block">
smtpd_recipient_restrictions =
permit_mynetworks,
</pre>
<p>A lato server si dovrebbe rilevare su <tt class=
- "docutils literal"><span class=
- "pre">/var/log/syslog</span></tt> qualcosa di simile:</p>
+ "docutils literal">/var/log/syslog</tt> qualcosa di
+ simile:</p>
<pre class="literal-block">
connect from alice.mydomain.com[65.98.21.97]
May 28 14:53:34 r24266 postgrey: action=greylist, reason=new,
sulle percentuali di messaggi ricevuti, da chi, messaggi
rifiutati (e per quale motivo). Statistiche che attingono
dai soliti log del server di posta <tt class=
- "docutils literal"><span class=
- "pre">/var/log/syslog</span></tt> di default oltre che i
- dedicati <tt class="docutils literal"><span class=
- "pre">/var/log/mail</span></tt> .</p>
+ "docutils literal">/var/log/syslog</tt> di default oltre
+ che i dedicati <tt class=
+ "docutils literal">/var/log/mail</tt> .</p>
<p>Una utility semplice per analizzare l'attivita' del
propio server smtp potrebbe essere <tt class=
- "docutils literal"><span class=
- "pre">pflogsumm</span></tt> , installato il pacchetto la
- si puo' invocare con:</p>
+ "docutils literal">pflogsumm</tt> , installato il
+ pacchetto la si puo' invocare con:</p>
<pre class="literal-block">
pflogsumm.pl /var/log/mail.log
</pre>
<p>oppure utilizzare i log piu' vecchi ad es. <tt class=
- "docutils literal"><span class=
- "pre">/var/log/mail.log.0</span></tt></p>
+ "docutils literal">/var/log/mail.log.0</tt></p>
</div>
</div>
</div>
"http://openskill.info/topic.php?ID=124">http://openskill.info/topic.php?ID=124</a></li>
<li><a class="reference external" href=
- "http://iptables-tutorial.frozentux.net/iptables-tutorial.html">
- http://iptables-tutorial.frozentux.net/iptables-tutorial.html</a></li>
+ "http://www.frozentux.net/iptables-tutorial/chunkyhtml/c962.html">
+ http://www.frozentux.net/iptables-tutorial/chunkyhtml/c962.html</a></li>
</ul>
</div>
"#id112">10.4 Percorso dei pacchetti tra
tabelle e catene</a></h2>
+ <p>E importante conoscere il percorso che i paccheti
+ seguono passando tra le varie catene, l'ordine infatti puo'
+ cambiare il riusultato ottenuto (che il pacchetto raggiunga
+ o meno l'host, oppure modificare il pachetto stesso).</p>
+
<p>link: <a class="reference external" href=
- "http://iptables-tutorial.frozentux.net/iptables-tutorial.html#TRAVERSINGOFTABLES">
- http://iptables-tutorial.frozentux.net/iptables-tutorial.html#TRAVERSINGOFTABLES</a></p>
+ "http://www.frozentux.net/iptables-tutorial/chunkyhtml/c962.html">
+ http://www.frozentux.net/iptables-tutorial/chunkyhtml/c962.html</a></p>
</div>
<div class="section" id="concetti-di-base">
<p><em>Veramente</em>, prima di lavorare sul firewall di
una macchina remota impostate almeno un <tt class=
- "docutils literal"><span class="pre">at</span> <span class=
- "pre">now</span> <span class="pre">+5</span> <span class=
- "pre">min</span></tt> o con un'oretta di margine per fare
- il <em>flush</em> delle regole (su tutte le tabelle):</p>
+ "docutils literal">at now +5 min</tt> o con un'oretta di
+ margine per fare il <em>flush</em> delle regole (su tutte
+ le tabelle):</p>
<pre class="literal-block">
at now +5 min
at> /sbin/iptables -F
<h2><a class="toc-backref" href=
"#id120">10.9 Salvataggio regole</a></h2>
- <p>Il comando <tt class="docutils literal"><span class=
- "pre">iptables</span></tt> serve per interagire con il
- framework <tt class="docutils literal"><span class=
- "pre">Netfilter</span></tt> che gestisce il firewall di
- Linux al livello del kernel. Questo comporta, in modo
+ <p>Il comando <tt class="docutils literal">iptables</tt>
+ serve per interagire con il framework <tt class=
+ "docutils literal">Netfilter</tt> che gestisce il firewall
+ di Linux al livello del kernel. Questo comporta, in modo
analogo a quando avviene col comando <tt class=
- "docutils literal"><span class="pre">ifconfig</span></tt>,
- che i cambiamenti impostati siano in <em>tempo reale,
- RAM</em>, non persistenti nel sistema: al boot successivo
- del sistema tutto tornera' alle impostazioni di base (in
- questo caso <em>nulle</em>, con policy di default settate
- su <tt class="docutils literal"><span class=
- "pre">ACCEPT</span></tt> per tutto).</p>
+ "docutils literal">ifconfig</tt>, che i cambiamenti
+ impostati siano in <em>tempo reale, RAM</em>, non
+ persistenti nel sistema: al boot successivo del sistema
+ tutto tornera' alle impostazioni di base (in questo caso
+ <em>nulle</em>, con policy di default settate su <tt class=
+ "docutils literal">ACCEPT</tt> per tutto).</p>
<p>Le varie invocazioni di iptables potrebbero essere
richiamate da degli scripts dedicati, ma fortunatamente e'
routing, partenza di servizi es file_sharing per un
back-up...): il sistema operativo Debian permette di legare
l'esecuzione di comandi alla attivazione di una device di
- rete (<tt class="docutils literal"><span class=
- "pre">up</span></tt>), dopo la sua attivazione (<tt class=
- "docutils literal"><span class="pre">post-up</span></tt>,
- utile per devices che richiedono un certo tempo per
- inizializzarsi: come un tunnel o una connessione punto a
- punto), prima della sua attivazione (<tt class=
- "docutils literal"><span class="pre">pre-up</span></tt>).
- Allo stesso modo sono disponibili eventi analoghi per
- accompagnare la disattivazione dei device di rete: si veda
- la pagina man di <tt class="docutils literal"><span class=
- "pre">interfaces</span></tt>.</p>
+ rete (<tt class="docutils literal">up</tt>), dopo la sua
+ attivazione (<tt class="docutils literal"><span class=
+ "pre">post-up</span></tt>, utile per devices che richiedono
+ un certo tempo per inizializzarsi: come un tunnel o una
+ connessione punto a punto), prima della sua attivazione
+ (<tt class="docutils literal"><span class=
+ "pre">pre-up</span></tt>). Allo stesso modo sono
+ disponibili eventi analoghi per accompagnare la
+ disattivazione dei device di rete: si veda la pagina man di
+ <tt class="docutils literal">interfaces</tt>.</p>
<p>Nel nostro caso avremo per una possibile scheda
- <tt class="docutils literal"><span class=
- "pre">eth0</span></tt>:</p>
+ <tt class="docutils literal">eth0</tt>:</p>
- <p><tt class="docutils literal"><span class=
- "pre">/etc/network/interfaces</span></tt></p>
+ <p><tt class=
+ "docutils literal">/etc/network/interfaces</tt></p>
<pre class="literal-block">
iface eth1 inet static
up /sbin/iptables-restore /root/firewall/basic_fw
<p>Se non avete un'idea migliore potreste voler tenere
gli script dei firewall in una cartella <tt class=
- "docutils literal"><span class=
- "pre">~/firewall</span></tt> nella home directory
- dell'utente <tt class="docutils literal"><span class=
- "pre">root</span></tt>.</p>
+ "docutils literal">~/firewall</tt> nella home directory
+ dell'utente <tt class="docutils literal">root</tt>.</p>
</div>
<div class="section" id="iptables-restore">
<blockquote>
<ol class="arabic simple">
- <li><tt class="docutils literal"><span class=
- "pre">eth0</span></tt> scheda di rete principale sulla
- rete privata interna 192.168.0.0/24</li>
+ <li><tt class="docutils literal">eth0</tt> scheda di
+ rete principale sulla rete privata interna
+ 192.168.0.0/24</li>
- <li><tt class="docutils literal"><span class=
- "pre">eth1</span></tt> scheda di rete secondaria per la
- connessione ad internet</li>
+ <li><tt class="docutils literal">eth1</tt> scheda di
+ rete secondaria per la connessione ad internet</li>
- <li><tt class="docutils literal"><span class=
- "pre">ppp0</span></tt> punto-a-punto per una
- connessione ad internet</li>
+ <li><tt class="docutils literal">ppp0</tt>
+ punto-a-punto per una connessione ad internet</li>
</ol>
</blockquote>
<p>Spesso gli script che attaccano
<em>automaticamente</em> le varie reti provano a fare un
ping per verificare quali IP sono on-line: bloccare il
- traffico <tt class="docutils literal"><span class=
- "pre">ICMP</span></tt> in ingresso puo' aiutare ad
- evitare parte di questi attacchi:</p>
+ traffico <tt class="docutils literal">ICMP</tt> in
+ ingresso puo' aiutare ad evitare parte di questi
+ attacchi:</p>
<pre class="literal-block">
iptables -A INPUT -i ppp0 -p ICMP -j DROP
</pre>
questo caso un SNAT) per la rete locale privata
sull'indirizzo ip del <em>modem</em>::</dt>
- <dd>iptables -A POSTROUTING -s
+ <dd>iptables -t nat -A POSTROUTING -s
192.168.0.0/255.255.255.0 -o ppp0 -j MASQUERADE</dd>
</dl>
<p>Il <em>Masquerading</em> a differenza dello
<em>SNAT</em> puro (<tt class=
- "docutils literal"><span class="pre">-j</span>
- <span class="pre">SNAT</span> <span class=
- "pre">--to-source</span> <span class=
- "pre">proprio_ip_pubblico</span> <span class=
- "pre">)</span> <span class="pre">legge</span>
- <span class="pre">l'indirizzo</span> <span class=
- "pre">ip</span> <span class="pre">del</span> <span class=
- "pre">device</span> <span class="pre">``ppp0</span></tt>.
- In questo modo se l'IP cambia automaticamente si aggiorna
- anche il source natting. Se avete un indirizzo IP statico
+ "docutils literal"><span class="pre">-j</span> SNAT
+ <span class="pre">--to-source</span> proprio_ip_pubblico
+ ) legge l'indirizzo ip del device ``ppp0</tt>. In questo
+ modo se l'IP cambia automaticamente si aggiorna anche il
+ source natting. Se avete un indirizzo IP statico
assegnato al vostro gateway potete invece usare lo SNAT
semplice.</p>
</pre>
</div>
</div>
+
+ <div class="section" id="proc-filesystem">
+ <h2><a class="toc-backref" href=
+ "#id127">10.11 Proc filesystem</a></h2>
+
+ <p>Tramite il filesystem virtuale <strong>proc</strong>
+ possiamo monitorare talvolta anche modificarei, a seconda
+ dei casi, alcuni parametri utili per il networking. La
+ parte di proc che ci interessa si riconduce al percorso:
+ <tt class="docutils literal">/proc/sys/net/ipv4</tt> :
+ vediamo alcuni dei parametri fondamentali.</p>
+
+ <div class="section" id="ip-forward">
+ <h3><a class="toc-backref" href=
+ "#id128">10.11.1 ip_forward</a></h3>
+
+ <p>Questa variabile determine se l'instradamento dei
+ pacchetti e' attvo, in caso positivo il kernel
+ instradera' i pacchetti (routing). Con ip_forward settato
+ a <tt class="docutils literal">0</tt> la nostra macchina
+ continuera' a vedere le varie reti su cui eventualmente
+ si trova (gateway) ma non instradera' i pacchetti da
+ parte di altri host.</p>
+
+ <p>Questo parametro determina tutti gli instradamenti che
+ il nostro host puo' fare, quindi e' determinante anche
+ per NAT, firewall, masquerading.</p>
+
+ <p>E' possibile settarlo per le singole interfacce, ad
+ esempio per eth0: <tt class=
+ "docutils literal">/proc/sys/net/ipv4/conf/eth0/forwarding</tt>
+ .</p>
+
+ <p>Per approfondimenti su cosa si intenda per
+ instradamento: rfc1812.txt sezione 2.3:</p>
+ <pre class="literal-block">
+In the Internet model, constituent networks are connected together by
+ IP datagram forwarders which are called routers or IP routers. In
+ this document, every use of the term router is equivalent to IP
+ router. Many older Internet documents refer to routers as gateways.
+
+ A router connects to two or more logical interfaces, represented by
+ IP subnets or unnumbered point to point lines (discussed in section
+ [2.2.7]). Thus, it has at least one physical interface. Forwarding
+ an IP datagram generally requires the router to choose the address
+ and relevant interface of the next-hop router or (for the final hop)
+ the destination host. This choice, called relaying or forwarding
+ depends upon a route database within the router. The route database
+ is also called a routing table or forwarding table. The term
+ "router" derives from the process of building this route database;
+ routing protocols and configuration interact in a process called
+ routing.
+
+Routers provide datagram transport only, and they seek to minimize
+ the state information necessary to sustain this service in the
+ interest of routing flexibility and robustness.
+</pre>
+ </div>
+
+ <div class="section" id="ip-default-ttl">
+ <h3><a class="toc-backref" href=
+ "#id129">10.11.2 ip_default_ttl</a></h3>
+
+ <p><em>Time to leave</em> di default usato dal nostro
+ host: in genere <tt class="docutils literal">64</tt>.</p>
+ </div>
+
+ <div class="section" id="ip-local-port-range">
+ <h3><a class="toc-backref" href=
+ "#id130">10.11.3 ip_local_port_range</a></h3>
+
+ <p>Il range di porte usato dal nostro host quando si
+ connette come client ad altri host. Puo' essere utile
+ modificarlo per poi intercettare piu' facilmente i
+ pacchetti provenienti da qusto host, oppupure quel
+ qualunqe limitazione vogliamo imporre sul range da
+ usarsi. Si ricorda che solo root puo' aprire porte sotto
+ la <tt class="docutils literal">1024</tt>.</p>
+ </div>
+ </div>
</div>
<div class="section" id="ftp-server">
<h1><a class="toc-backref" href=
- "#id127">11 FTP Server</a></h1>
+ "#id131">11 FTP Server</a></h1>
<p>Il File Transfer Protocol (FTP) (protocollo di
trasferimento file), รจ un Protocollo per la trasmissione di
<ul class="simple">
<li>Non dare agli utenti FTP una shell di sistema (
- Concedere come shell <tt class=
- "docutils literal"><span class="pre">ftp</span></tt> al
- posto di <tt class="docutils literal"><span class=
- "pre">bash</span></tt> in <tt class=
- "docutils literal"><span class=
- "pre">/etc/passwd</span></tt>)</li>
+ Concedere come shell <tt class="docutils literal">ftp</tt>
+ al posto di <tt class="docutils literal">bash</tt> in
+ <tt class="docutils literal">/etc/passwd</tt>)</li>
<li>Rendere il filesytem su cui scrive il demone FTP
- <tt class="docutils literal"><span class=
- "pre">noexec</span></tt> e <tt class=
- "docutils literal"><span class="pre">nosuid</span></tt>
- (vedi dopo)</li>
+ <tt class="docutils literal">noexec</tt> e <tt class=
+ "docutils literal">nosuid</tt> (vedi dopo)</li>
<li>Utilizzare un demone FTP come Vsftp: un server FTP con
una forte inclinazione alla sicurezza: <em>Very Secure FTP
<div class="section" id="id8">
<h2><a class="toc-backref" href=
- "#id128">11.1 Pacchetti</a></h2>
+ "#id132">11.1 Pacchetti</a></h2>
<p>Per installare il demone vero e propio si usi il
- pacchetto <tt class="docutils literal"><span class=
- "pre">vsftpd</span></tt> , mentre per aver un client da cui
- fare qualche test sono dipsonibili:</p>
+ pacchetto <tt class="docutils literal">vsftpd</tt> , mentre
+ per aver un client da cui fare qualche test sono
+ dipsonibili:</p>
<ul class="simple">
- <li><tt class="docutils literal"><span class=
- "pre">ftp</span></tt> (pacchetto da installare) e' il
- solito client a riga di comando</li>
+ <li><tt class="docutils literal">ftp</tt> (pacchetto da
+ installare) e' il solito client a riga di comando</li>
- <li><tt class="docutils literal"><span class=
- "pre">gftp</span></tt> e' un client grafico simile al
- classico <em>WSftp</em></li>
+ <li><tt class="docutils literal">gftp</tt> e' un client
+ grafico simile al classico <em>WSftp</em></li>
<li>Normalmente i file mananager com Konqueror possono
lavarorare come client FTP</li>
<div class="section" id="sessioni-ftp">
<h2><a class="toc-backref" href=
- "#id129">11.2 Sessioni ftp</a></h2>
+ "#id133">11.2 Sessioni ftp</a></h2>
<p>Vediamo alcuni dei comandi di base per gestire una
sessione ftp a riga di comando:</p>
<div class="section" id="configurazione-iniziale">
<h2><a class="toc-backref" href=
- "#id130">11.3 Configurazione
+ "#id134">11.3 Configurazione
iniziale</a></h2>
<p>Il demone di vsftpd e' immediatamente disponibile ma
solo in modalita' anonima (si pensi a uno scenario in cui
si vuole rendere disponibili dei files tramite FTP) e in
<em>sola lettura</em>. Per accedere al servizio si usi
- quini come utente <tt class="docutils literal"><span class=
- "pre">anonymous</span></tt> (la passwords in genere e' come
- consuetudine il propio indirizzo email), la cui
+ quini come utente <tt class=
+ "docutils literal">anonymous</tt> (la passwords in genere
+ e' come consuetudine il propio indirizzo email), la cui
<em>home</em> directory sara' <tt class=
- "docutils literal"><span class="pre">/home/ftp/</span></tt>
- (<tt class="docutils literal"><span class=
- "pre">/srv/ftp</span></tt> in Squeeze):</p>
+ "docutils literal">/home/ftp/</tt> (<tt class=
+ "docutils literal">/srv/ftp</tt> in Squeeze):</p>
<pre class="literal-block">
zoo:~# ftp localhost
Connected to localhost.localdomain.
<div class="section" id="abilitare-gli-utenti-locali">
<h2><a class="toc-backref" href=
- "#id131">11.4 Abilitare gli utenti
+ "#id135">11.4 Abilitare gli utenti
locali</a></h2>
<p>Per poter modificare le impostazioni iniziali, ad
esempio per permettere l'accesso agli utenti del server, si
modifichera' il file <tt class=
- "docutils literal"><span class=
- "pre">/etc/vsftpd.conf</span></tt>, a seguire le
+ "docutils literal">/etc/vsftpd.conf</tt>, a seguire le
impostazioni fondamentali ed altre interessanti per rendere
il server accessibile da utenti di sistema (autenticati
tramite la loro password, quindi con PAM) per il tipico
</pre>
<p>Per abilitare i cambiamenti si proceda a riavviare il
- server: <tt class="docutils literal"><span class=
- "pre">/etc/init.d/vsftpd</span> <span class=
- "pre">restart</span></tt> e si monitorizzi il file di log
- <tt class="docutils literal"><span class="pre">tail</span>
- <span class="pre">-f</span> <span class=
- "pre">/var/log/vsftpd.log</span></tt> per controllarne il
- funzionamento (e anche <tt class=
- "docutils literal"><span class=
- "pre">/var/log/syslog</span></tt> nel caso non si riuscisse
- a far partire correttamente il servizio.</p>
+ server: <tt class="docutils literal">/etc/init.d/vsftpd
+ restart</tt> e si monitorizzi il file di log <tt class=
+ "docutils literal">tail <span class="pre">-f</span>
+ /var/log/vsftpd.log</tt> per controllarne il funzionamento
+ (e anche <tt class="docutils literal">/var/log/syslog</tt>
+ nel caso non si riuscisse a far partire correttamente il
+ servizio.</p>
<p>NOTE: Se non riuscite ad ottenere un <em>directory
- listing</em> (<tt class="docutils literal"><span class=
- "pre">ls</span></tt>) ottenendo un errore <tt class=
- "docutils literal"><span class="pre">500</span>
- <span class="pre">Illegal</span> <span class=
- "pre">PORT</span> <span class="pre">command?</span>
- <span class="pre">FTP</span> <span class=
- "pre">error</span></tt> abilitare la modalita' passiva col
- comando ftp <tt class="docutils literal"><span class=
- "pre">passive</span></tt>.</p>
+ listing</em> (<tt class="docutils literal">ls</tt>)
+ ottenendo un errore <tt class="docutils literal">500
+ Illegal PORT command? FTP error</tt> abilitare la modalita'
+ passiva col comando ftp <tt class=
+ "docutils literal">passive</tt>.</p>
</div>
<div class="section" id="jail-chroot">
<h2><a class="toc-backref" href=
- "#id132">11.5 Jail chroot</a></h2>
+ "#id136">11.5 Jail chroot</a></h2>
<p>Si puo' impedire all'utente di spostarsi arbitrariamente
per il file system del servere visualizzare il contenuto
delle directory, ad esempio la cartella <tt class=
- "docutils literal"><span class="pre">/etc</span></tt>,
- confinandolo in una jail chroot limitata alla sua home
- directory:</p>
+ "docutils literal">/etc</tt>, confinandolo in una jail
+ chroot limitata alla sua home directory:</p>
<pre class="literal-block">
# You may restrict local users to their home directories. See the FAQ for
# the possible risks in this before using chroot_local_user or
<div class="section" id="permessi-sul-filesystem">
<h2><a class="toc-backref" href=
- "#id133">11.6 Permessi sul
+ "#id137">11.6 Permessi sul
filesystem</a></h2>
<p>Come accennato precedentemente e' opportuno che i
filesystems sui quali un utente puo' scrivere o modificare
il contenuto non abbiano i privilegi di eseguibilita' e
suid, nel nonstro caso vsftpd lavora sull'intera <tt class=
- "docutils literal"><span class="pre">/home/</span></tt>
- directory quindi avremo in <tt class=
- "docutils literal"><span class=
- "pre">/etc/fstab</span></tt>:</p>
+ "docutils literal">/home/</tt> directory quindi avremo in
+ <tt class="docutils literal">/etc/fstab</tt>:</p>
<pre class="literal-block">
/dev/mapper/store-homes /home ext3 rw,nosuid,noexec 0 2
</pre>
<div class="section" id="shell-dell-utente">
<h2><a class="toc-backref" href=
- "#id134">11.7 Shell dell'utente</a></h2>
+ "#id138">11.7 Shell dell'utente</a></h2>
<p>Come gia' detto piu' volte le passwords degli utenti
viaaggiano in rete in chiaro, ponendo un grave problema di
sicurezza. Sara' quindi opportuno disbilitare la shell di
questi utenti, tramite il flag <tt class=
"docutils literal"><span class="pre">--shell</span>
- <span class="pre">/bin/false</span></tt> in fase di
- creazione degli utenti:</p>
+ /bin/false</tt> in fase di creazione degli utenti:</p>
<pre class="literal-block">
# adduser --shell /bin/false nome_utente
</pre>
<p>Oppure correggiendo manualmente il file <tt class=
- "docutils literal"><span class=
- "pre">/etc/passwd</span></tt> per modificare l'inpostazione
- della shell dell'utente:</p>
+ "docutils literal">/etc/passwd</tt> per modificare
+ l'inpostazione della shell dell'utente:</p>
<pre class="literal-block">
nome_utente:x:1001:1001::/var/spool/postfix:/bin/bash
# la riga sopra deve essere trasformata in
</pre>
<p>Sui sistemi DEbian REcenti sara' necessario aggiungere
- <tt class="docutils literal"><span class=
- "pre">/bin/false</span></tt> all'elenco delle shell
- valide.</p>
+ <tt class="docutils literal">/bin/false</tt> all'elenco
+ delle shell valide.</p>
- <p><tt class="docutils literal"><span class=
- "pre">/etc/shells</span></tt></p>
+ <p><tt class="docutils literal">/etc/shells</tt></p>
<pre class="literal-block">
...
/bin/false
<div class="section" id="altre-opzioni">
<h2><a class="toc-backref" href=
- "#id135">11.8 Altre opzioni</a></h2>
+ "#id139">11.8 Altre opzioni</a></h2>
<dl class="docutils">
<dt>xferlog_enable=YES</dt>
<dd>Verra' tenuto un file di log <tt class=
- "docutils literal"><span class=
- "pre">/var/log/vsftpd.log</span></tt> degli upload e
- download sul server.</dd>
+ "docutils literal">/var/log/vsftpd.log</tt> degli upload
+ e download sul server.</dd>
<dt>hide_ids=YES</dt>
<dd>Nasconde le userid e groupid mascherandole con
- <tt class="docutils literal"><span class=
- "pre">ftp</span></tt> .</dd>
+ <tt class="docutils literal">ftp</tt> .</dd>
<dt>anon_root=/home/ftp</dt>