sábado, 22 de noviembre de 2008

Configurar y activar un equipo como enrutador en Ubuntu o Debian

Activación del enrutamiento en Linux

Las funciones de enrutamiento mediante NAT son realizadas por el cortafuegos que analizará los paquetes provenientes de la red local interna cuyo destino sea Internet y los modificará convenientemente para que salgan hacia Internet como si fueran emitidos por el servidor. A partir del nucleo 2.4 de Linux, el cortafuegos empleado es iptables.

Para posibilitar que nuestro servidor Linux sea capaz de comportarse como un router y hacer de puerta de enlace para los PCs de nuestra red local, será necesario crear un script que configure el cortafuegos iptables para que realice NAT desde dentro de la red local hacia Internet.

Creación del script para activar enrutamiento

Para activar el enrutamiento en un sistema Linux, tan solo basta con poner a '1' la variable ip_forward del sistema, es decir, basta con ejecutar desde una consola de root:

echo "1" > /proc/sys/net/ipv4/ip_forward


Posteriormente tendríamos que configurar el filtrado de paquetes para que acepte el redireccionamiento de paquetes desde dentro hacia fuera de nuestra red y mediante NAT permita que los PCs de la red interna naveguen con la dirección IP 'publica' del servidor. Supongamos que el router Linux tiene una tarjeta (eth0) conectada a la red local (172.16.15.1/255.255.255.0) y que tenemos una tarjeta (eth1) conectada al router, con la ip 192.168.36.140, los comandos a ejecutar serían:

// Haciendo NAT en el servidor
# iptables -A FORWARD -j ACCEPT

# iptables -t nat -A POSTROUTING -s 172.16.15.0/24 -o eth1 -j SNAT --to 192.168.36.140


Podríamos realizar un script que activara el enrutamiento y el NAT y otro para desactivarlo:

// activar-enrutamiento.sh
echo "1" > /proc/sys/net/ipv4/ip_forward

iptables -A FORWARD -j ACCEPT

iptables -t nat -A POSTROUTING -s
172.16.15.0/24 -o eth1 -j SNAT --to 192.168.36.140


// desactivar-enrutamiento.sh
echo "0" > /proc/sys/net/ipv4/ip_forward

Activación automática del enrutamiento al arrancar el equipo

Si hemos creado el script de enrutamiento lo único que tenemos que hacer es dar permisos de ejecución y:

update-rc.d activar-enrutamiento.sh defaults


Fuentes:



4 comentarios:

Anónimo dijo...

Me ha servido de gran ayuda... gracias

Anónimo dijo...

a mi tambien me ha sido de gran utilidad, Gracias!

Anónimo dijo...

tengo una pc con dos tarjetas de red eth0 y eth1 pero no he podido hacer que desde la red 172.16.0.0 en la eth1 se pueda conectar a la eth0 192.168.1.1, que alguien me ayude

jonthny dijo...

Hola, gracias por el tutorial, necesito compartir una conexión de red que utiliza un servidor proxy para acceder a Internet.
Se puede usar ésta configuración para compartirla y que no haya que configurar el proxy en cada máquina que desee conectar a mi red?

Otra pregunta: ¿Que diferencia hay entre configurar NAT en Linux y crear una conexión compartida en Ubuntu 12.04? Qué es mejor, o en que casos se usa una y en cual la otra?

Muchas gracias!