Outils pour utilisateurs

Outils du site


reseaux_ebtables

Ceci est une ancienne révision du document !


EBTABLES

Lien:

http://ebtables.sourceforge.net/ebtables-man.htmlhttp://ebtables.sourceforge.net/examples.htmlhttp://ebtables.sourceforge.net/br_fw_ia/br_fw_ia.html

EBTABLES est le filtre des trames Ethernet passant par un Bridge:
→EB = Ethernet Bridge ?

EBTABLES fonctionne globalement de la même façon qu'IPTABLES, mais avec la difference que EBTABLES traite des trames Ethernet. Pour traiter de l'IP, il n'y a pas mieux que IPTABLES.

Les exemples qui suivent montrent comment filtrer les trames comme une sorte de firewall.

Configuration du bridge:

3 cartes réseaux:

eth0LAN administration (d'ou j'administre le bridge) eth1WAN filtré (où sont les serveurs) eth2WAN internet (où est le danger)

/etc/network/interfaces:

 auto eth0
 iface eth0 inet static
        address 192.168.0.62
        netmask 255.255.255.0
        broadcast 192.16.0.255
        gateway 192.168.0.50
 auto br0
 iface br0 inet manual
        bridge_ports eth1 eth2
        bridge_stp off
 #       bridge_hello 1
 #       bridge_maxage 4
        bridge_fd 2
        bridge_maxwait 0

Initialiser les tables

 #!/bin/sh
 EBT=/sbin/ebtables
 $EBT -F
 $EBT -X
 # this is the default:
 #$EBT -P INPUT ACCEPT
 #$EBT -P OUTPUT ACCEPT
 #$EBT -P FORWARD ACCEPT
 # but we want this:
 $EBT -P INPUT DROP
 $EBT -P OUTPUT DROP
 $EBT -P FORWARD DROP
 $EBT -t nat -F
 $EBT -t nat -X
 $EBT -t nat -P PREROUTING ACCEPT
 $EBT -t nat -P POSTROUTING ACCEPT
 $EBT -t nat -P OUTPUT ACCEPT
 $EBT -t broute -F
 $EBT -t broute -X
 $EBT -t broute -P BROUTING ACCEPT

Les regles DROP ne sont pas les regles par defaut: mais on souhaite filtrer le bridge

Tips

–logical-in ou –logical-out désigne le bridge, par exemple: br0

-i ou -o désigne l'interface matériel, par exemple: eth0

INPUT et OUTPUT...

FIXME: je ne vois pas quand elles sont utilisé !

Pour moi, il n'y a que FORWARD …

FORWARD

 #BAN = Bridged Area Network 
 BAN_IF=eth1
 WAN_IF=eth2
 BR_IF=br0
 # Accepter toutes les requetes ARP du "BAN"
 $EBT -A FORWARD -i $BAN_IF -p ARP -j ACCEPT

Exemple:

 # Test par IPv4 + MAC
 $EBT -A FORWARD -i $BAN_IF -p IPv4 -s "00:51:04:65:EF:7C" -j ACCEPT

ou

 # Test par IPv4 + MAC + IP
 $EBT -A FORWARD -i $BAN_IF -p IPv4 -s "00:51:04:65:EF:7C" --ip-src 192.168.0.161 -j ACCEPT

ou

 # Test par IPv4 + IP
 $EBT -A FORWARD -i $BAN_IF -p IPv4 --ip-src 192.168.0.161 -j ACCEPT

Il parait que pour les vieux serveurs (mais que je n'ai jamais connu), il faut faire:

 $EBT -A FORWARD -p LENGTH -j ACCEPT

Sans oublier le WAN:

 # Accepter toutes les requetes ARP du "WAN"...
 $EBT -A FORWARD -i $WAN_IF -p ARP -j ACCEPT
 # et autoriser tout le reseau WAN
 $EBT -A FORWARD -i $WAN_IF -p IPv4 -j ACCEPT

Bridge et squid

Non testé mais ici:

http://freshmeat.net/articles/view/1433/

On explique comment intercepter les requetes vers le port 80 et les faire traiter par squid.

reseaux_ebtables.1175382775.txt.gz · Dernière modification : 2007/03/31 23:12 de thierry