Cargando



Configurar un Router basado en GNU/Linux

Este tutorial es presentado como una guía de configuración para la implementación de un router utilizado GNU/Linux como puerta de enlace (a Internet) en una red LAN. Se mostrará un escenario simple, pasos y configuraciones necesarias.


nov 22 2014 23:59
Profesional
nov 23 2014 17:54
El acceso a Internet (o a otras redes si se quiere) en una red LAN es el punto de salida de redes domésticas, corporativas, gubernamentales, etc. Ya sea en casa, en el trabajo o en un laboratorio, la correcta administración de los recursos juega un papel fundamental en el buen desempeño de las actividades. El acceso a Internet y los servicios basados en la Web representan puntos críticos en la administración de recursos informáticos.

Una red LAN tiene un punto de interconexión donde todas las comunicaciones son “enrutadas” hacia otras redes, y así a través de internet. Normalmente en las conexiones domésticas el proveedor de servicios de Internet (ISP) instala un dispositivo que hace las veces de Módem y router de la red, permitiendo que todos los equipos de la LAN puedan acceder a los servicios de internet.

¿Qué es un Router?
“es un dispositivo que proporciona conectividad a nivel de capa de Red del modelo ISO/OSI. Su función principal consiste en enviar o encaminar paquetes de datos de una red a otra, es decir, interconectar subredes, entendiendo por subred un conjunto de máquinas IP que se pueden comunicar sin la intervención de un encaminador (mediante bridges), y que por tanto tienen prefijos de red distintos.”


Los routers entonces, interconectan Redes; por ejemplo si Bob está en la subred 10.0.0.0/24 y Alice en la Subred 20.0.0.0/24, dado que pertenecen a subredes diferentes, no pueden comunicarse directamente. Si se instala un router con acceso a ambas subredes (por ejemplo con 2 placas de red, configuradas cada una en cada subred) Bob podría utilizar el router para enviar datos a Alice y viceversa.



Cada host mantiene una tabla de routeo, donde básicamente apunta la dirección IP del router que puede enrutarle a una dirección IP (de red o host). Para el caso de la misma subred, cada host “sabe” que puede comunicarse directamente con otros sistemas de la propia subred (porque son “vecinos” en la misma subred y no precisan routers para comunicarse).

En una red LAN típica, los hosts configuran una dirección IP y una máscara de subred que determina el espacio de direcciones que puede contactar sin necesidad de enrutadores. Si los hosts deben acceder a internet, adicionalmente se configura una puerta de enlace predeterminada, que indica la dirección IP del router que se utiliza para el acceso a Internet.
La configuración de servidores de nombres o DNS es importante también pero para esta guía se utilizaran DNS de internet, por ejemplo 8.8.8.8 (DNS público de Google).

Para el caso de la puerta de enlace predeterminada en una LAN, el router no sólo brinda servicios de encaminamiento sino también de enmascaramiento. El enmascaramiento es necesario para que los paquetes sean enviados hacia internet con la dirección de ip wan del router, es decir, la ip que tiene el router en la subred del proveedor de internet, de modo tal que los sistemas intermediarios puedan routear el camino de vuelta sin importar la dirección IP de la LAN que ha enviado el paquete. De este modo, cada subred LAN puede ser configurada con cualquier direccionamiento sin importar que otros clientes utilicen el mismo, ya que el router modifica la dirección IP de origen con la propia antes de enviar los paquetes. Cuando un paquete “vuelve” de internet, el router utiliza un registro de conexiones y “sabe” a qué host debe entregar el paquete.

En una LAN típica, el Modem ADSL actúa como router y puerta de enlace predeterminada de la LAN. El asunto es que la dirección IP pública es asignada al dispositivo ADSL y este provee acceso mediante la red LAN configurable (normalmente una red 192.168.1.0/24).

El mismo dispositivo ADSL, normalmente asigna configuraciones de red a la LAN mediante DHCP, por lo que solo es necesario configurar el ordenador para que tome una configuración automáticamente y luego todo funciona.

