Guía: Enrutamiento en Ubuntu con Iptables y Scripts .sh

Para llevar a cabo el Enrutamiento en este caso se va a realizar con maquinas virtuales. La maquina que va a enrutar va a ser una con Ubuntu 24.04 y la que vamos a utilizar de cliente una con Windows 10.

Guía: Enrutamiento en Ubuntu con Iptables y Scripts .sh

Tendremos que asignar las tarjetas de red a las maquinas. La maquina Windows(cliente) le asignaremos la red interna para que este en la misma red que la maquina Ubuntu(servidor).

configuracion-red-cliente-enrutamiento

Para la configuración del servidor en Ubuntu, se asignaremos una tarjeta NAT y otra con Red Interna, importante que la red interna se llame igual en ambas maquinas.

Adaptador con NAT

configuracion-virtualbox-nat

Adaptador con Red Interna

configuracion-red-interna

Una vez tengamos las maquinas configuradas, vamos a iniciar ambas maquinas y hacer la configuración de las direcciones IP.

Para la maquina Ubuntu(servidor) a la tarjeta de red que pertenezca a la Red Interna le asignaremos la IP 192.168.0.1, realmente se puede asignar cualquier ip pero en este caso se hará con esta ya que es mas visual. La tarjeta que pertenezca a la NAT la dejaremos de forma automática.

asignacion-manual-ip-ubuntu

Para la maquina cliente, le asignaremos la ip 192.168.0.2, también le asignaremos la puerta de enlace 192.168.0.1 y los DNS de google (Preferido 8.8.8.8 y Alternativo 8.8.4.4).

asignacion-manual-ip-windows

Una vez configuradas la red de ambos equipos vamos a probar a hacer un ping entre ambas maquinas para comprobar de que se ven dentro de la red.

Antes de probarlo vamos a ir en Windows a Firewall y protección de red y vamos a desactivarlo para que se pueda hacer un ping entre las maquinas.

firewall y protección de red windows
desactivar-firewall-windows

Una vez tengamos el firewall desactivado vamos a hacer un ping entre las maquinas.

Desde Ubuntu(servidor) a Windows:

ping-desde-ubuntu

Desde Windows(cliente) a Ubuntu(servidor):

ping desde windows

Ya teniendo los dos equipos preparados, vamos a comenzar con el enrutamiento, para ello en la maquina Ubuntu crearemos un archivo .sh desde terminal.

nano enrute.sh

Dentro de enrute.sh vamos a poner lo siguiente:

#!/bin/bash
echo "1" > /proc/sys/net/ipv4/ip_forward
iptables -A FORWARD -j ACCEPT
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o enp0s3 -j MASQUERADE

echo «1» > /proc/sys/net/ipv4/ip_forward -> Permitir reenvió de paquetes entre interfaces | 0 no permitir y 1 permitir.

iptables -A FORWARD -j ACCEPT -> Acepta todos los paquetes en la cadena de reenvió FORWARD

iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o enp0s3 -j MASQUERADE

  • -t nat -> Indica que estamos trabajando con la tabla nat, utilizada para modificar direcciones de red.
  • -A POSTROUTING -> Añade una regla a la cadena POSTROUTING, que es responsable de modificar los paquetes salientes después de que hayan sido enrutados.
  • -s 192.168.0.0/24 -> Aplica la regla a los paquetes provenientes de la red local con direcciones IP en el rango 192.168.0.0 a 192.168.0.255 (máscara /24).
  • -o enp0s3 -> Especifica que la regla aplica a los paquetes que salgan a través de la interfaz enp0s3 (presumiblemente la interfaz de red conectada a Internet), enp0s3 es la tarjeta de red que tiene la nat en nuestra maquina.
  • -j MASQUERADE -> Aplica la acción de enmascarado (NAT) a los paquetes. Esto significa que las direcciones IP de origen de los paquetes provenientes de la red local se cambiarán por la IP pública de la interfaz de salida (enp0s3). Así, desde el punto de vista del exterior, todo el tráfico parece venir desde la IP pública del servidor.

Una vez tengamos nuestro script saldremos, guardando con Ctrl + O y salimos con Ctrl + X, despues le asignaremos permisos de ejecución con el siguiente comando:

sudo chmod +x enrute.sh
asignar-permisos-de-ejecucion

Ahora ejecutaremos el script con el siguiente comando:

sudo ./enrute.sh
Ejecutar script de enrutamiento

Cuando ya lo hemos ejecutado, vamos a nuestra maquina Windows y comprobamos si tenemos internet, en el caso de no tener se puede reiniciar las tarjetas de red.

comprobacion de que funciona el enrutamiento

En este punto ya tendríamos el enrutamiento terminado, si queremos utilizarlo una vez cerrada la maquina tendremos que volver a ejecutar el script.

Entradas relacionadas

cambiar-clave-usuario-sa-sql-server

Cómo cambiar la contraseña del usuario sa en SQL Server

El usuario sa (System Administrator) en SQL Server es la cuenta con máximos privilegios en el sistema. Por razones de seguridad, es recomendable cambiar periódicamente su contraseña….

instalar-postgresql-en-ubuntu

Cómo instalar PostgreSQL en Ubuntu paso a paso

PostgreSQL es uno de los sistemas de gestión de bases de datos más potentes y utilizados en entornos de desarrollo y producción. En esta guía, aprenderás a…

clonar-disco-con-dd-en-linux

Clonar un disco en Linux con dd: Guía paso a paso

El comando dd es una poderosa herramienta de Linux para clonar discos duros, realizar copias de seguridad y recuperar datos. En este artículo, te explicamos paso a…

Cómo Descomprimir un Fichero GZ desde Linux: Guía Paso a Paso

Cómo Descomprimir un Fichero GZ desde Linux: Guía Paso a Paso

El formato GZ es ampliamente utilizado para comprimir archivos en sistemas Linux y Unix, pero también es igual de sencillo descomprimirlos. En esta guía te explicaremos cómo…

comprimir-ficheros-gz

Cómo Comprimir Archivos en GZ desde Linux: Guía Paso a Paso

Comprimir archivos en formato GZ es una de las maneras más eficientes de reducir el tamaño de los archivos, especialmente en sistemas Linux y Unix. Este formato,…

configurar-htaccess

Cómo Configurar el Archivo .htaccess por Defecto en WordPress

El archivo .htaccess es fundamental para WordPress, ya que gestiona enlaces permanentes, redirecciones y configuraciones de seguridad. Si falta o está dañado, restaurarlo es rápido y sencillo….

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *