Estou tentando configurar um ambiente de teste para pesquisa/engenharia reversa de plataformas sem fio.
Eu tenho um roteador AP transmitindo minha rede à qual o hardware que estou pesquisando se conecta e, a partir daí, o AP redirecionará todo o tráfego para um servidor para análise.
Minhas regras nat do iptables no AP para redirecionar o tráfego são:
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 o AP quanto o servidor também possuem IP_FORWARD habilitado.
E no meu servidor tenho softwares como sslsplit, mitmproxy ou outros que pegam o tráfego e me permitem analisá-lo.
O problema é que, quando redireciono o tráfego dessa maneira, o software no meu servidor continua querendo se conectar a si mesmo por algum motivo, em vez de se conectar à porta/domínio adequado.
Por exemplo, se o IP do meu servidor fosse 1.1.1.1:8443; quando o hardware, 192.168.0.100, conectado ao meu AP acessa um site que resolve 2.2.2.2:443 as regras do iptables redirecionam todo o meu tráfego indo de 2.2.2.2:443 para 1.1.1.1:8443 para análise. Tudo bem, mas quando o software tenta encaminhar a conexão para o servidor http remoto para finalizar a solicitação/obter uma resposta, em vez de passar o tráfego para 2.2.2.2:443 para obter uma resposta, ele o envia para 1.1.1.1:8443 (também conhecido como ele mesmo).
Isso é culpa das minhas regras do iptables ou de algum tipo de problema de software? Os mesmos resultados acontecem para alguns softwares quando usados em seu modo de processamento remoto, então sou levado a acreditar que é um problema na forma como estou redirecionando o tráfego.
O redirecionamento de tráfego como esse é possível ou precisa ser feito de outra maneira?
A configuração é cliente (192.168.0.100) -> AP -> roteador -> internet -> servidor de processamento de dados (1.1.1.1:8443) -> internet -> host da web (2.2.2.2:443)
Qualquer sugestão será apreciada.
Responder1
O tráfego do seu servidor para 2.2.2.2:443 (o destino original) atravessa o AP?
Nesse caso, a tradução seria aplicada, portanto altere as regras do DNAT para que o tráfego originado no servidor seja excluído da tradução do 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