Dependiendo del modelo de Modem y tipo de acceso a internet, es posible que el Modem sólo actúe como tal, siendo requisito que el host conectado a éste inicie la conexión a internet (por ejemplo mediante PPPoE). En otros casos, es posible “routear” el Modem para que actúe como Modem-Router, estableciendo él mismo la conexión a internet. Algunos proveedores brindan acceso directo a la red pública, indicando al cliente la dirección IP pública fija que se le ha asignado, puerta de enlace predeterminaday DNS. Que la dirección IP sea pública, determina básicamente que cualquier host del mundo conectado a internet (sin restricciones) podrá contactarnos directamente.

Este suele ser el caso para las redes corporativas, y es por eso que esta guía se plantea bajo un escenario de este tipo.

Sistemas Involucrados
LAN:

Bob:
Dirección MAC: AA:BB:CC:22:33:44
Dirección IP: 192.168.1.2/24 (Asignable mediante DHCP)
OS: Windows XP

Gateway de la red (DNS+DHCP):
Dirección MAC (LAN): AA:BB:CC:44:55:66
Dirección IP LAN: 192.168.1.1/24
Dirección IP WAN: 200.51.2.1/30
Ruta por defecto mediante 200.51.2.2/30
OS: GNU/Linux Ubuntu

INTERNET:

Router de Internet:
Dirección IP1: 200.51.2.2/30
Dirección IP2: 180.0.0.2/16
...
OS: GNU/Linux Ubuntu 14.04

Alice (web server):
Dirección IP: 180.0.0.1/16



En el gráfico, los sistemas a la derecha de la nube de internet son sistemas conectados a la red pública. Bob se encuentra en una red LAN, y el Router que actúa como Default Gateway (o Puerta de enlace predeterminada de la LAN de Bob), es el sistema en el que nos centraremos.

Este último, deberá proveer servicios de DHCP a la LAN de Bob y servicio de puerta de enlace (router con enmascaramiento).

Configuración de Gateway de LAN basado en GNU/Linux



1) En primer instancia, se deberán configurar las interfaces de red del router, para que éste cuente con conexión en la LAN (192.168.1.1/24) y en la Internet (WAN, 200.51.2.1/30); para ello, editar el fichero de configuración de red:

# vim /etc/network/interfaces


2) Suponiendo que eth0 es la interfaz LAN y eth1 la interfaz WAN, especificar la configuración de la siguiente manera:

3.png


Notar que se ha indicado al principio que las interfaces de red deben levantar automáticamente con la interfaz de loopback, mediante la directiva “auto”

Luego para cada interfaz, LAN o eth0 y WAN o eth1, se ha indicado la configuración de red de manera estática.
Para este caso suponemos que el proveedor de internet o ISP de Bob le ha asignado la dirección IP pública y fija 200.51.2.1/30 y su puerta de enlace es 200.51.2.2.

3) Configurar el nombre del Gateway editando los ficheros “/etc/hostname” y “/etc/hosts”
Reemplazar el nombre que aparece actualmente con cuidado de poner el mismo en ambos. Para este tutorial he seleccionado “Gateway” como nombre.

Ejecutar:

# vim /etc/hostname


Insertar el nuevo nombre:

4.png


Luego ejecutar en la terminal:

# vim /etc/hosts


Y especificar el nombre del router como se muestra a continuación:

5.png


4) Debe activarse la funcionalidad de reenvío de paquetes en el Gateway que estamos configurando, para que actúe como router. Ejecutar en un terminal del Gateway:


# vim /etc/sysctl.conf


5) Luego descomentar la línea “net.ipv4.ip_forward=1” y reiniciar (por cuestiones de testing)


6.png


Para probar la configuración, ejecutar en la terminal:

# cat /proc/sys/net/ipv4/ip_forward


Si la salida es “1” significa que está activada la función de reenvío de paquetes:

7.png


6) Una vez configurado el sistema como router, añadir funcionalidad de enmascaramiento. Con iptables es posible indicar que el tráfico saliente desde la LAN hacia cualquier red (internet) sea enmascarado por este Gateway.

Ejecutar el siguiente comando:

# echo "iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -d 0.0.0.0/0 -j MASQUERADE" >> /etc/init.d/reglas-fw.sh


Esto genera el fichero “/etc/reglas-fw.sh”. Ahora otorgar permisos de ejecución:

# chmod +x /etc/init.d/reglas-fw.sh


Luego con update-rc.d indicar que se ejecute reglas-fw.sh en el inicio:

# update-rc.d reglas-fw.sh start 90 2 3 4 5 .


