Table des matières
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...
: 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.