The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Изменить содержимое пакета"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Открытые системы на сервере (Firewall, Фильтрация пакетов / Linux)
Изначальное сообщение [ Отслеживать ]

"Изменить содержимое пакета"  +/
Сообщение от Diozan (ok) on 02-Сен-15, 16:40 
Уважаемые форумчане!
Можно ли с помощью iptables изменить содержимое TCP пакета?
Поясню для чего это надо. Есть некоторая мультимедийная система, которая по TCP протоколу договаривается с другой, такой же, об обмене информацией. И при этом они присылают свои IP адреса в теле TCP пакета. После этого обмена они просто начинают кидаться друг в друга UDP пакетами по присланным адресам.
Так вот, когда системы находятся в реальном Интернете с белыми адресами, проблем не возникает. Они обменялись реальными адресами и начали кидаться UDP пакетами по этим же реальным адресам.
Но так получается, что одну систему надо запрятать за NAT, не спрашивайте почему, просто надо. Тут и начинается самое интересное, теперь эта система передаёт другой системе не реальный белый IP адрес, а адрес локальной сети, в которой находится, например 172.16.77.2. В результате другая система начинает кидать свои UDP пакеты в Интернет на этот не реальный адрес, и, понятно, что они уходят в никуда и до первой системы не доходят.
На разделе LAN и WAN стоит маршрутизатор (Gentoo, iptables, NAT). Вот на нём и надо провести это мероприятие, перехватить TCP пакет, в теле которого содержится комбинация AC104D02 (hex-представление адреса 172.16.77.2) и заменить её другой, с реальным IP адресом, на который и будут потом бросаться UDP пакеты.

Отловить этот пакет я могу при помощи расширения iptables -m string --hex-string "AC104D02".

А вот как его не только отловить, но и заменить эти 4 байта другими?

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Изменить содержимое пакета"  +/
Сообщение от omnomnim on 02-Сен-15, 16:58 
шо это за протокол?

так навскидку в голову не приходит
гугл грит http://serverfault.com/questions/318960/easy-way-to-edit-the...

ну или самому helper для nf/conntrack писать

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "Изменить содержимое пакета"  +/
Сообщение от Diozan (ok) on 02-Сен-15, 18:55 
> шо это за протокол?
> так навскидку в голову не приходит
> гугл грит http://serverfault.com/questions/318960/easy-way-to-edit-the...
> ну или самому helper для nf/conntrack писать

H.323. Система видеоконференцсвязи. Сейчас копаю ядро на предмет netfilter, смотрю, там есть приблуда для него. Пытаюсь вникнуть.

Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

3. "Изменить содержимое пакета"  +/
Сообщение от Pahanivo (ok) on 02-Сен-15, 19:20 
вообще говоря система еба^W странная
нууу обменялись они пакетами по tcp с адресами - udp это ка гбы другой протокол, как нат вообще узнает куда кинуть udp пакет который прилетел снаружи если небыло исходящего???
а вариант что помимо адреса может передаваться порт? как тогда вообще?
что за система то можно узнать?

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

5. "Изменить содержимое пакета"  +/
Сообщение от Diozan (ok) on 02-Сен-15, 19:58 
> вообще говоря система еба^W странная
> нууу обменялись они пакетами по tcp с адресами - udp это ка
> гбы другой протокол, как нат вообще узнает куда кинуть udp пакет
> который прилетел снаружи если небыло исходящего???
> а вариант что помимо адреса может передаваться порт? как тогда вообще?
> что за система то можно узнать?

Куда кидать UDP, они как раз в ходе TCP сессии и договариваются. Естественно, с адресом передаётся и порт. Типа так...

А - имеет белый адрес 8.8.8.8 (адреса вымышленные, все совпадения случайны)
Б - имеет белый адрес 8.8.4.4

TCP сессия:
А->Б. Слушаю тебя на UDP 8.8.8.8:3240
Б->А А я тебя слушаю на UDP 8.8.4.4:4350

Ну а дальше А херачит UDP на 8.8.4.4:4350 (на Б), а Б на 8.8.8.8:3240

Вот когда эти адреса реальные, то проблем и не возникает. Но стоит узел А засунуть в локалку за NAT, то адрес у него будет уже не 8.8.8.8, а 172.16.77.4. А 8.8.8.8 - это будет сам NAT.

Ну и обмен будет уже, соответственно, другой...

А->Б. Слушаю тебя на UDP 172.16.77.4:3240
Б->А А я тебя слушаю на UDP 8.8.4.4:4350

Вот и получается, что с моей системы поток идёт нормально, он доходит, а с удалённой идёт на 172.16.77.4. Ну куда придёт пакет, запущенный в интернет с таким адресом назначение, понятно. Никуда.

В результате на той стороне меня видят и слышат, а я их нет.

Система такая...
http://www.avaya.com/ru/product/avaya-scopia-xt-video-confer.../

Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

8. "Изменить содержимое пакета"  +/
Сообщение от Pahanivo (ok) on 03-Сен-15, 07:24 
> Система такая...
> http://www.avaya.com/ru/product/avaya-scopia-xt-video-confer.../

The Avaya Scopia® XT Series fully supports NAT and firewall traversal, enabling you to place the unit
behind a NAT router or firewall and connect with other endpoints seamlessly. This section describes the
available methods to incorporate NAT and firewall traversal with XT Series:

Читать доки пробовал?
https://downloads.avaya.com/css/P8/documents/100179342

Ответить | Правка | ^ к родителю #5 | Наверх | Cообщить модератору

4. "Изменить содержимое пакета"  +/
Сообщение от кегна on 02-Сен-15, 19:28 
>[оверквотинг удален]
> не доходят.
> На разделе LAN и WAN стоит маршрутизатор (Gentoo, iptables, NAT). Вот на
> нём и надо провести это мероприятие, перехватить TCP пакет, в теле
> которого содержится комбинация AC104D02 (hex-представление адреса 172.16.77.2) и заменить
> её другой, с реальным IP адресом, на который и будут потом
> бросаться UDP пакеты.
> Отловить этот пакет я могу при помощи расширения iptables -m string --hex-string
> "AC104D02".
> А вот как его не только отловить, но и заменить эти 4
> байта другими?

Помоему организация этого дела в корне не правильна...

по моему мнению нужно добавить в конфигурацию мультимедийной системы возможность вписывать IP адрес белого маршрутизатора, что бы именно этот адрес отправлялся другой системе, а уж как это занатить и куда форварднуть пусть смотрят шлюзы.

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

6. "Изменить содержимое пакета"  +/
Сообщение от Diozan (ok) on 02-Сен-15, 20:38 
> по моему мнению нужно добавить в конфигурацию мультимедийной системы возможность вписывать

Увы, не я добавляю функционал.

Сдаётся мне, что всё это нормально делает модуль ядра nf_conntrack_h323.
Завтра буду пробовать.

Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

7. "Изменить содержимое пакета"  +/
Сообщение от BarS (??) on 03-Сен-15, 06:18 
Подними vpn между точками. Скорее всего нужно использовать stuns в таких случаях. Он там должен быть в настройка.
Ответить | Правка | ^ к родителю #6 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру