Рейтинг:0

iptables: изменить поток вывода

флаг cn

Когда я отслеживаю некоторые необработанные выходные пакеты из определенного приложения, я получаю следующий вывод, в котором адрес назначения пакетов волшебным образом изменяется с 10.10.20.20 на 127.1.1.1. Есть ли способ обойти это, получая необработанный пакет «как есть» на выходе?

trace id fd9543bc ip raw ВЫХОДНОЙ пакет: oif "br0" ip saddr 10.10.10.10 ip saddr 10.10.20.20 ip dscp cs0 ip ecn not-ect ip ttl 64 ip id 26448 ip length 60 tcp sport 34188 tcp dport 80 = tcp flags TCP-окно 64240
trace id fd9543bc ip raw OUTPUT rule meta l4proto tcp ip saddr 10.10.20.20 counter пакетов 52 байта 4540 meta nftrace set 1 (продолжение вердикта)
trace id fd9543bc ip raw OUTPUT вердикт продолжить
trace id fd9543bc ip raw OUTPUT policy accept
trace id fd9543bc ip filter ВЫХОДНОЙ пакет: oif "br0" ip saddr 10.10.10.10 ip saddr 127.1.1.1 ip dscp cs0 ip ecn not-ect ip ttl 64 ip id 26448 ip length 60 tcp sport 34188 tcp dport 8080 = tcp flags TCP-окно 64240
trace id fd9543bc ip filter OUTPUT вердикт продолжить
идентификатор трассировки fd9543bc IP-фильтр OUTPUT policy accept
идентификатор трассировки fd9543bc выходной пакет фильтра inet: oif "br0" ip saddr 10.10.10.10 ip saddr 127.1.1.1 ip dscp cs0 ip ecn not-ect ip ttl 64 ip id 26448 ip протокол tcp ip length 60 tcp sport 34188 tcp dport 8080 tcp flags == окно синхронизации TCP 64240
трассировка id fd9543bc вывод вердикта фильтра inet продолжить
Идентификатор трассировки fd9543bc Политика вывода фильтра inet принимает

iptables-сохранить вывод

# Сгенерировано iptables-save v1.8.7, четверг, 18 ноября, 22:40:01 2021 г.
*натуральный
: ПРЕДВАРИТЕЛЬНОЕ ПРИНЯТИЕ [14:1295]
:ВВОД ПРИНЯТЬ [14:1295]
: ВЫВОД ПРИНЯТ [2:196]
:ОТПРАВКА ПРИНЯТИЯ [4:316]
-A PREROUTING -i ens192 -p tcp -m tcp --dport 80 -j DNAT --to-destination 127.1.1.1:8080
СОВЕРШИТЬ
# Завершено в четверг, 18 ноября, 22:40:01 2021 г.
# Сгенерировано iptables-save v1.8.7, четверг, 18 ноября, 22:40:01 2021 г.
* калечить
: ПРЕДВАРИТЕЛЬНОЕ ПРИНЯТИЕ [15:1154]
:ВВОД ПРИНЯТЬ [172:24172]
:ВПЕРЕД ПРИНЯТЬ [0:0]
: ВЫВОД ПРИНЯТ [222:44999]
:ОТПРАВКА ПРИНЯТИЯ [222:44999]
:ПЕРЕВОД - [0:0]
-A ПРЕДВАРИТЕЛЬНАЯ МАРШРУТИЗАЦИЯ -p tcp -m socket -j DIVERT
-A DIVERT -j MARK --set-xmark 0x1/0xffffffff
-A ПЕРЕВОД -j ПРИНЯТЬ
СОВЕРШИТЬ
# Завершено в четверг, 18 ноября, 22:40:01 2021 г.
Nikita Kipriyanov avatar
флаг za
это похоже на правило `REDIRECT` в действии. Пожалуйста, покажите ваше полное `iptables-save`.
A.B avatar
флаг cl
A.B
См. Также новый вопрос ОП: https://serverfault.com/questions/1083764/stunnel-outgoing-packets-strangely-modified
Nikita Kipriyanov avatar
флаг za
Хорошо, у вас есть правило DNAT, и оно работает именно так, как должно, оно переводит адрес. Не могли бы вы описать, как все должно работать? Например, если некоторые конкретные пакеты не должны подвергаться ДНКТированию, то какие именно? Так же у вас есть некоторые правила типичные для прозрачной настройки прокси, но нет финального правила TPROXY и есть правило DNAT которое в такой настройке не используется, для чего оно?
флаг cn
Я описал всю настройку в своем другом вопросе (https://serverfault.com/questions/1083764/stunnel-outgoing-packets-strangely-modified). Здесь я хочу обсудить, какие существуют возможности, чтобы сохранить видимую таблицу пакетов «сырой» в цепочке OUTPUT, как они есть, и не изменять их.

Ответить или комментировать

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