<tr class="field">
<th class="field-name">Version:</th>
- <td class="field-body">0.4</td>
+ <td class="field-body">0.5</td>
</tr>
</tbody>
</table>
squid.conf</a>
<ul class="auto-toc">
+ <li><a class="reference internal" href="#cache-dir"
+ id="id18" name=
+ "id18">2.1.1 Cache_dir</a></li>
+
<li><a class="reference internal" href=
- "#tag-maximum-object-size" id="id18" name=
- "id18">2.1.1 TAG:
+ "#tag-maximum-object-size" id="id19" name=
+ "id19">2.1.2 TAG:
maximum_object_size</a></li>
<li><a class="reference internal" href=
- "#tag-cache-mem" id="id19" name=
- "id19">2.1.2 TAG:
+ "#tag-cache-mem" id="id20" name=
+ "id20">2.1.3 TAG:
cache_mem</a></li>
<li><a class="reference internal" href=
- "#tag-minimum-object-size" id="id20" name=
- "id20">2.1.3 TAG:
+ "#tag-minimum-object-size" id="id21" name=
+ "id21">2.1.4 TAG:
minimum_object_size</a></li>
</ul>
</li>
<li>
<a class="reference internal" href=
- "#negoziazione-degli-accesi-al-servizio" id="id21"
- name="id21">2.2 Negoziazione degli
+ "#negoziazione-degli-accesi-al-servizio" id="id22"
+ name="id22">2.2 Negoziazione degli
accesi al servizio</a>
<ul class="auto-toc">
<li><a class="reference internal" href=
- "#acl-e-http-access" id="id22" name=
- "id22">2.2.1 ACL e http
+ "#acl-e-http-access" id="id23" name=
+ "id23">2.2.1 ACL e http
access</a></li>
</ul>
</li>
<li>
<a class="reference internal" href="#testare-squid"
- id="id23" name="id23">2.3 Testare
+ id="id24" name="id24">2.3 Testare
Squid</a>
<ul class="auto-toc">
- <li><a class="reference internal" href="#wgetrc"
- id="id24" name=
- "id24">2.3.1 wgetrc</a></li>
+ <li><a class="reference internal" href=
+ "#client-wgetrc" id="id25" name=
+ "id25">2.3.1 Client:
+ ~/.wgetrc</a></li>
+
+ <li><a class="reference internal" href=
+ "#server-access-log" id="id26" name=
+ "id26">2.3.2 Server:
+ access.log</a></li>
</ul>
</li>
</ul>
</li>
<li>
- <a class="reference internal" href="#apache" id="id25"
- name="id25">3 Apache</a>
+ <a class="reference internal" href="#apache" id="id27"
+ name="id27">3 Apache</a>
<ul class="auto-toc">
<li><a class="reference internal" href=
- "#pacchetti-da-installare" id="id26" name=
- "id26">3.1 Pacchetti da
+ "#pacchetti-da-installare" id="id28" name=
+ "id28">3.1 Pacchetti da
installare::</a></li>
<li><a class="reference internal" href=
- "#configurazione-di-apache" id="id27" name=
- "id27">3.2 Configurazione di
+ "#configurazione-di-apache" id="id29" name=
+ "id29">3.2 Configurazione di
Apache</a></li>
<li><a class="reference internal" href="#apache-conf"
- id="id28" name=
- "id28">3.3 apache.conf</a></li>
+ id="id30" name=
+ "id30">3.3 apache.conf</a></li>
<li>
<a class="reference internal" href=
- "#installazione-di-php" id="id29" name=
- "id29">3.4 Installazione di PHP</a>
+ "#installazione-di-php" id="id31" name=
+ "id31">3.4 Installazione di PHP</a>
<ul class="auto-toc">
<li><a class="reference internal" href=
- "#test-del-modulo-php" id="id30" name=
- "id30">3.4.1 Test del modulo
+ "#test-del-modulo-php" id="id32" name=
+ "id32">3.4.1 Test del modulo
php</a></li>
<li><a class="reference internal" href=
- "#installazione-del-supporto-per-mysql" id="id31"
- name="id31">3.4.2 Installazione
+ "#installazione-del-supporto-per-mysql" id="id33"
+ name="id33">3.4.2 Installazione
del supporto per Mysql</a></li>
<li><a class="reference internal" href=
- "#phpmyadmin" id="id32" name=
- "id32">3.4.3 phpmyadmin</a></li>
+ "#phpmyadmin" id="id34" name=
+ "id34">3.4.3 phpmyadmin</a></li>
<li><a class="reference internal" href=
"#installazione-del-supporto-per-postgresql" id=
- "id33" name=
- "id33">3.4.4 Installazione del
+ "id35" name=
+ "id35">3.4.4 Installazione del
supporto per Postgresql</a></li>
<li><a class="reference internal" href=
- "#phppgadmin" id="id34" name=
- "id34">3.4.5 phppgadmin</a></li>
+ "#phppgadmin" id="id36" name=
+ "id36">3.4.5 phppgadmin</a></li>
</ul>
</li>
<li>
<a class="reference internal" href="#virtual-hosts"
- id="id35" name="id35">3.5 Virtual
+ id="id37" name="id37">3.5 Virtual
hosts</a>
<ul class="auto-toc">
<li><a class="reference internal" href=
- "#gestione-dns" id="id36" name=
- "id36">3.5.1 Gestione DNS</a></li>
+ "#gestione-dns" id="id38" name=
+ "id38">3.5.1 Gestione DNS</a></li>
<li><a class="reference internal" href=
- "#virtual-host" id="id37" name=
- "id37">3.5.2 Virtual host</a></li>
+ "#virtual-host" id="id39" name=
+ "id39">3.5.2 Virtual host</a></li>
</ul>
</li>
<li>
<a class="reference internal" href=
- "#negoziazione-accessi" id="id38" name=
- "id38">3.6 Negoziazione accessi</a>
+ "#negoziazione-accessi" id="id40" name=
+ "id40">3.6 Negoziazione accessi</a>
<ul class="auto-toc">
<li><a class="reference internal" href=
- "#limiti-su-base-ip" id="id39" name=
- "id39">3.6.1 Limiti su base
+ "#limiti-su-base-ip" id="id41" name=
+ "id41">3.6.1 Limiti su base
ip</a></li>
</ul>
</li>
<li>
<a class="reference internal" href=
- "#user-authentication" id="id40" name=
- "id40">3.7 User Authentication</a>
+ "#user-authentication" id="id42" name=
+ "id42">3.7 User Authentication</a>
<ul class="auto-toc">
<li><a class="reference internal" href=
- "#definire-la-cartella" id="id41" name=
- "id41">3.7.1 Definire la
+ "#definire-la-cartella" id="id43" name=
+ "id43">3.7.1 Definire la
cartella</a></li>
<li><a class="reference internal" href=
- "#creazione-del-database-delle-passwords" id="id42"
- name="id42">3.7.2 Creazione del
+ "#creazione-del-database-delle-passwords" id="id44"
+ name="id44">3.7.2 Creazione del
database delle passwords</a></li>
<li><a class="reference internal" href="#id3" id=
- "id43" name=
- "id43">3.7.3 Configurazione di
+ "id45" name=
+ "id45">3.7.3 Configurazione di
Apache</a></li>
</ul>
</li>
<li><a class="reference internal" href="#cavets" id=
- "id44" name="id44">3.8 Cavets</a></li>
+ "id46" name="id46">3.8 Cavets</a></li>
</ul>
</li>
<li>
<a class="reference internal" href="#domain-name-system"
- id="id45" name="id45">4 Domain Name
+ id="id47" name="id47">4 Domain Name
System</a>
<ul class="auto-toc">
<li><a class="reference internal" href=
- "#nomi-di-dominio" id="id46" name=
- "id46">4.1 Nomi di dominio</a></li>
+ "#nomi-di-dominio" id="id48" name=
+ "id48">4.1 Nomi di dominio</a></li>
<li><a class="reference internal" href=
- "#tipologie-di-record" id="id47" name=
- "id47">4.2 Tipologie di
+ "#tipologie-di-record" id="id49" name=
+ "id49">4.2 Tipologie di
record</a></li>
<li><a class="reference internal" href="#utilizzo" id=
- "id48" name=
- "id48">4.3 Utilizzo</a></li>
+ "id50" name=
+ "id50">4.3 Utilizzo</a></li>
<li><a class="reference internal" href=
- "#risoluzione-dei-nomi-di-dominio" id="id49" name=
- "id49">4.4 Risoluzione dei nomi di
+ "#risoluzione-dei-nomi-di-dominio" id="id51" name=
+ "id51">4.4 Risoluzione dei nomi di
dominio</a></li>
- <li><a class="reference internal" href="#dig" id="id50"
- name="id50">4.5 Dig</a></li>
+ <li><a class="reference internal" href="#dig" id="id52"
+ name="id52">4.5 Dig</a></li>
</ul>
</li>
- <li><a class="reference internal" href="#dnsmasq" id="id51"
- name="id51">5 DNSmasq</a></li>
+ <li><a class="reference internal" href="#dnsmasq" id="id53"
+ name="id53">5 DNSmasq</a></li>
<li>
- <a class="reference internal" href="#samba" id="id52"
- name="id52">6 Samba</a>
+ <a class="reference internal" href="#samba" id="id54"
+ name="id54">6 Samba</a>
<ul class="auto-toc">
<li><a class="reference internal" href="#pacchetti" id=
- "id53" name=
- "id53">6.1 Pacchetti</a></li>
+ "id55" name=
+ "id55">6.1 Pacchetti</a></li>
<li><a class="reference internal" href=
- "#passwords-e-autenticazione" id="id54" name=
- "id54">6.2 Passwords e
+ "#passwords-e-autenticazione" id="id56" name=
+ "id56">6.2 Passwords e
autenticazione</a></li>
<li><a class="reference internal" href=
- "#creazione-utenti" id="id55" name=
- "id55">6.3 Creazione Utenti</a></li>
+ "#creazione-utenti" id="id57" name=
+ "id57">6.3 Creazione Utenti</a></li>
<li>
<a class="reference internal" href=
- "#creare-la-condivisione" id="id56" name=
- "id56">6.4 Creare la
+ "#creare-la-condivisione" id="id58" name=
+ "id58">6.4 Creare la
condivisione</a>
<ul class="auto-toc">
<li><a class="reference internal" href=
"#sicurezza-permessi-di-esecuzione-sul-server" id=
- "id57" name=
- "id57">6.4.1 Sicurezza: permessi
+ "id59" name=
+ "id59">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="id58" name=
- "id58">6.5 Configurazione
+ id="id60" name=
+ "id60">6.5 Configurazione
dell'applicativo Samba vero e proprio.</a></li>
<li><a class="reference internal" href=
- "#testare-il-servizio" id="id59" name=
- "id59">6.6 Testare il
+ "#testare-il-servizio" id="id61" name=
+ "id61">6.6 Testare il
Servizio</a></li>
</ul>
</li>
<li>
- <a class="reference internal" href="#firewall" id="id60"
- name="id60">7 Firewall</a>
+ <a class="reference internal" href="#firewall" id="id62"
+ name="id62">7 Firewall</a>
<ul class="auto-toc">
<li><a class="reference internal" href="#links" id=
- "id61" name="id61">7.1 Links</a></li>
+ "id63" name="id63">7.1 Links</a></li>
<li><a class="reference internal" href="#ipfilter" id=
- "id62" name=
- "id62">7.2 Ipfilter</a></li>
+ "id64" name=
+ "id64">7.2 Ipfilter</a></li>
<li>
<a class="reference internal" href=
- "#progettazione-di-un-firewall" id="id63" name=
- "id63">7.3 Progettazione di un
+ "#progettazione-di-un-firewall" id="id65" name=
+ "id65">7.3 Progettazione di un
firewall</a>
<ul class="auto-toc">
<li><a class="reference internal" href=
- "#collocazione" id="id64" name=
- "id64">7.3.1 Collocazione</a></li>
+ "#collocazione" id="id66" name=
+ "id66">7.3.1 Collocazione</a></li>
<li><a class="reference internal" href=
- "#policy-di-default" id="id65" name=
- "id65">7.3.2 Policy di
+ "#policy-di-default" id="id67" name=
+ "id67">7.3.2 Policy di
default</a></li>
<li><a class="reference internal" href="#hardware"
- id="id66" name=
- "id66">7.3.3 Hardware</a></li>
+ id="id68" name=
+ "id68">7.3.3 Hardware</a></li>
</ul>
</li>
<li><a class="reference internal" href=
"#percorso-dei-pacchetti-tra-tabelle-e-catene" id=
- "id67" name="id67">7.4 Percorso dei
+ "id69" name="id69">7.4 Percorso dei
pacchetti tra tabelle e catene</a></li>
<li>
<a class="reference internal" href=
- "#concetti-di-base" id="id68" name=
- "id68">7.5 Concetti di base</a>
+ "#concetti-di-base" id="id70" name=
+ "id70">7.5 Concetti di base</a>
<ul class="auto-toc">
<li><a class="reference internal" href=
- "#tabelle-catene-regole" id="id69" name=
- "id69">7.5.1 Tabelle, catene,
+ "#tabelle-catene-regole" id="id71" name=
+ "id71">7.5.1 Tabelle, catene,
regole</a></li>
<li><a class="reference internal" href="#match" id=
- "id70" name=
- "id70">7.5.2 Match</a></li>
+ "id72" name=
+ "id72">7.5.2 Match</a></li>
<li><a class="reference internal" href="#targets"
- id="id71" name=
- "id71">7.5.3 Targets</a></li>
+ id="id73" name=
+ "id73">7.5.3 Targets</a></li>
</ul>
</li>
<li><a class="reference internal" href=
- "#tabella-filter" id="id72" name=
- "id72">7.6 Tabella Filter</a></li>
+ "#tabella-filter" id="id74" name=
+ "id74">7.6 Tabella Filter</a></li>
<li><a class="reference internal" href=
- "#flush-automatico-per-macchine-remote" id="id73" name=
- "id73">7.7 Flush automatico per
+ "#flush-automatico-per-macchine-remote" id="id75" name=
+ "id75">7.7 Flush automatico per
macchine remote</a></li>
<li><a class="reference internal" href=
- "#gestione-regole-rules" id="id74" name=
- "id74">7.8 Gestione regole
+ "#gestione-regole-rules" id="id76" name=
+ "id76">7.8 Gestione regole
(rules)</a></li>
</ul>
</li>
- <li><a class="reference internal" href="#note" id="id75"
- name="id75">8 NOTE</a></li>
+ <li><a class="reference internal" href="#note" id="id77"
+ name="id77">8 NOTE</a></li>
</ul>
</div>
<p>Qui riportati per comodita' degli studenti (e del
docente che non sara' <strong>mai piu'</strong> costretto a
- ripeterli! )</p>
+ 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=
+ "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 <em>ip</em> della vostra
+ rete.</p>
</div>
<div class="section" id="rete">
<table border="1" class="docutils">
<colgroup>
- <col width="45%">
- <col width="55%">
+ <col width="42%">
+ <col width="58%">
</colgroup>
<tbody valign="top">
<td>10.10.208.250 persistente</td>
</tr>
+
+ <tr>
+ <td>proxy http</td>
+
+ <td>10.10.208.254:3128</td>
+ </tr>
</tbody>
</table>
Andrea non e' in aula (o ancora peggio non c'e' il suo
portatile Net) gli studenti dovranno darsi un indirizzo ip
manualmente e disabilitare il proxy (che pero' e
- trasparente, quindi fate pure come se non ci fosse ;) .</p>
+ trasparente, quindi fate pure come se non ci fosse ;) .
+ Questo in attesa che si sappia se sara' nuovamente
+ utilizzabile il vecchio server Bender.</p>
</div>
<div class="section" id="bash-completion">
<h1><a class="toc-backref" href=
"#id16">2 Squid</a></h1>
+ <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
+ partendo dalle configurazioni piu' semplici per la semplice
+ <em>condivisione della navigazione</em> internet, 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>
+
+ <dl class="docutils">
+ <dt>Inoltre 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>
+ </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>
+
+ <p>Squid ascolta di default sulla porta 3128, per impostare
+ <em>apt</em> per utilizzarlo si aggiunga ad <tt class=
+ "docutils literal"><span class=
+ "pre">/etc/apt/apt.conf</span></tt></p>
+ <pre class="literal-block">
+Acquire::http::Proxy "10.10.208.254:3128";
+</pre>
+
<p>Per installare Squid si usino i pacchetti:</p>
<pre class="literal-block">
squid3
"#id17">2.1 Configurazione:
squid.conf</a></h2>
- <p>Segue un estratto del file di configurazione:</p>
- <pre class="literal-block">
-#TAG: cache_dir (1628)
+ <p>Segue un estratto delle direttive principali viste in
+ aula presenti nel file di configurazione <tt class=
+ "docutils literal"><span class=
+ "pre">/etc/squid3/squid.conf</span></tt> .</p>
+
+ <div class="section" id="cache-dir">
+ <h3><a class="toc-backref" href=
+ "#id18">2.1.1 Cache_dir</a></h3>
+
+ <p>Cache dir serve per impostare dimensione e percorso
+ della cache creata sul supporto di storaggio. Essendo la
+ dimensione di default della cache pari a <tt class=
+ "docutils literal"><span class="pre">~100</span>
+ <span class="pre">MB</span></tt> e' altamente
+ consigliabili aumentare questo parametro se si vuole
+ poter utilizzare la funzione di <em>cache</em> http del
+ software.</p>
+
+ <p>La dimensione ovviamente dipendera' dallo spazio
+ disponibile, dimensioni tipiche e massime degli oggetti
+ che si vuole tenere in cache (un solo file <em>.iso e'
+ circa ``700 MB``, il pacchetto *Openoffice.org</em> cira
+ <tt class="docutils literal"><span class="pre">150</span>
+ <span class="pre">MB</span></tt>, un pacchetto debian
+ circa <tt class="docutils literal"><span class=
+ "pre">20</span> <span class="pre">MB</span></tt>), numero
+ dei client.</p>
+
+ <p>Si presti poi attenzione alla natura dei dati che
+ saranno salvati nella cache: sono tutti dati facilmenti
+ sostituibili (gli originali sono <em>on-line</em>) la cui
+ perdita non arreca danni permanenti. Questo rende la
+ cache di Squid un possibile candidato ad un <em>RAID
+ stripe</em> (livello 0), con vantaggi sia per le
+ prestazioni (e la velocita' di navigazione e' uno dei
+ motivi per cui si installa Squid) che per l'utilizzo
+ estensivo dello spazio di storaggio. Questo fino al
+ momento in cui per voi non sia piu' importante
+ <em>garantire la disponibilita' del servizio</em> (se il
+ RAID stripe dovesse rompersi gli utenti non potrebbero
+ piu' navigare, cosa che per natura dello stripe e'
+ maggiormente probabile rispetto ad un <em>mirror</em> o a
+ un filesytem <em>normale</em>) con un RAID mirror o
+ 5.</p>
+
+ <p>Altra considerazione: i dati del proxy vengono slavati
+ sul filesytem del server dietro richiesta di utenti
+ esterni talvolta sconosciuti. Come per i servizi di file
+ sharing o per la posta elettronica non c'e' motivo che il
+ filesystem su cui sono ospitati questi dati abbia i
+ privilegi di eseguibilita' o suid (in genere si puo'
+ anche usare <em>noatime</em> per renderlo piu' veloce,
+ che si usi o meno il journal dipende dalle preferenze:
+ affidabilita' oppure prestazioni):</p>
+
+ <p>/etc/fstab</p>
+ <pre class="literal-block">
+...
+# Filesystem per Squid http cache
+/dev/md3/ /var/spool/squid/ ext3,noexec,nosuid,noatime 0 3
+</pre>
+
+ <p>Ora possiamo impostare la cache direttamente nel file
+ <tt class="docutils literal"><span class=
+ "pre">/etc/squid3/squid.conf</span></tt>:</p>
+ <pre class="literal-block">
+#TAG: cache_dir (riga 1628)
# Usage:
#
# cache_dir Type Directory-Name Fs-specific-data [options]
# secondo livello di directory
</pre>
- <p>Se si modifica la struttura del filesytem della cache di
- Squid, ad esempio variando il numero delle directory, puo'
- essere (ed in genere lo e') opportuno rigenerare la
- struttura della cache di squid. Tipicamente e' opportuno
- cancellare la vecchia cache e poi generarne una nuova:</p>
- <pre class="literal-block">
+ <p>Se si modifica la struttura del filesytem della cache
+ di Squid, ad esempio variando il numero delle directory,
+ puo' essere opportuno rigenerare la struttura della cache
+ di squid (per lo meno se si <em>aumenta il numero delle
+ directory di primo o secondo livello). Tipicamente e'
+ opportuno cancellare (se si ha *ridotto</em> il numero
+ delle diectory) la vecchia cache e poi generare una nuova
+ struttura. Se si vuole <em>star nel sicuro</em> ogni
+ volta che si modifica l'impostazione delle directory
+ <em>si svuoti la vecchia cache e se ne generi una
+ nuova</em></p>
+ <pre class="literal-block">
# /etc/init.d/squid3 stop
# rm -r /var/spool/squid3/??
# squid3 -z
# /etc/init.d/squid3 start
</pre>
+ </div>
<div class="section" id="tag-maximum-object-size">
<h3><a class="toc-backref" href=
- "#id18">2.1.1 TAG:
+ "#id19">2.1.2 TAG:
maximum_object_size</a></h3>
<p>Questa direttiva imposta la dimensione massima degli
oggetti che vengono slvati sul supporto di storaggio,
- oggetti di dimensioni superiori verranno scaricati ma non
- tenuti in cache.</p>
+ oggetti di dimensioni superiori saranno comunque
+ scaricati ma non tenuti in cache.</p>
<p>TAG: maximum_object_size (1760):</p>
<pre class="literal-block">
<div class="section" id="tag-cache-mem">
<h3><a class="toc-backref" href=
- "#id19">2.1.2 TAG: cache_mem</a></h3>
+ "#id20">2.1.3 TAG: cache_mem</a></h3>
- <p><em>Cache_mem</em> imposta quanta memoria RAM
- utilizzare per la cache di Squid. Questo dipendera' dalla
+ <p><em>Cache_mem</em> imposta quanta memoria RAM venga
+ utilizzata per la cache di Squid. Questo dipendera' dalla
RAM disponibile sul sistema, e da quanta di questa volete
- mettere a disposizione di Squid. Questo paramentro
- influisce sulle prestazioni e sul degrado dei supporti di
- storaggio (sopratutto se magnetici).</p>
+ mettere a disposizione di Squid (altri servizi
+ iimportanti girano sulla stessa macchina?). Questo
+ paramentro influisce sulle prestazioni e sul degrado dei
+ supporti di storaggio (sopratutto se magnetici).</p>
+
+ <p>Se si stesse pensando di usare dell'hardware
+ <em>embedded</em> a basse prestazioni / consumo per
+ realizzare un server gateway / NAT / Squid si tenga
+ presente che Squid e' relativamente esoso di risorse:
+ avra' bisogno di una macchina con <tt class=
+ "docutils literal"><span class="pre">~25MB</span></tt>
+ (MegaByte) di RAM e <em>~150MHZ di CPU ARM</em> per
+ servire decorosamente una decina di client http su una
+ rete ethernet 10/100. In questo caso non fate scendere
+ <tt class="docutils literal"><span class=
+ "pre">cache_mem</span></tt> sotto i <tt class=
+ "docutils literal"><span class="pre">2/4</span>
+ <span class="pre">MB</span></tt> pena un accesso continuo
+ al supporto di storaggio.</p>
+
+ <p>Se invece si disponesse di una macchina dedicata a
+ Squid con gigabytes di RAM non si esiti a dedicarne buona
+ parte a <em>cache_mem</em>.</p>
<p>TAG: cache_mem (1566):</p>
<pre class="literal-block">
<div class="section" id="tag-minimum-object-size">
<h3><a class="toc-backref" href=
- "#id20">2.1.3 TAG:
+ "#id21">2.1.4 TAG:
minimum_object_size</a></h3>
- <p>Questo paramentro imposta la dimensione minima degli
+ <p>Questo parametro imposta la dimensione minima degli
oggetti salvati nella cache. Settato a <tt class=
"docutils literal"><span class="pre">0</span></tt> o a
valori molto piccoli puo' influire negativamente sulla
deframmentazione del filesytem e consumare un numero
- elevato di <em>inode</em>.</p>
+ elevato di <em>inode</em> (cosa non piu' importante con
+ ext4 o altri filesytem).</p>
<p>TAG: minimum_object_size:</p>
<pre class="literal-block">
<div class="section" id=
"negoziazione-degli-accesi-al-servizio">
<h2><a class="toc-backref" href=
- "#id21">2.2 Negoziazione degli accesi al
+ "#id22">2.2 Negoziazione degli accesi al
servizio</a></h2>
<p>Squid e' uno di quei servizi soggetto a problemi di tipo
- <em>open relay</em>, si deve quindi limitare la rete che
+ <em>open relay</em> , si deve quindi limitare la rete che
puo' accedere al servizio.</p>
+ <dl class="docutils">
+ <dt>Open Relay:</dt>
+
+ <dd>Un servizio a cui possono accedere tutti
+ indiscriminatamente. La cosa puo' andare bene per servizi
+ come i server web, che aspirano per loro natura al
+ maggior numero possibile di utenti, ma non a servizi come
+ i proxy http oppure ai server di posta elettronica (che
+ permetterebbero l'invio di SPAM).</dd>
+ </dl>
+
+ <p>Generalmente non volete che il vostro proxy http venga
+ usato da persone sconosciute le quali sostanzialmente
+ <em>navigherebbero sotto l'identita' del vostro proxy</em>
+ (probabilmente per visionare materiali che non vorrebbero
+ fossero ricondotti direttamente a loro, per motivi che sta
+ a voi prendere in considerazione) consumando traffico e
+ banda della vostra connessione a internet. Tenere Squid in
+ modalita' <em>Open relay</em> e' al giorno d'oggi un buon
+ modo per essere inseriti in una <em>black list</em>.</p>
+
+ <p>Per poter limitare gli accessi a Squid dal punto di
+ vista dell'applicazione (quarto livello TCP/IP) si
+ identifichera' inizialmente l'entita' <em>rete locale</em>
+ (es: <tt class="docutils literal"><span class=
+ "pre">localnet</span></tt>) con una ACL di tipo
+ <em>src</em> (indirizi IP sorgenti) indicando la <em>classe
+ / range di ip</em> della nostra rete.</p>
+
+ <blockquote>
+ Dopodiche l'accesso (<tt class=
+ "docutils literal"><span class=
+ "pre">http_access</span></tt>) si concedera'
+ (<em>allow</em>) a questa entita' (es: <tt class=
+ "docutils literal"><span class=
+ "pre">localnet</span></tt>) negando chiunque altro.
+ </blockquote>
+
+ <p>Per maggiori dettagli sulla sintassi utilizzabile per
+ esprimere i range di ip: <a class="reference external"
+ href="http://www.visolve.com/squid/squid24s1/access_controls.php">
+ http://www.visolve.com/squid/squid24s1/access_controls.php</a></p>
+
<div class="section" id="acl-e-http-access">
<h3><a class="toc-backref" href=
- "#id22">2.2.1 ACL e http access</a></h3>
+ "#id23">2.2.1 ACL e http access</a></h3>
<p>Si proceda a creare una <tt class=
"docutils literal"><span class="pre">ACL</span></tt> di
#acl localnet src 192.168.0.0/16 # RFC1918 possible internal network
#
acl localnet src 10.10.208.0/24
+
# Riga 606
# TAG: http_access
# Allowing or Denying access based on defined access lists
<div class="section" id="testare-squid">
<h2><a class="toc-backref" href=
- "#id23">2.3 Testare Squid</a></h2>
+ "#id24">2.3 Testare Squid</a></h2>
<p>Configurato squid e' fondamentale testarne il corretto
funzionamento per assicurarsi di non aver creato un
"docutils literal"><span class="pre">wget</span></tt> da
riga di comando.</p>
- <div class="section" id="wgetrc">
+ <div class="section" id="client-wgetrc">
<h3><a class="toc-backref" href=
- "#id24">2.3.1 wgetrc</a></h3>
+ "#id25">2.3.1 Client: ~/.wgetrc</a></h3>
<p>Nel file <tt class="docutils literal"><span class=
"pre">.wgetrc</span></tt> (si noti il punto iniziale: e'
<pre class="literal-block">
wget http://www.google.it
</pre>
+ </div>
+
+ <div class="section" id="server-access-log">
+ <h3><a class="toc-backref" href=
+ "#id26">2.3.2 Server:
+ access.log</a></h3>
<p>Si puo' controllare il corretto funzionamento del
server seguendo i log di accesso a Squid:</p>
<pre class="literal-block">
# tail -f /var/log/squid3/access.log
</pre>
+
+ <p>In oltre e' possibile configurare diversi
+ <em>analizzatori di log</em> come <tt class=
+ "docutils literal"><span class=
+ "pre">Webalizer</span></tt> per studiare i log di
+ Squid.</p>
</div>
</div>
</div>
<div class="section" id="apache">
<h1><a class="toc-backref" href=
- "#id25">3 Apache</a></h1>
+ "#id27">3 Apache</a></h1>
<p>Apache HTTP Server, o piu' comunemente Apache, e' il nome
dato alla piattaforma server Web modulare piu' diffusa (ma
<div class="section" id="pacchetti-da-installare">
<h2><a class="toc-backref" href=
- "#id26">3.1 Pacchetti da
+ "#id28">3.1 Pacchetti da
installare::</a></h2>
<blockquote>
<div class="section" id="configurazione-di-apache">
<h2><a class="toc-backref" href=
- "#id27">3.2 Configurazione di
+ "#id29">3.2 Configurazione di
Apache</a></h2>
<p>I file di configurazione di apache si trovano nella
<div class="section" id="apache-conf">
<h2><a class="toc-backref" href=
- "#id28">3.3 apache.conf</a></h2>
+ "#id30">3.3 apache.conf</a></h2>
<p>File di configurazione del servizio Apache, contiene le
impostazioni generiche (ad esempio utilizzo della RAM e
<div class="section" id="installazione-di-php">
<h2><a class="toc-backref" href=
- "#id29">3.4 Installazione di PHP</a></h2>
+ "#id31">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=
- "#id30">3.4.1 Test del modulo
+ "#id32">3.4.1 Test del modulo
php</a></h3>
<p>Creare nella cartella <tt class=
<div class="section" id=
"installazione-del-supporto-per-mysql">
<h3><a class="toc-backref" href=
- "#id31">3.4.2 Installazione del supporto
+ "#id33">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=
- "#id32">3.4.3 phpmyadmin</a></h3>
+ "#id34">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=
- "#id33">3.4.4 Installazione del supporto
+ "#id35">3.4.4 Installazione del supporto
per Postgresql</a></h3>
<p>Installare i pacchetti:</p>
<div class="section" id="phppgadmin">
<h3><a class="toc-backref" href=
- "#id34">3.4.5 phppgadmin</a></h3>
+ "#id36">3.4.5 phppgadmin</a></h3>
<p>L'interfaccia web Phppgadmin per il database server
PostgreSQL non richede necessariamente la presenza di un
<div class="section" id="virtual-hosts">
<h2><a class="toc-backref" href=
- "#id35">3.5 Virtual hosts</a></h2>
+ "#id37">3.5 Virtual hosts</a></h2>
<blockquote>
<ul class="simple">
<div class="section" id="gestione-dns">
<h3><a class="toc-backref" href=
- "#id36">3.5.1 Gestione DNS</a></h3>
+ "#id38">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
<div class="section" id="virtual-host">
<h3><a class="toc-backref" href=
- "#id37">3.5.2 Virtual host</a></h3>
+ "#id39">3.5.2 Virtual host</a></h3>
<p>Esempio di Virtual host:</p>
<pre class="literal-block">
<div class="section" id="negoziazione-accessi">
<h2><a class="toc-backref" href=
- "#id38">3.6 Negoziazione accessi</a></h2>
+ "#id40">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
<div class="section" id="limiti-su-base-ip">
<h3><a class="toc-backref" href=
- "#id39">3.6.1 Limiti su base ip</a></h3>
+ "#id41">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
<div class="section" id="user-authentication">
<h2><a class="toc-backref" href=
- "#id40">3.7 User Authentication</a></h2>
+ "#id42">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
<div class="section" id="definire-la-cartella">
<h3><a class="toc-backref" href=
- "#id41">3.7.1 Definire la
+ "#id43">3.7.1 Definire la
cartella</a></h3>
<p>Decidere quale sara' il <em>path</em> della cartella
<div class="section" id=
"creazione-del-database-delle-passwords">
<h3><a class="toc-backref" href=
- "#id42">3.7.2 Creazione del database
+ "#id44">3.7.2 Creazione del database
delle passwords</a></h3>
<p>Un modo semplice per gestire una database di
<div class="section" id="id3">
<h3><a class="toc-backref" href=
- "#id43">3.7.3 Configurazione di
+ "#id45">3.7.3 Configurazione di
Apache</a></h3>
<p>Ora possiamo passare alla configurazione vera e
<div class="section" id="cavets">
<h2><a class="toc-backref" href=
- "#id44">3.8 Cavets</a></h2>
+ "#id46">3.8 Cavets</a></h2>
<p>Problemi di cache:</p>
<div class="section" id="domain-name-system">
<h1><a class="toc-backref" href=
- "#id45">4 Domain Name System</a></h1>
+ "#id47">4 Domain Name System</a></h1>
<p>Domain Name System (spesso indicato con DNS) e' un
servizio utilizzato per la risoluzione di nomi di host in
<div class="section" id="nomi-di-dominio">
<h2><a class="toc-backref" href=
- "#id46">4.1 Nomi di dominio</a></h2>
+ "#id48">4.1 Nomi di dominio</a></h2>
<p>Un nome a dominio e' costituito da una serie di stringhe
separate da punti, ad esempio it.wikipedia.org. A
<div class="section" id="tipologie-di-record">
<h2><a class="toc-backref" href=
- "#id47">4.2 Tipologie di record</a></h2>
+ "#id49">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
<div class="section" id="utilizzo">
<h2><a class="toc-backref" href=
- "#id48">4.3 Utilizzo</a></h2>
+ "#id50">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=
- "#id49">4.4 Risoluzione dei nomi di
+ "#id51">4.4 Risoluzione dei nomi di
dominio</a></h2>
<p>Ci sono vari strumenti per interrogare i server DNS e
<div class="section" id="dig">
<h2><a class="toc-backref" href=
- "#id50">4.5 Dig</a></h2>
+ "#id52">4.5 Dig</a></h2>
<p>Vediamo alcune opzioni utili nell'utilizzo di <tt class=
"docutils literal"><span class="pre">dig</span></tt> per
<div class="section" id="dnsmasq">
<h1><a class="toc-backref" href=
- "#id51">5 DNSmasq</a></h1>
+ "#id53">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=
- "#id52">6 Samba</a></h1>
+ "#id54">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=
- "#id53">6.1 Pacchetti</a></h2>
+ "#id55">6.1 Pacchetti</a></h2>
<p>Pacchetti da installare per utilizzare Samba in
modalita' client <a class="footnote-reference" href="#id5"
<div class="section" id="passwords-e-autenticazione">
<h2><a class="toc-backref" href=
- "#id54">6.2 Passwords e
+ "#id56">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=
- "#id55">6.3 Creazione Utenti</a></h2>
+ "#id57">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=
- "#id56">6.4 Creare la
+ "#id58">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=
- "#id57">6.4.1 Sicurezza: permessi di
+ "#id59">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=
- "#id58">6.5 Configurazione
+ "#id60">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=
- "#id59">6.6 Testare il Servizio</a></h2>
+ "#id61">6.6 Testare il Servizio</a></h2>
<p>Come testare il servizio</p>
<div class="section" id="firewall">
<h1><a class="toc-backref" href=
- "#id60">7 Firewall</a></h1>
+ "#id62">7 Firewall</a></h1>
<p>In Informatica, nell'ambito delle reti di computer, un
firewall (termine inglese dal significato originario di
<div class="section" id="links">
<h2><a class="toc-backref" href=
- "#id61">7.1 Links</a></h2>
+ "#id63">7.1 Links</a></h2>
<ul class="simple">
<li><a class="reference external" href=
<div class="section" id="ipfilter">
<h2><a class="toc-backref" href=
- "#id62">7.2 Ipfilter</a></h2>
+ "#id64">7.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=
- "#id63">7.3 Progettazione di un
+ "#id65">7.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=
- "#id64">7.3.1 Collocazione</a></h3>
+ "#id66">7.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=
- "#id65">7.3.2 Policy di default</a></h3>
+ "#id67">7.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=
- "#id66">7.3.3 Hardware</a></h3>
+ "#id68">7.3.3 Hardware</a></h3>
<p>Sostanzialmente potremmo distinquere due tipologie di
hardware:</p>
<div class="section" id=
"percorso-dei-pacchetti-tra-tabelle-e-catene">
<h2><a class="toc-backref" href=
- "#id67">7.4 Percorso dei pacchetti tra
+ "#id69">7.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=
- "#id68">7.5 Concetti di base</a></h2>
+ "#id70">7.5 Concetti di base</a></h2>
<div class="section" id="tabelle-catene-regole">
<h3><a class="toc-backref" href=
- "#id69">7.5.1 Tabelle, catene,
+ "#id71">7.5.1 Tabelle, catene,
regole</a></h3>
<p>Iptables lavora su 3 tabelle (tables) di default:</p>
<div class="section" id="match">
<h3><a class="toc-backref" href=
- "#id70">7.5.2 Match</a></h3>
+ "#id72">7.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=
- "#id71">7.5.3 Targets</a></h3>
+ "#id73">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
<div class="section" id="tabella-filter">
<h2><a class="toc-backref" href=
- "#id72">7.6 Tabella Filter</a></h2>
+ "#id74">7.6 Tabella Filter</a></h2>
<p>E' quella implicita e predefinita (-t filter) Riguarda
le attività di filtraggio del traffico. Ha 3 catene
<div class="section" id=
"flush-automatico-per-macchine-remote">
<h2><a class="toc-backref" href=
- "#id73">7.7 Flush automatico per macchine
+ "#id75">7.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=
- "#id74">7.8 Gestione regole
+ "#id76">7.8 Gestione regole
(rules)</a></h2>
<p>Il comando iptables viene usato per ogni attivitÃ
<div class="section" id="note">
<h1><a class="toc-backref" href=
- "#id75">8 NOTE</a></h1>
+ "#id77">8 NOTE</a></h1>
<ul class="simple">
<li>controllare apache</li>