Redirigir el tráfico HTTP a otro servidor

Redirigir el tráfico HTTP a otro servidor

Estoy intentando configurar un entorno de prueba para investigación/ingeniería inversa de plataformas inalámbricas.

Tengo un AP de enrutador que transmite mi red a la que se conecta el hardware que estoy investigando, y desde allí el AP redirigirá todo el tráfico a un servidor para su análisis.

Mis reglas nat de iptables en el AP para redirigir el tráfico son:

iptables -t nat -A PREROUTING -p tcp --dport 80 -m conntrack --ctstate NEW -j DNAT --to x.x.x.x:8880
iptables -t nat -A PREROUTING -p tcp --dport 443 -m conntrack --ctstate NEW -j DNAT --to x.x.x.x:8443
iptables -t nat -A PREROUTING -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -A POSTROUTING -t nat -j MASQUERADE

Tanto el AP como el servidor también tienen habilitado IP_FORWARD.

Y en mi servidor tengo software como sslsplit, mitmproxy u otros que toman el tráfico y me permiten analizarlo.

El problema es que, cuando redirijo el tráfico de esta manera, el software de mi servidor sigue queriendo conectarse a sí mismo por algún motivo en lugar de conectarse al puerto/dominio adecuado.

Por ejemplo, si la IP de mi servidor fuera 1.1.1.1:8443; cuando el hardware, 192.168.0.100, conectado a mi AP accede a un sitio web que se resuelve en 2.2.2.2:443, las reglas de iptables redirigen todo mi tráfico que va de 2.2.2.2:443 a 1.1.1.1:8443 para su análisis. Todo eso está bien, pero cuando el software intenta reenviar la conexión al servidor http remoto para finalizar la solicitud/obtener una respuesta, en lugar de pasar el tráfico a 2.2.2.2:443 para obtener una respuesta, lo envía a 1.1.1.1:8443 (también conocido como él mismo).

¿Es esto culpa de mis reglas de iptables o algún tipo de problema de software? Los mismos resultados ocurren con un puñado de software cuando se usan en su modo de procesamiento remoto, por lo que me hacen creer que es un problema con la forma en que estoy redirigiendo el tráfico.

¿Es posible una redirección de tráfico como esta o hay que hacerlo de otra manera?

La configuración es cliente (192.168.0.100) -> AP -> enrutador -> internet -> servidor de procesamiento de datos (1.1.1.1:8443) -> internet -> servidor web (2.2.2.2:443)

Cualquier sugerencia será apreciada.

Respuesta1

¿El tráfico desde su servidor a 2.2.2.2:443 (el destino original) atraviesa el AP?

En ese caso, se aplicaría la traducción, así que cambie sus reglas DNAT para que el tráfico que se origina en el servidor quede excluido de la traducción DNAT.

iptables -t nat -A PREROUTING -p tcp ! -s x.x.x.x --dport 80 -m conntrack --ctstate NEW -j DNAT --to x.x.x.x:8880

información relacionada