Я пытаюсь протестировать модное приложение-анализатор трафика, которое у меня запущено на порту 8890.
Мой текущий план состоит в том, чтобы разрешить любому HTTP-запросу поступать в Squid через порт 3128 и позволить ему обрабатывать запрос, а затем, непосредственно перед отправкой ответа, использовать iptables для перенаправления пакетов ответа (оставив порт 3128) на порт 8890.
Я исследовал это всю ночь и пробовал много команд iptables, но что-то упустил, и мои волосы выпадают.
я мысль что-то вроде этого будет работать:
iptables -t nat -A OUTPUT -p tcp --sport 3128 -j REDIRECT --to-ports 8990
Это правило создается нормально, но никогда ничего не перенаправляет.
Это вообще возможно? Если да, то какое заклинание iptables может это сделать? Если нет, есть идеи, что может работать на одном хосте при наличии нескольких клиентов удаленного браузера?
Интересно, может ли Apache с mod_proxy быть кандидатом для этой установки вместо Squid?
Если бы я мог просто сказать Squid (или Apache, или любому другому HTTP-прокси) отправить ответ на другой локальный порт, а не обратно удаленному клиенту, это тоже сработало бы (даже без iptables).
Было бы замечательно любое предложение другого HTTP-прокси с этой возможностью.
Использование iptables с TEE должно привести вас туда, где вам нужно.
http://www.bjou.de/blog/2008/05/howto-copyteeclone-network-traffic-using-iptables/
Оказывается, мой первоначальный план невозможен.
Но я могу достичь первоначальной намеченной цели, которая заключается в том, чтобы позволить любому удаленному клиенту видеть, как этот необычный анализатор трафика выполняет свою работу, запустив OpenVPN на хосте, а затем используя iptables обычным способом для захвата пакетов для порта 80 из одной подсети. (туннелированная) и перенаправление в другую подсеть (обычную хоста). Это работает с дизайном анализатора, который ожидает, что сам шлюз будет модифицирован для этого типа перенаправления.