Re: [Off topic]:Ayuda con iptables
Bueno, es que yo soy a veces muy espeso en mis explicaciones....
El Martes, 26 agosto, 2003, a las 02:25 PM, Pere Castañer escribió:
On Tue, 26 Aug 2003 13:55:40 +0200
Victor Calzado <vcalzado@cnio.es> wrote:
Hola :))
---snip--
Por loque me dices, el problema és que las reglas de nat están en el
sitio equivocado no? Es decir que no dependen de INPUT, sinó de
forwarding, por lo que deberia ser el fichero..como sigue?:
Realmente es una consecuencia del diseño de la pila TCP/IP y de como se
integra netfilter en ella y de como vemos nosotros las cosas, me
explico:
En nuestro caso resulta bastante común llegar a la conclusión de que
todo lo que entra por un interface de red pasa primero por el gancho
de INPUT pero a nivel de nucleo el enrutamiento va a seguir caminos
distintos si el paquete es local ( que si será tratado por INPUT ) que
si va a ser redirigido a un sistema no local ( una traducción algo
libre de FORWARD ) Así la decisión de enrutamiento de un paquete
entrante se bifurca si es local sigue un camino (y nosotros podremos
actuar sobre él con reglas de INPUT) y si está o va a estar dirigido
(cuando reescribamos la dirección con nuestras reglas de Destination
NAT) a un sistema no local seguirá otro y para actuar sobre él
deberemos aplicar nuestros filtros sobre el "gancho" o "cadena" de
FORWARD.
Si le echas un ojo al howto de netfilter verás un grafiquillo ascii muy
explicativo
(http://www.netfilter.org/documentation/HOWTO/es/packet-filtering-
HOWTO.txt)
De esta forma si no permites (como ocurre en tu configuración) reenvio
de paquetes estás actuando sobre todas las reglas de PREROUTING que
utilices impidiendo que puedan aplicarse (ya que dependen de la
capacidad del sistema para reenviar paquetes) ¿cómo lo corriges? una
vez que has visto el error de concepto es sencillo piensa sin más que
lo que tu considerabas INPUT en el caso del DNAT es FORWARD ya que
realmente los paquetes son reenviados, tendrías que rehacer tu
configuración para permitir el reenvio de paquetes en vez de su
entrada, como conceptualmente los paquetes que se envían entran y salen
por el interface necesitarías permitir esto tanto en la entrada como en
la salida de los interfaces implicados ( en tu caso que no permites
reenvío de paquetes que tengan como entrada eth0 deberías permitirlo
para los puertos de los que quieras hacer DNAT, lo que es posible que
sólo te suponga sustituir en esas reglas INPUT por FORWARD )
Espero haberme explicado algo mejor pero es evidente que al mejor
manera de aclararse con todas estas cosas es pasarse por netfilter.org
y aprovechar la gran cantidad de información (desde mi punto de vista
de una categoría excepcional) que tienen.
un saludo
Victor
Reply to: