Outils pour utilisateurs

Outils du site


reseaux_ebtables

EBTABLES

Lien: http://ebtables.sourceforge.net/ebtables-man.html
http://ebtables.sourceforge.net/examples.html
http://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.

Lenny

Il y a des changements, notamment le script /etc/init.d/ebtables : il faudra que je regarde cela trés bientôt !

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.

Bridge et NAT iptables

Si vous avez des troubles entre les serveurs sur le Bridge, et le NAT sur la même machine, faites ça:

$IPTABLES -A PREROUTING -t raw -i br0 -j NOTRACK

Ce qui desactive le suivit des connexions sur le Bridge.

reseaux_ebtables.txt · Dernière modification : 2009/08/12 22:24 de thierry