2.8.5. Reglas FORWARD
y NAT
La mayoría de los ISPs proveen sólo un número limitado de direcciones IP disponibles públicamente para sus clientes.
Los administradores deben, por lo tanto, encontrar formas alternativas de compartir el acceso a los servicios de Internet, sin darle por ello una dirección IP pública a cada nodo de la LAN. Utilizar direcciones IP privadas es la manera más común de permitirle a todos los nodos de una LAN que tengan un acceso correcto, tanto interno como externo, a los servicios de red.
Los enrutadores de borde (como los cortafuegos) pueden recibir transmisiones entrantes desde Internet y enrutar los paquetes hacia el nodo LAN correspondiente. Al mismo tiempo, los cortafuegos/puertas de enlace pueden enrutar peticiones salientes de un nodo de la LAN hacia el servicio de Internet remoto.
Este reenvío de trafico de red puede convertirse algunas veces en algo peligroso, especialmente con la disponibilidad de herramientas de crackeo modernas que pueden espiar direcciones IP internas y hacer que el el equipo del atacante remoto actúe como un nodo de su LAN.
Para impedir esto, iptables
provee políticas de ruteado y reenvío que se pueden implementar para prevenir el uso anormal de los recursos de red.
La cadena FORWARD
permite a un administrador controlar hacia dónde se pueden rutear los paquetes dentro de la LAN. Por ejemplo, para permitir el reenvío para toda la LAN (asumiendo que el cortafuego/puerta de enlace tiene asignado una dirección IP interna en eth1), use las siguientes reglas:
[root@miServidor ~ ] # iptables -A FORWARD -i eth1 -j ACCEPT
[root@miServidor ~ ] # iptables -A FORWARD -o eth1 -j ACCEPT
Esta regla le da a los sistemas detrás del cortafuego/puerta de enlace el acceso a la red interna. La puerta de enlace rutea los paquetes desde un nodo de la LAN a su nodo destino deseado, pasando todos los paquetes a través del dispositivo eth1
.
Nota
Por defecto, la política IPv4 en kernels de Fedora deshabilita el soporte para reenvío de IP. Esto evita que máquinas que corran Fedora funcionen como un ruteador dedicado. Para habilitar el reenvío de IP, use el siguiente comando:
[root@miServidor ~ ] # sysctl -w net.ipv4.ip_forward=1
Este cambio en la configuración sólo es válido para la sesión actual; no persiste luego de un reinicio de equipo o del servicio de red. Para poner el reenvío de IP permanente, edite el archivo/etc/sysctl.conf
como sigue:
Ubique la siguiente línea:
net.ipv4.ip_forward = 0
Y edítela para que se lea:
net.ipv4.ip_forward = 1
Use el siguiente comando para habilitar el cambio en el archivo sysctl.conf
:
[root@miServidor ~ ] # sysctl -p /etc/sysctl.conf
2.8.5.1. Postruteado y enmascarado de IP
La aceptación de paquetes reenviados a través de la IP interna del cortafuego le permite a los nodos de la LAN comunicarse entre si; sin embargo, todavía no se pueden comunicar externamente con Internet.
Para permitir que los nodos de una LAN con direcciones IP privadas puedan comunicarse con redes públicas externas, configure su cortafuegos para que realice enmascaramiento de IP, que enmascara las peticiones desde los nodos LAN con la dirección IP del cortafuegos del dispositivo externo (en este caso, eth0):
[root@miServidor ~ ] # iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
Esta regla usa la tabla de comparación de paquetes NAT (-t nat
) y especifica la cadena predefinida POSTROUTING para hacer NAT (-A POSTROUTING
) en el dispositivo externo del cortafuego (-o eth0
).
POSTROUTING permite que los paquetes se puedan alterar mientras están abandonando el dispositivo externo del cortafuegos.
El destino -j MASQUERADE
se especifica para enmascarar la dirección IP privada de un nodo con la dirección IP externa del cortafuego/puerta de enlace.