<html lang="it">
<head>
<meta name="generator" content=
- "HTML Tidy for Linux/x86 (vers 7 December 2008), see www.w3.org">
+ "HTML Tidy for Linux/x86 (vers 6 November 2007), see www.w3.org">
<meta http-equiv="Content-Type" content=
"text/html; charset=iso-8859-1">
<meta name="generator" content=
</ul>
</li>
+ <li><a class="reference internal" href="#dns-slave" id=
+ "id70" name="id70">6.3 DNS
+ slave</a></li>
+
+ <li>
+ <a class="reference internal" href=
+ "#aggiornamento-dinamico-nsupdate" id="id71" name=
+ "id71">6.4 Aggiornamento dinamico:
+ nsupdate</a>
+
+ <ul class="auto-toc">
+ <li><a class="reference internal" href=
+ "#configurazione-client-nsupdate" id="id72" name=
+ "id72">6.4.1 Configurazione client
+ (nsupdate)</a></li>
+
+ <li><a class="reference internal" href=
+ "#configurazione-server-riconoscimento-chiave" id=
+ "id73" name=
+ "id73">6.4.2 Configurazione
+ server: riconoscimento chiave</a></li>
+
+ <li><a class="reference internal" href=
+ "#server-gestione-dell-intera-zona" id="id74" name=
+ "id74">6.4.3 Server: gestione
+ dell'intera zona</a></li>
+ </ul>
+ </li>
+
<li><a class="reference internal" href=
- "#link-suggeriti" id="id70" name=
- "id70">6.3 Link suggeriti:</a></li>
+ "#link-suggeriti" id="id75" name=
+ "id75">6.5 Link suggeriti:</a></li>
</ul>
</li>
<li>
- <a class="reference internal" href="#samba" id="id71"
- name="id71">7 Samba</a>
+ <a class="reference internal" href="#samba" id="id76"
+ name="id76">7 Samba</a>
<ul class="auto-toc">
<li><a class="reference internal" href="#pacchetti" id=
- "id72" name=
- "id72">7.1 Pacchetti</a></li>
+ "id77" name=
+ "id77">7.1 Pacchetti</a></li>
<li><a class="reference internal" href=
- "#passwords-e-autenticazione" id="id73" name=
- "id73">7.2 Passwords e
+ "#passwords-e-autenticazione" id="id78" name=
+ "id78">7.2 Passwords e
autenticazione</a></li>
<li><a class="reference internal" href=
- "#creazione-utenti" id="id74" name=
- "id74">7.3 Creazione Utenti</a></li>
+ "#creazione-utenti" id="id79" name=
+ "id79">7.3 Creazione Utenti</a></li>
<li>
<a class="reference internal" href=
- "#creare-la-condivisione" id="id75" name=
- "id75">7.4 Creare la
+ "#creare-la-condivisione" id="id80" name=
+ "id80">7.4 Creare la
condivisione</a>
<ul class="auto-toc">
<li><a class="reference internal" href=
"#sicurezza-permessi-di-esecuzione-sul-server" id=
- "id76" name=
- "id76">7.4.1 Sicurezza: permessi
+ "id81" name=
+ "id81">7.4.1 Sicurezza: permessi
di esecuzione sul server</a></li>
</ul>
</li>
- <li><a class="reference internal" href=
- "#configurazione-dell-applicativo-samba-vero-e-proprio"
- id="id77" name=
- "id77">7.5 Configurazione
- dell'applicativo Samba vero e proprio.</a></li>
+ <li>
+ <a class="reference internal" href=
+ "#configurazione-dell-applicativo-samba-vero-e-proprio"
+ id="id82" name=
+ "id82">7.5 Configurazione
+ dell'applicativo Samba vero e proprio.</a>
+
+ <ul class="auto-toc">
+ <li><a class="reference internal" href=
+ "#creazione-di-un-gruppo" id="id83" name=
+ "id83">7.5.1 Creazione di un
+ gruppo</a></li>
+ </ul>
+ </li>
<li><a class="reference internal" href=
- "#testare-il-servizio" id="id78" name=
- "id78">7.6 Testare il
+ "#testare-il-servizio" id="id84" name=
+ "id84">7.6 Testare il
Servizio</a></li>
</ul>
</li>
<li>
<a class="reference internal" href=
- "#server-di-posta-postfix" id="id79" name=
- "id79">8 Server di posta: Postfix</a>
+ "#server-di-posta-postfix" id="id85" name=
+ "id85">8 Server di posta: Postfix</a>
<ul class="auto-toc">
<li>
<a class="reference internal" href=
- "#test-del-server-smtp" id="id80" name=
- "id80">8.1 Test del server smtp</a>
+ "#test-del-server-smtp" id="id86" name=
+ "id86">8.1 Test del server smtp</a>
<ul class="auto-toc">
<li><a class="reference internal" href="#swaks" id=
- "id81" name=
- "id81">8.1.1 Swaks</a></li>
+ "id87" name=
+ "id87">8.1.1 Swaks</a></li>
</ul>
</li>
<li><a class="reference internal" href="#imap-e-pop"
- id="id82" name="id82">8.2 Imap e
+ id="id88" name="id88">8.2 Imap e
pop</a></li>
<li>
<a class="reference internal" href=
- "#client-a-riga-di-comando" id="id83" name=
- "id83">8.3 Client a riga di
+ "#client-a-riga-di-comando" id="id89" name=
+ "id89">8.3 Client a riga di
comando</a>
<ul class="auto-toc">
<li><a class="reference internal" href="#mailx" id=
- "id84" name=
- "id84">8.3.1 mailx</a></li>
+ "id90" name=
+ "id90">8.3.1 mailx</a></li>
<li><a class="reference internal" href="#mutt" id=
- "id85" name=
- "id85">8.3.2 Mutt</a></li>
+ "id91" name=
+ "id91">8.3.2 Mutt</a></li>
<li><a class="reference internal" href=
- "#web-client" id="id86" name=
- "id86">8.3.3 Web client</a></li>
+ "#web-client" id="id92" name=
+ "id92">8.3.3 Web client</a></li>
</ul>
</li>
<li>
<a class="reference internal" href="#graylisting" id=
- "id87" name=
- "id87">8.4 Graylisting</a>
+ "id93" name=
+ "id93">8.4 Graylisting</a>
<ul class="auto-toc">
<li><a class="reference internal" href=
- "#abilitazione-in-postfix" id="id88" name=
- "id88">8.4.1 Abilitazione in
+ "#abilitazione-in-postfix" id="id94" name=
+ "id94">8.4.1 Abilitazione in
Postfix</a></li>
<li><a class="reference internal" href="#test" id=
- "id89" name=
- "id89">8.4.2 Test</a></li>
+ "id95" name=
+ "id95">8.4.2 Test</a></li>
<li><a class="reference internal" href=
- "#statistiche" id="id90" name=
- "id90">8.4.3 Statistiche</a></li>
+ "#statistiche" id="id96" name=
+ "id96">8.4.3 Statistiche</a></li>
</ul>
</li>
</ul>
</li>
<li>
- <a class="reference internal" href="#firewall" id="id91"
- name="id91">9 Firewall</a>
+ <a class="reference internal" href="#firewall" id="id97"
+ name="id97">9 Firewall</a>
<ul class="auto-toc">
<li><a class="reference internal" href="#links" id=
- "id92" name="id92">9.1 Links</a></li>
+ "id98" name="id98">9.1 Links</a></li>
<li><a class="reference internal" href="#ipfilter" id=
- "id93" name=
- "id93">9.2 Ipfilter</a></li>
+ "id99" name=
+ "id99">9.2 Ipfilter</a></li>
<li>
<a class="reference internal" href=
- "#progettazione-di-un-firewall" id="id94" name=
- "id94">9.3 Progettazione di un
+ "#progettazione-di-un-firewall" id="id100" name=
+ "id100">9.3 Progettazione di un
firewall</a>
<ul class="auto-toc">
<li><a class="reference internal" href=
- "#collocazione" id="id95" name=
- "id95">9.3.1 Collocazione</a></li>
+ "#collocazione" id="id101" name=
+ "id101">9.3.1 Collocazione</a></li>
<li><a class="reference internal" href=
- "#policy-di-default" id="id96" name=
- "id96">9.3.2 Policy di
+ "#policy-di-default" id="id102" name=
+ "id102">9.3.2 Policy di
default</a></li>
<li><a class="reference internal" href="#hardware"
- id="id97" name=
- "id97">9.3.3 Hardware</a></li>
+ id="id103" name=
+ "id103">9.3.3 Hardware</a></li>
</ul>
</li>
<li><a class="reference internal" href=
"#percorso-dei-pacchetti-tra-tabelle-e-catene" id=
- "id98" name="id98">9.4 Percorso dei
+ "id104" name="id104">9.4 Percorso dei
pacchetti tra tabelle e catene</a></li>
<li>
<a class="reference internal" href=
- "#concetti-di-base" id="id99" name=
- "id99">9.5 Concetti di base</a>
+ "#concetti-di-base" id="id105" name=
+ "id105">9.5 Concetti di base</a>
<ul class="auto-toc">
<li><a class="reference internal" href=
- "#tabelle-catene-regole" id="id100" name=
- "id100">9.5.1 Tabelle, catene,
+ "#tabelle-catene-regole" id="id106" name=
+ "id106">9.5.1 Tabelle, catene,
regole</a></li>
<li><a class="reference internal" href="#match" id=
- "id101" name=
- "id101">9.5.2 Match</a></li>
+ "id107" name=
+ "id107">9.5.2 Match</a></li>
<li><a class="reference internal" href="#targets"
- id="id102" name=
- "id102">9.5.3 Targets</a></li>
+ id="id108" name=
+ "id108">9.5.3 Targets</a></li>
</ul>
</li>
<li><a class="reference internal" href=
- "#tabella-filter" id="id103" name=
- "id103">9.6 Tabella Filter</a></li>
+ "#tabella-filter" id="id109" name=
+ "id109">9.6 Tabella Filter</a></li>
<li><a class="reference internal" href=
- "#flush-automatico-per-macchine-remote" id="id104"
- name="id104">9.7 Flush automatico per
+ "#flush-automatico-per-macchine-remote" id="id110"
+ name="id110">9.7 Flush automatico per
macchine remote</a></li>
<li><a class="reference internal" href=
- "#gestione-regole-rules" id="id105" name=
- "id105">9.8 Gestione regole
+ "#gestione-regole-rules" id="id111" name=
+ "id111">9.8 Gestione regole
(rules)</a></li>
<li>
<a class="reference internal" href=
- "#salvataggio-regole" id="id106" name=
- "id106">9.9 Salvataggio regole</a>
+ "#salvataggio-regole" id="id112" name=
+ "id112">9.9 Salvataggio regole</a>
<ul class="auto-toc">
<li><a class="reference internal" href=
- "#iptables-save" id="id107" name=
- "id107">9.9.1 Iptables-save</a></li>
+ "#iptables-save" id="id113" name=
+ "id113">9.9.1 Iptables-save</a></li>
<li><a class="reference internal" href=
- "#iptables-restore" id="id108" name=
- "id108">9.9.2 Iptables-restore</a></li>
+ "#iptables-restore" id="id114" name=
+ "id114">9.9.2 Iptables-restore</a></li>
</ul>
</li>
<li>
<a class="reference internal" href="#esempi" id=
- "id109" name="id109">9.10 Esempi</a>
+ "id115" name="id115">9.10 Esempi</a>
<ul class="auto-toc">
<li><a class="reference internal" href=
- "#bloccare-i-ping-dall-esterno" id="id110" name=
- "id110">9.10.1 Bloccare i ping
+ "#bloccare-i-ping-dall-esterno" id="id116" name=
+ "id116">9.10.1 Bloccare i ping
dall'esterno</a></li>
<li><a class="reference internal" href=
- "#masquerading-snat" id="id111" name=
- "id111">9.10.2 Masquerading
+ "#masquerading-snat" id="id117" name=
+ "id117">9.10.2 Masquerading
(sNAT)</a></li>
<li><a class="reference internal" href=
- "#brute-force" id="id112" name=
- "id112">9.10.3 Brute
+ "#brute-force" id="id118" name=
+ "id118">9.10.3 Brute
force</a></li>
</ul>
</li>
</ul>
</li>
- <li><a class="reference internal" href="#note" id="id113"
- name="id113">10 NOTE</a></li>
+ <li><a class="reference internal" href="#note" id="id119"
+ name="id119">10 NOTE</a></li>
</ul>
</div>
operativo e della rete nel laboratorio 208 facente parte
della rete piffa.net .</p>
- <p>Qui riportati per comodita' degli studenti (e del
- docente che non sara' <strong>mai piu'</strong> costretto a
- ripeterli continuamente! ). Gli altri lettori potranno
- tenerli presenti per cercare di comprendere gli esempi nel
- testo. Ad esempio: quando leggerete <tt class=
- "docutils literal"><span class=
+ <p>Sono qui riportati i parametri della rete locale per
+ 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.254:3128</span></tt> saprete che si tratta
del nostro <em>proxy http</em>, stara' quindi a voi
sostituire i dati con gli equivalenti <em>IP</em> della
<table border="1" class="docutils">
<colgroup>
- <col width="42%">
- <col width="58%">
+ <col width="45%">
+ <col width="55%">
</colgroup>
<tbody valign="top">
<td>10.10.208.254</td>
</tr>
-
- <tr>
- <td>proxy http</td>
-
- <td>10.10.208.254:3128</td>
- </tr>
</tbody>
</table>
- <p>Sul portatile di Andrea, corrispondente all'IP 254, gira
- un DHCP, proxy http e mirror di Debian ( <a class=
- "reference external" href=
- "http://debian.piffa.net">http://debian.piffa.net</a>). Se
- Andrea non e' in aula (o ancora peggio non c'e' il suo
- portatile Net) gli studenti dovranno darsi un indirizzo IP
- manualmente e disabilitare il proxy (che pero' e
- trasparente, quindi fate pure come se non ci fosse ;) . Ad
- oggi il <em>lab208</em> e' servito dal server Bender (254 o
- 248) che ha ripreso le sue vecchie funzioni.</p>
+ <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=
+ "http://debian.piffa.net">http://debian.piffa.net</a>).
+ Altri servizi in esecuzione sul server:</p>
+
+ <ul class="simple">
+ <li>Rsync server e altri software di aggiornamento /
+ installazione di massa</li>
+
+ <li>Server imap / pop3 / webmail / smtp</li>
+
+ <li>Server ssh per i test degli studenti</li>
+
+ <li>File server Samba, NFS e controller di qualsiasi
+ altro FS distribuito</li>
+
+ <li>Print server per la gestione delle stampanti</li>
+
+ <li>DNS server</li>
+
+ <li>Mirror locale delle *.iso dei sistemi operativi e dei
+ vari software usati durante le lezioni</li>
+
+ <li>Spazi web con PHP, MySQL, Postgresql (altri DB o
+ framework vengono attivati a seconda dei corsi
+ attivi)</li>
+ </ul>
+
+ <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>
+
+ <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>
+
+ <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>
+
+ <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>
<div class="section" id="interfaces">
<h3><a class="toc-backref" href=
iface lo inet loopback
# La prima scheda di rete (se si chiama eth0)
-# (network, broadcast and gateway sono optional)
iface etho inet static
# esempio con dhcp:
# iface etho inet dhcp
broadcast 10.10.208.255
gateway 10.10.208.254
-# Quali interfacci devono partire automaticamente:
+# Quali interfaccie devono partire automaticamente:
auto lo eth0
</pre>
<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 .</p>
+ 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>
alias ll='ls $LS_OPTIONS -l'
alias l='ls $LS_OPTIONS -lA'
-# Some more alias to avoid making mistakes:
+# Abilitare i seguenti alias per impostare la conferma per cancellare file
# alias rm='rm -i'
# alias cp='cp -i'
# alias mv='mv -i'
<li><a class="reference external" href=
"http://www.caliban.org/bash/">Working more productively
with bash 2.x/3.x</a></li>
+
+ <li>UNIX / Linux Shell Scripting Tutorial: <a class=
+ "reference external" href=
+ "http://steve-parker.org/sh/sh.shtml">http://steve-parker.org/sh/sh.shtml</a></li>
</ul>
</div>
impostazioni per renderlo piu' comodo.</p>
<p>Assicurarsi che sia installata nel sistema la versione
- completa dell'editor <tt class=
- "docutils literal"><span class="pre">vim</span></tt>
- installando il pacchetto <tt class=
+ completa dell'editor installando il pacchetto <tt class=
"docutils literal"><span class="pre">vim</span></tt>:</p>
<pre class="literal-block">
- # apt-get install vim
-
-e modificare il file di configurazione generale ``/etc/vim/vimrc`` ::
-
- " All system-wide defaults are set in $VIMRUNTIME/debian.vim (usually just
- " /usr/share/vim/vimcurrent/debian.vim) and sourced by the call to :runtime
- " you can find below. If you wish to change any of those settings, you should
- " do it in this file (/etc/vim/vimrc), since debian.vim will be overwritten
- " everytime an upgrade of the vim packages is performed. It is recommended to
- " make changes after sourcing debian.vim since it alters the value of the
- " 'compatible' option.
-
- " This line should not be removed as it ensures that various options are
- " properly set to work with the Vim-related packages available in Debian.
- runtime! debian.vim
-
- " Uncomment the next line to make Vim more Vi-compatible
- " NOTE: debian.vim sets 'nocompatible'. Setting 'compatible' changes numerous
- " options, so any other options should be set AFTER setting 'compatible'.
- "set compatible
-
- " Vim5 and later versions support syntax highlighting. Uncommenting the next
- " line enables syntax highlighting by default.
- syntax on
-
- " If using a dark background within the editing area and syntax highlighting
- " turn on this option as well.
- set background=dark
-
- " Uncomment the following to have Vim jump to the last position when
- " reopening a file
-
- if has("autocmd")
- au BufReadPost * if line("'\"") > 0 && line("'\"") <= line("$")
- \| exe "normal! g'\"" | endif
- endif
-
- " Uncomment the following to have Vim load indentation rules and plugins
- " according to the detected filetype.
- " This is not recommanded if you often copy and paste into vim,
- " as it messes all the indentation.
- if has("autocmd")
- filetype plugin indent on
- endif
-
- " This goes for comments folding: use co to expnad and zc to compress,
- " zi to toggle on/off
- set fdm=expr
- set fde=getline(v:lnum)=~'^\\s*#'?1:getline(prevnonblank(v:lnum))=~'^\\s*#'?1:getline(nextnonblank(v:lnum))=~'^\\s*#'?1:0
-
- " The following are commented out as they cause vim to behave a lot
- " differently from regular Vi. They are highly recommended though.
- set showcmd " Show (partial) command in status line.
- "set showmatch " Show matching brackets.
- # Ignorecase is quite userfull
- set ignorecase " Do case insensitive matching
- "set smartcase " Do smart case matching
- "set incsearch " Incremental search
- set autowrite " Automatically save before commands like :next and :make
- "set hidden " Hide buffers when they are abandoned
- "set mouse=a " Enable mouse usage (all modes) in terminals
-
- " Source a global configuration file if available
- " XXX Deprecated, please move your changes here in /etc/vim/vimrc
- if filereadable("/etc/vim/vimrc.local")
- source /etc/vim/vimrc.local
- endif
+# apt-get install vim
+</pre>
+
+ <p>Modificare poi il file di configurazione generale
+ <tt class="docutils literal"><span class=
+ "pre">/etc/vim/vimrc</span></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
+" you can find below. If you wish to change any of those settings, you should
+" do it in this file (/etc/vim/vimrc), since debian.vim will be overwritten
+" everytime an upgrade of the vim packages is performed. It is recommended to
+" make changes after sourcing debian.vim since it alters the value of the
+" 'compatible' option.
+
+" This line should not be removed as it ensures that various options are
+" properly set to work with the Vim-related packages available in Debian.
+runtime! debian.vim
+
+" Uncomment the next line to make Vim more Vi-compatible
+" NOTE: debian.vim sets 'nocompatible'. Setting 'compatible' changes numerous
+" options, so any other options should be set AFTER setting 'compatible'.
+"set compatible
+
+" Vim5 and later versions support syntax highlighting. Uncommenting the next
+" line enables syntax highlighting by default.
+syntax on
+
+" If using a dark background within the editing area and syntax highlighting
+" turn on this option as well.
+set background=dark
+
+" Uncomment the following to have Vim jump to the last position when
+" reopening a file
+
+if has("autocmd")
+ au BufReadPost * if line("'\"") > 0 && line("'\"") <= line("$")
+ \| exe "normal! g'\"" | endif
+endif
+
+" Uncomment the following to have Vim load indentation rules and plugins
+" according to the detected filetype.
+" This is not recommanded if you often copy and paste into vim,
+" as it messes all the indentation.
+if has("autocmd")
+ filetype plugin indent on
+endif
+
+" This goes for comments folding: use co to expnad and zc to compress,
+" zi to toggle on/off
+set fdm=expr
+set fde=getline(v:lnum)=~'^\\s*#'?1:getline(prevnonblank(v:lnum))=~'^\\s*#'?1:getline(nextnonblank(v:lnum))=~'^\\s*#'?1:0
+
+" The following are commented out as they cause vim to behave a lot
+" differently from regular Vi. They are highly recommended though.
+set showcmd " Show (partial) command in status line.
+"set showmatch " Show matching brackets.
+# Ignorecase is quite userfull
+set ignorecase " Do case insensitive matching
+"set smartcase " Do smart case matching
+"set incsearch " Incremental search
+set autowrite " Automatically save before commands like :next and :make
+"set hidden " Hide buffers when they are abandoned
+"set mouse=a " Enable mouse usage (all modes) in terminals
+
+" Source a global configuration file if available
+" XXX Deprecated, please move your changes here in /etc/vim/vimrc
+if filereadable("/etc/vim/vimrc.local")
+ source /etc/vim/vimrc.local
+endif
</pre>
<p>I principianti faranno bene ad esercitarsi con
<tt class="docutils literal"><span class=
"pre">vimtutor</span> <span class="pre">it</span></tt>.</p>
+
+ <p>Altri link per VIM:</p>
+
+ <ul class="simple">
+ <li>Vim Introduction and Tutorial: <a class=
+ "reference external" href=
+ "http://blog.interlinked.org/tutorials/vim_tutorial.html">
+ http://blog.interlinked.org/tutorials/vim_tutorial.html</a></li>
+
+ <li><a class="reference external" href=
+ "http://blog.smr.co.in/category/vim/">http://blog.smr.co.in/category/vim/</a></li>
+
+ <li><a class="reference external" href=
+ "http://vimdoc.sourceforge.net/">http://vimdoc.sourceforge.net/</a></li>
+ </ul>
</div>
<div class="section" id="vnc">
<pre class="literal-block">
su root
cd /bin
-wget http://debian.piffa.net/guarda.sh
+wget http://bender/guarda.sh
chmod +x guarda.sh
exit
</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">/bin/guarda.sh</span></tt>.</p>
+
+ <p>Le impostazioni del server VNC sono:</p>
+
+ <table border="1" class="docutils">
+ <colgroup>
+ <col width="55%">
+ <col width="45%">
+ </colgroup>
+
+ <thead valign="bottom">
+ <tr>
+ <th class="head">Parametro</th>
+
+ <th class="head">Valore</th>
+ </tr>
+ </thead>
+
+ <tbody valign="top">
+ <tr>
+ <td>IP</td>
+
+ <td>10.10.208.177:1</td>
+ </tr>
+
+ <tr>
+ <td>Server grafico</td>
+
+ <td>:1</td>
+ </tr>
+
+ <tr>
+ <td>password</td>
+
+ <td>password</td>
+ </tr>
+ </tbody>
+ </table>
+
<p>Si noti che non e' possibile lanciare un applicativo sul
server grafico di un utente da una shell in cui si sta
lavorando come altro utente, anche se root. E' quindi
pacchetto <tt class="docutils literal"><span class=
"pre">kde</span></tt>. Esiste un equivalente
<tt class="docutils literal"><span class=
- "pre">gnome-core</span> <span class=
- "pre">gnome</span></tt> per chi preferisce gnome, nel
- caso si potrebbe installare il log-in manager
- <tt class="docutils literal"><span class=
+ "pre">gnome-core</span></tt> per chi preferisce
+ Gnome, nel caso si potrebbe installare il log-in
+ manager <tt class="docutils literal"><span class=
"pre">gdm</span></tt> al posto di <tt class=
"docutils literal"><span class=
"pre">kdm</span></tt>.</td>
<ul class="simple">
<li><tt class="docutils literal"><span class=
- "pre">deb</span></tt> per pacchetti Debian binari</li>
+ "pre">deb</span></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
# Archivio principale debian via http su piffa.net,
# non funziona al di fuori dell'aula dei corsi
-deb http://debian.piffa.net/debian/ Lenny main
+deb http://debian.piffa.net/debian/ lenny main
# Sono disponibili anche i rami non-free contrib
# deb http://debian.piffa.net/debian/ lenny non-free contrib
+# Sono disponibili anche le release unstable e testing
+# deb http://debian.piffa.net/debian/ testing main non-free contrib
+# deb http://debian.piffa.net/debian/ sid main non-free contrib
-# Mirror da kernel.org da usare a casa:
+# Mirror da kernel.org europa da usare a casa:
deb http://mirrors.eu.kernel.org/debian/ lenny main
# Security dal sito principale
deb-src http://volatile.debian.org/debian-volatile Lenny/volatile main
# Esempio di accesso a un file system locale contenente i pacchetti:
-# deb file:/mnt/mirror Sid main non-free contrib
+# Potete scaricarei in aula con debmirror da debian.piffa.net
+# un mirror locale da usare poi a casa anche senza internet
+# deb file:/mnt/mirror sid main non-free contrib
</pre>
</div>
<p>Questo file contiene le opzioni di apt, come ad
esempio il proxy:</p>
<pre class="literal-block">
-Acquire::http::Proxy "http://10.10.208.254:3128";
+Acquire::http::Proxy "http://10.10.208.248:3128";
</pre>
<p>Si tenga conto che se si imposta un proxy per apt sul
proprio portatile e tornati a casa propria si vuole
- scaricare nuovi pacchetti si dovra' disabilitare il
- proxy.</p>
+ scaricare nuovi pacchetti si dovra' disabilitare il proxy
+ commentando la riga con ";" (''punto-e-virgola''):</p>
+
+ <div class="system-message">
+ <p class="system-message-title">System Message:
+ WARNING/2 (<tt class="docutils">servizi.txt</tt>, line
+ 326)</p>Literal block expected; none found.
+ </div>
+
+ <p>E' consigliabile impostare il proxy per apt anche in
+ presenza di un proxy-http <em>trasparente</em></p>
</div>
</div>
</div>
<p>Squid e' un proxy cache http (ma anche FTP e https)
robusto e strutturato, puo' essere usato sia in reti
- relativamente piccole grazie alla semplicita' di
- configurazione che in scenari piu' complessi grazie alla
- possibilita' di gestirne in modo granulare le risorse. Si
- partira' dalle configurazioni piu' semplici per la semplice
- <em>condivisione della navigazione</em> internet, per poi
- poter configurare la gestione degli accessi, il filtraggio
- dei contenuti (Squid e' una applicazione che si muove nel 4'
- livello del modello TCP/IP a differenza di un
- <em>ipfilter</em> limitato al 2') nel l bilanciamento del
- carico tra piu' hosts.</p>
+ relativamente semplici che in scenari piu' complessi grazie
+ alla possibilita' di gestirne in modo granulare le risorse.
+ Si partira' dalle configurazioni piu' semplici per la
+ semplice <em>condivisione della navigazione</em> internet,
+ per poi poter configurare la gestione degli accessi, il
+ filtraggio dei contenuti (Squid e' una applicazione che si
+ muove nel 4' livello del modello TCP/IP a differenza di un
+ <em>ipfilter</em> limitato al 2'), nel bilanciamento del
+ carico tra piu' server proxy.</p>
<dl class="docutils">
<dt>Inoltre Squid svolge la funzione di
<em>anonymizer</em>:</dt>
- <dd>nasconde i client http alla rete internet: risulta solo
- il server proxy nei log dei server web frequentati dagli
- utenti di Squid.</dd>
+ <dd>nasconde i client http alla rete internet: e' solo il
+ server proxy a risultare nei log dei server web frequentati
+ dagli utenti di Squid. Glu utenti non sono percepiti ed
+ esposti all'esterno.</dd>
</dl>
<p>Cosa a volte sottovalutata, Squid permette la navigazione
web a una rete basata su <em>indirizzi IP privati</em> (es
una 192.168.0.0/24). E se la rete privata deve <em>solo
- navigare</em> in internet, non serve un <em>NAT</em> od
- altro, basta il solo Squid. Per altro non servira' neanche un
- servizio DNS dato che <em>sara' il solo Squid a risolvere i
- nomi di dominio</em> per i suoi client http.</p>
+ navigare</em> in internet, non serve dover introdurre nella
+ rete un <em>NAT</em> (si veda la sezione sui firewall) per
+ condividere la connessione, basta il solo Squid. Per altro
+ non servira' neanche un servizio DNS utilizzabile dai clients
+ dato che <em>sara' il solo Squid a risolvere i nomi di
+ dominio</em> per i suoi client http.</p>
<p>Squid ascolta di default sulla porta 3128, per impostare
<em>apt</em> per utilizzarlo si aggiunga ad <tt class=
richiesta del browser, una pagina web (spesso scritta in
HTML). Le informazioni inviate dal server web viaggiano in
rete trasportate dal protocollo HTTP. L'insieme di server web
- dà vita al World Wide Web, uno dei servizi piu'
- utilizzati di Internet.</p>
+ da' vita al World Wide Web, uno dei servizi piu' utilizzati
+ di Internet.</p>
<div class="section" id="pacchetti-da-installare">
<h2><a class="toc-backref" href=
</ul>
</blockquote>
+ <p>Predisponendo l'infrastruttura di rete della vostra LAN
+ e' consigliabile impostare sempre un DNS cache sul vostro
+ server locale per i vari client. In questo modo in caso di
+ malfunzionamento del DNS o necessita' di intervenire /
+ sostituire i DNS non sara' piu' necessario dover
+ reimpostare ogni singolo client della LAN: bastera'
+ modificare l'impostazione del server DNS cache, ad esempio
+ per utilizzare un nuovo forwarder, o modificare al volo un
+ record DNS. La modifica, anche detta
+ <em>mascheramento</em>, di un record come il <em>server
+ smtp</em> o un <em>MX</em> potrebbe tirarvi rapidamente
+ fuori dai guai nel caso di un problema improvviso con la
+ posta elettronica o qualunque altro servizio che possiate
+ reindirizzare col DNS.</p>
+
+ <p>Un server DHCP e un DNS cache come <tt class=
+ "docutils literal"><span class="pre">Dnsmasq</span></tt>
+ possono permettervi di risolvere al volo (o per lo meno
+ reindirizzare) molte delle problematiche relative alla
+ configurazione della rete della vostra LAN: dover
+ intervenire manualmente su decine di client per modificare
+ le impostazioni di SMTP | gateway | SMTP | proxy.</p>
+
<p>Si veda anche la pagina man di resolv.conf.</p>
- <p>Attenzione: se si usa un client DHCP o simile questo
- file potra' 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>
+ <div class="warning">
+ <p class="first admonition-title">Avvertenza</p>
+
+ <p class="last">Attenzione: se si usa un client DHCP, ppp
+ (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>
+ </div>
</div>
<div class="section" id="etc-hosts">
</blockquote>
<p>Il contenuto e' un associazione tra un <em>IP</em> e
- stringhe di testo (anche piu' di una es: <tt class=
+ stringhe di testo (anche piu' di una per IP) es: <tt class=
"docutils literal"><span class="pre">mirror</span></tt> e
<tt class="docutils literal"><span class=
- "pre">mirror.piffa.net</span></tt>), un record per
- riga.</p>
+ "pre">mirror.piffa.net</span></tt>.</p>
<p>Il problema e' la gestione di questo file: quando gli
host cambiano IP si devono aggiornare i records, e poi c'e'
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>
- locale e lo <em>distribuisce</em> ai clients.</p>
+ "docutils literal"><span class="pre">hosts</span></tt> che
+ avete prodotto e lo <em>distribuisce</em> ai clients
+ tramite le normali query DNS.</p>
<p>Modificare (riconducendola a un IP interno, cosi'
annullandola) la risoluzione di un nome di dominio e' un
"#id59">5 DNSmasq</a></h1>
<p>Dnsmasq puo' svolgere le funzioni di un DNS cache /
- forwarder e un server DHCP caratterizzato dalla facilita' di
- configurazione, leggerezza e dalla possibilita' di modificare
- rapidamente i record DNS serviti alla rete. Puo' essere anche
- utilizzato come <cite>server per il boot da rete
+ forwarder, server DHCP, e' caratterizzato dalla facilita' di
+ configurazione, limitato uso di risorse, adattabilita' a
+ connessioni <em>dinamiche</em> come ADSL o altre punto a
+ punto (anche via cellulari) per condividere rapidamente la
+ rete (cosa molto utile se ci dovesse trovare a ridare
+ 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
<http://www.debian-administration.org/articles/478>_</cite>
.</p>
<p>Dnsmasq e' un interessante alternativa all'uso del server
- DNS Bind in modalita' cache-only (non autoritativo)
- accompagnato dal server DHCPd. I vantaggi sono:</p>
+ DNS Bind in modalita' <em>forwarding e cache-only</em> (non
+ autoritativo) accompagnato dal server DHCPd. I vantaggi
+ sono:</p>
<ul class="simple">
<li>Leggerezza: puo' essere fatto girare su una macchina
<h2><a class="toc-backref" href=
"#id62">5.3 DNS cache</a></h2>
- <p>Aggiungere al file <tt class=
- "docutils literal"><span class=
+ <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.
- Dnsmasq usera' la propria cache e in caso non abbia
- disponibile il <em>record DNS</em> richiesto fara' partire
- una query al primo DNS:</p>
- <pre class="literal-block">
-nameserver 127.0.0.1
-</pre>
+ in cima alla lista dei <em>nameserver</em> disponibili.</p>
+
+ <blockquote>
+ nameserver 127.0.0.1
+ </blockquote>
<p>Questo pero' potrebbe essere problematico se un altro
servizio, ad esempio il DHCP client, riscrive il contenuto
ns1 A 94.23.63.105
ns2 A 65.98.21.97
zoo A 94.23.63.105
+smtp A 94.23.63.105
test.piffa.net. A 94.23.63.105
*.piffa.net. A 94.23.63.105 ; *catch all domain
www CNAME zoo
+ftp CNAME zoo
</pre>
<p>All'interno di questo file si possono inserire dei
<dt>NS</dt>
- <dd>Name Server della zona</dd>
+ <dd>Name Server della zona. Non deve essere un
+ cname.</dd>
<dt>A</dt>
<dt>CNAME</dt>
- <dd>Canonical Name: un alias per un host</dd>
+ <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>
<dt>MX</dt>
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.</dd>
+ "pre">smtp2.piffa.net</span></tt> per il secondario.
+ Non deve essere un cname.</dd>
<dt>PTR</dt>
</div>
</div>
+ <div class="section" id="dns-slave">
+ <h2><a class="toc-backref" href=
+ "#id70">6.3 DNS slave</a></h2>
+
+ <p>Data l'importanza del servizio DNS e' necessario avere
+ ridondanza per i server DNS che ospitano i vostri dati: in
+ caso di indisponibilita' del server <em>master</em> (nel
+ caso fosse il solo a tenere i dati questo comporterebbe la
+ <em>scomparsa</em> di tutti i servizi / host da esso
+ seviti!) il client potrebbe contattare uno degli
+ <em>slave</em>.</p>
+
+ <p>Gli slave recuperano i dati dei recordos RR direttamente
+ dal master e non sara' quindi necessario dover mantenere
+ manualmente il file di configurazione della zona sugli
+ slaves, ogni volta che aggiorneremo il master questi dati
+ 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>
+ <pre class="literal-block">
+zone "piffa.net" {
+ type slave;
+ file "/etc/bind/pz/piffa.net";
+ masters { 192.168.0.1; };
+ };
+</pre>
+
+ <p>Facendo ripartire Bind il file <tt class=
+ "docutils literal"><span class=
+ "pre">/etc/bind/pz/piffa.net</span></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>
+ <pre class="literal-block">
+... slave named[2256]: zone piffa.net/IN: loaded serial 200905245
+... slave named[2256]: running
+... slave named[2256]: zone piffa.net/IN: sending notifies (serial 200905245)
+... slave named[2256]: client 192.168.0.1#1464: received notify for zone 'piffa.net'
+... slave named[2256]: zone piffa.net/IN: notify from 192.168.0.1#1464: zone is up to date
+</pre>
+
+ <div class="warning">
+ <p class="first admonition-title">Avvertenza</p>
+
+ <p class="last">Bind9 (versione 9.3 presente in Debian
+ Lenny) richiede una esplicita autorizzazione alla
+ notifica per lo stesso server slave, che in fase di avvio
+ 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>
+ </div>
+ </div>
+
+ <div class="section" id="aggiornamento-dinamico-nsupdate">
+ <h2><a class="toc-backref" href=
+ "#id71">6.4 Aggiornamento dinamico:
+ 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>
+
+ <p>L'auenticazione del client nsupdate che avra' la
+ possibilita' di aggiornare il server DNS master avviene
+ tramite <em>Transaction signatures</em> (TSIG, RFC2845)
+ usando un algoritmo di criptazione dati asimmetrico
+ <em>HMAC-MD5</em> : generata una coppia di chiavi sul
+ client / nsupdate con l'utility si dovra' trasferire la
+ chiave pubblica sul server <em>master</em>, che verra'
+ configurato per onorare gli aggiornamenti (eliminazione e
+ inserimento di record RR) autenticati dalla chiave
+ privata.</p>
+
+ <div class="section" id="configurazione-client-nsupdate">
+ <h3><a class="toc-backref" href=
+ "#id72">6.4.1 Configurazione client
+ (nsupdate)</a></h3>
+
+ <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=
+ "pre">dnssec-keygen</span></tt> installabile tramite il
+ pacchetto <tt class="docutils literal"><span class=
+ "pre">bind9utils</span></tt>:</p>
+ <pre class="literal-block">
+dnssec-keygen -a HMAC-MD5 -b 512 -n USER home.piffa.net.
+</pre>
+
+ <p>Otterremo le due chiavi <tt class=
+ "docutils literal"><span class=
+ "pre">Khome.piffa.net.+157+04331.key</span>
+ <span class=
+ "pre">Khome.piffa.net.+157+04331.private</span></tt>, la
+ chiave pubblica dovra' essere resa noto al server master
+ che ricevera' l'update dei records.</p>
+ </div>
+
+ <div class="section" id=
+ "configurazione-server-riconoscimento-chiave">
+ <h3><a class="toc-backref" href=
+ "#id73">6.4.2 Configurazione server:
+ riconoscimento chiave</a></h3>
+
+ <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>
+
+ <dd>
+ <dl class="first last docutils">
+ <dt>key home.piffa.net. {</dt>
+
+ <dd>algorithm HMAC-MD5; secret
+ "txfAkNTScANEu2V73mCeiDpXNc3pmf+7ONOoKnTKQKIZMzierSmeHjK5
+ Z8ntnByt/PJwv26jCIsVh8n+xzVsRw=="; };</dd>
+ </dl>
+ </dd>
+ </dl>
+
+ <div class="note">
+ <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
+ direttamente nel file *.key della chiave genearta, e'
+ scritto <em>tutto sulla stessa riga</em> senza ritorni
+ a capo.</p>
+ </div>
+ </div>
+
+ <div class="section" id="server-gestione-dell-intera-zona">
+ <h3><a class="toc-backref" href=
+ "#id74">6.4.3 Server: gestione
+ 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>
+ <pre class="literal-block">
+zone "piffa.net" {
+ type master;
+ file "/etc/bind/pz/piffa.net" ;
+ allow-update {
+ key home.piffa.net;
+ };
+};
+</pre>
+
+ <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
+ cedergli la propieta' del file::</dt>
+
+ <dd>chown bind /etc/bind/pz/piffa.net</dd>
+ </dl>
+
+ <p>Altro problema che si potrebbe porre: gli orologi di
+ 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>
+ <pre class="literal-block">
+apt-get install ntpdate
+ntpdate-debian
+</pre>
+
+ <p>Ora possiamo provare dal client a effettuare
+ l'iserimento di un record per testarne il
+ funzionamento:</p>
+ <pre class="literal-block">
+# nsupdate -k Khome.piffa.net.+157+04331.private -v
+> server ns1.piffa.net
+> update add home.piffa.net. 86400 A 192.168.0.2
+> show
+Outgoing update query:
+;; ->>HEADER<<- opcode: UPDATE, status: NOERROR, id: 0
+;; flags: ; ZONE: 0, PREREQ: 0, UPDATE: 0, ADDITIONAL: 0
+;; UPDATE SECTION:
+home.piffa.net. 86400 IN A 192.168.0.1
+
+
+> send
+</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 <em>flag</em> <tt class=
+ "docutils literal"><span class="pre">-k</span></tt> la
+ chiave <em>privata</em> 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 <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>
+
+ <p>Si noti che in questo modo <em>l'intera</em> zona
+ piffa.net e suscettibile di essere modificata dal client,
+ che potra' eliminare e inserire qualunque record. E'
+ possibile gestire in modo piu' granulare la zona, ad
+ esempio concedendo al client i privilegi per gestire solo
+ una parte della zona o i tipo di record da gestire.</p>
+ </div>
+ </div>
+
<div class="section" id="link-suggeriti">
<h2><a class="toc-backref" href=
- "#id70">6.3 Link suggeriti:</a></h2>
+ "#id75">6.5 Link suggeriti:</a></h2>
<ul class="simple">
<li>DNS for Rocket Scientists <a class=
<div class="section" id="samba">
<h1><a class="toc-backref" href=
- "#id71">7 Samba</a></h1>
+ "#id76">7 Samba</a></h1>
<p>Samba e' un progetto libero che fornisce servizi di
condivisione di file e stampanti a client SMB/CIFS.</p>
<div class="section" id="pacchetti">
<h2><a class="toc-backref" href=
- "#id72">7.1 Pacchetti</a></h2>
+ "#id77">7.1 Pacchetti</a></h2>
<p>Pacchetti da installare per utilizzare Samba in
modalita' client <a class="footnote-reference" href="#id6"
<div class="section" id="passwords-e-autenticazione">
<h2><a class="toc-backref" href=
- "#id73">7.2 Passwords e
+ "#id78">7.2 Passwords e
autenticazione</a></h2>
<p>Per poter configurare Samba in modo che usi un sistema
<div class="section" id="creazione-utenti">
<h2><a class="toc-backref" href=
- "#id74">7.3 Creazione Utenti</a></h2>
+ "#id79">7.3 Creazione Utenti</a></h2>
<p>Creiamo per primo l'utente sotto GNU/Linux, facendo
attenzione a <em>non dargli una shell di sistema</em>. Gli
<div class="section" id="creare-la-condivisione">
<h2><a class="toc-backref" href=
- "#id75">7.4 Creare la
+ "#id80">7.4 Creare la
condivisione</a></h2>
<p>La condivisione altro non e' che una cartella sul server
<div class="section" id=
"sicurezza-permessi-di-esecuzione-sul-server">
<h3><a class="toc-backref" href=
- "#id76">7.4.1 Sicurezza: permessi di
+ "#id81">7.4.1 Sicurezza: permessi di
esecuzione sul server</a></h3>
<p>Bisognerebbe notare sul server i permessi di
<div class="section" id=
"configurazione-dell-applicativo-samba-vero-e-proprio">
<h2><a class="toc-backref" href=
- "#id77">7.5 Configurazione
+ "#id82">7.5 Configurazione
dell'applicativo Samba vero e proprio.</a></h2>
<p>Avendo preparato gli utenti (ancora una volta: non si
<tt class="docutils literal"><span class="pre">#</span>
<span class="pre">/etc/init.d/samba</span> <span class=
"pre">restart</span></tt> .</p>
+
+ <div class="section" id="creazione-di-un-gruppo">
+ <h3><a class="toc-backref" href=
+ "#id83">7.5.1 Creazione di un
+ gruppo</a></h3>
+
+ <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>
+
+ <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
+ 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>
+ <pre class="literal-block">
+# Negoziazione degli accessi su base gruppo
+valid users = @nome_gruppo
+</pre>
+ </div>
</div>
<div class="section" id="testare-il-servizio">
<h2><a class="toc-backref" href=
- "#id78">7.6 Testare il Servizio</a></h2>
+ "#id84">7.6 Testare il Servizio</a></h2>
<p>Come testare il servizio</p>
<div class="section" id="server-di-posta-postfix">
<h1><a class="toc-backref" href=
- "#id79">8 Server di posta: Postfix</a></h1>
+ "#id85">8 Server di posta: Postfix</a></h1>
<p>Il server di posta che prenderemo in considerazione e'
Postfix, a seguire un estratto di un file di configurazione
<div class="section" id="test-del-server-smtp">
<h2><a class="toc-backref" href=
- "#id80">8.1 Test del server smtp</a></h2>
+ "#id86">8.1 Test del server smtp</a></h2>
<p>Per testare il corretto funzionamento del server di
posta si puo' procedere in vari modi.</p>
<div class="section" id="swaks">
<h3><a class="toc-backref" href=
- "#id81">8.1.1 Swaks</a></h3>
+ "#id87">8.1.1 Swaks</a></h3>
<dl class="docutils">
<dt>Per gli utenti meno esperti e' consigliabile
<div class="section" id="imap-e-pop">
<h2><a class="toc-backref" href=
- "#id82">8.2 Imap e pop</a></h2>
+ "#id88">8.2 Imap e pop</a></h2>
<p>Postfix e' un server SMTP, di conseguenza se volete che
i vostri utenti possano <em>scaricare</em> in locale la
<div class="section" id="client-a-riga-di-comando">
<h2><a class="toc-backref" href=
- "#id83">8.3 Client a riga di
+ "#id89">8.3 Client a riga di
comando</a></h2>
<p>Per testare il corretto funzionamento del server di
<div class="section" id="mailx">
<h3><a class="toc-backref" href=
- "#id84">8.3.1 mailx</a></h3>
+ "#id90">8.3.1 mailx</a></h3>
<dl class="docutils">
<dt>Uno dei client piu' semplici, sopratutto per
<div class="section" id="mutt">
<h3><a class="toc-backref" href=
- "#id85">8.3.2 Mutt</a></h3>
+ "#id91">8.3.2 Mutt</a></h3>
<p>Mutt e' uno dei gestori di posta preferiti da chi
preferisce utilizzare l'interfaccia testuale per la
<div class="section" id="web-client">
<h3><a class="toc-backref" href=
- "#id86">8.3.3 Web client</a></h3>
+ "#id92">8.3.3 Web client</a></h3>
<p>Per mettere a disposizione degli utenti un client web
per gestire la propria posta si installi il pacchetto:
<div class="section" id="graylisting">
<h2><a class="toc-backref" href=
- "#id87">8.4 Graylisting</a></h2>
+ "#id93">8.4 Graylisting</a></h2>
<p>Il <em>graylisting</em> e' un sistema relativamente poco
invasivo, con un limitato consumo di risorse per limitare
<div class="section" id="abilitazione-in-postfix">
<h3><a class="toc-backref" href=
- "#id88">8.4.1 Abilitazione in
+ "#id94">8.4.1 Abilitazione in
Postfix</a></h3>
<p>Installare il pacchetto: <tt class=
<div class="section" id="test">
<h3><a class="toc-backref" href=
- "#id89">8.4.2 Test</a></h3>
+ "#id95">8.4.2 Test</a></h3>
<p>Inviando un messaggio il client dovrebbe ricevere un
iniziale messaggio di rifiuto del messaggio:</p>
<div class="section" id="statistiche">
<h3><a class="toc-backref" href=
- "#id90">8.4.3 Statistiche</a></h3>
+ "#id96">8.4.3 Statistiche</a></h3>
<p>E' sempre utile poter tracciare qualche statistica
sulle percentuali di messaggi ricevuti, da chi, messaggi
<div class="section" id="firewall">
<h1><a class="toc-backref" href=
- "#id91">9 Firewall</a></h1>
+ "#id97">9 Firewall</a></h1>
<p>In Informatica, nell'ambito delle reti di computer, un
firewall (termine inglese dal significato originario di
parete refrattaria, muro tagliafuoco, muro ignifugo; in
italiano anche parafuoco o parafiamma) e' un componente
- passivo di difesa perimetrale che puo'ò anche svolgere
- funzioni di collegamento tra due o piu' tronconi di rete.
- Usualmente la rete viene divisa in due sotto reti: una, detta
- esterna, comprende l'intera Internet mentre l'altra interna,
- detta LAN (Local Area Network), comprende una sezione piu' o
- meno grande di un insieme di computer locali. In alcuni casi
- e' possibile che si crei l'esigenza di creare una terza sotto
+ passivo di difesa perimetrale che puo anche svolgere funzioni
+ di collegamento tra due o piu' tronconi di rete. Usualmente
+ la rete viene divisa in due sotto reti: una, detta esterna,
+ comprende l'intera Internet mentre l'altra interna, detta LAN
+ (Local Area Network), comprende una sezione piu' o meno
+ grande di un insieme di computer locali. In alcuni casi e'
+ possibile che si crei l'esigenza di creare una terza sotto
rete detta DMZ (o zona demilitarizzata) atta a contenere quei
sistemi che devono essere isolati dalla rete interna ma
devono comunque essere protetti dal firewall.</p>
- <p>Una prima definizione chiusa di firewall è la
+ <p>Una prima definizione chiusa di firewall e' la
seguente:</p>
<p>Apparato di rete hardware o software che filtra tutti i
computer, applicando regole che contribuiscono alla sicurezza
della stessa.</p>
- <p>In realta'à un firewall puo'ò essere realizzato con
- un normale computer (con almeno due schede di rete e software
- apposito), puo'ò essere una funzione inclusa in un router o
- puo'ò essere un apparato specializzato. Esistono inoltre i
+ <p>In realta' un firewall puo' essere realizzato con un
+ normale computer (con almeno due schede di rete e software
+ apposito), puo' essere una funzione inclusa in un router o
+ puo' essere un apparato specializzato. Esistono inoltre i
cosiddetti "firewall personali", che sono programmi
installati sui normali calcolatori, che filtrano solamente i
pacchetti che entrano ed escono da quel calcolatore; in tal
caso viene utilizzata una sola scheda di rete.</p>
- <p>La funzionalita'à principale in sostanza è quella
- di creare un filtro sulle connessioni entranti ed uscenti, in
+ <p>La funzionalita' principale in sostanza e' quella di
+ creare un filtro sulle connessioni entranti ed uscenti, in
questo modo il dispositivo innalza il livello di sicurezza
della rete e permette sia agli utenti interni che a quelli
esterni di operare nel massimo della sicurezza. Il firewall
potendo eseguire su di essi operazioni di: controllo modifica
monitoraggio</p>
- <p>Questo grazie alla sua capacita'Ã di "aprire" il
- pacchetto IP per leggere le informazioni presenti sul suo
- header, e in alcuni casi anche di effettuare verifiche sul
- contenuto del pacchetto.</p>
+ <p>Questo grazie alla sua capacita' di "aprire" il pacchetto
+ IP per leggere le informazioni presenti sul suo header, e in
+ alcuni casi anche di effettuare verifiche sul contenuto del
+ pacchetto.</p>
<div class="section" id="links">
<h2><a class="toc-backref" href=
- "#id92">9.1 Links</a></h2>
+ "#id98">9.1 Links</a></h2>
<ul class="simple">
<li><a class="reference external" href=
<div class="section" id="ipfilter">
<h2><a class="toc-backref" href=
- "#id93">9.2 Ipfilter</a></h2>
+ "#id99">9.2 Ipfilter</a></h2>
<p>Link: <a class="reference external" href=
"http://iptables-tutorial.frozentux.net/iptables-tutorial.html#IPFILTERING">
<div class="section" id="progettazione-di-un-firewall">
<h2><a class="toc-backref" href=
- "#id94">9.3 Progettazione di un
+ "#id100">9.3 Progettazione di un
firewall</a></h2>
<p>Per implementare un firewall bisogna decidere un aio di
<div class="section" id="collocazione">
<h3><a class="toc-backref" href=
- "#id95">9.3.1 Collocazione</a></h3>
+ "#id101">9.3.1 Collocazione</a></h3>
<p>DMZ e MZ, internet, intranet, extranet. Frammentazione
della rete, decidere se diversi reparti di una azienda si
<div class="section" id="policy-di-default">
<h3><a class="toc-backref" href=
- "#id96">9.3.2 Policy di default</a></h3>
+ "#id102">9.3.2 Policy di
+ default</a></h3>
<p>Drop o Accept: conseguenze per sicurezza, facilita' di
gestione.</p>
<div class="section" id="hardware">
<h3><a class="toc-backref" href=
- "#id97">9.3.3 Hardware</a></h3>
+ "#id103">9.3.3 Hardware</a></h3>
<p>Sostanzialmente potremmo distinguere due tipologie di
hardware:</p>
<div class="section" id=
"percorso-dei-pacchetti-tra-tabelle-e-catene">
<h2><a class="toc-backref" href=
- "#id98">9.4 Percorso dei pacchetti tra
+ "#id104">9.4 Percorso dei pacchetti tra
tabelle e catene</a></h2>
<p>link: <a class="reference external" href=
<div class="section" id="concetti-di-base">
<h2><a class="toc-backref" href=
- "#id99">9.5 Concetti di base</a></h2>
+ "#id105">9.5 Concetti di base</a></h2>
<div class="section" id="tabelle-catene-regole">
<h3><a class="toc-backref" href=
- "#id100">9.5.1 Tabelle, catene,
+ "#id106">9.5.1 Tabelle, catene,
regole</a></h3>
<p>Iptables lavora su 3 tabelle (tables) di default:</p>
<li>filter - Regola il firewalling: quali pacchetti
accettare, quali bloccare</li>
- <li>nat - Regola le attivita'Ã di natting</li>
+ <li>nat - Regola le attivita' di natting</li>
<li>mangle - Interviene sulla alterazione dei
pacchetti.</li>
<p>Ogni tabella ha delle catene (chains) predefinite
(INPUT, OUTPUT, FORWARD ... ) a cui possono essere
- aggiunte catene custom. Ogni catena è composta da un
+ aggiunte catene custom. Ogni catena e' composta da un
elenco di regole (rules) che identificano pacchetti di
rete secondo criteri diversi (es: -p tcp --dport 80 -d
10.0.0.45) Ogni regola termina con una indicazione
<div class="section" id="match">
<h3><a class="toc-backref" href=
- "#id101">9.5.2 Match</a></h3>
+ "#id107">9.5.2 Match</a></h3>
<p>I Match di una regola (rule) servono a testare un
pacchetto per valutare se corrisponda a certe
<div class="section" id="targets">
<h3><a class="toc-backref" href=
- "#id102">9.5.3 Targets</a></h3>
+ "#id108">9.5.3 Targets</a></h3>
<p>Se un pacchetto soddisfa le condizioni del Match
<em>salta</em> (jump) su uno dei target possibili, in
"option">-j <var>REDIRECT</var></span></kbd></td>
<td>Redirige il pacchetto ad una porta locale.
- Usabile solo in nat / PREROUTING e nat / OUTPUT è
+ Usabile solo in nat / PREROUTING e nat / OUTPUT e'
previsto per fare un transparent proxy (con proxy
server in esecuzione sulla macchina con
iptables)</td>
"option">-j <var>RETURN</var></span></kbd></td>
<td>Interrompe l'attraversamento della catena. Se
- questa è una secondaria, il pacchetto torna ad
+ questa e' una secondaria, il pacchetto torna ad
attraversare la catena madre da punto in cui aveva
- fatto il salto nella secondaria. Se il RETURN è in
+ fatto il salto nella secondaria. Se il RETURN e' in
una delle catene di default, il pacchetto
interrompe l'attraversamento e segue la policy di
default.</td>
"option">-j <var>MIRROR</var></span></kbd></td>
<td>Curioso e sperimentale, questo target invia un
- pacchetto speculare al mittente. In pratica è come
+ pacchetto speculare al mittente. In pratica e' come
se facesse da specchio per tutti i pacchetti
ricevuti. Da usare con cautela, per evitare
attacchi DOS indiretti.</td>
<div class="section" id="tabella-filter">
<h2><a class="toc-backref" href=
- "#id103">9.6 Tabella Filter</a></h2>
+ "#id109">9.6 Tabella Filter</a></h2>
<p>E' quella implicita e predefinita (-t filter) Riguarda
- le attività di filtraggio del traffico. Ha 3 catene
- di default: INPUT - Riguarda tutti i pacchetti destinati al
+ le attivita' di filtraggio del traffico. Ha 3 catene di
+ default: INPUT - Riguarda tutti i pacchetti destinati al
sistema. In entrata da ogni interfaccia. OUTPUT - Riguarda
i pacchetti che sono originati dal sistema e destinati ad
uscire. FORWARD - Riguarda i pacchetti che attraversano il
<div class="section" id=
"flush-automatico-per-macchine-remote">
<h2><a class="toc-backref" href=
- "#id104">9.7 Flush automatico per macchine
+ "#id110">9.7 Flush automatico per macchine
remote</a></h2>
<p>Se state provando una configurazione del firewall per
<div class="section" id="gestione-regole-rules">
<h2><a class="toc-backref" href=
- "#id105">9.8 Gestione regole
+ "#id111">9.8 Gestione regole
(rules)</a></h2>
- <p>Il comando iptables viene usato per ogni
- attivita'Ã di gestione e configurazione.</p>
+ <p>Il comando iptables viene usato per ogni attivita' di
+ gestione e configurazione.</p>
<p>Inserimento regole:</p>
<div class="section" id="salvataggio-regole">
<h2><a class="toc-backref" href=
- "#id106">9.9 Salvataggio regole</a></h2>
+ "#id112">9.9 Salvataggio regole</a></h2>
<p>Il comando <tt class="docutils literal"><span class=
"pre">iptables</span></tt> serve per interagire con il
<div class="section" id="iptables-save">
<h3><a class="toc-backref" href=
- "#id107">9.9.1 Iptables-save</a></h3>
+ "#id113">9.9.1 Iptables-save</a></h3>
<p>Per salvare le regole di iptables attualmente presenti
nel kernel si usi il comando:</p>
<div class="section" id="iptables-restore">
<h3><a class="toc-backref" href=
- "#id108">9.9.2 Iptables-restore</a></h3>
+ "#id114">9.9.2 Iptables-restore</a></h3>
<p>Per ripristinare un set di regole precedentemente
salvate con <tt class="docutils literal"><span class=
<div class="section" id="esempi">
<h2><a class="toc-backref" href=
- "#id109">9.10 Esempi</a></h2>
+ "#id115">9.10 Esempi</a></h2>
<p>Seguono alcuni esempi sull'uso di iptables, lo scenario
e' un computer con un paio di schede di rete fisiche una
<div class="section" id="bloccare-i-ping-dall-esterno">
<h3><a class="toc-backref" href=
- "#id110">9.10.1 Bloccare i ping
+ "#id116">9.10.1 Bloccare i ping
dall'esterno</a></h3>
<p>Spesso gli script che attaccano
<div class="section" id="masquerading-snat">
<h3><a class="toc-backref" href=
- "#id111">9.10.2 Masquerading
+ "#id117">9.10.2 Masquerading
(sNAT)</a></h3>
<dl class="docutils">
<div class="section" id="brute-force">
<h3><a class="toc-backref" href=
- "#id112">9.10.3 Brute force</a></h3>
+ "#id118">9.10.3 Brute force</a></h3>
- <dl class="docutils">
- <dt>Per limitare attacchi di tipo brute force su
- SSH::</dt>
+ <p>Per limitare attacchi di tipo brute force su SSH:</p>
+ <pre class="literal-block">
+iptables -A INPUT -i ppp0 -p tcp -m tcp --dport 22 -m state --state NEW -m recent --update --seconds 3000 --hitcount 4 --name DEFAULT --rsource -j DROP
- <dd>
- <p class="first">iptables -A INPUT -i ppp0 -p tcp -m
- tcp --dport 22 -m state --state NEW -m recent
- --update --seconds 3000 --hitcount 4 --name DEFAULT
- --rsource -j DROP</p>
-
- <p class="last">iptables -A INPUT -i ppp0 -p tcp -m
- tcp --dport 22 -m state --state NEW -m recent --set
- --name DEFAULT --rsource</p>
- </dd>
- </dl>
+iptables -A INPUT -i ppp0 -p tcp -m tcp --dport 22 -m state --state NEW -m recent --set --name DEFAULT --rsource
+</pre>
</div>
</div>
</div>
<div class="section" id="note">
<h1><a class="toc-backref" href=
- "#id113">10 NOTE</a></h1>
+ "#id119">10 NOTE</a></h1>
<dl class="docutils">
<dt>Bind:</dt>