[ precedente ] [ Contenuti ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ 10 ] [ 11 ] [ A ] [ B ] [ C ] [ D ] [ E ] [ F ] [ G ] [ H ] [ I ] [ successivo ]

Securing Debian Manual
Appendice D - Impostare un bridge firewall


Queste informazioni sono il contributo di Francois Bayart per aiutare gli utenti ad impostare un bridge/firewall Linux con il kernel 2.4.x ed iptables. L'unico requisito necessario è la patch per il bridge firewall disponibile presso la pagine web di Sourceforge.

Ad esempio, se state usando il kernel 2.4.18, per prima cosa installate il pacchetto sorgente del kernel, quindi scaricate la patch e applicatela, come mostrato nell'esempio:

     Zipowz:/usr/src# apt-get install kernel-source-2.4.18
     Zipowz:/usr/src# cd kernel-source-2.4.18
     Zipowz:/usr/src/kernel-source-2.4.18# patch -p1 < ../bridge-nf-0.0.6-against-2.4.18.diff 
     patching file include/linux/netfilter.h
     patching file include/linux/netfilter_ipv4.h
     patching file include/linux/skbuff.h
     patching file net/bridge/br.c
     patching file net/bridge/br_forward.c
     patching file net/bridge/br_input.c
     patching file net/bridge/br_netfilter.c
     patching file net/bridge/br_private.h
     patching file net/bridge/Makefile
     patching file net/Config.in
     patching file net/core/netfilter.c
     patching file net/core/skbuff.c
     patching file net/ipv4/ip_output.c
     patching file net/ipv4/netfilter/ip_tables.c
     patching file net/ipv4/netfilter/ipt_LOG.c

Ora configurate il kernel (cioè: make menuconfig, make xconfig). Nella sezione Networking options, abilitate le seguenti opzioni:

     [*] Network packet filtering (replaces ipchains)
     [ ]   Network packet filtering debugging (NEW)
     <*> 802.1d Ethernet Bridging
     [*]   netfilter (firewalling) support (NEW)

Attenzione: dovete disabilitare questa opzione se volete applicare delle regole di firewall altrimenti iptables non funzionerà.

     [ ]   Network packet filtering debugging (NEW)

Dopodiché, aggiungete le opzioni corrette nella sezione IP: Netfilter Configuration. Quindi, compilate ed installate il kernel. Se volete farlo alla maniera Debian, installate kernel-package e lanciate make-kpkg per creare un pacchetto del kernel Debian personalizzato installabile sul server utilizzando dpkg. Una volta che il nuovo kernel è compilato ed installato, installate il pacchetto bridge-utils.

Una volta completati questi passaggi, potete completare la configurazione del vostro bridge. La sezione successiva mostra due diverse possibili configurazioni per il bridge, ognuna con un ipotetica mappa di rete e i comandi necessari.


D.1 Un bridge con funzionalità NAT e firewall

La prima configurazione utilizza il bridge come un firewall con traduzione degli indirizzi di rete (NAT) che protegge un server ed i clients della LAN interna. Un diagramma della configurazione di rete è mostrato qui sotto:

     Internet ---- router ( 62.3.3.25 ) ---- bridge (62.3.3.26 gw 62.3.3.25 / 192.168.0.1)
                                               |
                                               |
                                               |---- WWW Server (62.3.3.27 gw 62.3.3.25)
                                               |
                                               |
                                              LAN --- Zipowz (192.168.0.2 gw 192.168.0.1)

I seguenti comandi mostrano come il bridge può essere configurato:

     # Crea l'interfaccia br0
     /usr/sbin/brctl addbr br0
     
     # Aggiunge l'interfaccia Ethernet da utilizzare con il bridge
     /usr/sbin/brctl addif br0 eth0
     /usr/sbin/brctl addif br0 eth1
     
     # Lancia l'interfaccia Ethernet
     /sbin/ifconfig eth0 0.0.0.0
     /sbin/ifconfig eth1 0.0.0.0
     
     # Configurare il bridge ethernet.
     # Il bridge sarà corretto ed invisibile (firewall trasparente).
     # Non figura in un traceroute e conserva il vero gateway sugli altri 
     # computer. Ora se volete potete configurare un gateway sul bridge e 
     # sceglierlo come nuovo gateway per altri computer.
     
     
     
     /sbin/ifconfig br0 62.3.3.26 netmask 255.255.255.248 broadcast 62.3.3.32
     
     # Ho aggiunto questo IP interno per creare il nostro NAT 
     ip addr add 192.168.0.1/24 dev br0
     /sbin/route add default gw 62.3.3.25

D.2 Bridge con funzionalità di firewall

Una seconda configurazione possibile è un sistema configurato come un firewall trasparente per una LAN con spazio di indirizzi IP pubblici.

     Internet ---- router (62.3.3.25) ---- bridge (62.3.3.26)
                                             |
                                             |
                                             |---- WWW Server (62.3.3.28 gw 62.3.3.25)
                                             |
                                             |
                                             |---- Mail Server (62.3.3.27 gw 62.3.3.25)

Le seguenti istruzioni mostrano come sia possibile configurare questo bridge.

     # Crea l'interfaccia br0
     /usr/sbin/brctl addbr br0
     
     # Aggiunge l'interfaccia Ethernet da utilizzare con il bridge
     /usr/sbin/brctl addif br0 eth0
     /usr/sbin/brctl addif br0 eth1
     
     # Inizializza l'interfaccia Ethernet
     /sbin/ifconfig eth0 0.0.0.0
     /sbin/ifconfig eth1 0.0.0.0
     
     # Configurazione del bridge Ethernet.
     # Il bridge sarà invisibile e impostato correttamente (firewall trasparente).
     # Non figura in un traceroute e mantiene il vostro vero gateway sugli altri 
     # computer. Ora, se vorrete, potrete configurare un gateway sul vostro bridge 
     # a sceglierlo come il nuovo gateway per gli altri computer.
     
     
     
     /sbin/ifconfig br0 62.3.3.26 netmask 255.255.255.248 broadcast 62.3.3.32

Se eseguite un traceroute verso il Linux Mail Server, non vedrete il bridge. Se volete accedere al bridge con ssh, dovete avere un gateway, altrimenti dovreste prima connettervi a un altro server, come il "Mail Server" e in seguito connettervi al bridge tramite la scheda di rete interna.


D.3 Regole base di IPtables

Questo è un esempio delle regole base che si potrebbero usare per queste due configurazioni indistintamente.

       iptables -F FORWARD
       iptables -P FORWARD DROP
       iptables -A FORWARD -s 0.0.0.0/0.0.0.0 -d 0.0.0.0/0.0.0.0 -m state --state INVALID -j DROP
       iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
     
       # Alcune regole interessanti ma non presenti in una configurazione
       # classica di Iptables...
       # Limit ICMP
       # iptables -A FORWARD -p icmp -m limit --limit 4/s -j ACCEPT
       # Confronta la stringa, un buon metodo, semplice, per bloccare molto 
       # velocemente alcuni VIRUS
       # iptables -I FORWARD -j DROP -p tcp -s 0.0.0.0/0 -m string --string "cmd.exe"
     
       # Blocca tutte le connessioni di MySQL tanto per essere sicuri
       iptables -A FORWARD -p tcp -s 0/0 -d 62.3.3.0/24 --dport 3306 -j DROP
     
       # Regole per Linux Mail Server
     
       # Autorizza FTP-DATA ( 20 ) , FTP ( 21 ) , SSH ( 22 ) 
       iptables -A FORWARD -p tcp -s 0.0.0.0/0 -d 62.3.3.27/32 --dport 20:22 -j ACCEPT
     
       # Autorizza il Mail Server a connettersi con l'esterno
       # Da notare: ciò *non* è necessario per le connessioni precedenti
       # (ricorda: stateful filtering) e quindi può essere rimosso.
       iptables -A FORWARD -p tcp -s 62.3.3.27/32 -d 0/0 -j ACCEPT
     
       # WWW Server Rules
     
       # Autorizza connessioni HTTP ( 80 ) con il server WWW
       iptables -A FORWARD -p tcp -s 0.0.0.0/0 -d 62.3.3.28/32 --dport 80 -j ACCEPT
     
       # Autorizza connessioni HTTPS ( 443 ) con il server WWW
       iptables -A FORWARD -p tcp -s 0.0.0.0/0 -d 62.3.3.28/32 --dport 443 -j ACCEPT
     
       # Autorizza il server WWW a connettersi con l'esterno
       # Da notare: ciò *non* è necessario per le connessioni precedenti
       # (ricorda: stateful filtering) e quindi può essere rimosso.
       iptables -A FORWARD -p tcp -s 62.3.3.28/32 -d 0/0 -j ACCEPT

[ precedente ] [ Contenuti ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ 10 ] [ 11 ] [ A ] [ B ] [ C ] [ D ] [ E ] [ F ] [ G ] [ H ] [ I ] [ successivo ]

Securing Debian Manual

Version: 2.97, Fri, 03 Dec 2004 23:31:57 +0000

Javier Fernández-Sanguino Peña jfs@debian.org
Autore, Sezione 1.1
Per la traduzione si veda l'Appendice I