¿Cómo falsificar una IP para una aplicación que necesita esta IP en particular?

¿Cómo falsificar una IP para una aplicación que necesita esta IP en particular?

En general, este problema surge en un sistema de servidor RHEL 6.4 con un par de interfaces de red combinadas en una mediante vinculación. Esta dirección IP del sistema: 10.7.7.1. A continuación, en el sistema se ejecuta una aplicación que necesita conectarse al servidor MySQL 10.7.7.2en el puerto 3306. Y, de hecho, MySQL se ejecuta en 10.7.7.3. La configuración de conexión en la aplicación está codificada, por lo tanto, no se puede cambiar. Eso se puede escuchar a travésiptableshacer traducción de direcciones. Cómo hacer para que cuando la aplicación intente10.7.7.2:3306 iptables¿Se intercepta y se le envía una solicitud 10.7.7.3:3306, se obtiene una respuesta y se la envía a la aplicación?

Respuesta1

Esto se puede hacer con reglas NAT en iptables.

Si el servidor MySQL está en el mismo host, utilice reglas de REDIRECCIÓN. Redirija todas las conexiones al puerto 3306, no al 10.7.7.3, a la dirección requerida.

Si el servidor MySQL no está en el mismo host, utilice una regla DNAT.

Respuesta2

Asumiendo que

  • .1, .2 y .3 son máquinas diferentes
  • No puedes intercambiar las direcciones IP de .2 y .3
  • .2 está ejecutando Linux

Esto es lo que necesita agregar en .2:

-t nat -A PREROUTING  -d 10.7.7.2 -p tcp --dport 3306 -j DNAT --to-destination 10.7.7.3
-t nat -A POSTROUTING -d 10.7.7.3 -p tcp --dport 3306 -j SNAT --to-source      10.7.7.2

SIN EMBARGO...

Si por alguna razón no puede crear reglas de iptables en .2 y/o desea interceptar el tráfico en .1, todo lo que necesita hacer en .1 es:

-t nat -A POSTROUTING -d 10.7.7.2 -p tcp --dport 3306 -j DNAT --to-destination 10.7.7.3

información relacionada