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.
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).
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
Adaptador con 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.
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).
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.
Una vez tengamos el firewall desactivado vamos a hacer un ping entre las maquinas.
Desde Ubuntu(servidor) a Windows:
Desde Windows(cliente) a Ubuntu(servidor):
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
a192.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
Ahora ejecutaremos el script con el siguiente comando:
sudo ./enrute.sh
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.
En este punto ya tendríamos el enrutamiento terminado, si queremos utilizarlo una vez cerrada la maquina tendremos que volver a ejecutar el script.