[eside-ghost] sopitas con iptables

mariotux mario en pensandoenred.com
Lun Feb 14 13:54:43 CET 2011


Buenas Alvaro,

Gracias por la respuesta, ya estaba dudando si había enviado bien el
correo a la lista :)

Pues tras leer doc y ver varios ejemplos he atinado con lo que estaba
buscando.

La pena es que si añado una interfaz más con ip externa las rutas se
vuelven locas :-) tengo que ir afinando este punto.

Os paso el script que tengo por si a alguien le parece de interés:

#!/bin/sh
# description: Firewall

IPT=/sbin/iptables
# Dispositivos de red de Internet
EXIF="eth0"
# Dispositivo de red Local
INIF="eth3"

case "$1" in
start)
## Borrando reglas anteriores
$IPT -F
$IPT -t nat -F
$IPT -t mangle -F
$IPT -X
#$IPT -F INPUT
# Aceptar siempre trafico de loopback
$IPT -A INPUT -i lo -j ACCEPT
# Permitir conexiones establecidas, y los que no proceden del exterior
$IPT -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPT -A FORWARD -i $EXIF -o $INIF -m state --state ESTABLISHED,RELATED
-j ACCEPT
# Permitir conexiones salientes de la LAN
$IPT -A FORWARD -i $INIF -o $EXIF -j ACCEPT
# Masquerade.
$IPT -t nat -A POSTROUTING -o $EXIF -j MASQUERADE
# Denegar conexiones externas 
$IPT -A INPUT -i $EXIF -j DROP
$IPT -A FORWARD -i $EXIF -j DROP
echo 1 > /proc/sys/net/ipv4/ip_forward 
exit 0
;;

stop)
## Borrando reglas anteriores
$IPT -F
$IPT -t nat -F
$IPT -t mangle -F
$IPT -X
echo 0 > /proc/sys/net/ipv4/ip_forward 
exit 0
;;
*)
echo "Usage: /etc/init.d/firewall {start|stop}"
exit 1
;;
esac


El lun, 07-02-2011 a las 21:13 +0100, Alvaro Uria escribió:
> Aupi,
> 
> Lo primero de todo, te recomendaría que metieras algunas reglas de LOG
> al principio de tu script:
> iptables -t nat -I PREROUTING -j LOG --log-level warn --log-prefix "[*]PRE=> "
> iptables -I FORWARD -j LOG --log-level warn --log-prefix "[*]FWD=> "
> 
> Puedes ver las trazas en /var/log/kern.log (o /var/log/syslog).
> 
> También te recomiendo echar un vistazo a este esquema (primera imagen
> en google images O:-):
> http://danielmiessler.com/images/DM_NF.PNG
> 
> Básicamente, los NATeos se hacen vía "-t nat -A PREROUTING", "-t
> filter -A FORWARD" y "-t nat -A POSTROUTING".
> 
> El día 6 de febrero de 2011 06:01, Mario Nunes
> <mario en pensandoenred.com> escribió:
> [...]
> > Script para iptables:
> >
> > #!/bin/bash
> [...]
> > #Politica general.Cerramos todo.Dejamos entrar y salir lo solicitado
> > iptables -P INPUT DROP || fail=1
> > iptables -P OUTPUT ACCEPT || fail=1
> 
> Siendo la política de OUTPUT a ACCEPT, no necesitas meter ninguna
> regla de OUTPUT.
> 
> > iptables -P FORWARD DROP || fail=1
> > iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT ||
> > fail=1
> > iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT ||
> > fail=1
> 
> Esta no haría falta, porque ya aceptas conexiones por defecto.
> 
> > # Permitimos todo el tráfico de la lan
> > iptables -A INPUT -i $INIF -j ACCEPT || fail=1
> >
> > # Marcar paquetes salientes con su ip de origen
> > #iptables -t nat -A POSTROUTING -o $EXIF -j MASQUERADE || fail=1
> 
> Esta regla (de POSTROUTING) debería estar descomentada, para poder
> hacer el NATeo en sí.
> 
> Por lo demás, me parece todo correcto.
> 
> Saludos,
>   Alvaro.
> _______________________________________________
> eside-ghost mailing list
> eside-ghost en listas.deusto.es
> https://listas.deusto.es/mailman/listinfo/eside-ghost




Más información sobre la lista de distribución eside-ghost