Configurar un Ubuntu Server como router que os permite unir varias interfaces

A través del presente artículo se explicará como configurar un servidor Ubuntu Server para interconectar dos interfaces de red y poderlo usar como router. A modo de ejemplo, lo podéis emplear en un entorno virtual en que queráis interconectar una red interna con una red de tipo NAT o Puente. 

El primer cambio que deberéis de realizar consiste en configurar correctamente las interfaces a través de netplan. Para ello, podéis entrar en el siguiente post donde se explica como hacerlo. 

En segundo lugar, habilitaréis UFW a través del siguiente comando:

sudo ufw enable

Una vez habilitado, tendréis que modificar los siguientes apartados del siguiente fichero:

/etc/ufw/sysctl.conf

Por lo tanto, abrirlo con un editor como podría ser nano:

nano /etc/ufw/sysctl.conf

A continuación, deberéis de comentar la siguiente línea quitándole la #:

descomentar ip_forward

Posteriormente, generaremos un fichero rc.local en la siguiente ubicación /etc/. A tal efecto, lo que generaremos de la siguiente forma:

sudo nano /etc/rc.local

Posteriormente, añadiremos los siguientes comandos de iptables en dichero directorio nota: es necesario tener claro el nombre que vuestro servidor linux ha asignado a las interfaces, si no lo sabéis, ejecutar el comando ip -a:

#!/bin/bash 
# /etc/rc.local
#Denegamos todas las peticiones entrantes
iptables -P INPUT DROP iptables -P FORWARD DROP 
#Aceptamos todas las peticiones de red interna. 
#Cuidado cambiar eth1 por el nombre de la interfaz de la red interna
iptables -A INPUT -i lo -j ACCEPT iptables -A INPUT -i eth1 -j ACCEPT 
#Permitir las conexiones entrantes desde la red externa si las ha iniciado el router. 
#Cuidado cambiar eth0 por el nombre de la interfaz de la red externa
iptables -A INPUT -i eth0 -m conntrack \ 
--ctstate ESTABLISHED,RELATED -j ACCEPT 
#Permitir el reenvío de paquetes de la red interna a la red externa
#Cuidado cambiar eth0 y eth1 por los nombres de las interfaces correspondientes
iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT 
#Reenviar paquetes a la red interna si se ha iniciado desde ahí las peticiones 
#Cuidado cambiar eth0 y eth1 por los nombres de las interfaces correspondientes
iptables -A FORWARD -i eth0 -o eth1 -m conntrack \ 
--ctstate ESTABLISHED,RELATED -j ACCEPT 
#Se define el nateo
#Cuidado cambiar eth0 por el nombre de la interfaz externa
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE 
#este fichero debe de finalizar con exit 0
exit 0
Finalmente, es necesario modificar los permisos del fichero para que pueda ser ejecutado. Para ello, ejecutaremos el siguiente comando:

sudo chmod 755 /etc/rc.local
Para la elaboración de este artículo me he basado en el siguiente artículo que he adaptado para una correcta comprensión.

Comentarios