CREAR ROUTER LINUX CON IPTABLES

Partimos de una máquina virtual debian con dos interfaces:

Configurada con dos redes diferentes 192.168.1.0/24 para la WAN y 192.168.100.0/24 para la LAN


Contenido del archivo /etc/network/interfaces:

# The loopback network interface
auto lo
iface lo inet loopback

# Interfaz WAN (salida a Internet)
allow-hotplug eth0
iface eth0 inet static
address 192.168.1.100
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.0
gateway 192.168.1.1
dns-nameservers 8.8.8.8

# Interfaz LAN (interna del NAT)

allow-hotplug eth1
iface eth1 inet static
address 192.168.100.1
netmask 255.255.255.0
network 192.168.100.0
broadcast 192.168.100.255


Permitir traspaso de datos entre las dos tarjetas de red.

Para permitir el forwarding entre las tarjetas editamos el archivo:
 /etc/sysctl.conf
Y  descomentamos la línea que contiene:
net.ipv4.ip_forward=1
Con esto el valor de /proc/sys/net/ipv4/ip_forward se reescribe a 1 en cada reinicio y automatizados el arranque del forwarding en cada reinicio.

Reglas IPTABLES para la salida a Internet

Para permitir la salida a Internet desde la interfaz eth1 basta con introducir este comando:
 iptables -t nat -A POSTROUTING -s 192.168.100.0/24 -o eth0 -j MASQUERADE

Podemos comprobar el contenido de IPTABLES (la tabla NAT) con este comando:
iptables -t nat -L -n
Como sabemos las reglas introducidas por comandos son volátiles por lo que nos interesa automatizar la carga de estas reglas en cada reinicio. Para evitar esto vamos al siguiente paso:

Cargar reglas iptables automáticamente
Una vez que se apliquen reglas en iptables, se perderán cuando se reinicia el sistema. Para que se mantengan (una vez aplicadas las que queremos), deberemos hacer lo siguiente:

Crearemos el archivo /etc/firewall.conf

Anteriormente hemos permitido la salida a Internet con este comando:

 iptables -t nat -A POSTROUTING -s 192.168.100.0/24 -o eth0 -j MASQUERADE


Y ahora volcamos el contenido actual de las reglas de IPTABLES al archivo firewall.conf:

iptables-save > /etc/firewall.conf

Este comando copia todo el contenido de IPTABLES al archivo /etc/firewall.conf

El siguiente paso es crear el archivo:
/etc/network/if-up.d/iptables
y dentro pondremos:
#!/bin/sh
iptables-restore < /etc/firewall.conf

Sólo falta hacerlo ejecutable:
chmod +x /etc/network/if-up.d/iptables
Cualquier cambio que queramos hacer se hará modificando el archivo
/etc/firewall.conf
o ejecutando las reglas por comandos y salvarlas de nuevo:
iptables-save > /etc/firewall.conf

 

 

 

 

 

 

Joomla templates by a4joomla