<meta name="generator" content=
"Docutils 0.5: http://docutils.sourceforge.net/">
- <title>Servizi Di rete passo a passo</title>
+ <title>Servizi di rete passo a passo</title>
<style type="text/css">
/*
<body>
<div class="document" id="servizi-di-rete-passo-a-passo">
- <h1 class="title">Servizi Di rete passo a passo</h1>
+ <h1 class="title">Servizi di rete passo a passo</h1>
<h2 class="subtitle" id=
"appunti-sulla-installazione-e-configurazione-dei-servizi">
<tr class="field">
<th class="field-name">Version:</th>
- <td class="field-body">0.3</td>
+ <td class="field-body">0.4</td>
</tr>
</tbody>
</table>
<ul class="auto-toc simple">
<li>
<a class="reference internal" href=
- "#configurazione-sistema" id="id5" name=
- "id5">1 Configurazione sistema</a>
+ "#configurazione-sistema" id="id6" name=
+ "id6">1 Configurazione sistema</a>
<ul class="auto-toc">
<li><a class="reference internal" href=
- "#solo-per-uso-interno" id="id6" name=
- "id6">1.1 Solo per uso
+ "#solo-per-uso-interno" id="id7" name=
+ "id7">1.1 Solo per uso
interno</a></li>
- <li><a class="reference internal" href="#rete" id="id7"
- name="id7">1.2 Rete</a></li>
+ <li><a class="reference internal" href="#rete" id="id8"
+ name="id8">1.2 Rete</a></li>
<li><a class="reference internal" href=
- "#bash-completion" id="id8" name=
- "id8">1.3 Bash completion</a></li>
+ "#bash-completion" id="id9" name=
+ "id9">1.3 Bash completion</a></li>
- <li><a class="reference internal" href="#vim" id="id9"
- name="id9">1.4 Vim</a></li>
+ <li><a class="reference internal" href="#vim" id="id10"
+ name="id10">1.4 Vim</a></li>
- <li><a class="reference internal" href="#vnc" id="id10"
- name="id10">1.5 VNC</a></li>
+ <li><a class="reference internal" href="#vnc" id="id11"
+ name="id11">1.5 VNC</a></li>
<li><a class="reference internal" href=
- "#lista-dei-pacchetti-di-base" id="id11" name=
- "id11">1.6 Lista dei pacchetti di
+ "#lista-dei-pacchetti-di-base" id="id12" name=
+ "id12">1.6 Lista dei pacchetti di
base</a></li>
<li>
<a class="reference internal" href=
- "#apt-configurazione" id="id12" name=
- "id12">1.7 Apt configurazione</a>
+ "#apt-configurazione" id="id13" name=
+ "id13">1.7 Apt configurazione</a>
<ul class="auto-toc">
<li><a class="reference internal" href=
- "#sources-list" id="id13" name=
- "id13">1.7.1 sources.list</a></li>
+ "#sources-list" id="id14" name=
+ "id14">1.7.1 sources.list</a></li>
<li><a class="reference internal" href=
- "#etc-apt-apt-conf" id="id14" name=
- "id14">1.7.2 /etc/apt/apt.conf</a></li>
+ "#etc-apt-apt-conf" id="id15" name=
+ "id15">1.7.2 /etc/apt/apt.conf</a></li>
</ul>
</li>
</ul>
</li>
- <li><a class="reference internal" href="#squid" id="id15"
- name="id15">2 Squid</a></li>
+ <li><a class="reference internal" href="#squid" id="id16"
+ name="id16">2 Squid</a></li>
<li>
- <a class="reference internal" href="#apache" id="id16"
- name="id16">3 Apache</a>
+ <a class="reference internal" href="#apache" id="id17"
+ name="id17">3 Apache</a>
<ul class="auto-toc">
<li><a class="reference internal" href=
- "#configurazione-di-apache" id="id17" name=
- "id17">3.1 Configurazione di
+ "#pacchetti-da-installare" id="id18" name=
+ "id18">3.1 Pacchetti da
+ installare::</a></li>
+
+ <li><a class="reference internal" href=
+ "#configurazione-di-apache" id="id19" name=
+ "id19">3.2 Configurazione di
Apache</a></li>
<li><a class="reference internal" href="#apache-conf"
- id="id18" name=
- "id18">3.2 apache.conf</a></li>
+ id="id20" name=
+ "id20">3.3 apache.conf</a></li>
<li>
<a class="reference internal" href=
- "#installazione-di-php" id="id19" name=
- "id19">3.3 Installazione di PHP</a>
+ "#installazione-di-php" id="id21" name=
+ "id21">3.4 Installazione di PHP</a>
<ul class="auto-toc">
<li><a class="reference internal" href=
- "#test-del-modulo-php" id="id20" name=
- "id20">3.3.1 Test del modulo
+ "#test-del-modulo-php" id="id22" name=
+ "id22">3.4.1 Test del modulo
php</a></li>
<li><a class="reference internal" href=
- "#installazione-del-supporto-per-mysql" id="id21"
- name="id21">3.3.2 Installazione
+ "#installazione-del-supporto-per-mysql" id="id23"
+ name="id23">3.4.2 Installazione
del supporto per Mysql</a></li>
<li><a class="reference internal" href=
- "#phpmyadmin" id="id22" name=
- "id22">3.3.3 phpmyadmin</a></li>
+ "#phpmyadmin" id="id24" name=
+ "id24">3.4.3 phpmyadmin</a></li>
<li><a class="reference internal" href=
"#installazione-del-supporto-per-postgresql" id=
- "id23" name=
- "id23">3.3.4 Installazione del
+ "id25" name=
+ "id25">3.4.4 Installazione del
supporto per Postgresql</a></li>
+
+ <li><a class="reference internal" href=
+ "#phppgadmin" id="id26" name=
+ "id26">3.4.5 phppgadmin</a></li>
</ul>
</li>
<li>
<a class="reference internal" href="#virtual-hosts"
- id="id24" name="id24">3.4 Virtual
+ id="id27" name="id27">3.5 Virtual
hosts</a>
<ul class="auto-toc">
<li><a class="reference internal" href=
- "#gestione-dns" id="id25" name=
- "id25">3.4.1 Gestione DNS</a></li>
+ "#gestione-dns" id="id28" name=
+ "id28">3.5.1 Gestione DNS</a></li>
<li><a class="reference internal" href=
- "#virtual-host" id="id26" name=
- "id26">3.4.2 Virtual host</a></li>
+ "#virtual-host" id="id29" name=
+ "id29">3.5.2 Virtual host</a></li>
</ul>
</li>
- <li><a class="reference internal" href=
- "#user-authentication" id="id27" name=
- "id27">3.5 User
- Authentication</a></li>
+ <li>
+ <a class="reference internal" href=
+ "#negoziazione-accessi" id="id30" name=
+ "id30">3.6 Negoziazione accessi</a>
+
+ <ul class="auto-toc">
+ <li><a class="reference internal" href=
+ "#limiti-su-base-ip" id="id31" name=
+ "id31">3.6.1 Limiti su base
+ ip</a></li>
+ </ul>
+ </li>
+
+ <li>
+ <a class="reference internal" href=
+ "#user-authentication" id="id32" name=
+ "id32">3.7 User Authentication</a>
+
+ <ul class="auto-toc">
+ <li><a class="reference internal" href=
+ "#definire-la-cartella" id="id33" name=
+ "id33">3.7.1 Definire la
+ cartella</a></li>
+
+ <li><a class="reference internal" href=
+ "#creazione-del-database-delle-passwords" id="id34"
+ name="id34">3.7.2 Creazione del
+ database delle passwords</a></li>
+
+ <li><a class="reference internal" href="#id3" id=
+ "id35" name=
+ "id35">3.7.3 Configurazione di
+ Apache</a></li>
+ </ul>
+ </li>
<li><a class="reference internal" href="#cavets" id=
- "id28" name="id28">3.6 Cavets</a></li>
+ "id36" name="id36">3.8 Cavets</a></li>
</ul>
</li>
<li>
<a class="reference internal" href="#domain-name-system"
- id="id29" name="id29">4 Domain Name
+ id="id37" name="id37">4 Domain Name
System</a>
<ul class="auto-toc">
<li><a class="reference internal" href=
- "#informazioni-di-base-sul-servizio-dns" id="id30"
- name="id30">4.1 Informazioni di base
- sul servizio DNS.</a></li>
+ "#nomi-di-dominio" id="id38" name=
+ "id38">4.1 Nomi di dominio</a></li>
<li><a class="reference internal" href=
- "#nomi-di-dominio" id="id31" name=
- "id31">4.2 Nomi di dominio</a></li>
-
- <li><a class="reference internal" href=
- "#tipologie-di-record" id="id32" name=
- "id32">4.3 Tipologie di
+ "#tipologie-di-record" id="id39" name=
+ "id39">4.2 Tipologie di
record</a></li>
<li><a class="reference internal" href="#utilizzo" id=
- "id33" name=
- "id33">4.4 Utilizzo</a></li>
+ "id40" name=
+ "id40">4.3 Utilizzo</a></li>
<li><a class="reference internal" href=
- "#risoluzione-dei-nomi-di-dominio" id="id34" name=
- "id34">4.5 Risoluzione dei nomi di
+ "#risoluzione-dei-nomi-di-dominio" id="id41" name=
+ "id41">4.4 Risoluzione dei nomi di
dominio</a></li>
+
+ <li><a class="reference internal" href="#dig" id="id42"
+ name="id42">4.5 Dig</a></li>
</ul>
</li>
- <li><a class="reference internal" href="#dnsmasq" id="id35"
- name="id35">5 DNSmasq</a></li>
+ <li><a class="reference internal" href="#dnsmasq" id="id43"
+ name="id43">5 DNSmasq</a></li>
<li>
- <a class="reference internal" href="#samba" id="id36"
- name="id36">6 Samba</a>
+ <a class="reference internal" href="#samba" id="id44"
+ name="id44">6 Samba</a>
<ul class="auto-toc">
<li><a class="reference internal" href="#pacchetti" id=
- "id37" name=
- "id37">6.1 Pacchetti</a></li>
+ "id45" name=
+ "id45">6.1 Pacchetti</a></li>
<li><a class="reference internal" href=
- "#passwords-e-autenticazione" id="id38" name=
- "id38">6.2 Passwords e
+ "#passwords-e-autenticazione" id="id46" name=
+ "id46">6.2 Passwords e
autenticazione</a></li>
<li><a class="reference internal" href=
- "#creazione-utenti" id="id39" name=
- "id39">6.3 Creazione Utenti</a></li>
+ "#creazione-utenti" id="id47" name=
+ "id47">6.3 Creazione Utenti</a></li>
<li>
<a class="reference internal" href=
- "#creare-la-condivisione" id="id40" name=
- "id40">6.4 Creare la
+ "#creare-la-condivisione" id="id48" name=
+ "id48">6.4 Creare la
condivisione</a>
<ul class="auto-toc">
<li><a class="reference internal" href=
"#sicurezza-permessi-di-esecuzione-sul-server" id=
- "id41" name=
- "id41">6.4.1 Sicurezza: permessi
+ "id49" name=
+ "id49">6.4.1 Sicurezza: permessi
di esecuzione sul server</a></li>
</ul>
</li>
<li><a class="reference internal" href=
"#configurazione-dell-applicativo-samba-vero-e-proprio"
- id="id42" name=
- "id42">6.5 Configurazione
+ id="id50" name=
+ "id50">6.5 Configurazione
dell'applicativo Samba vero e proprio.</a></li>
<li><a class="reference internal" href=
- "#testare-il-servizio" id="id43" name=
- "id43">6.6 Testare il
+ "#testare-il-servizio" id="id51" name=
+ "id51">6.6 Testare il
Servizio</a></li>
</ul>
</li>
- <li><a class="reference internal" href="#note" id="id44"
- name="id44">7 NOTE</a></li>
+ <li>
+ <a class="reference internal" href="#firewall" id="id52"
+ name="id52">7 Firewall</a>
+
+ <ul class="auto-toc">
+ <li><a class="reference internal" href="#links" id=
+ "id53" name="id53">7.1 Links</a></li>
+
+ <li><a class="reference internal" href="#ipfilter" id=
+ "id54" name=
+ "id54">7.2 Ipfilter</a></li>
+
+ <li>
+ <a class="reference internal" href=
+ "#progettazione-di-un-firewall" id="id55" name=
+ "id55">7.3 Progettazione di un
+ firewall</a>
+
+ <ul class="auto-toc">
+ <li><a class="reference internal" href=
+ "#collocazione" id="id56" name=
+ "id56">7.3.1 Collocazione</a></li>
+
+ <li><a class="reference internal" href=
+ "#policy-di-default" id="id57" name=
+ "id57">7.3.2 Policy di
+ default</a></li>
+
+ <li><a class="reference internal" href="#hardware"
+ id="id58" name=
+ "id58">7.3.3 Hardware</a></li>
+ </ul>
+ </li>
+
+ <li><a class="reference internal" href=
+ "#percorso-dei-pacchetti-tra-tabelle-e-catene" id=
+ "id59" name="id59">7.4 Percorso dei
+ pacchetti tra tabelle e catene</a></li>
+
+ <li>
+ <a class="reference internal" href=
+ "#concetti-di-base" id="id60" name=
+ "id60">7.5 Concetti di base</a>
+
+ <ul class="auto-toc">
+ <li><a class="reference internal" href=
+ "#tabelle-catene-regole" id="id61" name=
+ "id61">7.5.1 Tabelle, catene,
+ regole</a></li>
+
+ <li><a class="reference internal" href="#match" id=
+ "id62" name=
+ "id62">7.5.2 Match</a></li>
+
+ <li><a class="reference internal" href="#targets"
+ id="id63" name=
+ "id63">7.5.3 Targets</a></li>
+ </ul>
+ </li>
+
+ <li><a class="reference internal" href=
+ "#tabella-filter" id="id64" name=
+ "id64">7.6 Tabella Filter</a></li>
+
+ <li><a class="reference internal" href=
+ "#gestione-regole-rules" id="id65" name=
+ "id65">7.7 Gestione regole
+ (rules)</a></li>
+ </ul>
+ </li>
+
+ <li><a class="reference internal" href="#note" id="id66"
+ name="id66">8 NOTE</a></li>
</ul>
</div>
<div class="section" id="configurazione-sistema">
<h1><a class="toc-backref" href=
- "#id5">1 Configurazione sistema</a></h1>
+ "#id6">1 Configurazione sistema</a></h1>
<div class="section" id="solo-per-uso-interno">
<h2><a class="toc-backref" href=
- "#id6">1.1 Solo per uso interno</a></h2>
+ "#id7">1.1 Solo per uso interno</a></h2>
<p>Impostazioni di base per la configurazione del sistema
operativo e della rete nel laboratorio 208 facente parte
<div class="section" id="rete">
<h2><a class="toc-backref" href=
- "#id7">1.2 Rete</a></h2>
+ "#id8">1.2 Rete</a></h2>
<p>Parametri della rete attualmente in uso:</p>
<div class="section" id="bash-completion">
<h2><a class="toc-backref" href=
- "#id8">1.3 Bash completion</a></h2>
+ "#id9">1.3 Bash completion</a></h2>
<p>Il completamento automatico della shell (che si attiva
premendo il tasto tab una o due volte mentre si sta
<div class="section" id="vim">
<h2><a class="toc-backref" href=
- "#id9">1.4 Vim</a></h2>
+ "#id10">1.4 Vim</a></h2>
<p>Vim e' l'editor di testo preferito dai sistemisti,
quindi sara' conveniente impostare fin da subito alcune
<div class="section" id="vnc">
<h2><a class="toc-backref" href=
- "#id10">1.5 VNC</a></h2>
+ "#id11">1.5 VNC</a></h2>
<p>I Virtual Network Computing (o VNC) sono software di
controllo remoto e servono per amministrare il proprio
<div class="section" id="lista-dei-pacchetti-di-base">
<h2><a class="toc-backref" href=
- "#id11">1.6 Lista dei pacchetti di
+ "#id12">1.6 Lista dei pacchetti di
base</a></h2>
<p>I pacchetti installati generalmente <a class=
<div class="section" id="apt-configurazione">
<h2><a class="toc-backref" href=
- "#id12">1.7 Apt configurazione</a></h2>
+ "#id13">1.7 Apt configurazione</a></h2>
<p>Vediamo i due file principali di apt:</p>
<div class="section" id="sources-list">
<h3><a class="toc-backref" href=
- "#id13">1.7.1 sources.list</a></h3>
+ "#id14">1.7.1 sources.list</a></h3>
<p>Questo file contiene i sorgenti da cui <em>apt</em>
preleva i pacchetti da installare tramite <em>dpkg</em>,
<div class="section" id="etc-apt-apt-conf">
<h3><a class="toc-backref" href=
- "#id14">1.7.2 /etc/apt/apt.conf</a></h3>
+ "#id15">1.7.2 /etc/apt/apt.conf</a></h3>
<p>Questo file contiene le opzioni di apt, come ad
esempio il proxy:</p>
<div class="section" id="squid">
<h1><a class="toc-backref" href=
- "#id15">2 Squid</a></h1>
+ "#id16">2 Squid</a></h1>
</div>
<div class="section" id="apache">
<h1><a class="toc-backref" href=
- "#id16">3 Apache</a></h1>
+ "#id17">3 Apache</a></h1>
+
+ <p>Apache HTTP Server, o piu' comunemente Apache, e' il nome
+ dato alla piattaforma server Web modulare piu' diffusa (ma
+ anche al gruppo di lavoro open source che ha creato,
+ sviluppato e aggiornato il software server), in grado di
+ operare da sistemi operativi UNIX-Linux e Microsoft.</p>
+
+ <p>Un server web e' un processo, e per estensione il computer
+ su cui e' in esecuzione, che si occupa di fornire, su
+ 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>
+
+ <div class="section" id="pacchetti-da-installare">
+ <h2><a class="toc-backref" href=
+ "#id18">3.1 Pacchetti da
+ installare::</a></h2>
- <p>Pacchetti da installare:</p>
- <pre class="literal-block">
-apache2 apache2-doc
-</pre>
+ <blockquote>
+ apache2 apache2-doc
+ </blockquote>
- <p>Con la release 2.0 di Apache viene automaticamente resa
- disponibile anche la versione SSL (Secure Socket Layer,
- cpnnessioni criptate ) del web server.</p>
+ <p>Con la release 2.0 di Apache viene automaticamente resa
+ disponibile anche la versione SSL (Secure Socket Layer,
+ cpnnessioni criptate ) del web server.</p>
+ </div>
<div class="section" id="configurazione-di-apache">
<h2><a class="toc-backref" href=
- "#id17">3.1 Configurazione di
+ "#id19">3.2 Configurazione di
Apache</a></h2>
<p>I file di configurazione di apache si trovano nella
<dl class="docutils">
<dt>apache2.conf</dt>
- <dd>File di configurazione principale del servizio
- httpd.conf e' il vecchio file di configurazione di
- Apache1, presente per motivi di retrocompatibilita' e'
- generalemente vuoto.</dd>
+ <dd>
+ <p class="first">File di configurazione principale del
+ servizio.</p>
+
+ <p class="last">httpd.conf e' il vecchio file di
+ configurazione di Apache1, presente per motivi di
+ retrocompatibilita' e' generalemente vuoto.</p>
+ </dd>
<dt>ports.conf</dt>
<div class="section" id="apache-conf">
<h2><a class="toc-backref" href=
- "#id18">3.2 apache.conf</a></h2>
+ "#id20">3.3 apache.conf</a></h2>
<p>File di configurazione del servizio Apache, contiene le
impostazioni generiche (ad esempio utilizzo della RAM e
<p>Guardiamo alcune direttive interessanti:</p>
<dl class="docutils">
- <dt>timeout</dt>
+ <dt>Timeout</dt>
<dd>Numero di secondi da aspettare prima di chiudere la
connessione con il client. Questo parametro serve a
alle connessioni persistenti (http 1.1) permettono al
server di rispondere a piu' richieste dei client mediante
la stessa connessione. Il protocoll http per sua natura
- e' connectio-less e senza stato, quindi ogni risorsa
- richiesta (per pagine web si pensi ad esempio alle
- immagini) dal client necessita di una connessione
+ e' senza stato (<em>statelessi</em> ), quindi ogni
+ risorsa richiesta (per pagine web si pensi ad esempio
+ alle immagini) dal client necessita di una connessione
autonoma. Keep-alive permette di ottimizzare la
connessione anche fino al 50% a seconda delle situazioni
e contenuti.</dd>
<div class="section" id="installazione-di-php">
<h2><a class="toc-backref" href=
- "#id19">3.3 Installazione di PHP</a></h2>
+ "#id21">3.4 Installazione di PHP</a></h2>
<p>Pacchetti da installare: <tt class=
"docutils literal"><span class="pre">php5</span>
<div class="section" id="test-del-modulo-php">
<h3><a class="toc-backref" href=
- "#id20">3.3.1 Test del modulo
+ "#id22">3.4.1 Test del modulo
php</a></h3>
<p>Creare nella cartella <tt class=
</pre>
<p>Questa funzione di php generera' la tipica pagina con
- le impostazioni attuali per php, se richiamando la pagina
+ le impostazioni attuali per PHP. Richiamando la pagina
(es: <tt class="docutils literal"><span class=
"pre">http://localhost/info.php</span></tt> ) verra
- generata la pagina e resa disponibile tramite apache agli
- utenti allora l'integrazione tra PHP e Apache sara'
- corretta. In caso contrario se il client http proporra di
- scaricare la pagina invece che visualizzarla nel browser:
- non funziona l'interprete di php o sono mal configurati i
- MIME-type.</p>
+ generata dall'interprete PHP la pagina HTML e resa
+ disponibile tramite Apache ai utclient HTTP, a prova del
+ correto funzionamento del modulo di PHP e della sua
+ integrazione con il serv web Apache. In caso contrario se
+ il client http proporra di scaricare la pagina invece che
+ visualizzarla nel browser: non funziona l'interprete di
+ php o sono mal configurati i MIME-type. prima di tutto
+ assicurarsi di aver fatoo ripartire Apache.</p>
</div>
<div class="section" id=
"installazione-del-supporto-per-mysql">
<h3><a class="toc-backref" href=
- "#id21">3.3.2 Installazione del supporto
+ "#id23">3.4.2 Installazione del supporto
per Mysql</a></h3>
<p>Installare i pacchetti:</p>
<div class="section" id="phpmyadmin">
<h3><a class="toc-backref" href=
- "#id22">3.3.3 phpmyadmin</a></h3>
+ "#id24">3.4.3 phpmyadmin</a></h3>
<p>L'interfaccia web Phpmyadmin non richede
necessariamente la presenza di un database Mysql locale,
<div class="section" id=
"installazione-del-supporto-per-postgresql">
<h3><a class="toc-backref" href=
- "#id23">3.3.4 Installazione del supporto
+ "#id25">3.4.4 Installazione del supporto
per Postgresql</a></h3>
<p>Installare i pacchetti:</p>
"docutils literal"><span class=
"pre">pgsql</span></tt>).</p>
</div>
+
+ <div class="section" id="phppgadmin">
+ <h3><a class="toc-backref" href=
+ "#id26">3.4.5 phppgadmin</a></h3>
+
+ <p>L'interfaccia web Phppgadmin per il database server
+ PostgreSQL non richede necessariamente la presenza di un
+ database locale, puo' infatti essere utilizzata per
+ gestire databases 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>
+
+ <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>
+ </div>
</div>
<div class="section" id="virtual-hosts">
<h2><a class="toc-backref" href=
- "#id24">3.4 Virtual hosts</a></h2>
+ "#id27">3.5 Virtual hosts</a></h2>
<blockquote>
<ul class="simple">
</blockquote>
<p>I virtual host permettono di avere piu' siti internet
- disponibile tramite lo stesso server web, eventualmente
+ disponibili tramite lo stesso server web, eventualmente
mappati su un solo indirizzo ip. Sono generalemente di due
tipi:</p>
<blockquote>
<ul class="simple">
- <li>Basati su indirizzi ip diversi. Se si ha la
+ <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: <VirtualHost
- 192.168.0.2:80> . Soluzione dispendiosa, si tende ad
- usarla solo se servono certificati di sicurezza (SSL )
- dedicati per ogni sito.</li>
-
- <li>Basati su nomi di dominio diversi che puntano allo
+ 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>
+
+ <li>Basati su <em>nomi di dominio</em> che puntano allo
stesso ip. Soluzione piu' economica e diffusa che si
basa sulle funzionalita' di http 1.1 .</li>
</ul>
<div class="section" id="gestione-dns">
<h3><a class="toc-backref" href=
- "#id25">3.4.1 Gestione DNS</a></h3>
+ "#id28">3.5.1 Gestione DNS</a></h3>
<p>Prima di tutto per poter impostare i virtual hosts
dovete avere un server DNS che risolva i vostri nomi di
ottenere in vari modi, ad es:</p>
<blockquote>
- <ul class="simple">
- <li>Bind Impostare i campi A nelle proprie zone
- gestite dal server dns Bind. Ad es: <tt class=
+ <dl class="docutils">
+ <dt><em>Bind</em> (DNS server)</dt>
+
+ <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></li>
+ <span class="pre">212.22.136.248</span></tt></dd>
+
+ <dt><em>Servizio DNS dinamico on line</em>.</dt>
- <li>Servizio DNS dinamico on line. Utilizzare un
- servizio come ad es: <a class="reference external"
- href=
+ <dd>Utilizzare un servizio come ad es: <a class=
+ "reference external" href=
"https://www.dyndns.com/">https://www.dyndns.com/</a>
per mappare nomi di dominio sul proprio indirizzo ip,
comodo ad esempio se si dispone di un indirzzo ip
pubblico (anche se dinamico) per la propria
- connessione ad internet.</li>
+ connessione ad internet.</dd>
- <li>Dnsmasq Utilizzabile a livello locale per fare
- dei test, utilizzando direttive come: <tt class=
+ <dt><em>Dnsmasq</em> (DNS server)</dt>
+
+ <dd>Utilizzabile a livello locale per fare dei test,
+ utilizzando direttive come: <tt class=
"docutils literal"><span class=
- "pre">address=/davide.piffa.net/10.10.208.178</span></tt></li>
+ "pre">address=/davide.piffa.net/10.10.208.178</span></tt></dd>
- <li>/etc/hosts Per prove <em>strettamente a livello
- locale</em> potete impostare i nomi dei vostri
- virtual server nel file /etc/hosts .</li>
- </ul>
- </blockquote>
+ <dt><tt class="docutils literal"><span class=
+ "pre">/etc/hosts</span></tt></dt>
- <p>Testare con dig (disponibile nel pacchetto <tt class=
- "docutils literal"><span class="pre">dnsutils</span></tt>
- ) il nome di dominio che si vuole utilizzare:</p>
+ <dd>Per prove <em>strettamente a livello locale</em>
+ potete impostare i nomi dei vostri virtual server nel
+ file /etc/hosts .</dd>
+ </dl>
+ </blockquote>
<pre class="literal-block">
# dig 177.piffa.net
<div class="section" id="virtual-host">
<h3><a class="toc-backref" href=
- "#id26">3.4.2 Virtual host</a></h3>
+ "#id29">3.5.2 Virtual host</a></h3>
+
+ <p>Esempio di Virtual host:</p>
+ <pre class="literal-block">
+<VirtualHost *:80 >
+ ServerName 177.piffa.net
+ DocumentRoot /var/www/177.piffa.net/
+ ServerAdmin webmaster@177.piffa.net
+</VirtualHost>
+</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 ascolotera' 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 eventualmenti presenti sullo stesso
+ server web.</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"><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>
+ </ol>
+
+ <p>Quelle che abbiamo appena visto sono le direttive
+ essenziali per definire un sito virtuale, potrebbe essere
+ utile aggiungene altre:</p>
- <p>Esempio di Virtual host</p>
+ <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>
+
+ <dd>
+ <p class="first last">Log degli errori separato
+ dai restanti siti web ospitati dal server.</p>
+ </dd>
+ </dl>
+ </li>
+
+ <li>
+ <dl class="first docutils">
+ <dt><tt class="docutils literal"><span class=
+ "pre">LogLevel</span> <span class=
+ "pre">warn</span></tt></dt>
+
+ <dd>
+ <p class="first last">Livello di importanza degli
+ eventi loggati= warning <em>attenzione</em> .</p>
+ </dd>
+ </dl>
+ </li>
+
+ <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>
+
+ <dd>
+ <p class="first last">Log di accesso separati
+ dagli altri siti, utile anche qua per statistiche
+ di accesso per il solo sito virtuale.</p>
+ </dd>
+ </dl>
+ </li>
+ </ul>
+
+ <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>
+ <pre class="literal-block">
+<Directory "/var/www/miosito.net/privata">
+ AllowOverride AuthConfig
+ Options ExecCGI Indexes MultiViews FollowSymLinks
+ Order allow,deny
+ Allow from all
+</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>
+ </div>
+ </div>
+
+ <div class="section" id="negoziazione-accessi">
+ <h2><a class="toc-backref" href=
+ "#id30">3.6 Negoziazione accessi</a></h2>
+
+ <p>Tipicamente quando si installa un server web il proprio
+ desiderio e' di dare accesso ai materiali disponibili al
+ maggior numero di visitatori possibile. Talvolta pero' puo
+ essere utile o necessario limitare gli accessi, ad esempio
+ per escludere un <em>bot</em> indesiderato che scansiona
+ ininterottamente le nostre pagine o per creare una <em>Area
+ Riservata</em> i cui materiali non devono essere
+ disponibile a tutti.</p>
+
+ <div class="section" id="limiti-su-base-ip">
+ <h3><a class="toc-backref" href=
+ "#id31">3.6.1 Limiti su base ip</a></h3>
+
+ <p>La forma piu' semplice di restrizine degli accessi e'
+ su base degli indirizzi IP dei client: tipicamente i siti
+ web sono settati per dare accesso a chiunque:</p>
+ <pre class="literal-block">
+<VirtualHost *:80 >
+ # ...
+ <Directory "/var/www/177.piffa.net">
+ Order allow,deny
+ Allow from all
+ </Directory>
+</VirtualHost>
+</pre>
+
+ <p>Potremmo negare l'accesso a uno o piu' indirizzi IP in
+ questo modo:</p>
+ <pre class="literal-block">
+<VirtualHost *:80 >
+ <Directory "/var/www/177.piffa.net">
+ Order allow,deny
+ Allow from all
+ Deny from 192.168.0.1
+ </Directory>
+</VirtualHost>
+</pre>
+
+ <p>Ora l'IP 192.168.0.1 non potra' piu' accedere ai
+ materiali dell'intero sito virtuale, oppure potremmo
+ lavorare su una sola directory:</p>
+ <pre class="literal-block">
+<Directory "/var/www/miosito.net/limitata">
+ Order allow,deny
+ Allow from 192.168.0.0./24
+ Deny from all
+</Directory>
+</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
+ propio indirizzo ip, oppure collegarsi da un altra zona.
+ Meno facile e' accedere ad una classe privata trovandosi
+ all'esterno di questa, ma e' comunque possibile mandare
+ delle richieste <tt class="docutils literal"><span class=
+ "pre">GET</span></tt> per cercare di mandare in Denial Of
+ Service il webserver.</p>
</div>
</div>
<div class="section" id="user-authentication">
<h2><a class="toc-backref" href=
- "#id27">3.5 User Authentication</a></h2>
+ "#id32">3.7 User Authentication</a></h2>
+
+ <p>A volte conviene negoziare gli accessi ad un area di un
+ sito tramite autenticazione basata sull'accopiata <em>nome
+ utente / password</em>. Questo puo' venire utile per creare
+ una area download <em>intranet</em>, alla quale possano
+ accedere solo gli utenti previsti a prescindere dagli
+ indirizzi IP dei loro client. Per quanto esistano soluzioni
+ piu' granulari e sofisticate per ottenere questo,
+ <em>mod-auth</em> puo'essere sufficente. E mod auth non
+ richiede l'installazione di software aggiuntivi.</p>
<p>link: <a class="reference external" href=
"http://www.apacheweek.com/features/userauth">http://www.apacheweek.com/features/userauth</a></p>
+
+ <div class="section" id="definire-la-cartella">
+ <h3><a class="toc-backref" href=
+ "#id33">3.7.1 Definire la
+ cartella</a></h3>
+
+ <p>Decidere quale sara' il <em>path</em> della cartella
+ da sottoporre ad autentizazione:(e creiamo la
+ cartella):</p>
+
+ <blockquote>
+ <tt class="docutils literal"><span class=
+ "pre">mkdir</span> <span class=
+ "pre">/var/www/177.piffa.net/privata</span></tt>
+ </blockquote>
+ </div>
+
+ <div class="section" id=
+ "creazione-del-database-delle-passwords">
+ <h3><a class="toc-backref" href=
+ "#id34">3.7.2 Creazione del database
+ delle passwords</a></h3>
+
+ <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>
+
+ <p>Si dovra' decidere dove tenere questo file, la cosa
+ importante e' che non sia visibile nel sito web: non deve
+ essere scaricabile dai visitatori. Deve essere cioe'
+ all'esterno della <em>DocumentRoot</em>: un buon posto
+ potrebbe essere la /home dell'utente.</p>
+
+ <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>
+ <pre class="literal-block">
+htpasswd -c /home/utente/passwords luca
+</pre>
+
+ <p><tt class="docutils literal"><span class=
+ "pre">htpasswd</span></tt> ci chedera' la password da
+ associare all'utente <tt class=
+ "docutils literal"><span class="pre">luca</span></tt>.
+ Per sucessive 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="id3">
+ <h3><a class="toc-backref" href=
+ "#id35">3.7.3 Configurazione di
+ Apache</a></h3>
+
+ <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 il file
+ di impostazione del virtual-host.</p>
+
+ <p>Questo per motivi pratici: solo l'utente <em>root</em>
+ puo' modificare l'impostazione del virtual host nel file
+ <tt class="docutils literal"><span class=
+ "pre">/etc/apache2/sites-enabled/177.piffa.net</span></tt>,
+ ma spesso il motivo per cui creiamo i virtual hosts e'
+ ospitare i siti di altri utenti, che possono solo
+ pubblicare (generalmente tramite <em>FTP</em>) i loro
+ documenti nella loro <em>DocumentRoot</em>, senza poter
+ quindi modificare in alcun modo la configurazione del
+ virtual host.</p>
+
+ <p>Dando agli utenti la possibilita' di modificare
+ (<em>AllowOverride</em>) autonomamente alcuni parametri
+ (in questo caso solo l'<em>AuthConfig</em>) relativi al
+ funzionamenteo del loro spazio web ci togliera'
+ l'incombenza di dover intervenire suii vari virtual
+ host.</p>
+
+ <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>
+ <pre class="literal-block">
+<VirtualHost *:80 >
+ ServerName 177.piffa.net
+ DocumentRoot /var/www/177.piffa.net/
+ ServerAdmin webmaster@177.piffa.net
+ <Directory "/var/www/177.piffa.net/privata">
+ AllowOverride AuthConfig
+ </Directory>
+</VirtualHost>
+</pre>
+
+ <p>Per rendere il cambiamento effettivo sara' necessario
+ fare un restart / reload di Apache.</p>
+
+ <p>Ora sara' possibile, anche per l'utente di sistema,
+ creare un fie <tt class="docutils literal"><span class=
+ "pre">.htaccess</span></tt> che sara' onorato da
+ Apache.</p>
+
+ <p>/var/www/177.piffa.net/privata/.htaccess</p>
+ <pre class="literal-block">
+# Questo file viene incluso
+# nella configurazione del sito web
+# Messaggio visualizzato al prompt per l'autenticazione
+AuthName "Area privata soggetta ad autentizazione"
+# tipo di autenticazione da usarsi
+AuthType Basic
+# File generato precedentemente con htpasswd
+AuthUserFile /home/utente/passwords
+
+# Negoziazione degli accessi
+# valid users permette l'accesso agli utenti specificati
+# nel file generato da htpasswd
+require valid-user
+</pre>
+
+ <p>Si noti che non e' necessario fare ripartire Apache
+ per onorare i cambiamenti (un utente non avrebbe la
+ possibilita' di farlo!).</p>
+ </div>
</div>
<div class="section" id="cavets">
<h2><a class="toc-backref" href=
- "#id28">3.6 Cavets</a></h2>
+ "#id36">3.8 Cavets</a></h2>
<p>Problemi di cache:</p>
<li>Provare con un altro browser, o cercare di svuotare
la cache chiudere/riaprire l'applicativo. Provare a
fermare Apache, ricaricare la pagina (operazione che
- fallira'), far ripartire il Apache, ricaricare la
+ fallira'), far ripartire Apache, ricaricare la
pagina.</li>
</ul>
</blockquote>
<div class="section" id="domain-name-system">
<h1><a class="toc-backref" href=
- "#id29">4 Domain Name System</a></h1>
+ "#id37">4 Domain Name System</a></h1>
- <div class="section" id=
- "informazioni-di-base-sul-servizio-dns">
- <h2><a class="toc-backref" href=
- "#id30">4.1 Informazioni di base sul
- servizio DNS.</a></h2>
+ <p>Domain Name System (spesso indicato con DNS) e' un
+ servizio utilizzato per la risoluzione di nomi di host in
+ indirizzi IP e viceversa. Il servizio e' realizzato tramite
+ un database distribuito, costituito dai server DNS.</p>
- <p>Domain Name System (spesso indicato con DNS) è un
- servizio utilizzato per la risoluzione di nomi di host in
- indirizzi IP e viceversa. Il servizio è realizzato tramite
- un database distribuito, costituito dai server DNS.</p>
+ <p>Il nome DNS denota anche il protocollo che regola il
+ funzionamento del servizio, i programmi che lo implementano,
+ i server su cui questi girano, l'insieme di questi server che
+ cooperano per fornire il servizio.</p>
- <p>Il nome DNS denota anche il protocollo che regola il
- funzionamento del servizio, i programmi che lo
- implementano, i server su cui questi girano, l'insieme di
- questi server che cooperano per fornire il servizio.</p>
+ <p>I nomi DNS, o "nomi di dominio", sono una delle
+ caratteristiche piu' visibili di Internet.</p>
- <p>I nomi DNS, o "nomi di dominio", sono una delle
- caratteristiche più visibili di Internet.</p>
+ <p>C'e' confusione in merito alla definizione dell'acronimo:
+ la S spesso viene interpretata come service, ma la
+ definizione corretta e' system.</p>
- <p>C'è confusione in merito alla definizione
- dell'acronimo: la S spesso viene interpretata come service,
- ma la definizione corretta è system.</p>
-
- <p>L'operazione di convertire un nome in un indirizzo è
- detta risoluzione DNS, convertire un indirizzo IP in nome
- è detto risoluzione inversa.</p>
- </div>
+ <p>L'operazione di convertire un nome in un indirizzo e'
+ detta risoluzione DNS, convertire un indirizzo IP in nome e'
+ detto risoluzione inversa.</p>
<div class="section" id="nomi-di-dominio">
<h2><a class="toc-backref" href=
- "#id31">4.2 Nomi di dominio</a></h2>
+ "#id38">4.1 Nomi di dominio</a></h2>
- <p>Un nome a dominio è costituito da una serie di stringhe
+ <p>Un nome a dominio e' costituito da una serie di stringhe
separate da punti, ad esempio it.wikipedia.org. A
- differenza degli indirizzi IP, dove la parte più
- importante del numero è la prima partendo da sinistra, in
- un nome DNS la parte più importante è la prima partendo
- da destra. Questa è detta dominio di primo livello (o TLD,
+ differenza degli indirizzi IP, dove la parte piu'
+ importante del numero e' la prima partendo da sinistra, in
+ un nome DNS la parte piu' importante e' la prima partendo
+ da destra. Questa e' detta dominio di primo livello (o TLD,
Top Level Domain), per esempio .org o .it.</p>
<p>Un dominio di secondo livello consiste in due parti, per
- esempio wikipedia.org, e così via. Ogni ulteriore elemento
+ esempio wikipedia.org, e cosi' via. Ogni ulteriore elemento
specifica un'ulteriore suddivisione. Quando un dominio di
secondo livello viene registrato all'assegnatario, questo
- è autorizzato a usare i nomi di dominio relativi ai
+ e' autorizzato a usare i nomi di dominio relativi ai
successivi livelli come it.wikipedia.org (dominio di terzo
livello) e altri come some.other.stuff.wikipedia.org
- (dominio di quinto livello) e così via.</p>
+ (dominio di quinto livello) e cosi' via.</p>
</div>
<div class="section" id="tipologie-di-record">
<h2><a class="toc-backref" href=
- "#id32">4.3 Tipologie di record</a></h2>
+ "#id39">4.2 Tipologie di record</a></h2>
<p>Ad un nome DNS possono corrispondere diversi tipi di
informazioni. Per questo motivo, esistono diversi tipi di
<ul class="simple">
<li>Record A - Indica la corrispondenza tra un nome ed
- uno (o più) indirizzi IP (per la precisione indirizzi
+ uno (o piu') indirizzi IP (per la precisione indirizzi
IPv4, ovvero la versione attualmente in uso).</li>
<li>Record MX - (Mail eXchange) indica a quali server
<li>Record CNAME - Sono usati per creare un alias, ovvero
per fare in modo che lo stesso calcolatore sia noto con
- più nomi. Uno degli utilizzi di questo tipo di record
- consiste nell'attribuire ad un host che offre più
+ piu' nomi. Uno degli utilizzi di questo tipo di record
+ consiste nell'attribuire ad un host che offre piu'
servizi un nome per ciascun servizio. In questo modo, i
servizi possono poi essere spostati su altri host senza
dover riconfigurare i client, ma modificando solo il
<div class="section" id="utilizzo">
<h2><a class="toc-backref" href=
- "#id33">4.4 Utilizzo</a></h2>
+ "#id40">4.3 Utilizzo</a></h2>
<p>I computer vengono identificati in rete grazie agli
indirizzi <em>IP</em>, questi pero' non sono comodi per gli
<div class="section" id="risoluzione-dei-nomi-di-dominio">
<h2><a class="toc-backref" href=
- "#id34">4.5 Risoluzione dei nomi di
+ "#id41">4.4 Risoluzione dei nomi di
dominio</a></h2>
<p>Ci sono vari strumenti per interrogare i server DNS e
interessa:</p>
<pre class="literal-block">
$ host www.piffa.net
- www.piffa.net is an alias for piffa.net.
- piffa.net has address 65.98.21.97
- piffa.net mail is handled by 10 65.98.21.97
+www.piffa.net is an alias for piffa.net.
+piffa.net has address 65.98.21.97
+piffa.net mail is handled by 10 65.98.21.97
$ nslookup www.piffa.net
- Server: 192.168.0.10
- Address: 192.168.0.10#53
-
- Non-authoritative answer:
- www.piffa.net canonical name = piffa.net.
- Name: piffa.net
- Address: 65.98.21.97
-
-
- $ dig www.piffa.net
-
- ; <<>> DiG 9.6.0-P1 <<>> www.piffa.net
- ;; global options: +cmd
- ;; Got answer:
- ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 47751
- ;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 4, ADDITIONAL: 4
-
- ;; QUESTION SECTION:
- ;www.piffa.net. IN A
-
- ;; ANSWER SECTION:
- www.piffa.net. 3489 IN CNAME piffa.net.
- piffa.net. 3489 IN A 65.98.21.97
-
- ;; AUTHORITY SECTION:
- piffa.net. 86289 IN NS ns2.mydomain.com.
- piffa.net. 86289 IN NS ns1.mydomain.com.
- piffa.net. 86289 IN NS ns4.mydomain.com.
- piffa.net. 86289 IN NS ns3.mydomain.com.
-
- ;; ADDITIONAL SECTION:
- ns1.mydomain.com. 96208 IN A 64.94.117.193
- ns2.mydomain.com. 96208 IN A 64.94.31.67
- ns3.mydomain.com. 96208 IN A 66.150.161.137
- ns4.mydomain.com. 96208 IN A 63.251.83.74
-
- ;; Query time: 1 msec
- ;; SERVER: 192.168.0.10#53(192.168.0.10)
- ;; WHEN: Sun May 10 21:23:11 2009
- ;; MSG SIZE rcvd: 209
+Server: 192.168.0.10
+Address: 192.168.0.10#53
+
+Non-authoritative answer:
+www.piffa.net canonical name = piffa.net.
+Name: piffa.net
+Address: 65.98.21.97
+
+
+$ dig www.piffa.net
+
+; <<>> DiG 9.6.0-P1 <<>> www.piffa.net
+;; global options: +cmd
+;; Got answer:
+;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 47751
+;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 4, ADDITIONAL: 4
+
+;; QUESTION SECTION:
+;www.piffa.net. IN A
+
+;; ANSWER SECTION:
+www.piffa.net. 3489 IN CNAME piffa.net.
+piffa.net. 3489 IN A 65.98.21.97
+
+;; AUTHORITY SECTION:
+piffa.net. 86289 IN NS ns2.mydomain.com.
+piffa.net. 86289 IN NS ns1.mydomain.com.
+piffa.net. 86289 IN NS ns4.mydomain.com.
+piffa.net. 86289 IN NS ns3.mydomain.com.
+
+;; ADDITIONAL SECTION:
+ns1.mydomain.com. 96208 IN A 64.94.117.193
+ns2.mydomain.com. 96208 IN A 64.94.31.67
+ns3.mydomain.com. 96208 IN A 66.150.161.137
+ns4.mydomain.com. 96208 IN A 63.251.83.74
+
+;; Query time: 1 msec
+;; SERVER: 192.168.0.10#53(192.168.0.10)
+;; WHEN: Sun May 10 21:23:11 2009
+;; MSG SIZE rcvd: 209
+</pre>
+
+ <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>
+ </div>
+
+ <div class="section" id="dig">
+ <h2><a class="toc-backref" href=
+ "#id42">4.5 Dig</a></h2>
+
+ <p>Vediamo alcune opzioni utili nell'utilizzo di <tt class=
+ "docutils literal"><span class="pre">dig</span></tt> per
+ l'inerrogazione dei DNS Server:</p>
+ <pre class="literal-block">
+$ dig www.google.it
+
+; <<>> DiG 9.6.0-P1 <<>> www.google.it
+;; global options: +cmd
+;; Got answer:
+;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 18816
+;; flags: qr rd ra; QUERY: 1, ANSWER: 6, AUTHORITY: 7, ADDITIONAL: 0
+
+;; QUESTION SECTION:
+;www.google.it. IN A
+
+;; ANSWER SECTION:
+www.google.it. 250683 IN CNAME www.google.com.
+www.google.com. 334819 IN CNAME www.l.google.com.
+www.l.google.com. 186 IN A 74.125.43.103
+www.l.google.com. 186 IN A 74.125.43.104
+www.l.google.com. 186 IN A 74.125.43.147
+www.l.google.com. 186 IN A 74.125.43.99
+
+;; AUTHORITY SECTION:
+l.google.com. 80856 IN NS f.l.google.com.
+l.google.com. 80856 IN NS d.l.google.com.
+l.google.com. 80856 IN NS b.l.google.com.
+l.google.com. 80856 IN NS c.l.google.com.
+l.google.com. 80856 IN NS a.l.google.com.
+l.google.com. 80856 IN NS e.l.google.com.
+l.google.com. 80856 IN NS g.l.google.com.
+
+;; Query time: 1 msec
+;; SERVER: 192.168.0.10#53(192.168.0.10)
+;; WHEN: Sun May 10 21:34:47 2009
+;; MSG SIZE rcvd: 255
</pre>
+
+ <dl class="docutils">
+ <dt>$ dig</dt>
+
+ <dd>(semza opzioni o oggetti) Fornisce l'elenco dei
+ <em>root servers</em> utilizzati. I root server sono i
+ server che mantengono le informazioni sui domini di primo
+ 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>
+ </dl>
+
+ <p>$ dig</p>
+
+ <blockquote>
+ <p>...</p>
+
+ <p>;; ANSWER SECTION: . 192032 IN NS C.ROOT-SERVERS.NET.
+ . 192032 IN NS E.ROOT-SERVERS.NET. . 192032 IN NS
+ B.ROOT-SERVERS.NET. . 192032 IN NS L.ROOT-SERVERS.NET. .
+ 192032 IN NS A.ROOT-SERVERS.NET. . 192032 IN NS
+ F.ROOT-SERVERS.NET. . 192032 IN NS H.ROOT-SERVERS.NET. .
+ 192032 IN NS G.ROOT-SERVERS.NET. . 192032 IN NS
+ K.ROOT-SERVERS.NET. . 192032 IN NS M.ROOT-SERVERS.NET. .
+ 192032 IN NS I.ROOT-SERVERS.NET. . 192032 IN NS
+ J.ROOT-SERVERS.NET. . 192032 IN NS
+ D.ROOT-SERVERS.NET.</p>
+
+ <p>...</p>
+ </blockquote>
</div>
</div>
<div class="section" id="dnsmasq">
<h1><a class="toc-backref" href=
- "#id35">5 DNSmasq</a></h1>
+ "#id43">5 DNSmasq</a></h1>
<p>Dnsmasq puo' svolgere le funzioni di un DNS cache /
forwarder e un server DHCP caratterizzato dalla facilita' di
<div class="section" id="samba">
<h1><a class="toc-backref" href=
- "#id36">6 Samba</a></h1>
+ "#id44">6 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=
- "#id37">6.1 Pacchetti</a></h2>
+ "#id45">6.1 Pacchetti</a></h2>
<p>Pacchetti da installare per utilizzare Samba in
- modalita' client <a class="footnote-reference" href="#id4"
- id="id3" name="id3">[2]</a></p>
+ modalita' client <a class="footnote-reference" href="#id5"
+ id="id4" name="id4">[2]</a></p>
<pre class="literal-block">
samba-client
</pre>
samba smbfs smbclient
</pre>
- <table class="docutils footnote" frame="void" id="id4"
+ <table class="docutils footnote" frame="void" id="id5"
rules="none">
<colgroup>
<col class="label">
<tbody valign="top">
<tr>
<td class="label"><a class="fn-backref" href=
- "#id3">[2]</a></td>
+ "#id4">[2]</a></td>
<td>Anche se nato per i sistemi Windows, Samba puo'
essere usato anche per montare cartelle sotto
<div class="section" id="passwords-e-autenticazione">
<h2><a class="toc-backref" href=
- "#id38">6.2 Passwords e
+ "#id46">6.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=
- "#id39">6.3 Creazione Utenti</a></h2>
+ "#id47">6.3 Creazione Utenti</a></h2>
<p>Creiamo per primo l'utente sotto GNU/Linux, facendo
attenzione a <em>non dargli una shell di sistema</em>. Gli
<div class="section" id="creare-la-condivisione">
<h2><a class="toc-backref" href=
- "#id40">6.4 Creare la
+ "#id48">6.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=
- "#id41">6.4.1 Sicurezza: permessi di
+ "#id49">6.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=
- "#id42">6.5 Configurazione
+ "#id50">6.5 Configurazione
dell'applicativo Samba vero e proprio.</a></h2>
<p>Avendo preparato gli utenti (ancora una volta: non si
<div class="section" id="testare-il-servizio">
<h2><a class="toc-backref" href=
- "#id43">6.6 Testare il Servizio</a></h2>
+ "#id51">6.6 Testare il Servizio</a></h2>
<p>Come testare il servizio</p>
</div>
</div>
+ <div class="section" id="firewall">
+ <h1><a class="toc-backref" href=
+ "#id52">7 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 può anche svolgere
+ funzioni di collegamento tra due o piu' tronconi di rete.
+ Usualmente la rete viene divisa in due sottoreti: 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
+ sottorete 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
+ seguente:</p>
+
+ <p>Apparato di rete hardware o software che filtra tutti i
+ pacchetti entranti ed uscenti, da e verso una rete o un
+ computer, applicando regole che contribuiscono alla sicurezza
+ della stessa.</p>
+
+ <p>In realtà un firewall può essere realizzato con un
+ normale computer (con almeno due schede di rete e software
+ apposito), può essere una funzione inclusa in un router o
+ può 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 funzionalità principale in sostanza è 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
+ agisce sui pacchetti in transito da e per la zona interna
+ potendo eseguire su di essi operazioni di: controllo modifica
+ monitoraggio</p>
+
+ <p>Questo grazie alla sua capacità 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=
+ "#id53">7.1 Links</a></h2>
+
+ <ul class="simple">
+ <li><a class="reference external" href=
+ "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>
+ </ul>
+ </div>
+
+ <div class="section" id="ipfilter">
+ <h2><a class="toc-backref" href=
+ "#id54">7.2 Ipfilter</a></h2>
+
+ <p>Link: <a class="reference external" href=
+ "http://iptables-tutorial.frozentux.net/iptables-tutorial.html#IPFILTERING">
+ http://iptables-tutorial.frozentux.net/iptables-tutorial.html#IPFILTERING</a></p>
+
+ <p>Natura di un firewall ip: su cosa lavora (livello 2 e un
+ po' del 3) e su cosa <em>non</em> lavora (livello 4).
+ Netfilter lavora anche su parti del livello 3 (TCP, UDP,
+ etc) e del livello 1 (MAC source address). Iptables
+ comunque permette di fare il <em>connection-tracking</em>,
+ mediante il quale possiamo implementare il Network Address
+ Translation.</p>
+
+ <p>Netfilter non ricostruisce il flusso di dati tra
+ pacchetti, non puo' quindi rilevare la presenza di virus o
+ simili che si trasmettono su pacchetti separati:
+ ricomporre, analizzare e tornare a scomporre i frammenti
+ rtichiederebbe troppa RAM e risorse di sistema, con il
+ conseguente rischio di saturare il firewall fino
+ all'abbandono dei nuovi pacchetti in transito. Ci sono
+ altri software piu' adatti a questi compiti, ad esempio un
+ proxy HTTP come Squid che e' appunto una applicazione di
+ quarto livello, progettata e strutturata per analizzare e
+ modificare i flussi di dati (il <em>contenuto</em> dei
+ pacchetti, non le sole <em>inestazioni</em>) facendo
+ abbondate uso delle risorse RAM e di calcolo del sistema.
+ Non a caso su macchine embedded dalle prestazioni molto
+ ridotte (CPU ARM ~250Mhz con ~30MB di RAM) Squid sfrutta al
+ massimo le risorse di sistema per gestire il traffico di
+ una rete 10/100, mentre il lavoro tipico svolto da
+ netfilter e' quasi irrilevante.</p>
+ </div>
+
+ <div class="section" id="progettazione-di-un-firewall">
+ <h2><a class="toc-backref" href=
+ "#id55">7.3 Progettazione di un
+ firewall</a></h2>
+
+ <p>Per implementare un firewall bisogna decidere un aio di
+ cose: la collocazione e l'approccio (inclusivo o esclusivo)
+ al filtraggio, il tipo di hardware.</p>
+
+ <div class="section" id="collocazione">
+ <h3><a class="toc-backref" href=
+ "#id56">7.3.1 Collocazione</a></h3>
+
+ <p>DMZ e MZ, internet, intranet, extranet. Frammentazione
+ della rete, decidere se diversi reparti di una azienda si
+ possano vedere tra loro e in che misura.</p>
+
+ <p>Collocazione:</p>
+
+ <blockquote>
+ <ol class="arabic simple">
+ <li>sul router</li>
+
+ <li>tra router e servers / LAN</li>
+
+ <li>Unico server / router / firewall e connessi
+ rischi. considerare l'acquisto di un router hardware
+ dedicato.</li>
+ </ol>
+ </blockquote>
+
+ <dl class="docutils">
+ <dt>Layeed security:</dt>
+
+ <dd>Implementare piu' device / software sui diversi
+ livelli: <a class="reference external" href=
+ "http://iptables-tutorial.frozentux.net/iptables-tutorial.html#HOWTOPLANANIPFILTER">
+ http://iptables-tutorial.frozentux.net/iptables-tutorial.html#HOWTOPLANANIPFILTER</a></dd>
+ </dl>
+ </div>
+
+ <div class="section" id="policy-di-default">
+ <h3><a class="toc-backref" href=
+ "#id57">7.3.2 Policy di default</a></h3>
+
+ <p>Drop o Accept: conseguenze per sicurezza, facilita' di
+ gestione.</p>
+ </div>
+
+ <div class="section" id="hardware">
+ <h3><a class="toc-backref" href=
+ "#id58">7.3.3 Hardware</a></h3>
+
+ <p>Sostanzialmente potremmo distinquere due tipologie di
+ hardware:</p>
+
+ <dl class="docutils">
+ <dt>Network appliance dedicata::</dt>
+
+ <dd>Un dispositivo hardware dedicato alla funzione di
+ Firewall, ad es un Cisco / Fortigate. Si noti che molti
+ firewall economici altro non sono che Linux box molto
+ striminzite.</dd>
+
+ <dt>Server / Personal computer:</dt>
+
+ <dd>Un server sul quale viene fatto girare Netfilter ad
+ uso del server stesso e della rete connessa.</dd>
+ </dl>
+
+ <p>Vantaggi e svantaggi: consumo elettrico, efficenza,
+ flessibilita', strumenti di gestione, sicurezza,
+ OpenBSD.</p>
+ </div>
+ </div>
+
+ <div class="section" id=
+ "percorso-dei-pacchetti-tra-tabelle-e-catene">
+ <h2><a class="toc-backref" href=
+ "#id59">7.4 Percorso dei pacchetti tra
+ tabelle e catene</a></h2>
+
+ <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>
+ </div>
+
+ <div class="section" id="concetti-di-base">
+ <h2><a class="toc-backref" href=
+ "#id60">7.5 Concetti di base</a></h2>
+
+ <div class="section" id="tabelle-catene-regole">
+ <h3><a class="toc-backref" href=
+ "#id61">7.5.1 Tabelle, catene,
+ regole</a></h3>
+
+ <p>Iptables lavora su 3 tabelle (tables) di default:</p>
+
+ <ul class="simple">
+ <li>filter - Regola il firewalling: quali pacchetti
+ accettare, quali bloccare</li>
+
+ <li>nat - Regola le attività di natting</li>
+
+ <li>mangle - Interviene sulla alterazione dei
+ pacchetti.</li>
+ </ul>
+
+ <p>Ogni tabella ha delle catene (chains) predefinite
+ (INPUT, OUTPUT, FORWARD ... ) a cui possono essere
+ aggiunte catene custom. Ogni catena è composta da un
+ elenco di regole (rules) che identificano pacchetti di
+ rete secono criteri diversi (es: -p tcp --dport 80 -d
+ 10.0.0.45) Ogni regola termina con una indicazione
+ (target) su cosa fare dei pacchetti identificati dalla
+ regola stessa (es: -j ACCEPT, -j DROP ...)</p>
+ </div>
+
+ <div class="section" id="match">
+ <h3><a class="toc-backref" href=
+ "#id62">7.5.2 Match</a></h3>
+
+ <p>I Match di una regola (rule) servono a testare un
+ pacchetto per valutare se corrisponda a certe
+ caratteriscttiche. I match di possono servire a
+ controllare se un pacchetto e' destinato a una porta
+ particolare o utilizza un protocollo particolare.</p>
+
+ <p>Alcuni esempi:</p>
+
+ <dl class="docutils">
+ <dt>-p [!] proto</dt>
+
+ <dd>Protocollo IP. Secondo IP number o nome (es: tcp,
+ udp, gre, ah...)</dd>
+
+ <dt>-s [!] address[/mask]</dt>
+
+ <dd>Indirizzo IP sorgente (o network con maschera di
+ sottorete)</dd>
+
+ <dt>-d [!] address[/mask]</dt>
+
+ <dd>Indirizzo IP destinazione (o network)</dd>
+
+ <dt>-i [!] interface[+]</dt>
+
+ <dd>Interfaccia di rete di entrata ([+] wildcard)</dd>
+
+ <dt>-o [!] interface[+]</dt>
+
+ <dd>Interfaccia di rete di uscita ([+] wildcard)</dd>
+ </dl>
+
+ <table class="docutils option-list" frame="void" rules=
+ "none">
+ <col class="option">
+ <col class="description">
+
+ <tbody valign="top">
+ <tr>
+ <td class="option-group"><kbd><span class=
+ "option">-f</span></kbd></td>
+
+ <td>Frammento di pacchetto</td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+
+ <div class="section" id="targets">
+ <h3><a class="toc-backref" href=
+ "#id63">7.5.3 Targets</a></h3>
+
+ <p>Se un pacchetto soddisfa le condizioni del Match
+ <em>salta</em> (jump) su uno dei target possibili, in
+ caso contrario continua il suo percorso tra regole catene
+ e tabelle.</p>
+
+ <p>Target principali:</p>
+
+ <dl class="docutils">
+ <dt><em>-j ACCEPT</em></dt>
+
+ <dd>Il pachetto matchato viene accettato e procede
+ verso la sua destinazione. Si usa per definire il
+ traffico permesso.</dd>
+
+ <dt><em>-j DROP</em></dt>
+
+ <dd>Il pacchetto viene rifiutato e scartato, senza
+ alcuna notifica al mittente. Si usa, in alternativa a
+ REJECT, per bloccare traffico.</dd>
+
+ <dt><em>-j REJECT</em></dt>
+
+ <dd>Il pacchetto viene rifiutato. Al mittente viene
+ mandato un pacchetto (configurabile) di notifica tipo
+ ICMP port-unreachable (--reject-with
+ icmp-port-unreachable)</dd>
+ </dl>
+
+ <table class="docutils option-list" frame="void" rules=
+ "none">
+ <col class="option">
+ <col class="description">
+
+ <tbody valign="top">
+ <tr>
+ <td class="option-group"><kbd><span class=
+ "option">-t <var>LOG</var></span></kbd></td>
+
+ <td>Il pacchetto viene loggato via syslog e procede
+ l'attraversamento della catena. Opzioni:
+ (--log-level, --log-prefix, --log-tcp-sequence,
+ --log-tcp-options, --log-ip-options)</td>
+ </tr>
+
+ <tr>
+ <td class="option-group"><kbd><span class=
+ "option">-j <var>DNAT</var></span></kbd></td>
+
+ <td>Viene modificato l'IP di destinazione del
+ pacchetto. Target disponibile solo in nat /
+ PREROUTING e nat / OUTPUT. L'opzione
+ --to-destination IP:porta definisce il nuovo IP di
+ destinazione. Si usa tipicamente su network
+ firewall che nattano server di una DMZ</td>
+ </tr>
+
+ <tr>
+ <td class="option-group"><kbd><span class=
+ "option">-j <var>SNAT</var></span></kbd></td>
+
+ <td>Viene modificato l'IP sorgente. Solo in nat /
+ POSTROUTING. Prevede l'opzione --to-source
+ IP:porta. Si usa per permettere l'accesso a
+ Internet da una rete locale con IP privati.</td>
+ </tr>
+
+ <tr>
+ <td class="option-group"><kbd><span class=
+ "option">-j <var>MASQUERADE</var></span></kbd></td>
+
+ <td>Simile a SNAT, si applica quando i pacchetti
+ escono da interfacce con IP dinamico (dialup, adsl,
+ dhcp...). Si usa solo in nat / POSTROUTING e
+ prevede l'opzione --to-ports porte.</td>
+ </tr>
+
+ <tr>
+ <td class="option-group"><kbd><span class=
+ "option">-j <var>REDIRECT</var></span></kbd></td>
+
+ <td>Redirige il pacchetto ad una porta locale.
+ Usabile solo in nat / PREROUTING e nat / OUTPUT è
+ previsto per fare un transparent proxy (con proxy
+ server in esecuzione sulla macchina con
+ iptables)</td>
+ </tr>
+
+ <tr>
+ <td class="option-group"><kbd><span class=
+ "option">-j <var>RETURN</var></span></kbd></td>
+
+ <td>Interrompe l'attraversamento della catena. Se
+ questa è una secondaria, il pacchetto torna ad
+ attraversare la catena madre da punto in cui aveva
+ fatto il salto nella secondaria. Se il RETURN è in
+ una delle catene di default, il pacchetto
+ interrompe l'attraversamento e segue la policy di
+ default.</td>
+ </tr>
+
+ <tr>
+ <td class="option-group"><kbd><span class=
+ "option">-j <var>TOS</var></span></kbd></td>
+
+ <td>Usabile solo nella tabella mangle, permette di
+ cambiare il TOS (Type Of Service) di un pacchetto
+ con l'opzione --set-tos. Per un elenco dei
+ parametri disponibili: iptables -j TOS -h</td>
+ </tr>
+
+ <tr>
+ <td class="option-group"><kbd><span class=
+ "option">-j <var>MIRROR</var></span></kbd></td>
+
+ <td>Curioso e sperimentale, questo target invia un
+ pacchetto speculare al mittente. In pratica è come
+ se facesse da specchio per tutti i pacchetti
+ ricevuti. Da usare con cautela, per evitare
+ attacchi DOS indiretti.</td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ </div>
+
+ <div class="section" id="tabella-filter">
+ <h2><a class="toc-backref" href=
+ "#id64">7.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
+ 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
+ sistema, con IP sorgente e destinazione esterni.</p>
+
+ <p>Esempio per permettere accesso alla porta 80 locale:
+ iptables -t filter -I INPUT -p tcp --dport 80 -j ACCEPT
+ Analoga a: iptables -I INPUT -p tcp --dport 80 -j
+ ACCEPT</p>
+
+ <p>Esempio per permettere ad un pacchetto con IP sorgente
+ 10.0.0.4 di raggiungere il server 192.168.0.1 attraversando
+ il firewall: iptables -I FORWARD -s 10.0.0.4 -d 192.168.0.1
+ -j ACCEPT</p>
+ </div>
+
+ <div class="section" id="gestione-regole-rules">
+ <h2><a class="toc-backref" href=
+ "#id65">7.7 Gestione regole
+ (rules)</a></h2>
+
+ <p>Il comando iptables viene usato per ogni attivitÃ
+ di gestione e configurazione.</p>
+
+ <p>Inserimento regole:</p>
+
+ <dl class="docutils">
+ <dt>iptables -A CATENA ...</dt>
+
+ <dd>Aggiunge una regola alla fine della catena
+ indicata</dd>
+
+ <dt>iptables -I CATENA [#] ...</dt>
+
+ <dd>Inserisce alla riga # (default 1) una regola nella
+ catena indicata</dd>
+
+ <dt>iptables -N CATENA</dt>
+
+ <dd>Crea una nuova catena custom</dd>
+
+ <dt>iptables -P CATENA TARGET</dt>
+
+ <dd>Imposta il target di default per la catena
+ indicata</dd>
+ </dl>
+
+ <p>Rimozione regole e azzeramenti:</p>
+
+ <dl class="docutils">
+ <dt>iptables -F [catena]</dt>
+
+ <dd>Ripulisce tutte le catene (o quella indicata)</dd>
+
+ <dt>iptables -X [catena]</dt>
+
+ <dd>Ripulisce tutte le catene custom (o quella
+ indicata)</dd>
+
+ <dt>iptables -Z [catena]</dt>
+
+ <dd>Azzera i contatori sulle catene</dd>
+
+ <dt>iptables -D catena #</dt>
+
+ <dd>Cancella la regola numero # dalla catena
+ indicata</dd>
+ </dl>
+
+ <p>Interrogazione:</p>
+
+ <dl class="docutils">
+ <dt>iptables -L</dt>
+
+ <dd>Elenca le regole esistenti</dd>
+
+ <dt>iptables -L -n -v</dt>
+
+ <dd>Elenca, senza risolvere gli host, in modo verboso le
+ regole esistenti</dd>
+ </dl>
+ </div>
+ </div>
+
<div class="section" id="note">
<h1><a class="toc-backref" href=
- "#id44">7 NOTE</a></h1>
+ "#id66">8 NOTE</a></h1>
<ul class="simple">
<li>controllare apache</li>