- Detalles
- Escrito por Super User
- Categoría: Linux
- Publicado: 27 Febrero 2017
- Visto: 8280
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