Bunch of SGML and typo fixes.
Submitted by: Alex Dupre <sysadmin@alexdupre.com> PR: docs/35430
This commit is contained in:
parent
4d56544381
commit
6ee948e76f
Notes:
svn2git
2020-12-08 03:00:23 +00:00
svn path=/head/; revision=12668
1 changed files with 219 additions and 207 deletions
|
@ -13,7 +13,6 @@
|
||||||
<author>
|
<author>
|
||||||
<firstname>Alex</firstname>
|
<firstname>Alex</firstname>
|
||||||
<surname>Dupre</surname>
|
<surname>Dupre</surname>
|
||||||
|
|
||||||
<affiliation>
|
<affiliation>
|
||||||
<address><email>sysadmin@alexdupre.com</email></address>
|
<address><email>sysadmin@alexdupre.com</email></address>
|
||||||
</affiliation>
|
</affiliation>
|
||||||
|
@ -24,17 +23,17 @@
|
||||||
|
|
||||||
<abstract>
|
<abstract>
|
||||||
<para>Spesso è utile dividere una rete fisica (come una Ethernet)
|
<para>Spesso è utile dividere una rete fisica (come una Ethernet)
|
||||||
in due segmenti separati, senza dover creare sottoreti e usare un router
|
in due segmenti separati, senza dover creare sottoreti e usare un router
|
||||||
per collegarli assieme. Il dispositivo che collega due reti insieme in
|
per collegarli assieme. Il dispositivo che collega due reti insieme in
|
||||||
questo modo è chiamato bridge. Un sistema FreeBSD con due
|
questo modo è chiamato bridge. Un sistema FreeBSD con due
|
||||||
interfacce di rete è sufficiente per raggiungere lo scopo.</para>
|
interfacce di rete è sufficiente per raggiungere lo scopo.</para>
|
||||||
|
|
||||||
<para>Un bridge funziona individuando gli indirizzi del livello MAC
|
<para>Un bridge funziona individuando gli indirizzi del livello
|
||||||
(indirizzi Ethernet) dei dispositivi collegati ad ognuna delle sue
|
<acronym>MAC</acronym> (indirizzi Ethernet) dei dispositivi collegati ad
|
||||||
interfacce di rete e inoltrando il traffico tra le due reti solo se il
|
ognuna delle sue interfacce di rete e inoltrando il traffico tra le due
|
||||||
mittente e il destinatario si trovano su segmenti differenti. Sotto
|
reti solo se il mittente e il destinatario si trovano su segmenti
|
||||||
molti punti di vista un brigde è simile a uno switch Ethernet con
|
differenti. Sotto molti punti di vista un brigde è simile a uno
|
||||||
solo due porte.</para>
|
switch Ethernet con solo due porte.</para>
|
||||||
</abstract>
|
</abstract>
|
||||||
</articleinfo>
|
</articleinfo>
|
||||||
|
|
||||||
|
@ -42,29 +41,29 @@
|
||||||
<title>Perchè usare un filtering bridge?</title>
|
<title>Perchè usare un filtering bridge?</title>
|
||||||
|
|
||||||
<para>Sempre più frequentemente, grazie all'abbassamento dei costi
|
<para>Sempre più frequentemente, grazie all'abbassamento dei costi
|
||||||
delle connessioni a banda larga (xDSL) e a causa della riduzione del numero
|
delle connessioni a banda larga (xDSL) e a causa della riduzione del
|
||||||
di indirizzi IPv4 disponibili, molte società si ritrovano collegate
|
numero di indirizzi IPv4 disponibili, molte società si ritrovano
|
||||||
ad Internet 24 ore su 24 e con un numero esiguo (a volte nemmeno una
|
collegate ad Internet 24 ore su 24 e con un numero esiguo (a volte nemmeno
|
||||||
potenza di 2) di indirizzi IP. In situazioni come queste spesso è
|
una potenza di 2) di indirizzi IP. In situazioni come queste spesso
|
||||||
desiderabile avere un firewall che regoli i permessi di ingresso e uscita
|
è desiderabile avere un firewall che regoli i permessi di ingresso
|
||||||
per il traffico da e verso Internet, ma una soluzione basata sulle
|
e uscita per il traffico da e verso Internet, ma una soluzione basata
|
||||||
funzionalità di packet filtering dei router può non essere
|
sulle funzionalità di packet filtering dei router può non
|
||||||
applicabile, vuoi per problemi di suddivisione delle sottoreti, vuoi
|
essere applicabile, vuoi per problemi di suddivisione delle sottoreti,
|
||||||
perchè il router è di proprietà del fornitore di
|
vuoi perchè il router è di proprietà del fornitore di
|
||||||
accesso (ISP), vuoi perchè il router non supporta tali
|
accesso (<acronym>ISP</acronym>), vuoi perchè il router non
|
||||||
funzionalità. E' in questi casi che l'utilizzo di un filtering bridge
|
supporta tali funzionalità. È in questi casi che l'utilizzo
|
||||||
diventa altamente consigliato.</para>
|
di un filtering bridge diventa altamente consigliato.</para>
|
||||||
|
|
||||||
<para>Un firewall basato su bridge può essere configurato e inserito
|
<para>Un firewall basato su bridge può essere configurato e inserito
|
||||||
direttamente tra il router xDSL e il vostro hub/switch Ethernet senza alcun
|
direttamente tra il router xDSL e il vostro hub/switch Ethernet senza
|
||||||
problema di assegnazione di indirizzi IP.</para>
|
alcun problema di assegnazione di indirizzi IP.</para>
|
||||||
|
|
||||||
<note>
|
<note>
|
||||||
<para>La traduzione italiana di "firewall" è "muro anti incendio",
|
<para>La traduzione italiana di "firewall" è "muro anti incendio",
|
||||||
<emphasis>non</emphasis> "muro di fuoco" come molti pensano. Nel corso
|
<emphasis>non</emphasis> "muro di fuoco" come molti pensano. Nel corso
|
||||||
dell'articolo, comunque, manterrò i termini tecnici nella loro
|
dell'articolo, comunque, manterrò i termini tecnici nella loro
|
||||||
lingua originale in modo da non creare confusione o
|
lingua originale in modo da non creare confusione o
|
||||||
ambiguità.</para>
|
ambiguità.</para>
|
||||||
</note>
|
</note>
|
||||||
</sect1>
|
</sect1>
|
||||||
|
|
||||||
|
@ -72,63 +71,66 @@
|
||||||
<title>Metodi d'installazione</title>
|
<title>Metodi d'installazione</title>
|
||||||
|
|
||||||
<para>Aggiungere le funzionalità di bridge a una macchina FreeBSD non
|
<para>Aggiungere le funzionalità di bridge a una macchina FreeBSD non
|
||||||
è difficile. Dalla release 4.5 è possibile caricare tali
|
è difficile. Dalla release 4.5 è possibile caricare tali
|
||||||
funzionalità come moduli anzichè dover ricompilare il kernel,
|
funzionalità come moduli anzichè dover ricompilare il
|
||||||
semplificando di gran lunga la procedura. Nelle prossime sottosezioni
|
kernel, semplificando di gran lunga la procedura. Nelle prossime
|
||||||
spiegherò entrambi i metodi di installazione.</para>
|
sottosezioni spiegherò entrambi i metodi di installazione.</para>
|
||||||
|
|
||||||
<important>
|
<important>
|
||||||
<para><emphasis>Non</emphasis> seguite entrambe le istruzioni: le
|
<para><emphasis>Non</emphasis> seguite entrambe le istruzioni: le
|
||||||
procedure sono <emphasis>a esclusione</emphasis>. Scegliete l'alternativa
|
procedure sono <emphasis>a esclusione</emphasis>. Scegliete
|
||||||
che meglio si adatta alle vostre esigenze e capacità.</para>
|
l'alternativa che meglio si adatta alle vostre esigenze e
|
||||||
|
capacità.</para>
|
||||||
</important>
|
</important>
|
||||||
|
|
||||||
<para>Prima di continuare è necessario assicurarsi di avere almeno
|
<para>Prima di continuare è necessario assicurarsi di avere almeno
|
||||||
due schede di rete Ethernet che supportino la modalità promiscua sia
|
due schede di rete Ethernet che supportino la modalità promiscua
|
||||||
in ricezione che in trasmissione, difatti devono essere in grado di inviare
|
sia in ricezione che in trasmissione, difatti devono essere in grado di
|
||||||
pacchetti Ethernet con qualunque indirizzo, non solo il loro. Inoltre, per
|
inviare pacchetti Ethernet con qualunque indirizzo, non solo il loro.
|
||||||
avere un buon rendimento, le schede dovrebbero essere di tipo PCI bus
|
Inoltre, per avere un buon rendimento, le schede dovrebbero essere di
|
||||||
mastering. Le scelte migliori sono ancora le Intel EtherExpress Pro seguite
|
tipo PCI bus mastering. Le scelte migliori sono ancora le Intel
|
||||||
dalle 3Com 3c9xx subito dopo. Per comodità nella configurazione del
|
EtherExpress Pro seguite dalle 3Com 3c9xx subito dopo. Per comodità
|
||||||
firewall può essere utile avere due schede di marche differenti (che
|
nella configurazione del firewall può essere utile avere due schede
|
||||||
usino drivers differenti) in modo da distinguere chiaramente quale
|
di marche differenti (che usino drivers differenti) in modo da distinguere
|
||||||
interfaccia sia collegata al router e quale alla rete interna.</para>
|
chiaramente quale interfaccia sia collegata al router e quale alla rete
|
||||||
|
interna.</para>
|
||||||
|
|
||||||
<sect2 id="filtering-bridges-kernel">
|
<sect2 id="filtering-bridges-kernel">
|
||||||
<title>Configurazione del Kernel</title>
|
<title>Configurazione del Kernel</title>
|
||||||
|
|
||||||
<para>Così avete deciso di utilizzare il piu' vecchio e collaudato
|
<para>Così avete deciso di utilizzare il più vecchio e
|
||||||
metodo di installazione. Per prima cosa bisogna aggiungere le seguenti
|
collaudato metodo di installazione. Per prima cosa bisogna aggiungere le
|
||||||
righe al file di configurazione del kernel:</para>
|
seguenti righe al file di configurazione del kernel:</para>
|
||||||
|
|
||||||
<programlisting>options BRIDGE
|
<programlisting>options BRIDGE
|
||||||
options IPFIREWALL
|
options IPFIREWALL
|
||||||
options IPFIREWALL_VERBOSE</programlisting>
|
options IPFIREWALL_VERBOSE</programlisting>
|
||||||
|
|
||||||
<para>La prima riga serve a compilare il supporto per il bridge, la
|
<para>La prima riga serve a compilare il supporto per il bridge, la
|
||||||
seconda il firewall e la terza le funzioni di logging del firewall.</para>
|
seconda il firewall e la terza le funzioni di logging del firewall.
|
||||||
|
</para>
|
||||||
|
|
||||||
<para>Adesso è necessario compilare e installare il nuovo kernel.
|
<para>Adesso è necessario compilare e installare il nuovo kernel.
|
||||||
Si possono trovare le istruzioni nella sezione <ulink
|
Si possono trovare le istruzioni nella sezione <ulink
|
||||||
url="../../../en_US.ISO8859-1/books/handbook/kernelconfig-building.html">
|
url="../../../en_US.ISO8859-1/books/handbook/kernelconfig-building.html">
|
||||||
Building and Installing a Custom Kernel</ulink> dell'handbook.</para>
|
Building and Installing a Custom Kernel</ulink> dell'handbook.</para>
|
||||||
</sect2>
|
</sect2>
|
||||||
|
|
||||||
<sect2 id="filtering-bridges-modules">
|
<sect2 id="filtering-bridges-modules">
|
||||||
<title>Caricamento dei Moduli</title>
|
<title>Caricamento dei Moduli</title>
|
||||||
|
|
||||||
<para>Se avete deciso di usare il nuovo e più semplice metodo di
|
<para>Se avete deciso di usare il nuovo e più semplice metodo di
|
||||||
installazione, l'unica cosa da fare è aggiungere la seguente riga
|
installazione, l'unica cosa da fare è aggiungere la seguente riga
|
||||||
al file <filename>/boot/loader.conf</filename>:</para>
|
al file <filename>/boot/loader.conf</filename>:</para>
|
||||||
|
|
||||||
<programlisting>bridge_load="YES"</programlisting>
|
<programlisting>bridge_load="YES"</programlisting>
|
||||||
|
|
||||||
<para>In questo modo all'avvio della macchina verrà caricato
|
<para>In questo modo all'avvio della macchina verrà caricato
|
||||||
insieme al kernel anche il modulo <filename>bridge.ko</filename>. Non
|
insieme al kernel anche il modulo <filename>bridge.ko</filename>. Non
|
||||||
è necessario invece aggiungere una riga per il modulo
|
è necessario invece aggiungere una riga per il modulo
|
||||||
<filename>ipfw.ko</filename> in quanto verrà caricato in automatico
|
<filename>ipfw.ko</filename> in quanto verrà caricato in
|
||||||
dallo script <filename>/etc/rc.network</filename> dopo aver seguito i
|
automatico dallo script <filename>/etc/rc.network</filename> dopo aver
|
||||||
passi della prossima sezione.</para>
|
seguito i passi della prossima sezione.</para>
|
||||||
</sect2>
|
</sect2>
|
||||||
</sect1>
|
</sect1>
|
||||||
|
|
||||||
|
@ -136,145 +138,153 @@ options IPFIREWALL_VERBOSE</programlisting>
|
||||||
<title>Preparativi finali</title>
|
<title>Preparativi finali</title>
|
||||||
|
|
||||||
<para>Prima di riavviare per caricare il nuovo kernel o i moduli richiesti
|
<para>Prima di riavviare per caricare il nuovo kernel o i moduli richiesti
|
||||||
(a seconda del metodo che avete scelto in precedenza), bisogna effettuare
|
(a seconda del metodo che avete scelto in precedenza), bisogna effettuare
|
||||||
alcune modifiche al file <filename>/etc/rc.conf</filename>. La regola di
|
alcune modifiche al file <filename>/etc/rc.conf</filename>. La regola di
|
||||||
default del firewall è di rifiutare tutti i pacchetti IP. Per
|
default del firewall è di rifiutare tutti i pacchetti IP. Per
|
||||||
iniziare attiviamo il firewall in modalità 'open', in modo da
|
iniziare attiviamo il firewall in modalità 'open', in modo da
|
||||||
verificare il suo funzionamento senza alcun problema di filtraggio pacchetti
|
verificare il suo funzionamento senza alcun problema di filtraggio pacchetti
|
||||||
(nel caso stiate eseguendo questa procedura da remoto, tale accorgimento vi
|
(nel caso stiate eseguendo questa procedura da remoto, tale accorgimento vi
|
||||||
consentirà di non rimanere erroneamente tagliati fuori dalla rete).
|
consentirà di non rimanere erroneamente tagliati fuori dalla rete).
|
||||||
Inserite queste linee nel file <filename>/etc/rc.conf</filename>:</para>
|
Inserite queste linee nel file <filename>/etc/rc.conf</filename>:</para>
|
||||||
|
|
||||||
<programlisting>firewall_enable="YES"
|
<programlisting>firewall_enable="YES"
|
||||||
firewall_type="open"
|
firewall_type="open"
|
||||||
firewall_quiet="YES"
|
firewall_quiet="YES"
|
||||||
firewall_logging="YES"</programlisting>
|
firewall_logging="YES"</programlisting>
|
||||||
|
|
||||||
<para>La prima riga serve ad attivare il firewall (e a caricare il modulo
|
<para>La prima riga serve ad attivare il firewall (e a caricare il modulo
|
||||||
<filename>ipfw.ko</filename> nel caso non fosse già compilato nel
|
<filename>ipfw.ko</filename> nel caso non fosse già compilato nel
|
||||||
kernel), la seconda a impostarlo in modalità 'open' (come descritto
|
kernel), la seconda a impostarlo in modalità 'open' (come descritto
|
||||||
nel file <filename>/etc/rc.firewall</filename>), la terza a non visualizzare
|
nel file <filename>/etc/rc.firewall</filename>), la terza a non
|
||||||
il caricamento delle regole e la quarta ad abilitare il supporto per il
|
visualizzare il caricamento delle regole e la quarta ad abilitare il
|
||||||
logging.</para>
|
supporto per il logging.</para>
|
||||||
|
|
||||||
<para>Per quanto riguarda la configurazione delle interfacce di rete, il
|
<para>Per quanto riguarda la configurazione delle interfacce di rete, il
|
||||||
metodo più utilizzato è quello di assegnare un IP a solo una
|
metodo più utilizzato è quello di assegnare un IP a solo una
|
||||||
delle schede di rete, ma il bridge funziona egualmente anche se entrambe o
|
delle schede di rete, ma il bridge funziona egualmente anche se entrambe o
|
||||||
nessuna delle interfacce ha IP settati. In quest'ultimo caso (IP-less) la
|
nessuna delle interfacce ha IP settati. In quest'ultimo caso (IP-less) la
|
||||||
macchina bridge sarà ancora più nascosta in quanto
|
macchina bridge sarà ancora più nascosta in quanto
|
||||||
inaccessibile dalla rete: per configurarla occorrerà quindi entrare
|
inaccessibile dalla rete: per configurarla occorrerà quindi entrare
|
||||||
da console o tramite una terza interfaccia di rete separata dal bridge. A
|
da console o tramite una terza interfaccia di rete separata dal bridge. A
|
||||||
volte all'avvio della macchina qualche programma richiede di accedere alla
|
volte all'avvio della macchina qualche programma richiede di accedere alla
|
||||||
rete, per esempio per una risoluzione di dominio: in questo caso è
|
rete, per esempio per una risoluzione di dominio: in questo caso è
|
||||||
necessario assegnare un IP all'interfaccia esterna (quella collegata a
|
necessario assegnare un IP all'interfaccia esterna (quella collegata a
|
||||||
Internet, dove risiede il server DNS), visto che il bridge verrà
|
Internet, dove risiede il server <acronym>DNS</acronym>), visto che il
|
||||||
attivato alla fine della procedura di avvio. Questo vuol dire che
|
bridge verrà attivato alla fine della procedura di avvio. Questo
|
||||||
l'interfaccia fxp0 (nel nostro caso) deve essere menzionata nella sezione
|
vuol dire che l'interfaccia <devicename>fxp0</devicename> (nel nostro
|
||||||
ifconfig del file <filename>/etc/rc.conf</filename>, mentre la xl0 no.
|
caso) deve essere menzionata nella sezione ifconfig del file
|
||||||
Assegnare IP a entrambe le schede di rete non ha molto senso, a meno che
|
<filename>/etc/rc.conf</filename>, mentre la <devicename>xl0</devicename>
|
||||||
durante la procedura di avvio non si debba accedere a servizi presenti su
|
no. Assegnare IP a entrambe le schede di rete non ha molto senso, a meno
|
||||||
entrambi i segmenti Ethernet.</para>
|
che durante la procedura di avvio non si debba accedere a servizi presenti
|
||||||
|
su entrambi i segmenti Ethernet.</para>
|
||||||
|
|
||||||
<para>C'è un'altra cosa importante da sapere. Quando si utilizza IP
|
<para>C'è un'altra cosa importante da sapere. Quando si utilizza IP
|
||||||
sopra Ethernet ci sono due protocolli Ethernet in uso: uno è IP,
|
sopra Ethernet ci sono due protocolli Ethernet in uso: uno è IP,
|
||||||
l'altro è ARP. ARP permette la conversione dell'indirizzo IP di una
|
l'altro è <acronym>ARP</acronym>. <acronym>ARP</acronym> permette
|
||||||
macchina nel suo indirizzo Ethernet (livello MAC). Affinchè due
|
la conversione dell'indirizzo IP di una macchina nel suo indirizzo
|
||||||
macchine separate dal bridge riescano a comunicare tra loro è
|
Ethernet (livello <acronym>MAC</acronym>). Affinchè due macchine
|
||||||
necessario che il bridge lasci passare i pacchetti ARP. Tale protocollo non
|
separate dal bridge riescano a comunicare tra loro è necessario che
|
||||||
fa parte del livello IP, visto che è presente solo con IP sopra
|
il bridge lasci passare i pacchetti <acronym>ARP</acronym>. Tale
|
||||||
Ethernet. Il firewall di FreeBSD agisce esclusivamente sul livello IP e
|
protocollo non fa parte del livello IP, visto che è presente solo
|
||||||
quindi tutti i pacchetti non IP (compreso ARP) verranno inoltrati senza
|
con IP sopra Ethernet. Il firewall di FreeBSD agisce esclusivamente sul
|
||||||
essere filtrati, anche se il firewall è configurato per non lasciar
|
livello IP e quindi tutti i pacchetti non IP (compreso
|
||||||
passare nulla.</para>
|
<acronym>ARP</acronym>) verranno inoltrati senza essere filtrati, anche se
|
||||||
|
il firewall è configurato per non lasciar passare nulla.</para>
|
||||||
|
|
||||||
<para>Ora è arrivato il momento di riavviare la macchina e usarla
|
<para>Ora è arrivato il momento di riavviare la macchina e usarla
|
||||||
come in precedenza: appariranno dei nuovi messaggi riguardo al bridge e al
|
come in precedenza: appariranno dei nuovi messaggi riguardo al bridge e al
|
||||||
firewall, ma il bridge non sarà attivato e il firewall, essendo in
|
firewall, ma il bridge non sarà attivato e il firewall, essendo in
|
||||||
modalità 'open', non impedirà nessuna operazione.</para>
|
modalità 'open', non impedirà nessuna operazione.</para>
|
||||||
|
|
||||||
<para>Se ci dovessero essere dei problemi, è il caso di scoprire ora
|
<para>Se ci dovessero essere dei problemi, è il caso di scoprire ora
|
||||||
da cosa derivino e risolverli prima di continuare.</para>
|
da cosa derivino e risolverli prima di continuare.</para>
|
||||||
</sect1>
|
</sect1>
|
||||||
|
|
||||||
<sect1 id="filtering-bridges-enabling">
|
<sect1 id="filtering-bridges-enabling">
|
||||||
<title>Attivazione del Bridge</title>
|
<title>Attivazione del Bridge</title>
|
||||||
|
|
||||||
<para>A questo punto, per attivare il bridge, bisogna eseguire i seguenti
|
<para>A questo punto, per attivare il bridge, bisogna eseguire i seguenti
|
||||||
comandi (avendo l'accortezza di sostituire i nomi delle due interfacce di
|
comandi (avendo l'accortezza di sostituire i nomi delle due interfacce di
|
||||||
rete fxp0 e xl0 con i propri):</para>
|
rete <devicename>fxp0</devicename> e <devicename>xl0</devicename> con i
|
||||||
|
propri):</para>
|
||||||
|
|
||||||
<screen>&prompt.root; <userinput>sysctl net.link.ether.bridge_cfg=fxp0:0,xl0:0</userinput>
|
<screen>&prompt.root; <userinput>sysctl net.link.ether.bridge_cfg=fxp0:0,xl0:0</userinput>
|
||||||
&prompt.root; <userinput>sysctl net.link.ether.bridge_ipfw=1</userinput>
|
&prompt.root; <userinput>sysctl net.link.ether.bridge_ipfw=1</userinput>
|
||||||
&prompt.root; <userinput>sysctl net.link.ether.bridge=1</userinput></screen>
|
&prompt.root; <userinput>sysctl net.link.ether.bridge=1</userinput></screen>
|
||||||
|
|
||||||
<para>La prima riga specifica tra quali interfacce va attivato il bridge,
|
<para>La prima riga specifica tra quali interfacce va attivato il bridge,
|
||||||
la seconda abilita il firewall sul bridge ed infine la terza attiva il
|
la seconda abilita il firewall sul bridge ed infine la terza attiva il
|
||||||
bridge.</para>
|
bridge.</para>
|
||||||
|
|
||||||
<para>A questo punto dovrebbe essere possibile inserire la macchina tra
|
<para>A questo punto dovrebbe essere possibile inserire la macchina tra
|
||||||
due gruppi di host senza che venga compromessa qualsiasi possibilità
|
due gruppi di host senza che venga compromessa qualsiasi
|
||||||
di comunicazione tra di loro. Se è così, il prossimo passo
|
possibilità di comunicazione tra di loro. Se è così,
|
||||||
è quello di aggiungere le parti net.link.ether.[blah]=[blah] di
|
il prossimo passo è quello di aggiungere le parti
|
||||||
queste righe al file <filename>/etc/sysctl.conf</filename>, in modo che
|
<literal>net.link.ether.<replaceable>[blah]</replaceable>=<replaceable>[blah]</replaceable></literal>
|
||||||
vengano eseguite all'avvio della macchina.</para>
|
di queste righe al file <filename>/etc/sysctl.conf</filename>, in modo che
|
||||||
|
vengano eseguite all'avvio della macchina.</para>
|
||||||
</sect1>
|
</sect1>
|
||||||
|
|
||||||
<sect1 id="filtering-bridges-ipfirewall">
|
<sect1 id="filtering-bridges-ipfirewall">
|
||||||
<title>Configurazione del Firewall</title>
|
<title>Configurazione del Firewall</title>
|
||||||
|
|
||||||
<para>Ora è arrivato il momento di creare il proprio file con le
|
<para>Ora è arrivato il momento di creare il proprio file con le
|
||||||
regole per il firewall, in modo da rendere sicura la rete interna. Ci sono
|
regole per il firewall, in modo da rendere sicura la rete interna. Ci sono
|
||||||
delle complicazioni nel fare questo, perchè non tutte le
|
delle complicazioni nel fare questo, perchè non tutte le
|
||||||
funzionalità del firewall sono disponibili sui pacchetti inoltrati
|
funzionalità del firewall sono disponibili sui pacchetti inoltrati
|
||||||
dal bridge. Inoltre, c'è una differenza tra i pacchetti che stanno
|
dal bridge. Inoltre, c'è una differenza tra i pacchetti che stanno
|
||||||
per essere inoltrati dal bridge e quelli indirizzati alla macchina locale.
|
per essere inoltrati dal bridge e quelli indirizzati alla macchina locale.
|
||||||
In generale, i pacchetti che entrano nel bridge vengono processati dal
|
In generale, i pacchetti che entrano nel bridge vengono processati dal
|
||||||
firewall solo una volta, non due come al solito; infatti vengono filtrati
|
firewall solo una volta, non due come al solito; infatti vengono filtrati
|
||||||
solo in ingresso, quindi qualsiasi regola che usi 'out' oppure 'xmit' non
|
solo in ingresso, quindi qualsiasi regola che usi 'out' oppure 'xmit' non
|
||||||
verrà mai eseguita. Personalmente uso 'in via' che è una
|
verrà mai eseguita. Personalmente uso 'in via' che è una
|
||||||
sintassi più antica, ma che ha un senso quando la si legge. Un'altra
|
sintassi più antica, ma che ha un senso quando la si legge.
|
||||||
limitazione è che si possono usare solo i comandi 'pass' e 'drop' per
|
Un'altra limitazione è che si possono usare solo i comandi 'pass' e
|
||||||
i pacchetti filtrati dal bridge. Cose avanzate come 'divert', 'forward' o
|
'drop' per i pacchetti filtrati dal bridge. Cose avanzate come 'divert',
|
||||||
'reject' non sono disponibili. Queste opzioni possono ancora essere usate,
|
'forward' o 'reject' non sono disponibili. Queste opzioni possono ancora
|
||||||
ma solo per il traffico da e verso la macchina bridge stessa (sempre che le
|
essere usate, ma solo per il traffico da e verso la macchina bridge stessa
|
||||||
sia stato assegnato un IP).</para>
|
(sempre che le sia stato assegnato un IP).</para>
|
||||||
|
|
||||||
<para>Nuovo in FreeBSD 4.0 è il concetto di stateful filtering.
|
<para>Nuovo in FreeBSD 4.0 è il concetto di stateful filtering.
|
||||||
Questo è un grande miglioramento per il traffico UDP, che consiste
|
Questo è un grande miglioramento per il traffico
|
||||||
tipicamente di una richiesta in uscita, seguita a breve termine da una
|
<acronym>UDP</acronym>, che consiste tipicamente di una richiesta in
|
||||||
risposta con la stessa coppia di indirizzi IP e numeri di porta (ma con
|
uscita, seguita a breve termine da una risposta con la stessa coppia di
|
||||||
mittente e destinatario invertiti, ovviamente). Per i firewall che non
|
indirizzi IP e numeri di porta (ma con mittente e destinatario invertiti,
|
||||||
supportano il mantenimento di stato, non c'è modo di gestire questo
|
ovviamente). Per i firewall che non supportano il mantenimento di stato,
|
||||||
breve scambio di dati come una sessione unica. Ma con un firewall che
|
non c'è modo di gestire questo breve scambio di dati come una
|
||||||
può "ricordarsi" di un pacchetto UDP in uscita e permette una
|
sessione unica. Ma con un firewall che può "ricordarsi" di un
|
||||||
risposta nei minuti successivi, gestire i servizi UDP è semplice.
|
pacchetto <acronym>UDP</acronym> in uscita e permette una risposta nei
|
||||||
L'esempio seguente mostra come fare. La stessa cosa è possibile farla
|
minuti successivi, gestire i servizi <acronym>UDP</acronym> è
|
||||||
con i pacchetti TCP. Questo permette di evitare qualche tipo di attacco
|
semplice. L'esempio seguente mostra come fare. La stessa cosa è
|
||||||
denial of service e altri sporchi trucchi, ma tipicamente fa anche crescere
|
possibile farla con i pacchetti <acronym>TCP</acronym>. Questo permette di
|
||||||
velocemente la tabella di stato.</para>
|
evitare qualche tipo di attacco denial of service e altri sporchi trucchi,
|
||||||
|
ma tipicamente fa anche crescere velocemente la tabella di stato.</para>
|
||||||
|
|
||||||
<para>Vediamo un esempio di configurazione. Bisogna notare che all'inizio
|
<para>Vediamo un esempio di configurazione. Bisogna notare che all'inizio
|
||||||
del file <filename>/etc/rc.firewall</filename> ci sono già delle
|
del file <filename>/etc/rc.firewall</filename> ci sono già delle
|
||||||
regole standard per l'interfaccia di loopback (lo0), quindi non ce ne
|
regole standard per l'interfaccia di loopback
|
||||||
occuperemo più ora. Le regole personalizzate andrebbero messe in un
|
<devicename>lo0</devicename>, quindi non ce ne occuperemo più ora.
|
||||||
file a parte (per esempio <filename>/etc/rc.firewall.local</filename>) e
|
Le regole personalizzate andrebbero messe in un file a parte (per esempio
|
||||||
caricate all'avvio modificando la riga del file
|
<filename>/etc/rc.firewall.local</filename>) e caricate all'avvio
|
||||||
<filename>/etc/rc.conf</filename> dove era stata definita la modalità
|
modificando la riga del file <filename>/etc/rc.conf</filename> dove era
|
||||||
'open' con:</para>
|
stata definita la modalità 'open' con:</para>
|
||||||
|
|
||||||
<programlisting>firewall_type="/etc/rc.firewall.local"</programlisting>
|
<programlisting>firewall_type="/etc/rc.firewall.local"</programlisting>
|
||||||
|
|
||||||
<important><para>Bisogna specificare il path <emphasis>completo</emphasis>
|
<important>
|
||||||
del file, altrimenti non verrà caricato con il rischio di rimanere
|
<para>Bisogna specificare il path <emphasis>completo</emphasis>
|
||||||
tagliati fuori dalla rete.</para></important>
|
del file, altrimenti non verrà caricato con il rischio di
|
||||||
|
rimanere tagliati fuori dalla rete.</para>
|
||||||
|
</important>
|
||||||
|
|
||||||
<para>Per il nostro esempio immaginiamo di avere l'interfaccia fxp0
|
<para>Per il nostro esempio immaginiamo di avere l'interfaccia
|
||||||
collegata all'esterno (Internet) e la xl0 verso l'interno (LAN). La macchina
|
<devicename>fxp0</devicename> collegata all'esterno (Internet) e la
|
||||||
bridge ha assegnato l'IP 1.2.3.4 (è impossibile che il vostro ISP vi
|
<devicename>xl0</devicename> verso l'interno (<acronym>LAN</acronym>). La
|
||||||
assegni un indirizzo di classe A di questo tipo, ma per l'esempio va
|
macchina bridge ha assegnato l'IP <hostid role="ipaddr">1.2.3.4</hostid>
|
||||||
bene).</para>
|
(è impossibile che il vostro <acronym>ISP</acronym> vi assegni un
|
||||||
|
indirizzo di classe A di questo tipo, ma per l'esempio va bene).</para>
|
||||||
|
|
||||||
<programlisting># Le connessioni di cui abbiamo mantenuto lo stato vengono fatte passare subito
|
<programlisting># Le connessioni di cui abbiamo mantenuto lo stato vengono fatte passare subito
|
||||||
add check-state
|
add check-state
|
||||||
|
|
||||||
# Esclude le reti locali definite nell'RFC 1918
|
# Esclude le reti locali definite nell'RFC 1918
|
||||||
|
@ -298,9 +308,9 @@ add pass ip from any to any in via xl0
|
||||||
add pass tcp from any to any 22 in via fxp0 setup keep-state
|
add pass tcp from any to any 22 in via fxp0 setup keep-state
|
||||||
# Permette SMTP solo verso il mail server
|
# Permette SMTP solo verso il mail server
|
||||||
add pass tcp from any to relay 25 in via fxp0 setup keep-state
|
add pass tcp from any to relay 25 in via fxp0 setup keep-state
|
||||||
# Permette i trasferimenti di zona solo dal name server secondario
|
# Permette i trasferimenti di zona solo dal name server secondario [dns2.nic.it]
|
||||||
add pass tcp from 193.205.245.8 to ns 53 in via fxp0 setup keep-state
|
add pass tcp from 193.205.245.8 to ns 53 in via fxp0 setup keep-state
|
||||||
# Lascia passare le richieste ident: è meglio piuttosto che aspettare che vadano in timeout
|
# Lascia passare i controlli ident: è meglio che aspettare che vadano andare in timeout
|
||||||
add pass tcp from any to any 113 in via fxp0 setup keep-state
|
add pass tcp from any to any 113 in via fxp0 setup keep-state
|
||||||
# Permette connessioni nel range di "quarantena".
|
# Permette connessioni nel range di "quarantena".
|
||||||
add pass tcp from any to any 49152-65535 in via fxp0 setup keep-state
|
add pass tcp from any to any 49152-65535 in via fxp0 setup keep-state
|
||||||
|
@ -322,70 +332,72 @@ add pass icmp from any to any icmptypes 11
|
||||||
add drop log all from any to any</programlisting>
|
add drop log all from any to any</programlisting>
|
||||||
|
|
||||||
<para>Coloro che hanno configurato un firewall in precedenza potrebbero aver
|
<para>Coloro che hanno configurato un firewall in precedenza potrebbero aver
|
||||||
notato che manca qualcosa. In particolare, non ci sono regole contro lo
|
notato che manca qualcosa. In particolare, non ci sono regole contro lo
|
||||||
spoofing, difatti <emphasis>non</emphasis> abbiamo aggiunto:</para>
|
spoofing, difatti <emphasis>non</emphasis> abbiamo aggiunto:</para>
|
||||||
|
|
||||||
<programlisting>add deny all from 1.2.3.4/8 to any in via fxp0</programlisting>
|
<programlisting>add deny all from 1.2.3.4/8 to any in via fxp0</programlisting>
|
||||||
|
|
||||||
<para>Ovvero, non far entrare dall'esterno pacchetti che affermano di venire
|
<para>Ovvero, non far entrare dall'esterno pacchetti che affermano di venire
|
||||||
dalla rete interna. Questa è una cosa che solitamente viene fatta per
|
dalla rete interna. Questa è una cosa che solitamente viene fatta
|
||||||
essere sicuri che qualcuno non provi a eludere il packet filter, generando
|
per essere sicuri che qualcuno non provi a eludere il packet filter,
|
||||||
falsi pacchetti che sembrano venire dall'interno. Il problema è che
|
generando falsi pacchetti che sembrano venire dall'interno. Il problema
|
||||||
c'è <emphasis>almeno</emphasis> un host sull'interfaccia esterna che
|
è che c'è <emphasis>almeno</emphasis> un host
|
||||||
non si può ignorare: il router. Solitamente, però, gli ISP
|
sull'interfaccia esterna che non si può ignorare: il router.
|
||||||
eseguono il controllo anti-spoof sui loro router e quindi non ce ne dobbiamo
|
Solitamente, però, gli <acronym>ISP</acronym> eseguono il controllo
|
||||||
preoccupare.</para>
|
anti-spoof sui loro router e quindi non ce ne dobbiamo preoccupare.</para>
|
||||||
|
|
||||||
<para>L'ultima riga sembra un duplicato della regola di default, ovvero non
|
<para>L'ultima riga sembra un duplicato della regola di default, ovvero non
|
||||||
far passare nulla che non sia stato specificatamente permesso. In
|
far passare nulla che non sia stato specificatamente permesso. In
|
||||||
verità c'è una differenza: tutto il traffico sospetto
|
verità c'è una differenza: tutto il traffico sospetto
|
||||||
verrà loggato.</para>
|
verrà loggato.</para>
|
||||||
|
|
||||||
<para>Ci sono due regole per permettere il traffico SMTP e DNS verso il mail
|
<para>Ci sono due regole per permettere il traffico <acronym>SMTP</acronym>
|
||||||
server e il name server, se ne avete. Ovviamente l'intero set di regole deve
|
e <acronym>DNS</acronym> verso il mail server e il name server, se ne
|
||||||
essere personalizzato per le proprie esigenze, questo non è altro che
|
avete. Ovviamente l'intero set di regole deve essere personalizzato
|
||||||
uno specifico esempio (il formato delle regole è spiegato
|
per le proprie esigenze, questo non è altro che uno specifico
|
||||||
dettagliatamente nella man page &man.ipfw.8;). Bisogna notare che,
|
esempio (il formato delle regole è spiegato dettagliatamente nella
|
||||||
affinchè 'relay' e 'ns' siano interpretati correttamente, la
|
man page &man.ipfw.8;). Bisogna notare che, affinchè 'relay' e 'ns'
|
||||||
risoluzione dei nomi deve funzionare PRIMA che il bridge sia attivato.
|
siano interpretati correttamente, la risoluzione dei nomi deve funzionare
|
||||||
Questo è un chiaro esempio che dimostra l'importanza di settare l'IP
|
<emphasis>prima</emphasis> che il bridge sia attivato. Questo è un
|
||||||
sulla corretta scheda di rete. In alternativa è possibile specificare
|
chiaro esempio che dimostra l'importanza di settare l'IP sulla corretta
|
||||||
direttamente l'indirizzo IP anzichè il nome host (cosa necessaria se
|
scheda di rete. In alternativa è possibile specificare direttamente
|
||||||
la macchina è IP-less).</para>
|
l'indirizzo IP anzichè il nome host (cosa necessaria se la macchina
|
||||||
|
è IP-less).</para>
|
||||||
|
|
||||||
<para>Le persone che sono solite configurare un firewall probabilmente
|
<para>Le persone che sono solite configurare un firewall probabilmente
|
||||||
avranno sempre usato una regola 'reset' o 'forward' per i pacchetti
|
avranno sempre usato una regola 'reset' o 'forward' per i pacchetti
|
||||||
ident (porta 113 TCP). Sfortunatamente, questa non è una scelta
|
ident (porta 113 <acronym>TCP</acronym>). Sfortunatamente, questa non
|
||||||
applicabile con il bridge, quindi la cosa migliore è lasciarli
|
è una scelta applicabile con il bridge, quindi la cosa migliore
|
||||||
passare fino alla destinazione. Finchè la macchina di destinazione
|
è lasciarli passare fino alla destinazione. Finchè la
|
||||||
non ha un demone ident attivo, questa tecnica è relativamente
|
macchina di destinazione non ha un demone ident attivo, questa tecnica
|
||||||
sicura. L'alternativa è proibire le connessioni sulla porta 113,
|
è relativamente sicura. L'alternativa è proibire le
|
||||||
creando qualche problema con servizi tipo IRC (le richieste ident devono
|
connessioni sulla porta 113, creando qualche problema con servizi tipo
|
||||||
andare in timeout).</para>
|
<acronym>IRC</acronym> (le richieste ident devono andare in
|
||||||
|
timeout).</para>
|
||||||
|
|
||||||
<para>L'unica altra cosa un po' particolare che potete aver notato è
|
<para>L'unica altra cosa un po' particolare che potete aver notato è
|
||||||
che c'è una regola per lasciar comunicare la macchina bridge e
|
che c'è una regola per lasciar comunicare la macchina bridge e
|
||||||
un'altra per gli host della rete interna. Ricordate che questo è
|
un'altra per gli host della rete interna. Ricordate che questo è
|
||||||
dovuto al fatto che i due tipi di traffico prendono percorsi differenti
|
dovuto al fatto che i due tipi di traffico prendono percorsi differenti
|
||||||
attraverso il kernel e di conseguenza anche dentro il packet filter. La
|
attraverso il kernel e di conseguenza anche dentro il packet filter. La
|
||||||
rete interna passerà attraverso il bridge, mentre la macchina
|
rete interna passerà attraverso il bridge, mentre la macchina
|
||||||
locale userà il normale stack IP per le connessioni. Perciò
|
locale userà il normale stack IP per le connessioni. Perciò
|
||||||
due regole per gestire due casi differenti. Le regole 'in via fxp0'
|
due regole per gestire due casi differenti. Le regole 'in via
|
||||||
funzionano in entrambi i casi. In generale, se usate regole 'in via'
|
<devicename>fxp0</devicename>' funzionano in entrambi i casi. In generale,
|
||||||
attraverso il packet filter, dovrete fare un'eccezione per i pacchetti
|
se usate regole 'in via' attraverso il packet filter, dovrete fare
|
||||||
generati localmente, in quanto non entrano tramite nessuna
|
un'eccezione per i pacchetti generati localmente, in quanto non entrano
|
||||||
interfaccia.</para>
|
tramite nessuna interfaccia.</para>
|
||||||
</sect1>
|
</sect1>
|
||||||
|
|
||||||
<sect1 id="filtering-bridges-contributors">
|
<sect1 id="filtering-bridges-contributors">
|
||||||
<title>Contributi</title>
|
<title>Contributi</title>
|
||||||
|
|
||||||
<para>Alcune parti di questo articolo sono state prese, tradotte e
|
<para>Alcune parti di questo articolo sono state prese, tradotte e
|
||||||
adattate da testi sui bridge, appartenenti alla documentazione di FreeBSD
|
adattate da testi sui bridge, appartenenti alla documentazione di FreeBSD
|
||||||
in lingua inglese, a cura di Nick Sayer e Steve Peterson.</para>
|
in lingua inglese, a cura di Nick Sayer e Steve Peterson.</para>
|
||||||
|
|
||||||
<para>Un grosso ringraziamento va a Luigi Rizzo per l'implementazione
|
<para>Un grosso ringraziamento va a Luigi Rizzo per l'implementazione
|
||||||
delle funzionalità di bridging in FreeBSD e per il tempo che mi ha
|
delle funzionalità di bridging in FreeBSD e per il tempo che mi ha
|
||||||
dedicato rispondendo ad alcune mie domande a riguardo.</para>
|
dedicato rispondendo ad alcune mie domande a riguardo.</para>
|
||||||
</sect1>
|
</sect1>
|
||||||
</article>
|
</article>
|
Loading…
Reference in a new issue