|
Lines 24-38
Link Here
|
| 24 |
<abstract> |
24 |
<abstract> |
| 25 |
<para>Spesso è utile dividere una rete fisica (come una Ethernet) |
25 |
<para>Spesso è utile dividere una rete fisica (come una Ethernet) |
| 26 |
in due segmenti separati, senza dover creare sottoreti e usare un router |
26 |
in due segmenti separati, senza dover creare sottoreti e usare un router |
| 27 |
per collegarli assieme. Il dispositivo che collega due reti insieme in |
27 |
per collegarli assieme. Il dispositivo che collega due reti insieme in |
| 28 |
questo modo è chiamato bridge. Un sistema FreeBSD con due |
28 |
questo modo è chiamato bridge. Un sistema FreeBSD con due |
| 29 |
interfacce di rete è sufficiente per raggiungere lo scopo.</para> |
29 |
interfacce di rete è sufficiente per raggiungere lo scopo.</para> |
| 30 |
|
30 |
|
| 31 |
<para>Un bridge funziona individuando gli indirizzi del livello |
31 |
<para>Un bridge funziona individuando gli indirizzi del livello |
| 32 |
<acronym>MAC</acronym> (indirizzi Ethernet) dei dispositivi collegati ad |
32 |
<acronym>MAC</acronym> (indirizzi Ethernet) dei dispositivi collegati ad |
| 33 |
ognuna delle sue interfacce di rete e inoltrando il traffico tra le due |
33 |
ognuna delle sue interfacce di rete e inoltrando il traffico tra le due |
| 34 |
reti solo se il mittente e il destinatario si trovano su segmenti |
34 |
reti solo se il mittente e il destinatario si trovano su segmenti |
| 35 |
differenti. Sotto molti punti di vista un brigde è simile a uno |
35 |
differenti. Sotto molti punti di vista un brigde è simile a uno |
| 36 |
switch Ethernet con solo due porte.</para> |
36 |
switch Ethernet con solo due porte.</para> |
| 37 |
</abstract> |
37 |
</abstract> |
| 38 |
</articleinfo> |
38 |
</articleinfo> |
|
Lines 44-57
Link Here
|
| 44 |
delle connessioni a banda larga (xDSL) e a causa della riduzione del |
44 |
delle connessioni a banda larga (xDSL) e a causa della riduzione del |
| 45 |
numero di indirizzi IPv4 disponibili, molte società si ritrovano |
45 |
numero di indirizzi IPv4 disponibili, molte società si ritrovano |
| 46 |
collegate ad Internet 24 ore su 24 e con un numero esiguo (a volte nemmeno |
46 |
collegate ad Internet 24 ore su 24 e con un numero esiguo (a volte nemmeno |
| 47 |
una potenza di 2) di indirizzi IP. In situazioni come queste spesso |
47 |
una potenza di 2) di indirizzi IP. In situazioni come queste spesso |
| 48 |
è desiderabile avere un firewall che regoli i permessi di ingresso |
48 |
è desiderabile avere un firewall che regoli i permessi di ingresso |
| 49 |
e uscita per il traffico da e verso Internet, ma una soluzione basata |
49 |
e uscita per il traffico da e verso Internet, ma una soluzione basata |
| 50 |
sulle funzionalità di packet filtering dei router può non |
50 |
sulle funzionalità di packet filtering dei router può non |
| 51 |
essere applicabile, vuoi per problemi di suddivisione delle sottoreti, |
51 |
essere applicabile, vuoi per problemi di suddivisione delle sottoreti, |
| 52 |
vuoi perché il router è di proprietà del fornitore di |
52 |
vuoi perché il router è di proprietà del fornitore di |
| 53 |
accesso (<acronym>ISP</acronym>), vuoi perché il router non |
53 |
accesso (<acronym>ISP</acronym>), vuoi perché il router non |
| 54 |
supporta tali funzionalità. È in questi casi che l'utilizzo |
54 |
supporta tali funzionalità. È in questi casi che l'utilizzo |
| 55 |
di un filtering bridge diventa altamente consigliato.</para> |
55 |
di un filtering bridge diventa altamente consigliato.</para> |
| 56 |
|
56 |
|
| 57 |
<para>Un firewall basato su bridge può essere configurato e inserito |
57 |
<para>Un firewall basato su bridge può essere configurato e inserito |
|
Lines 60-66
Link Here
|
| 60 |
|
60 |
|
| 61 |
<note> |
61 |
<note> |
| 62 |
<para>La traduzione italiana di "firewall" è "muro anti incendio", |
62 |
<para>La traduzione italiana di "firewall" è "muro anti incendio", |
| 63 |
<emphasis>non</emphasis> "muro di fuoco" come molti pensano. Nel corso |
63 |
<emphasis>non</emphasis> "muro di fuoco" come molti pensano. Nel corso |
| 64 |
dell'articolo, comunque, manterrò i termini tecnici nella loro |
64 |
dell'articolo, comunque, manterrò i termini tecnici nella loro |
| 65 |
lingua originale in modo da non creare confusione o |
65 |
lingua originale in modo da non creare confusione o |
| 66 |
ambiguità.</para> |
66 |
ambiguità.</para> |
|
Lines 71-84
Link Here
|
| 71 |
<title>Metodi d'installazione</title> |
71 |
<title>Metodi d'installazione</title> |
| 72 |
|
72 |
|
| 73 |
<para>Aggiungere le funzionalità di bridge a una macchina FreeBSD non |
73 |
<para>Aggiungere le funzionalità di bridge a una macchina FreeBSD non |
| 74 |
è difficile. Dalla release 4.5 è possibile caricare tali |
74 |
è difficile. Dalla release 4.5 è possibile caricare tali |
| 75 |
funzionalità come moduli anziché dover ricompilare il |
75 |
funzionalità come moduli anziché dover ricompilare il |
| 76 |
kernel, semplificando di gran lunga la procedura. Nelle prossime |
76 |
kernel, semplificando di gran lunga la procedura. Nelle prossime |
| 77 |
sottosezioni spiegherò entrambi i metodi di installazione.</para> |
77 |
sottosezioni spiegherò entrambi i metodi di installazione.</para> |
| 78 |
|
78 |
|
| 79 |
<important> |
79 |
<important> |
| 80 |
<para><emphasis>Non</emphasis> seguite entrambe le istruzioni: le |
80 |
<para><emphasis>Non</emphasis> seguite entrambe le istruzioni: le |
| 81 |
procedure sono <emphasis>a esclusione</emphasis>. Scegliete |
81 |
procedure sono <emphasis>a esclusione</emphasis>. Scegliete |
| 82 |
l'alternativa che meglio si adatta alle vostre esigenze e |
82 |
l'alternativa che meglio si adatta alle vostre esigenze e |
| 83 |
capacità.</para> |
83 |
capacità.</para> |
| 84 |
</important> |
84 |
</important> |
|
Lines 88-114
Link Here
|
| 88 |
sia in ricezione che in trasmissione, difatti devono essere in grado di |
88 |
sia in ricezione che in trasmissione, difatti devono essere in grado di |
| 89 |
inviare pacchetti Ethernet con qualunque indirizzo, non solo il loro. |
89 |
inviare pacchetti Ethernet con qualunque indirizzo, non solo il loro. |
| 90 |
Inoltre, per avere un buon rendimento, le schede dovrebbero essere di |
90 |
Inoltre, per avere un buon rendimento, le schede dovrebbero essere di |
| 91 |
tipo PCI bus mastering. Le scelte migliori sono ancora le Intel |
91 |
tipo PCI bus mastering. Le scelte migliori sono ancora le Intel |
| 92 |
EtherExpress Pro seguite dalle 3Com 3c9xx subito dopo. Per comodità |
92 |
EtherExpress Pro seguite dalle 3Com 3c9xx subito dopo. Per |
| 93 |
nella configurazione del firewall può essere utile avere due schede |
93 |
comodità nella configurazione del firewall può essere utile |
| 94 |
di marche differenti (che usino drivers differenti) in modo da distinguere |
94 |
avere due schede di marche differenti (che usino drivers differenti) in |
| 95 |
chiaramente quale interfaccia sia collegata al router e quale alla rete |
95 |
modo da distinguere chiaramente quale interfaccia sia collegata al router |
| 96 |
interna.</para> |
96 |
e quale alla rete interna.</para> |
| 97 |
|
97 |
|
| 98 |
<sect2 id="filtering-bridges-kernel"> |
98 |
<sect2 id="filtering-bridges-kernel"> |
| 99 |
<title>Configurazione del Kernel</title> |
99 |
<title>Configurazione del Kernel</title> |
| 100 |
|
100 |
|
| 101 |
<para>Così avete deciso di utilizzare il più vecchio e |
101 |
<para>Così avete deciso di utilizzare il più vecchio e |
| 102 |
collaudato metodo di installazione. Per prima cosa bisogna aggiungere le |
102 |
collaudato metodo di installazione. Per prima cosa bisogna aggiungere |
| 103 |
seguenti righe al file di configurazione del kernel:</para> |
103 |
le seguenti righe al file di configurazione del kernel:</para> |
| 104 |
|
104 |
|
| 105 |
<programlisting>options BRIDGE |
105 |
<programlisting>options BRIDGE |
| 106 |
options IPFIREWALL |
106 |
options IPFIREWALL |
| 107 |
options IPFIREWALL_VERBOSE</programlisting> |
107 |
options IPFIREWALL_VERBOSE</programlisting> |
| 108 |
|
108 |
|
| 109 |
<para>La prima riga serve a compilare il supporto per il bridge, la |
109 |
<para>La prima riga serve a compilare il supporto per il bridge, la |
| 110 |
seconda il firewall e la terza le funzioni di logging del firewall. |
110 |
seconda il firewall e la terza le funzioni di logging del |
| 111 |
</para> |
111 |
firewall.</para> |
| 112 |
|
112 |
|
| 113 |
<para>Adesso è necessario compilare e installare il nuovo kernel. |
113 |
<para>Adesso è necessario compilare e installare il nuovo kernel. |
| 114 |
Si possono trovare le istruzioni nella sezione <ulink |
114 |
Si possono trovare le istruzioni nella sezione <ulink |
|
Lines 126-132
Link Here
|
| 126 |
<programlisting>bridge_load="YES"</programlisting> |
126 |
<programlisting>bridge_load="YES"</programlisting> |
| 127 |
|
127 |
|
| 128 |
<para>In questo modo all'avvio della macchina verrà caricato |
128 |
<para>In questo modo all'avvio della macchina verrà caricato |
| 129 |
insieme al kernel anche il modulo <filename>bridge.ko</filename>. Non |
129 |
insieme al kernel anche il modulo <filename>bridge.ko</filename>. Non |
| 130 |
è necessario invece aggiungere una riga per il modulo |
130 |
è necessario invece aggiungere una riga per il modulo |
| 131 |
<filename>ipfw.ko</filename> in quanto verrà caricato in |
131 |
<filename>ipfw.ko</filename> in quanto verrà caricato in |
| 132 |
automatico dallo script <filename>/etc/rc.network</filename> dopo aver |
132 |
automatico dallo script <filename>/etc/rc.network</filename> dopo aver |
|
Lines 139-151
Link Here
|
| 139 |
|
139 |
|
| 140 |
<para>Prima di riavviare per caricare il nuovo kernel o i moduli richiesti |
140 |
<para>Prima di riavviare per caricare il nuovo kernel o i moduli richiesti |
| 141 |
(a seconda del metodo che avete scelto in precedenza), bisogna effettuare |
141 |
(a seconda del metodo che avete scelto in precedenza), bisogna effettuare |
| 142 |
alcune modifiche al file <filename>/etc/rc.conf</filename>. La regola di |
142 |
alcune modifiche al file <filename>/etc/rc.conf</filename>. La regola di |
| 143 |
default del firewall è di rifiutare tutti i pacchetti IP. Per |
143 |
default del firewall è di rifiutare tutti i pacchetti IP. Per |
| 144 |
iniziare attiviamo il firewall in modalità 'open', in modo da |
144 |
iniziare attiviamo il firewall in modalità <option>open</option>, |
| 145 |
verificare il suo funzionamento senza alcun problema di filtraggio pacchetti |
145 |
in modo da verificare il suo funzionamento senza alcun problema di |
| 146 |
(nel caso stiate eseguendo questa procedura da remoto, tale accorgimento vi |
146 |
filtraggio pacchetti (nel caso stiate eseguendo questa procedura da |
| 147 |
consentirà di non rimanere erroneamente tagliati fuori dalla rete). |
147 |
remoto, tale accorgimento vi consentirà di non rimanere |
| 148 |
Inserite queste linee nel file <filename>/etc/rc.conf</filename>:</para> |
148 |
erroneamente tagliati fuori dalla rete). Inserite queste linee nel file |
|
|
149 |
<filename>/etc/rc.conf</filename>:</para> |
| 149 |
|
150 |
|
| 150 |
<programlisting>firewall_enable="YES" |
151 |
<programlisting>firewall_enable="YES" |
| 151 |
firewall_type="open" |
152 |
firewall_type="open" |
|
Lines 154-192
Link Here
|
| 154 |
|
155 |
|
| 155 |
<para>La prima riga serve ad attivare il firewall (e a caricare il modulo |
156 |
<para>La prima riga serve ad attivare il firewall (e a caricare il modulo |
| 156 |
<filename>ipfw.ko</filename> nel caso non fosse già compilato nel |
157 |
<filename>ipfw.ko</filename> nel caso non fosse già compilato nel |
| 157 |
kernel), la seconda a impostarlo in modalità 'open' (come descritto |
158 |
kernel), la seconda a impostarlo in modalità <option>open</option> |
| 158 |
nel file <filename>/etc/rc.firewall</filename>), la terza a non |
159 |
(come descritto nel file <filename>/etc/rc.firewall</filename>), la terza |
| 159 |
visualizzare il caricamento delle regole e la quarta ad abilitare il |
160 |
a non visualizzare il caricamento delle regole e la quarta ad abilitare il |
| 160 |
supporto per il logging.</para> |
161 |
supporto per il logging.</para> |
| 161 |
|
162 |
|
| 162 |
<para>Per quanto riguarda la configurazione delle interfacce di rete, il |
163 |
<para>Per quanto riguarda la configurazione delle interfacce di rete, il |
| 163 |
metodo più utilizzato è quello di assegnare un IP a solo una |
164 |
metodo più utilizzato è quello di assegnare un IP a solo una |
| 164 |
delle schede di rete, ma il bridge funziona egualmente anche se entrambe o |
165 |
delle schede di rete, ma il bridge funziona egualmente anche se entrambe o |
| 165 |
nessuna delle interfacce ha IP settati. In quest'ultimo caso (IP-less) la |
166 |
nessuna delle interfacce ha IP settati. In quest'ultimo caso (IP-less) la |
| 166 |
macchina bridge sarà ancora più nascosta in quanto |
167 |
macchina bridge sarà ancora più nascosta in quanto |
| 167 |
inaccessibile dalla rete: per configurarla occorrerà quindi entrare |
168 |
inaccessibile dalla rete: per configurarla occorrerà quindi entrare |
| 168 |
da console o tramite una terza interfaccia di rete separata dal bridge. A |
169 |
da console o tramite una terza interfaccia di rete separata dal bridge. A |
| 169 |
volte all'avvio della macchina qualche programma richiede di accedere alla |
170 |
volte all'avvio della macchina qualche programma richiede di accedere alla |
| 170 |
rete, per esempio per una risoluzione di dominio: in questo caso è |
171 |
rete, per esempio per una risoluzione di dominio: in questo caso è |
| 171 |
necessario assegnare un IP all'interfaccia esterna (quella collegata a |
172 |
necessario assegnare un IP all'interfaccia esterna (quella collegata a |
| 172 |
Internet, dove risiede il server <acronym>DNS</acronym>), visto che il |
173 |
Internet, dove risiede il server <acronym>DNS</acronym>), visto che il |
| 173 |
bridge verrà attivato alla fine della procedura di avvio. Questo |
174 |
bridge verrà attivato alla fine della procedura di avvio. Questo |
| 174 |
vuol dire che l'interfaccia <devicename>fxp0</devicename> (nel nostro |
175 |
vuol dire che l'interfaccia <devicename>fxp0</devicename> (nel nostro |
| 175 |
caso) deve essere menzionata nella sezione ifconfig del file |
176 |
caso) deve essere menzionata nella sezione ifconfig del file |
| 176 |
<filename>/etc/rc.conf</filename>, mentre la <devicename>xl0</devicename> |
177 |
<filename>/etc/rc.conf</filename>, mentre la <devicename>xl0</devicename> |
| 177 |
no. Assegnare IP a entrambe le schede di rete non ha molto senso, a meno |
178 |
no. Assegnare IP a entrambe le schede di rete non ha molto senso, a meno |
| 178 |
che durante la procedura di avvio non si debba accedere a servizi presenti |
179 |
che durante la procedura di avvio non si debba accedere a servizi presenti |
| 179 |
su entrambi i segmenti Ethernet.</para> |
180 |
su entrambi i segmenti Ethernet.</para> |
| 180 |
|
181 |
|
| 181 |
<para>C'è un'altra cosa importante da sapere. Quando si utilizza IP |
182 |
<para>C'è un'altra cosa importante da sapere. Quando si utilizza IP |
| 182 |
sopra Ethernet ci sono due protocolli Ethernet in uso: uno è IP, |
183 |
sopra Ethernet ci sono due protocolli Ethernet in uso: uno è IP, |
| 183 |
l'altro è <acronym>ARP</acronym>. <acronym>ARP</acronym> permette |
184 |
l'altro è <acronym>ARP</acronym>. <acronym>ARP</acronym> permette |
| 184 |
la conversione dell'indirizzo IP di una macchina nel suo indirizzo |
185 |
la conversione dell'indirizzo IP di una macchina nel suo indirizzo |
| 185 |
Ethernet (livello <acronym>MAC</acronym>). Affinché due macchine |
186 |
Ethernet (livello <acronym>MAC</acronym>). Affinché due macchine |
| 186 |
separate dal bridge riescano a comunicare tra loro è necessario che |
187 |
separate dal bridge riescano a comunicare tra loro è necessario che |
| 187 |
il bridge lasci passare i pacchetti <acronym>ARP</acronym>. Tale |
188 |
il bridge lasci passare i pacchetti <acronym>ARP</acronym>. Tale |
| 188 |
protocollo non fa parte del livello IP, visto che è presente solo |
189 |
protocollo non fa parte del livello IP, visto che è presente solo |
| 189 |
con IP sopra Ethernet. Il firewall di FreeBSD agisce esclusivamente sul |
190 |
con IP sopra Ethernet. Il firewall di FreeBSD agisce esclusivamente sul |
| 190 |
livello IP e quindi tutti i pacchetti non IP (compreso |
191 |
livello IP e quindi tutti i pacchetti non IP (compreso |
| 191 |
<acronym>ARP</acronym>) verranno inoltrati senza essere filtrati, anche se |
192 |
<acronym>ARP</acronym>) verranno inoltrati senza essere filtrati, anche se |
| 192 |
il firewall è configurato per non lasciar passare nulla.</para> |
193 |
il firewall è configurato per non lasciar passare nulla.</para> |
|
Lines 194-200
Link Here
|
| 194 |
<para>Ora è arrivato il momento di riavviare la macchina e usarla |
195 |
<para>Ora è arrivato il momento di riavviare la macchina e usarla |
| 195 |
come in precedenza: appariranno dei nuovi messaggi riguardo al bridge e al |
196 |
come in precedenza: appariranno dei nuovi messaggi riguardo al bridge e al |
| 196 |
firewall, ma il bridge non sarà attivato e il firewall, essendo in |
197 |
firewall, ma il bridge non sarà attivato e il firewall, essendo in |
| 197 |
modalità 'open', non impedirà nessuna operazione.</para> |
198 |
modalità <option>open</option>, non impedirà nessuna |
|
|
199 |
operazione.</para> |
| 198 |
|
200 |
|
| 199 |
<para>Se ci dovessero essere dei problemi, è il caso di scoprire ora |
201 |
<para>Se ci dovessero essere dei problemi, è il caso di scoprire ora |
| 200 |
da cosa derivino e risolverli prima di continuare.</para> |
202 |
da cosa derivino e risolverli prima di continuare.</para> |
|
Lines 218-224
Link Here
|
| 218 |
|
220 |
|
| 219 |
<para>A questo punto dovrebbe essere possibile inserire la macchina tra |
221 |
<para>A questo punto dovrebbe essere possibile inserire la macchina tra |
| 220 |
due gruppi di host senza che venga compromessa qualsiasi |
222 |
due gruppi di host senza che venga compromessa qualsiasi |
| 221 |
possibilità di comunicazione tra di loro. Se è così, |
223 |
possibilità di comunicazione tra di loro. Se è così, |
| 222 |
il prossimo passo è quello di aggiungere le parti |
224 |
il prossimo passo è quello di aggiungere le parti |
| 223 |
<literal>net.link.ether.<replaceable>[blah]</replaceable>=<replaceable>[blah]</replaceable></literal> |
225 |
<literal>net.link.ether.<replaceable>[blah]</replaceable>=<replaceable>[blah]</replaceable></literal> |
| 224 |
di queste righe al file <filename>/etc/sysctl.conf</filename>, in modo che |
226 |
di queste righe al file <filename>/etc/sysctl.conf</filename>, in modo che |
|
Lines 229-273
Link Here
|
| 229 |
<title>Configurazione del Firewall</title> |
231 |
<title>Configurazione del Firewall</title> |
| 230 |
|
232 |
|
| 231 |
<para>Ora è arrivato il momento di creare il proprio file con le |
233 |
<para>Ora è arrivato il momento di creare il proprio file con le |
| 232 |
regole per il firewall, in modo da rendere sicura la rete interna. Ci sono |
234 |
regole per il firewall, in modo da rendere sicura la rete interna. Ci |
| 233 |
delle complicazioni nel fare questo, perché non tutte le |
235 |
sono delle complicazioni nel fare questo, perché non tutte le |
| 234 |
funzionalità del firewall sono disponibili sui pacchetti inoltrati |
236 |
funzionalità del firewall sono disponibili sui pacchetti inoltrati |
| 235 |
dal bridge. Inoltre, c'è una differenza tra i pacchetti che stanno |
237 |
dal bridge. Inoltre, c'è una differenza tra i pacchetti che stanno |
| 236 |
per essere inoltrati dal bridge e quelli indirizzati alla macchina locale. |
238 |
per essere inoltrati dal bridge e quelli indirizzati alla macchina locale. |
| 237 |
In generale, i pacchetti che entrano nel bridge vengono processati dal |
239 |
In generale, i pacchetti che entrano nel bridge vengono processati dal |
| 238 |
firewall solo una volta, non due come al solito; infatti vengono filtrati |
240 |
firewall solo una volta, non due come al solito; infatti vengono filtrati |
| 239 |
solo in ingresso, quindi qualsiasi regola che usi 'out' oppure 'xmit' non |
241 |
solo in ingresso, quindi qualsiasi regola che usi <option>out</option> |
| 240 |
verrà mai eseguita. Personalmente uso 'in via' che è una |
242 |
oppure <option>xmit</option> non verrà mai eseguita. Personalmente |
| 241 |
sintassi più antica, ma che ha un senso quando la si legge. |
243 |
uso <option>in via</option> che è una sintassi più antica, |
| 242 |
Un'altra limitazione è che si possono usare solo i comandi 'pass' e |
244 |
ma che ha un senso quando la si legge. Un'altra limitazione è che |
| 243 |
'drop' per i pacchetti filtrati dal bridge. Cose avanzate come 'divert', |
245 |
si possono usare solo i comandi <option>pass</option> e |
| 244 |
'forward' o 'reject' non sono disponibili. Queste opzioni possono ancora |
246 |
<option>drop</option> per i pacchetti filtrati dal bridge. Cose avanzate |
| 245 |
essere usate, ma solo per il traffico da e verso la macchina bridge stessa |
247 |
come <option>divert</option>, <option>forward</option> o |
| 246 |
(sempre che le sia stato assegnato un IP).</para> |
248 |
<option>reject</option> non sono disponibili. Queste opzioni possono |
|
|
249 |
ancora essere usate, ma solo per il traffico da e verso la macchina bridge |
| 250 |
stessa (sempre che le sia stato assegnato un IP).</para> |
| 247 |
|
251 |
|
| 248 |
<para>Nuovo in FreeBSD 4.0 è il concetto di stateful filtering. |
252 |
<para>Nuovo in FreeBSD 4.0 è il concetto di stateful filtering. |
| 249 |
Questo è un grande miglioramento per il traffico |
253 |
Questo è un grande miglioramento per il traffico |
| 250 |
<acronym>UDP</acronym>, che consiste tipicamente di una richiesta in |
254 |
<acronym>UDP</acronym>, che consiste tipicamente di una richiesta in |
| 251 |
uscita, seguita a breve termine da una risposta con la stessa coppia di |
255 |
uscita, seguita a breve termine da una risposta con la stessa coppia di |
| 252 |
indirizzi IP e numeri di porta (ma con mittente e destinatario invertiti, |
256 |
indirizzi IP e numeri di porta (ma con mittente e destinatario invertiti, |
| 253 |
ovviamente). Per i firewall che non supportano il mantenimento di stato, |
257 |
ovviamente). Per i firewall che non supportano il mantenimento di stato, |
| 254 |
non c'è modo di gestire questo breve scambio di dati come una |
258 |
non c'è modo di gestire questo breve scambio di dati come una |
| 255 |
sessione unica. Ma con un firewall che può "ricordarsi" di un |
259 |
sessione unica. Ma con un firewall che può |
| 256 |
pacchetto <acronym>UDP</acronym> in uscita e permette una risposta nei |
260 |
<quote>ricordarsi</quote> di un pacchetto <acronym>UDP</acronym> in uscita |
| 257 |
minuti successivi, gestire i servizi <acronym>UDP</acronym> è |
261 |
e permette una risposta nei minuti successivi, gestire i servizi |
| 258 |
semplice. L'esempio seguente mostra come fare. La stessa cosa è |
262 |
<acronym>UDP</acronym> è semplice. L'esempio seguente mostra come |
| 259 |
possibile farla con i pacchetti <acronym>TCP</acronym>. Questo permette di |
263 |
fare. La stessa cosa è possibile farla con i pacchetti |
| 260 |
evitare qualche tipo di attacco denial of service e altri sporchi trucchi, |
264 |
<acronym>TCP</acronym>. Questo permette di evitare qualche tipo di |
| 261 |
ma tipicamente fa anche crescere velocemente la tabella di stato.</para> |
265 |
attacco denial of service e altri sporchi trucchi, ma tipicamente fa anche |
|
|
266 |
crescere velocemente la tabella di stato.</para> |
| 262 |
|
267 |
|
| 263 |
<para>Vediamo un esempio di configurazione. Bisogna notare che all'inizio |
268 |
<para>Vediamo un esempio di configurazione. Bisogna notare che all'inizio |
| 264 |
del file <filename>/etc/rc.firewall</filename> ci sono già delle |
269 |
del file <filename>/etc/rc.firewall</filename> ci sono già delle |
| 265 |
regole standard per l'interfaccia di loopback |
270 |
regole standard per l'interfaccia di loopback |
| 266 |
<devicename>lo0</devicename>, quindi non ce ne occuperemo più ora. |
271 |
<devicename>lo0</devicename>, quindi non ce ne occuperemo più ora. |
| 267 |
Le regole personalizzate andrebbero messe in un file a parte (per esempio |
272 |
Le regole personalizzate andrebbero messe in un file a parte (per esempio |
| 268 |
<filename>/etc/rc.firewall.local</filename>) e caricate all'avvio |
273 |
<filename>/etc/rc.firewall.local</filename>) e caricate all'avvio |
| 269 |
modificando la riga del file <filename>/etc/rc.conf</filename> dove era |
274 |
modificando la riga del file <filename>/etc/rc.conf</filename> dove era |
| 270 |
stata definita la modalità 'open' con:</para> |
275 |
stata definita la modalità <option>open</option> con:</para> |
| 271 |
|
276 |
|
| 272 |
<programlisting>firewall_type="/etc/rc.firewall.local"</programlisting> |
277 |
<programlisting>firewall_type="/etc/rc.firewall.local"</programlisting> |
| 273 |
|
278 |
|
|
Lines 279-285
Link Here
|
| 279 |
|
284 |
|
| 280 |
<para>Per il nostro esempio immaginiamo di avere l'interfaccia |
285 |
<para>Per il nostro esempio immaginiamo di avere l'interfaccia |
| 281 |
<devicename>fxp0</devicename> collegata all'esterno (Internet) e la |
286 |
<devicename>fxp0</devicename> collegata all'esterno (Internet) e la |
| 282 |
<devicename>xl0</devicename> verso l'interno (<acronym>LAN</acronym>). La |
287 |
<devicename>xl0</devicename> verso l'interno (<acronym>LAN</acronym>). La |
| 283 |
macchina bridge ha assegnato l'IP <hostid role="ipaddr">1.2.3.4</hostid> |
288 |
macchina bridge ha assegnato l'IP <hostid role="ipaddr">1.2.3.4</hostid> |
| 284 |
(è impossibile che il vostro <acronym>ISP</acronym> vi assegni un |
289 |
(è impossibile che il vostro <acronym>ISP</acronym> vi assegni un |
| 285 |
indirizzo di classe A di questo tipo, ma per l'esempio va bene).</para> |
290 |
indirizzo di classe A di questo tipo, ma per l'esempio va bene).</para> |
|
Lines 332-392
Link Here
|
| 332 |
add drop log all from any to any</programlisting> |
337 |
add drop log all from any to any</programlisting> |
| 333 |
|
338 |
|
| 334 |
<para>Coloro che hanno configurato un firewall in precedenza potrebbero aver |
339 |
<para>Coloro che hanno configurato un firewall in precedenza potrebbero aver |
| 335 |
notato che manca qualcosa. In particolare, non ci sono regole contro lo |
340 |
notato che manca qualcosa. In particolare, non ci sono regole contro lo |
| 336 |
spoofing, difatti <emphasis>non</emphasis> abbiamo aggiunto:</para> |
341 |
spoofing, difatti <emphasis>non</emphasis> abbiamo aggiunto:</para> |
| 337 |
|
342 |
|
| 338 |
<programlisting>add deny all from 1.2.3.4/8 to any in via fxp0</programlisting> |
343 |
<programlisting>add deny all from 1.2.3.4/8 to any in via fxp0</programlisting> |
| 339 |
|
344 |
|
| 340 |
<para>Ovvero, non far entrare dall'esterno pacchetti che affermano di venire |
345 |
<para>Ovvero, non far entrare dall'esterno pacchetti che affermano di venire |
| 341 |
dalla rete interna. Questa è una cosa che solitamente viene fatta |
346 |
dalla rete interna. Questa è una cosa che solitamente viene fatta |
| 342 |
per essere sicuri che qualcuno non provi a eludere il packet filter, |
347 |
per essere sicuri che qualcuno non provi a eludere il packet filter, |
| 343 |
generando falsi pacchetti che sembrano venire dall'interno. Il problema |
348 |
generando falsi pacchetti che sembrano venire dall'interno. Il problema |
| 344 |
è che c'è <emphasis>almeno</emphasis> un host |
349 |
è che c'è <emphasis>almeno</emphasis> un host |
| 345 |
sull'interfaccia esterna che non si può ignorare: il router. |
350 |
sull'interfaccia esterna che non si può ignorare: il router. |
| 346 |
Solitamente, però, gli <acronym>ISP</acronym> eseguono il controllo |
351 |
Solitamente, però, gli <acronym>ISP</acronym> eseguono il controllo |
| 347 |
anti-spoof sui loro router e quindi non ce ne dobbiamo preoccupare.</para> |
352 |
anti-spoof sui loro router e quindi non ce ne dobbiamo preoccupare.</para> |
| 348 |
|
353 |
|
| 349 |
<para>L'ultima riga sembra un duplicato della regola di default, ovvero non |
354 |
<para>L'ultima riga sembra un duplicato della regola di default, ovvero non |
| 350 |
far passare nulla che non sia stato specificatamente permesso. In |
355 |
far passare nulla che non sia stato specificatamente permesso. In |
| 351 |
verità c'è una differenza: tutto il traffico sospetto |
356 |
verità c'è una differenza: tutto il traffico sospetto |
| 352 |
verrà loggato.</para> |
357 |
verrà loggato.</para> |
| 353 |
|
358 |
|
| 354 |
<para>Ci sono due regole per permettere il traffico <acronym>SMTP</acronym> |
359 |
<para>Ci sono due regole per permettere il traffico <acronym>SMTP</acronym> |
| 355 |
e <acronym>DNS</acronym> verso il mail server e il name server, se ne |
360 |
e <acronym>DNS</acronym> verso il mail server e il name server, se ne |
| 356 |
avete. Ovviamente l'intero set di regole deve essere personalizzato |
361 |
avete. Ovviamente l'intero set di regole deve essere personalizzato |
| 357 |
per le proprie esigenze, questo non è altro che uno specifico |
362 |
per le proprie esigenze, questo non è altro che uno specifico |
| 358 |
esempio (il formato delle regole è spiegato dettagliatamente nella |
363 |
esempio (il formato delle regole è spiegato dettagliatamente nella |
| 359 |
man page &man.ipfw.8;). Bisogna notare che, affinché 'relay' e 'ns' |
364 |
man page &man.ipfw.8;). Bisogna notare che, affinché |
| 360 |
siano interpretati correttamente, la risoluzione dei nomi deve funzionare |
365 |
<quote>relay</quote> e <quote>ns</quote> siano interpretati correttamente, |
| 361 |
<emphasis>prima</emphasis> che il bridge sia attivato. Questo è un |
366 |
la risoluzione dei nomi deve funzionare <emphasis>prima</emphasis> che il |
| 362 |
chiaro esempio che dimostra l'importanza di settare l'IP sulla corretta |
367 |
bridge sia attivato. Questo è un chiaro esempio che dimostra |
| 363 |
scheda di rete. In alternativa è possibile specificare direttamente |
368 |
l'importanza di settare l'IP sulla corretta scheda di rete. In |
| 364 |
l'indirizzo IP anziché il nome host (cosa necessaria se la macchina |
369 |
alternativa è possibile specificare direttamente l'indirizzo IP |
| 365 |
è IP-less).</para> |
370 |
anziché il nome host (cosa necessaria se la macchina è |
|
|
371 |
IP-less).</para> |
| 366 |
|
372 |
|
| 367 |
<para>Le persone che sono solite configurare un firewall probabilmente |
373 |
<para>Le persone che sono solite configurare un firewall probabilmente |
| 368 |
avranno sempre usato una regola 'reset' o 'forward' per i pacchetti |
374 |
avranno sempre usato una regola <option>reset</option> o |
| 369 |
ident (porta 113 <acronym>TCP</acronym>). Sfortunatamente, questa non |
375 |
<option>forward</option> per i pacchetti ident (porta 113 |
| 370 |
è una scelta applicabile con il bridge, quindi la cosa migliore |
376 |
<acronym>TCP</acronym>). Sfortunatamente, questa non è una scelta |
| 371 |
è lasciarli passare fino alla destinazione. Finché la |
377 |
applicabile con il bridge, quindi la cosa migliore è lasciarli |
| 372 |
macchina di destinazione non ha un demone ident attivo, questa tecnica |
378 |
passare fino alla destinazione. Finché la macchina di destinazione |
| 373 |
è relativamente sicura. L'alternativa è proibire le |
379 |
non ha un demone ident attivo, questa tecnica è relativamente |
| 374 |
connessioni sulla porta 113, creando qualche problema con servizi tipo |
380 |
sicura. L'alternativa è proibire le connessioni sulla porta 113, |
| 375 |
<acronym>IRC</acronym> (le richieste ident devono andare in |
381 |
creando qualche problema con servizi tipo <acronym>IRC</acronym> |
| 376 |
timeout).</para> |
382 |
(le richieste ident devono andare in timeout).</para> |
| 377 |
|
383 |
|
| 378 |
<para>L'unica altra cosa un po' particolare che potete aver notato è |
384 |
<para>L'unica altra cosa un po' particolare che potete aver notato è |
| 379 |
che c'è una regola per lasciar comunicare la macchina bridge e |
385 |
che c'è una regola per lasciar comunicare la macchina bridge e |
| 380 |
un'altra per gli host della rete interna. Ricordate che questo è |
386 |
un'altra per gli host della rete interna. Ricordate che questo è |
| 381 |
dovuto al fatto che i due tipi di traffico prendono percorsi differenti |
387 |
dovuto al fatto che i due tipi di traffico prendono percorsi differenti |
| 382 |
attraverso il kernel e di conseguenza anche dentro il packet filter. La |
388 |
attraverso il kernel e di conseguenza anche dentro il packet filter. La |
| 383 |
rete interna passerà attraverso il bridge, mentre la macchina |
389 |
rete interna passerà attraverso il bridge, mentre la macchina |
| 384 |
locale userà il normale stack IP per le connessioni. Perciò |
390 |
locale userà il normale stack IP per le connessioni. Perciò |
| 385 |
due regole per gestire due casi differenti. Le regole 'in via |
391 |
due regole per gestire due casi differenti. Le regole <literal>in via |
| 386 |
<devicename>fxp0</devicename>' funzionano in entrambi i casi. In generale, |
392 |
<devicename>fxp0</devicename></literal> funzionano in entrambi i casi. In |
| 387 |
se usate regole 'in via' attraverso il packet filter, dovrete fare |
393 |
generale, se usate regole <option>in via</option> attraverso il packet |
| 388 |
un'eccezione per i pacchetti generati localmente, in quanto non entrano |
394 |
filter, dovrete fare un'eccezione per i pacchetti generati localmente, in |
| 389 |
tramite nessuna interfaccia.</para> |
395 |
quanto non entrano tramite nessuna interfaccia.</para> |
| 390 |
</sect1> |
396 |
</sect1> |
| 391 |
|
397 |
|
| 392 |
<sect1 id="filtering-bridges-contributors"> |
398 |
<sect1 id="filtering-bridges-contributors"> |