====== 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.