Esta web utiliza cookies, puedes ver nuestra política de cookies, aquí Si continuas navegando estás aceptándola

Evitar Hairpinning con iptables


Hay muchos routers cuyas entrañas es un linux empotrado, esto nos permite una gran flexibilidad.

En esta ocasión vamos a explicar como evitar el problema del Hairpining, este consiste en que no se puede utilizar la ip WAN del router desde dentro de la LAN.

Para solventar esta problemática se puede optar por dos soluciones:

  • Configurar un proxy
  • Hacer pirulas con iptables

 

Teniendo en cuenta que el esquema de flujo de iptables es el siguiente: 

En la CHAIN PREROUTING modificamos la dirección destino:

iptables -t nat -A PREROUTING -s RED_LAN/24 -d WAN -p PROTO --dport PORT -i INTERFAZ_LAN_ROUTER -j DNAT --to-destination IP_LAN_SERVER:PORT

NOTA: Con esto ya tendríamos la ida pero si lo dejásemos así la conexión iniciada por el cliente tendría como destino la ip WAN, en cambio respondería IP_LAN_SERVER, como no tiene constancia de esta conexión el cliente resetearía la conexión mediante un RST.

Ahora le indicamos que haga SNAT dentro de la misma LAN:

iptables -t nat -I POSTROUTING 1 -p PROTO --dport PORT -s RED_LAN/24 -d IP_LAN_SERVER -j SNAT --to IP_LAN_ROUTER

Con esto ya lo tendríamos ;)


Autor: Kr0m -- 01/09/2013 12:09:08