[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