From 21baaff90e9e9fc2eaa9c2740a2d2b975eb2724f Mon Sep 17 00:00:00 2001 From: Andrea Manni <andrea@andreamanni.com> Date: Thu, 21 May 2009 12:35:11 +0200 Subject: [PATCH] Aggiunta sui firewall. modified: servizi.html modified: source/servizi.txt --- servizi.html | 151 ++++++++++++++++++++++++++++++++++++++++++--- source/servizi.txt | 45 +++++++++++++- 2 files changed, 184 insertions(+), 12 deletions(-) diff --git a/servizi.html b/servizi.html index f0fc4e0..196e314 100644 --- a/servizi.html +++ b/servizi.html @@ -319,7 +319,7 @@ <tr class="field"> <th class="field-name">Version:</th> - <td class="field-body">0.6</td> + <td class="field-body">0.7</td> </tr> </tbody> </table> @@ -739,11 +739,27 @@ "#gestione-regole-rules" id="id83" name= "id83">7.8 Gestione regole (rules)</a></li> + + <li> + <a class="reference internal" href= + "#salvataggio-regole" id="id84" name= + "id84">7.9 Salvataggio regole</a> + + <ul class="auto-toc"> + <li><a class="reference internal" href= + "#iptables-save" id="id85" name= + "id85">7.9.1 Iptables-save</a></li> + + <li><a class="reference internal" href= + "#iptables-restore" id="id86" name= + "id86">7.9.2 Iptables-restore</a></li> + </ul> + </li> </ul> </li> - <li><a class="reference internal" href="#note" id="id84" - name="id84">8 NOTE</a></li> + <li><a class="reference internal" href="#note" id="id87" + name="id87">8 NOTE</a></li> </ul> </div> @@ -2684,13 +2700,28 @@ l.google.com. 80856 IN NS g.l.google.com. resolv.conf per conoscere l'ubicazione del DNS.</p> <p>/etc/resolv.conf:</p> - <pre class="literal-block"> -- ``nameserver``: indica il nameserver da utilizzare, indicato con l'indirizzo ip. -- ``domain``: indica il nome di dominio della rete attuale, vedi voce sucessiva. + <blockquote> + <ul class="simple"> + <li><tt class="docutils literal"><span class= + "pre">nameserver</span></tt>: indica il nameserver da + utilizzare, indicato con l'indirizzo ip.</li> -- ``search``: nome di dominio usato dalla rete sul quale cercare gli hosts. Ad esempio se impostato su ``piffa.net`` pingando l'host ``bender`` viene automaticamente fatto un tentativo di ricerca per ``bender.piffa.net``. -</pre> + <li><tt class="docutils literal"><span class= + "pre">domain</span></tt>: indica il nome di dominio + della rete attuale, vedi voce sucessiva.</li> + + <li><tt class="docutils literal"><span class= + "pre">search</span></tt>: nome di dominio usato dalla + rete sul quale cercare gli hosts. Ad esempio se + impostato su <tt class="docutils literal"><span class= + "pre">piffa.net</span></tt> pingando l'host <tt class= + "docutils literal"><span class="pre">bender</span></tt> + viene automaticamente fatto un tentativo di ricerca per + <tt class="docutils literal"><span class= + "pre">bender.piffa.net</span></tt>.</li> + </ul> + </blockquote> <p>Si veda anche la pagina man di resolv.conf.</p> @@ -3771,11 +3802,113 @@ at> [CTR+d] regole esistenti</dd> </dl> </div> + + <div class="section" id="salvataggio-regole"> + <h2><a class="toc-backref" href= + "#id84">7.9 Salvataggio regole</a></h2> + + <p>Il comando <tt class="docutils literal"><span class= + "pre">iptables</span></tt> serve per interagire con il + framework <tt class="docutils literal"><span class= + "pre">Netfilter</span></tt> ch gestisce il firewall di + Linux al livello del kernel. Questo comporta, in modo + analogo a quando avvene col comando <tt class= + "docutils literal"><span class="pre">ifconfig</span></tt>, + che i cambiameti impostati siano in <em>tempo reale, + RAM</em>, non persistenti nel sistema: al boot sucessivo + del sistema tutto tornera' alle impostazioni di base (in + questo caso <em>nulle</em>, con policy di default settate + su <tt class="docutils literal"><span class= + "pre">ACCEPT</span></tt> per tutto).</p> + + <p>Le varie invocazioni di iptables potrebbero essere + richiamate da degli scripts dedicati, ma fortunatamente e' + stata predisposta una apposita utility per gestire questi + scripts in modo da avere a disposizione un <em>formato + standard</em> per il salvataggio e il ripristino delle + regole del firewall.</p> + + <p>Altro problema: decidere quando attivare / disattivare + queste regole. Utilizzare i <em>runlevels</em> non e' una + soluzione adeguata: le regole del firewall sono legate + all'attivita' delle schede di rete (e un host con diverse + schede di rete puo' attivarle a secondo delle esigenze di + routing, partenza di servizi es file_sharing per un + back-up...): il sistema operativo Debian permette di legare + l'esecuzione di comandi alla attivazione di una device di + rete (<tt class="docutils literal"><span class= + "pre">up</span></tt>), dopo la sua attivazione (<tt class= + "docutils literal"><span class="pre">post-up</span></tt>, + utile per devices che richiedono un certo tempo per + inizializzarsi: come un tunnel o una connessione punto a + punto), prima della sua attivazione (<tt class= + "docutils literal"><span class="pre">pre-up</span></tt>). + Allo stesso modo sono disponibili eventi analoghi per + accompagnare la disattivazione dei device di rete: si veda + la pagina man di <tt class="docutils literal"><span class= + "pre">interfaces</span></tt>.</p> + + <p>Nel nostro caso avremo per una possibile scheda + <tt class="docutils literal"><span class= + "pre">eth0</span></tt>:</p> + + <p><tt class="docutils literal"><span class= + "pre">/etc/network/interfaces</span></tt></p> + <pre class="literal-block"> +iface eth1 inet static + up /sbin/iptables-restore /root/firewall/basic_fw + # Seguno i soliti parametri della scheda di rete + address 10.10.208.21 +</pre> + + <div class="section" id="iptables-save"> + <h3><a class="toc-backref" href= + "#id85">7.9.1 Iptables-save</a></h3> + + <p>Per salvare le regole di iptables attualmente presenti + nel kernel si usi il comando:</p> + <pre class="literal-block"> +# iptables-save >> /root/firewall/basic_fw +</pre> + + <p>Il contenuto del file dovrebbe essere + <em>comprensibile</em>: sostanzialmente sono regole di + iptables, senza il comando iptables ripetuto, suddivisi + per le varie tabelle. Potete comunque correggere + eventuali parametri con un edito di testo.</p> + + <p>Se non avete un'idea migliore potreste voler tenere + gli script dei firewall in una cartella <tt class= + "docutils literal"><span class= + "pre">~/firewall</span></tt> nella home directory + dell'utente <tt class="docutils literal"><span class= + "pre">root</span></tt>.</p> + </div> + + <div class="section" id="iptables-restore"> + <h3><a class="toc-backref" href= + "#id86">7.9.2 Iptables-restore</a></h3> + + <p>Per ripristinare un set di regole prcedentemente + salvate con <tt class="docutils literal"><span class= + "pre">iptables-save</span></tt> si utilizzi <tt class= + "docutils literal"><span class= + "pre">iptables-restore</span></tt>. Se questo deve essere + fatto in modalita' <em>non interattiva</em>, ad esempio + deve essere eseguito dal demone che si occupa di + inizializzare le schede di rete, oppure un <em>cron</em> + o altro, e' buona norma richiamare i percorsi completi + sia dei comandi che dei file:</p> + <pre class="literal-block"> +/sbin/iptables-restore /root/firewall/basic_fw +</pre> + </div> + </div> </div> <div class="section" id="note"> <h1><a class="toc-backref" href= - "#id84">8 NOTE</a></h1> + "#id87">8 NOTE</a></h1> <ul class="simple"> <li>controllare apache</li> diff --git a/source/servizi.txt b/source/servizi.txt index 61658b4..b980156 100644 --- a/source/servizi.txt +++ b/source/servizi.txt @@ -7,7 +7,7 @@ Appunti sulla installazione e configurazione dei servizi :Author: Andrea Manni :Copyright: GFDL - :Version: 0.6 + :Version: 0.7 Questa guida e' dedicata agli studenti delle lezioni di informatica tenute da Andrea nel lab208. Nella parte iniziale sono presenti alcuni richiami alle impostazioni di rete e di installazione del laboratorio 208 (lab208) dove generalmente si tengono le lezioni. Questi parametri non sono interessanti per chiunque si trovasse al di fuori della rete piffa.net . @@ -488,7 +488,8 @@ Con la release 2.0 di Apache viene automaticamente resa disponibile anche la ver Configurazione di Apache ---------------------------- -I file di configurazione di apache si trovano nella cartella: ``/etc/apache2`` e sono strutturati come descritto nel file ``/usr/share/doc/apache2/README.Debian.gz`` . Sostanzialmente lo schema e' il seguente: +I file di configurazione di apache si trovano nella cartella: ``/etc/apache2`` e sono strutturati come descritto nel file +``/usr/share/doc/apache2/README.Debian.gz`` . Sostanzialmente lo schema e' il seguente: apache2.conf File di configurazione principale del servizio. @@ -975,7 +976,7 @@ resolv.conf Il file ``/etc/resolv.conf`` contiene le impostazioni sul dns usato dal sistema, in genere anche altre applicazioni che devono effettuare query DNS leggono resolv.conf per conoscere l'ubicazione del DNS. -/etc/resolv.conf:: +/etc/resolv.conf: - ``nameserver``: indica il nameserver da utilizzare, indicato con l'indirizzo ip. @@ -1477,6 +1478,44 @@ iptables -L -n -v +Salvataggio regole +---------------------- + +Il comando ``iptables`` serve per interagire con il framework ``Netfilter`` ch gestisce il firewall di Linux al livello del kernel. Questo comporta, in modo analogo a quando avvene col comando ``ifconfig``, che i cambiameti impostati siano in *tempo reale, RAM*, non persistenti nel sistema: al boot sucessivo del sistema tutto tornera' alle impostazioni di base (in questo caso *nulle*, con policy di default settate su ``ACCEPT`` per tutto). + +Le varie invocazioni di iptables potrebbero essere richiamate da degli scripts dedicati, ma fortunatamente e' stata predisposta una apposita utility per gestire questi scripts in modo da avere a disposizione un *formato standard* per il salvataggio e il ripristino delle regole del firewall. + +Altro problema: decidere quando attivare / disattivare queste regole. Utilizzare i *runlevels* non e' una soluzione adeguata: le regole del firewall sono legate all'attivita' delle schede di rete (e un host con diverse schede di rete puo' attivarle a secondo delle esigenze di routing, partenza di servizi es file_sharing per un back-up...): il sistema operativo Debian permette di legare l'esecuzione di comandi alla attivazione di una device di rete (``up``), dopo la sua attivazione (``post-up``, utile per devices che richiedono un certo tempo per inizializzarsi: come un tunnel o una connessione punto a punto), prima della sua attivazione (``pre-up``). Allo stesso modo sono disponibili eventi analoghi per accompagnare la disattivazione dei device di rete: si veda la pagina man di ``interfaces``. + +Nel nostro caso avremo per una possibile scheda ``eth0``: + +``/etc/network/interfaces`` :: + + iface eth1 inet static + up /sbin/iptables-restore /root/firewall/basic_fw + # Seguno i soliti parametri della scheda di rete + address 10.10.208.21 + + +Iptables-save +~~~~~~~~~~~~~~~ + +Per salvare le regole di iptables attualmente presenti nel kernel si usi il comando:: + + # iptables-save >> /root/firewall/basic_fw + +Il contenuto del file dovrebbe essere *comprensibile*: sostanzialmente sono regole di iptables, senza il comando iptables ripetuto, suddivisi per le varie tabelle. Potete comunque correggere eventuali parametri con un edito di testo. + + +Se non avete un'idea migliore potreste voler tenere gli script dei firewall in una cartella ``~/firewall`` nella home directory dell'utente ``root``. + +Iptables-restore +~~~~~~~~~~~~~~~~~~~~ + +Per ripristinare un set di regole prcedentemente salvate con ``iptables-save`` si utilizzi ``iptables-restore``. Se questo deve essere fatto in modalita' *non interattiva*, ad esempio deve essere eseguito dal demone che si occupa di inizializzare le schede di rete, oppure un *cron* o altro, e' buona norma richiamare i percorsi completi sia dei comandi che dei file:: + + /sbin/iptables-restore /root/firewall/basic_fw + NOTE ======== -- 2.39.2