Назад | Перейти на главную страницу

Перенаправлять трафик только от одного процесса

Я хочу проверять и изменять HTTP-запросы от одного процесса, отправленного другому. Для этого у меня есть прокси, работающий на порту localhost 8080 / tcp. Владелец процесса - root, и приложение, которому он отправляет, работает на локальном порту 50000 / tcp. Процесс порождает новые подпроцессы, поэтому я выбираю вышеуказанный путь. Я не могу использовать --pid-owner. Как бы выглядела команда iptables для этого?

Или иначе говоря:

Ситуация:

Цель:

Трудности:

Нам нужно перехватить соединение P2 с localhost TCP / 50000 и переслать его PROXY, прослушивающему TCP / 8080 - PROXY должен быть настроен для пересылки запроса на LOCALHOST TCP / 5000.

Чтобы это сработало, нам нужно активировать переадресацию портов localhost на IPTABLES, изменив следующий системный параметр:

sysctl -w net.ipv4.conf.all.route_localnet=1

Впоследствии эта команда IPTABLES должна установить соединение P2 с TCP / 50000 и выполнить NAT для PROXY, прослушивающего порт TCP / 8080:

iptables -t nat -A OUTPUT -m addrtype --src-type LOCAL --dst-type LOCAL -m owner --uid-owner 0 -p tcp --dport 50000 -j DNAT --to-destination 127.0.0.1:8080

Эта конфигурация также может работать с использованием внешнего PROXY (что означает, что он не работает на том же компьютере, где работают P1 и P2), изменяя IP-адрес 127.0.0.1 на внешний в:

--to-destination X.X.X.X:8080

Надеюсь это поможет.