Finalmente reiniciar y probar si la regla se ha aplicado. Para ello, luego de reiniciar ejecutar:

# iptables -t nat -L -n


Y la salida deberá mostrar las reglas aplicadas, en las que debe aparecer la de enmascaramiento:

8.png


7) Para que el router asigne configuraciones de red a los hosts de la LAN, instalar un servidor DHCP con el siguiente comando:

# apt-get install isc-dhcp-server


8 ) Configurar el servicio DHCP para que sólo utilice la interfaz de red LAN (no queremos repartir IPs hacia Internet!). Para ello editar el fichero de configuración:


# vim /etc/default/isc-dhcp-server


Especificar la interfaz de lan:

9.png


9) Editar el fichero de configuración del servidor DHCP para determinar el pool de direcciones IP, la puerta de enlace a asignar, etc. Ejecutar en un terminar:



# vim /etc/dhcp/dhcpd.conf


Ingresar la configuración de la subred, los dns a asignar y la pueta de enlace. Para el host de Bob hemos forzado que se asigne la dirección IP 192.168.1.2 siempre:

subnet 192.168.1.0 netmask 255.255.255.0 {
option routers 192.168.1.1;
option domain-name-servers 8.8.8.8;
option domain-name "lan";
authoritative;
}
host Bob {
hardware ethernet AA:BB:CC:22:33:44;
fixed-address 192.168.1.2;
}

Reiniciar el servicio:

# /etc/init.d/isc-dhcp-server restart

Comprobar en el syslog del sistema si algún cliente solicita asignación de IP:

Como se vió en el tutorial de DHCP Spoofing Simple, la asignación de IP mediante DHCP le asigna a Bob la dirección que especificamos con su dirección MAC.


10) Si todo está bien configurado, Bob podría hacer ping a Alice:


11.png


12) Finalmente, Bob accede a la página web de Alice:


12.png

Consideraciones finales


Es importante destacar que si bien esta guía está basada en un escenario simple, los comandos y métodos de configuración no varían de escenario a escenario ya que los componentes y el software involucrado es el mismo. Existen distribuciones Linux especialmente preparadas para actuar como router en una LAN, como es el caso de OpenWRT, DD-WRT y Pfsense (freeBSD). Estas distribuciones brindan una interfaz de configuración amigable y no requieren de comandos ingresados manualmente en las terminales. Esta es una propuesta simple para montar nuestro propio Gateway basado en GNU/Linux sin ayuda de asistentes de configuración, es decir, "hecho totalmente a mano".

En tutoriales posteriores se sumará a esta guía la opción de configurar un DNS local, un firewall completo y el servicio de Proxy, para administrar el acceso a Internet, así que estar atentos.

¿Te ayudó este Tutorial?


10 Comentarios


Alejandro Teba
nov 23 2014 18:10
Mil millones de graciassss!! Lo necesitaba como agua de mayo jajajaj
neecesito configurar un router en Linux con puerta de enlace, justo lo que has puesto. Entendía cosas, pero no todo... Muy útil. 10 te doy. saludos Silvestre.

Lucas Rodriguez
nov 23 2014 18:12
Me uno, genial aporte y muy bien explicado. Como nos gustan los tutoriales, entrada, ejemplo y detalles paso a paso de la forma de realizarlo. ¡thanks!

Nuria Sanz
nov 24 2014 19:54
Muy interesante el tutorial. Entiendo bastantes cosas ahora.

Silvestre Figueroa
nov 25 2014 19:24
Gracias gente! espero sea de utilidad. Le agregaré más funcionalidades a la guía más adelante. Slds.
Me uno a tus seguidores jeje

Miguel Guerrero
nov 26 2014 15:16
Genial aporte Silvestre, muy útil para aprender la configuración de tu Linux como router.

Fiore Nella
nov 27 2014 12:46
GRACIAS, GENIAL TUTORIAL!!!!

David Sanz
may 11 2015 11:06

Me ha venido de fábula, thanks Silvestre. te sigo.

Lo tengo en favoritos que me toca montar router bajo sistema Linux.


miquel angel hernandez
feb 12 2019 19:02

Buen Tutorial, es justo lo que buscaba, gracias Silvestre!!!

No esperes más y entra en Solvetic
Deja tus comentarios y aprovecha las ventajas de la cuenta de usuario ¡Únete!

X