Linux funcionando como router

Creamos con Virtualbox dos máquinas virtuales (realmente creamos una y luego la clonamos para obtener la segunda). Con 512Kb de RAM y 4 Gb de Disco duro sobra para hacer el experimento. En este caso vamos a utilizar la distribución de Linux CentOS 7 (64bits). Para equipos de 32 bits habrá que utilizar versiones inferiores a la 7.

Configuración de las tarjetas de red. En la MV1 que es la que hará de router configuramos la primera tarjeta (adaptador puente) obteniendo IP mediante DHCP, mientras que la segunda tarjeta (red interna) tendrá la tarjeta de red configurada de forma manual.

Configuración tarjetas de red MV

configuración tarjetas red Linux CentOS7

Cada vez que hagamos un cambio en la configuración de las tarjetas tendremos que reiniciar los servicios de red:

systemctl restart network.service
# O por las bravas reiniciando la máquina
shutdown -r now
# Con la opción -h se pararía la máquina
shutdown -h now

Apagamos la máquina virtual MV1 y la clonamos como máquina virtual MV2, indicando que queremos reinicializar todas las direcciones Mac de todas las tarjetas de red.

A esta segunda máquina MV2 le quitamos la tarjeta de red externa y únicamente le dejamos la interna a la cual que cambiaremos la IP (usando el programa nmtui).

Configuración tarjeta red MV2

 

Funcionamiento de PING entre MV1 y MV2

….

Activación enrutamiento en la M.V-1

ip_forward

// Activar el enrutamiento en un sistema Linux editando el archivo y sysctl.conf

nano /etc/sysctl.conf
# añadir la línea: net.ipv4.ip_forward = 1
# comprobamos que el enrutamiento se activó correctamente
sysctl -p

Si tenemos firewalld habrá que desinstalarlo y sustituirlo por iptables

# nos cargamos firewalld
systemctl stop firewalld
systemctl disable firewalld

#instalamos y arrancamosiptables
yum install iptables-servces iptables-utils -y
systemctl enable iptables
systemctl start iptables
systemctl enable iptables.service

Comprobamos que las tablas filter y nat de iptables están vacías:

# vemos las reglas que hay definidas en la tabla filter y la tabla nat
iptables -t filter -nL
iptables -t nat -nL

comprobación tablas vacias iptables

En caso de no estar limpias podemos ejecutar las siguientes ordenes para hacer limpieza de todas las reglas de iptables:

iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
iptables -t mangle -F
iptables -t mangle -X
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT

Ahora tenemos que abrir el firewall (iptables) de la máquina virtual MV1.

Reglas

iptables -t nat -A POSTROUTING -o  - j MASQUERADE
iptables -A FORWARD -i  -o  - j ACCEPT
iptables -A FORWARD -i  -o  -m state --state RELATED,ESTABLISHED -j ACCEPT 

# guardamos las reglas
service iptables save

Ahora la comprobación final será si la MV2 es capaz de salir a Internet a través de la MV1.