IPTables: reenvío al cliente adjunto pero mantiene la IP de origen

IPTables: reenvío al cliente adjunto pero mantiene la IP de origen

Aquí está mi escenario:

Tengo un VPS que tiene dos direcciones IP y ejecuta OpenVPN (Dirección IP del servidor OpenVPN: 10.1.2.1). Quiero reenviar todo el tráfico recibido en UNA dirección al cliente VPN (10.1.2.2).

Estas son las dos reglas que estoy usando ACTUALMENTE:

iptables -t nat -A PREROUTING -i venet0 -p ALL -d <EXTERNAL IP #1> -j DNAT --to-destination 10.1.2.2
iptables -t nat -A POSTROUTING -o tun0 -j MASQUERADE

Esto funciona. Puedo reenviar la solicitud al cliente VPN y consumir los servicios alojados por el cliente VPN. Sin embargo, tengo otro servicio que necesita saber la dirección IP VERDADERA de la solicitud del CLIENTE ENTRANTE. Cuando lo hago de la manera mencionada anteriormente, el cliente VPN piensa que el cliente entrante tiene una dirección IP de 10.1.2.1, que es la dirección IP del servidor OpenVPN.

He probado muchas soluciones, incluido reemplazar MASQUERADE con...

iptables -t nat -A POSTROUING -o tun0 -s 10.1.2.2 -j SNAT --to-source <EXTERNAL IP #1>

pero eso no funciona. Todas las solicitudes simplemente se cuelgan.

Mi arquitectura de red solo utiliza venet0 y tun0, que es el túnel OpenVPN. Se agradecerían mucho las sugerencias sobre cómo obtener la dirección IP VERDADERA del cliente público. Gracias.

Trecio

Respuesta1

Parece que no deberías usar SNAT ni MASQUERADE. Cualquiera de las opciones dará como resultado una doble NAT que impedirá que ambos extremos conozcan la IP real del otro extremo. NAT siempre romperá este conocimiento en al menos una dirección.

Si el servidor en el otro extremo tun0usa su enrutador como su ruta predeterminada, debería devolver el tráfico a su enrutador, donde se puede deshacer el DNAT para el tráfico de retorno.

Una opción alternativa, al menos para HTTP, es ejecutar un proxy en su servidor. El proxy debe agregar o ampliar el encabezado X-Fordered-For. Este contendrá una o más direcciones que identifican la dirección a la que se ha reenviado el tráfico. Puede confiar en la dirección IP que agregue. Otras direcciones podrían ser falsificadas.

información relacionada