ROUTE target en IPTables

Se trata de un módulo no oficial para IPTables que hace más fácil y centralizada la gestión de rutas a host en un sistema linux. Una vez configurado nos permitirá reglas del tipo:

# iptables -A PREROUTING -t mangle -d 193.110.10.58 -j ROUTE –gw 10.0.0.257

Para echarlo a funcionar tendremos que parchear el kernel con patch-o-matic. Como los sources de Debian utilizan otra numeración al aplicar el parche nos fallará. La idea es bajarse los sources de la misma versión de iptables que nos ofrece debian y utilizando para el parcheo.

Instalamos las fuentes oficiales de Debian desde apt-get, que hará que sean más fáciles de mantener que las que nos bajemos de kernel.org, y alguna herramienta de compilación:

# apt-get install linux-source-2.6.18 gcc make ncurses-dev
# cd /usr/src
# tar -xjpf linux-source-2.6.18.tar.bz2
# ln -s linux-source-2.6.18 linux

Bajamos y descomprimimos las fuentes de IPTables:

# wget iptables-1.3.6.tar.bz2
# tar -xjpf iptables-1.3.6.tar.bz2

Bajamos y descomprimimos patch-o-matic:

# wget patch-o-matic-ng-20070728.tar.bz2
# tar -xjpf patch-o-matic-ng-20070728.tar.bz2
# cd /usr/src/patch-o-matic-ng-20070728

Si, es cierto, no es la versión más nueva que existe, pero el que las más nuevas no incluyen el módulo ROUTE. Es sospechoso y me preocupa algo (¿Por qué lo habrán quitado?), pero como ejemplo sirve.

Aplicamos el parche ROUTE indicandole que los sources de IPTables están en determinado directorio.

# IPTABLES_DIR=/usr/src/iptables-1.3.6 ./runme ROUTE

Ahora contestamos y. Nos dirá que el parche ha sido aplicado satisfactoriamente y que ahora es necesario compilar el kernel y los módulos.

Para ahorrar tiempo y desplegarlo más rápido en diferentes máquinas haremos un paquete deb del kernel.

Copiamos la antigua configuración del kernel precompilado de Debian

# cd /usr/src/linux
# make oldconfig

Instalamos las herramientas necesarias:

# apt-get install kernel-package

Desinstalamos el viejo kernel de Debian:

# apt-get remove –purge linux-image-2.6.18-5-686

Limpiamos el directorio de compilaciones previas si las hubiese:

# make-kpkg clean

Ahora compilamos de dos formas. La primera si necesitamos un paquete con los headers para algun driver como el de nVidia y demás. El segundo es el que he utilizado y servirá en la mayoría de los casos.

# make-kpkg –initrd kernel_image kernel_headers

o

# make-kpkg –initrd kernel_image

Podemos ahora desplegar este kernel precompilado por todas las debian que queramos utilizando dpkg:

# dpkg -i Kernel.deb

Como dije antes el target ROUTE parece que no ha sido incluido en versiones más nuevas de patch-o-matic. Quizá por estar descontinuado, fallar o por alguna otra razón. La verdad que no conozco la causa, pero lo que se puede hacer es utilizar iproute e iptables, para marcar los paquetes y darles salida por la puerta de enlace deseada.

Un saludo.

Anuncios

6 Responses to “ROUTE target en IPTables”


  1. 1 artholion 12 noviembre 2007 en 17:20

    Ahora mi pregunta…. que diferencia hay de usar esto a usar iproute2 + marcado de paketes 😀

    Un saludete tiu que hace tiempo ia….

  2. 2 Gura 12 noviembre 2007 en 17:45

    Coño, cuanto tiempo!

    En realidad la unica diferencia que veo es que no tienes que andar asociando una tabla con una marca y luego desde iptables la marca a los paquetes con mangle. A mi me parece más cómodo y fácil de entender que con iproute2, solo eso, pero parece descontinuado a día de hoy.

    El post intenta explicar más que la instalación de este módulo (Que además hay que tocar el kernel genérico de Debian, hay alternativas), la instalación de módulos de terceros.

    Un saludo.

  3. 3 artholion 14 noviembre 2007 en 20:06

    ya ya, solo era un comentario 😀
    na ta way el articulo, te lo has currado, que es lo importante. Solo comentaba otra forma de hacer casi lo mismo. Creo que si tiene una aplicacion mejor que con iproute2, ya que con iproute2 solo te deja redireccionar de la tabla main, creo… eh!!

    😀

  4. 5 Vitry 28 diciembre 2007 en 15:22

    vyox:/usr/src/patch-o-matic-ng-20071227# ./runme –download
    Successfully downloaded external patch geoip
    Successfully downloaded external patch condition
    Successfully downloaded external patch IPMARK
    Successfully downloaded external patch ROUTE

    Para disponer de ROUTE en las nuevas versiones de patch-o-matic hay que descargar parches extras.

    Un Saludo

  5. 6 Gura 28 diciembre 2007 en 15:46

    Gracias por el apunte 😉


Comments are currently closed.



Las opiniones reflejadas en este blog son personales o ni siquiera son opiniones, y bajo ningún concepto representan las estrategias, opiniones o posturas de mi empresa actual, ni de ninguna en las que he trabajado, así como tampoco de ninguno de los clientes o proveedores de todas ellas.
La información se proporciona como está, sin garantías de ninguna clase, y no otorga ningún derecho. Los comentarios pertenecen a sus autores y bajo ningún concepto el autor del blog se hará responsable de los mismos.

Categorías

Archivos


A %d blogueros les gusta esto: