Мне нужно переслать конкретные запросы с машины a.a.a.a
через прозрачный прокси, расположенный по адресу p.p.p.p
. В частности, только запросы с назначением b.b.b.b
будет проксироваться через p.p.p.p
.
По этой причине я установил mitmproxy на `` p.p.p.p и добавил следующую конфигурацию на прокси-хосте в соответствии с этот:
sysctl -w net.ipv4.ip_forward=1
sysctl -w net.ipv6.conf.all.forwarding=1
sysctl -w net.ipv4.conf.all.send_redirects=0
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 10812 -j REDIRECT --to-port 8080
ip6tables -t nat -A PREROUTING -i eth0 -p tcp --dport 10812 -j REDIRECT --to-port 8080
и запустил mitmproxy: mitmproxy --mode transparent --showhost
Далее я хочу настроить шлюз для назначения b.b.b.b
быть доверенным лицом p.p.p.p
на машине a.a.a.a
:
route add b.b.b.b via p.p.p.p. dev ens160
Моя таблица маршрутизации теперь выглядит так:
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default _gateway 0.0.0.0 UG 0 0 0 ens160
10.5.228.32 0.0.0.0 255.255.255.224 U 0 0 0 ens160
b.b.b.b p.p.p.p 255.255.255.255 UGH 0 0 0 ens160
Чтобы проверить, проксируется ли правильный трафик, я использую tcpdump на прокси:
tcpdump -i ens192 port 10812
К сожалению, я не вижу никаких пакетов, а mitmproxy не показывает никаких потоков. Следовательно, я предполагаю, что источник и место назначения напрямую связаны без прокси.
Я считаю, что ошибка заключается в определении следующего магазина. С другой стороны, iptables -L
ничего не показывает на прокси-сервере после выдачи первых команд, показанных выше.