Scripts de iptables para enrutar conexion

Scripts de iptables y puente para el caso concreto de mi casa xD
Un modem-router se conecta por USB a mi pc y le da internet. Mi pc tiene dos tarjetas de red y crea un puente entre las dos interfaces. Luego enruta la conexion del modem al puente. Asi tengo internet en este pc y en 2 mas que se conecten por red.
@Ubuntu 9.04 y bash

Script para crear el puente:

#Creando bridge
brctl addbr CASA
brctl addif CASA eth0
brctl addif CASA eth1
ifconfig eth0 0.0.0.0
ifconfig eth1 0.0.0.0
ifconfig CASA 192.168.0.10

Script de configuracion iptables para enrutar la conexion:

#### SCRIPT DE CONFIGURACION DE IPTABLES ####
#!/bin/bash

# Dispositivo de red de internet
EXIF="eth3"
# Dispositivo de red local
INIF="CASA"

fail=0

[ -f /etc/default/rcS ] && . /etc/default/rcS
. /lib/lsb/init-functions

log_begin_msg "Aplicando Reglas de Firewall..."

## Borrado de reglas anteriores
iptables -F || fail=1
iptables -X || fail=1
iptables -Z || fail=1
iptables -t nat -F || fail=1

## Establecemos politica por defecto
iptables -P INPUT ACCEPT || fail=1
iptables -P OUTPUT ACCEPT || fail=1
iptables -P FORWARD DROP || fail=1
iptables -t nat -P PREROUTING ACCEPT || fail=1
iptables -t nat -P POSTROUTING ACCEPT || fail=1

# Marcar paquetes salientes con su ip de origen
iptables -t nat -A POSTROUTING -o $EXIF -j MASQUERADE || fail=1
# Reenvio de IP
echo 1 > /proc/sys/net/ipv4/ip_forward || fail=1

# Aceptar paquetes para reenviar procedentes de la red local
iptables -A FORWARD -i $INIF -o $EXIF -j ACCEPT || fail=1
# Aceptar paquetes para reenviar procedentes de internet de conexiones ya establecidas
iptables -A FORWARD -i $EXIF -o $INIF -m state --state RELATED,ESTABLISHED -j ACCEPT || fail=1

# Se muestran los resultados
log_end_msg $fail

if [ $fail -eq 0 ]
then
log_success_msg "Verifique que lo que se aplica con: iptables -L -n."
else
log_warning_msg "Se ha producido un error al aplicar alguna de las reglas"
fi

#### FIN SCRIPT DE CONFIGURACION DE IPTABLES ####