Não é possível obter tráfego ao configurar o modo de proxy transparente para porta específica

0

Gostaria de capturar uma chamada de serviço HTTP do HostA - > HostB para testar o cliente no HostA para substituir a resposta HTTP. Ambos os sistemas operacionais são Linux. Eu tentei seguir, mas falhei. Qual é a maneira recomendada de fazer isso?

Eu gostaria de usar o modo de proxy transparente porque não posso modificar o cliente e não posso redirecionar todo o tráfego de HostA para hostB como outro serviço também em execução no HostA. Gostaria de redirecionar apenas a conexão do cliente do host A para o host B. O cliente no Host A chama um serviço no Host B em uma determinada porta 10001 por HTTP.

Eu tentei configurar o HostC com o mitmproxy (HostA e HostC estão na mesma sub-rede) HostA (ip_A) - > HostC (ip_C) com mitmproxy- > HostB (ip_B), eu configuro a tabela ip para construir o modo transparente.

A seguir é o que eu configurei no HostA

sudo iptables -t mangle -I OUTPUT -p tcp --dport 10001 -j MARK --set-mark 1
sudo ip route add default via ip_C table 100
sudo ip rule add fwmark 0x1 table 100

No HostC

sudo sysctl -w net.ipv4.ip_forward=1
sudo iptables -t nat -A PREROUTING -o eth0 -p tcp --dport 10001 -j REDIRECT --to-port 8080
mitmproxy -T --host

Isso não funciona. cliente no tempo limite de conexão HostA. Se eu tentar traceroute no HostA

traceroute ip_B -p 10001 -T

Ele mostra que o ip_B está inacessível no TCP do HostA

Eu também tentei configurar o mitmproxy no HostA, mas quando tento redirecionar o tráfego da porta 10001 no HostA

sudo iptables -t nat -A OUTPUT -p tcp --dport 10001 -j REDIRECT --to-port 8080
mitmproxy -T --host

A chamada de serviço pode ser capturada pelo mitmproxy no HostA, mas não é possível obter resposta.

Muito obrigado pela sua ajuda.

    
por shikn 08.01.2018 / 03:40

1 resposta

0

Talvez - uma vez que os pacotes cheguem ao servidor MITM e agora vão para a porta 8080 - mas o servidor da Web HOST_A ainda esteja em 10001 - então você não precisará fazer outro IPTABLES para voltar ao 10001? Eu acho que você é melhor do que eu nisso, mas eu acho que

sudo iptables -t nat -A OUTPUT -p tcp --dport 8080 -j REDIRECT --to-port 10001

faria isso

    
por 09.01.2018 / 02:21