Curso 2024-25 - IES El Rincón
Proyecto mantenido por ichigar
Este tutorial describe cómo configurar un equipo Ubuntu con dos tarjetas de red (NICs) para que funcione como un router con NAT activado, permitiendo que los dispositivos en la red interna accedan a Internet a través de la interfaz externa.
sudo
.Debes habilitar el reenvío de paquetes para que Ubuntu pueda actuar como router. Edita el archivo sysctl.conf
:
sudo nano /etc/sysctl.conf
Descomenta o añade la siguiente línea:
net.ipv4.ip_forward = 1
Aplica los cambios:
sudo sysctl -p
iptables
Configura iptables
para realizar la traducción de direcciones de red (NAT) en la interfaz externa (enp3s0
):
sudo iptables -t nat -A POSTROUTING -o enp0s3 -j MASQUERADE
Permitir el reenvío de tráfico desde la red interna hacia la externa:
sudo iptables -A FORWARD -i enp0s8 -o enp0s3 -j ACCEPT
sudo iptables -A FORWARD -i enp0s8 -o enp0s3 -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables
Para que las reglas de iptables
se apliquen tras reiniciar el sistema, instala el paquete iptables-persistent
:
sudo apt install iptables-persistent
Durante la instalación, selecciona “Sí” para guardar las reglas actuales.
Si ya tienes instalado el paquete, puedes guardar las reglas manualmente ejecutando:
sudo netfilter-persistent save
Si nos hemos equivocado o queremos modificar las reglas podemos hacerlo editando el fichero en el que se almacenan:
sudo nano /etc/iptables/rules.v4
Para que se apliquen las reglas del fichero ejecutamos:
sudo iptables-restore < /etc/iptables/rules.v4
Una vez completada la configuración, conecta dispositivos a la interfaz interna (enp0s8
) y asegúrate de que pueden acceder a Internet:
$ ping -c 4 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_seq=1 ttl=110 time=40.7 ms
64 bytes from 8.8.8.8: icmp_seq=2 ttl=110 time=40.8 ms
64 bytes from 8.8.8.8: icmp_seq=3 ttl=110 time=40.0 ms
64 bytes from 8.8.8.8: icmp_seq=4 ttl=110 time=40.7 ms
--- 8.8.8.8 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 2997ms
rtt min/avg/max/mdev = 40.007/40.558/40.824/0.322 ms
$ ping -c 4 rediris.es
PING rediris.es (130.206.13.20) 56(84) bytes of data.
64 bytes from www.rediris.es (130.206.13.20): icmp_seq=1 ttl=51 time=37.1 ms
64 bytes from www.rediris.es (130.206.13.20): icmp_seq=2 ttl=51 time=37.3 ms
64 bytes from www.rediris.es (130.206.13.20): icmp_seq=3 ttl=51 time=38.1 ms
64 bytes from www.rediris.es (130.206.13.20): icmp_seq=4 ttl=51 time=37.8 ms
--- rediris.es ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 2997ms
rtt min/avg/max/mdev = 37.141/37.586/38.093/0.381 ms
Si los dispositivos internos no pueden acceder a Internet, verifica los siguientes aspectos:
sudo sysctl net.ipv4.ip_forward
Deberías obtener:
net.ipv4.ip_forward = 1
iptables
:
sudo iptables -L -t nat
sudo iptables -L -v
Si queremos empezar desde cero y eliminar todas las reglas que hemos creado ejecutamos:
sudo iptables -F -t nat
sudo iptables -F
ip a
.