LINUX.ORG.RU
ФорумAdmin

Редирект http/https трафика из docker

 , ,


0

1

Моя задача перенаправить трафик на transparent proxy из докер контейнера с помощью iptables за неимением возможности это сделать в контейнере. Все происходит на одном хосте.

Я не профи iptables, мои текущие попsтки - это либо зацикливание трафика из-за плох правил, либо - тишина

Как я делаю на данный момент:
1. Очистил все правила, которые пишет в фаерволл сам docker daemon
2. Создал такие правила для редиректа на transparent proxy:

~$ sudo iptables -t nat -A OUTPUT -p tcp -o docker0 --dport 80 -j REDIRECT --to-port 8080
~$ sudo iptables -t nat -A OUTPUT -p tcp -o docker0 --dport 443 -j REDIRECT --to-port 8080



Последнее исправление: second_buddha (всего исправлений: 1)

1. Очистил все правила, которые пишет в фаерволл сам docker daemon

Не нужно.

REDIRECT нужно делать в цепочке PREROUTING

ving2
()
Последнее исправление: ving2 (всего исправлений: 1)
Ответ на: комментарий от ving2

REDIRECT нужно делать в цепочке PREROUTING

Почему ? я же хочу переделать порт исходящих пакетов. Вот из доки по iptables:

Now we look at the outgoing packets from our own local host and what steps they go through.
1 Local process/application (i.e., server/client program)
2 Routing decision. What source address to use, what outgoing interface to use, and other necessary information that needs to be gathered.
4 nat OUTPUT This chain can be used to NAT outgoing packets from the firewall itself.

second_buddha
() автор топика
Ответ на: комментарий от second_buddha

Если делать перенаправление в nat -A OUTPUT то это для локальных процессов, докер у тебя висит в другой сети. Не знаю как еще объяснить.

ving2
()
Ответ на: комментарий от ving2

Тут я конечно не дописал в теме, что докер пробовал запускать через --net host , что , если я не ошибаюсь, настраивает контейнер на интерфейсы хоста, т.е. lo, wlan, eth и т.п.

second_buddha
() автор топика
Ответ на: комментарий от second_buddha

--net host

тогда у контейнера будет сетевой стек хоста. В твоем случае не нужно, если я правильно понял конечно, что ты хочешь сделать.

ving2
()
Ответ на: комментарий от ving2

Да всяко пробовал, тренировался... Вообще сейчас отрабатывает вариант , тобой описанный, но не так как хотелось бы... Т.е. соединения приходят в transparent proxy, но вот он уже некорреткно их обратывает,дру точнее не как заявлено...

second_buddha
() автор топика
Ответ на: комментарий от ving2

Да примитивно надо узнать что шлет http клиент, который в контейнере и который сам еще ходит через http прокси(уже удаленный с авторизацией). Какие исходят запросы и их тела, соответственно расшифровать https. Пользую mitmproxy. Вот настраивал его как transparent по офиц. доке.

second_buddha
() автор топика
Ответ на: комментарий от second_buddha

На сегодня достаточно этой головоломки, спасибо за участие

second_buddha
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.