Модераторы: xvr

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Нужно отправить принятый пакет! код под LINUX.. 
:(
    Опции темы
ДК2009
Дата 1.10.2009, 13:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 29.9.2009

Репутация: нет
Всего: нет



блин.....когда удаляю маршруты те которые есть то добавить один маршрут на шлюз не получается, делаю командой route  
пойду еще пытаться.....
п.с. если так получится то вообще будет все намного проще и надежнее, но прогу все равно нужно для имитации помех делать....
PM MAIL   Вверх
ДК2009
Дата 1.10.2009, 14:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 29.9.2009

Репутация: нет
Всего: нет



получилось шлюз прописать все остальные маршруты стереть. 
Тут загвоздка в том что на компах по 2 сетевухт, на серевере соответственно тоже.Шлюз прописывается же для компа всего, ели бы для интерфейса то было бы то что нужно.......а так комп будет слать пакеты предназначенные для другой подсети в интерфейс по умолчанию.....
PM MAIL   Вверх
MAKCim
Дата 1.10.2009, 15:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

Репутация: 84
Всего: 207



Цитата(ДК2009 @  1.10.2009,  14:56 Найти цитируемый пост)
.а так комп будет слать пакеты предназначенные для другой подсети в интерфейс по умолчанию..... 

что мешает на сервере это обработать: все пакеты на другую сеть форвардить на другую сеть


--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
ДК2009
Дата 1.10.2009, 15:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 29.9.2009

Репутация: нет
Всего: нет



Цитата

НО
фишка в том, что если форвардинг на хосте отключен и адрес получателя в пакете не соответствует ни одному из локальных адресов сетевого интерфейса, через который он был получен, то генерируется ICMP  вида "хост недоступен"

получаю пакет на интерфейс eth0 и далее отправляю его получателю, все 2 компа и сервер в одной подсети.....
Цитата

что мешает на сервере это обработать: все пакеты на другую сеть форвардить на другую сеть 

так форвард сам в оригинале не нужен так как в этом случае сложно вносить изменения в траффик, а его предполагал я отключить и ввместо него передавать программно но уже с изменениями!

Цитата

2. использовать цель QUEUE в iptables
далее через netlink сокет получать уже оригиналы пакетов, фильтровать их, сопоставлять с копиями, полученными через iptables и через пакетный сокет отправлять дальше

Читал про это, судя по всему более надежный способ, чем прием  recfrom() и отправка sendto() как я пытаюсь сделать но не сталкивался с реализацией вообще

Добавлено через 9 минут и 17 секунд
пробовал снова прописать стат. арп на сервере и клиентах и включить форвард на сервере-вроде бы работает. проверял на пингах. ssh почему то не пашет, SYN,SYN+ACK идут, а обратно ACK клиент с которого по ssh лезу на другого клиента не генерируется вообще.......tcpdump везде использовал.....
попадаются еще ICMP redirect пакеты,их шлет сервер клиентам с указанием редиректа самого клиента на себя...фигня какая то, думаю это никак не влияет на процесс......

Добавлено через 10 минут и 22 секунды
большое спасибо за помощь, я надеюсь что не сильно утомил?????! smile 
PM MAIL   Вверх
MAKCim
Дата 1.10.2009, 16:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

Репутация: 84
Всего: 207



Цитата(ДК2009 @  1.10.2009,  15:41 Найти цитируемый пост)
я надеюсь что не сильно утомил?????!

отвечать на форуме в общем то не является обязательным smile


--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
ДК2009
Дата 2.10.2009, 07:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 29.9.2009

Репутация: нет
Всего: нет



просто мало где по делу люди помогают, еще и так активно
PM MAIL   Вверх
ДК2009
Дата 2.10.2009, 10:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 29.9.2009

Репутация: нет
Всего: нет



Вернулся я снова к коду, уж больно охота сделать задуманное.
1. исходя из такого рода операций 
Код

tcp = (struct tcphdr *)(buf + sizeof(struct ethhdr)+sizeof(struct iphdr));

получается что в памяти пакет все таки располагается так:?

|__________|____________|________________|_________________|
    tcphdr              iphdr                    ethhdr                      buf
данные считывать cправа налево.<-------------------------------------------
2. т.е. на вход sendto нужно подать начальный адрес буфера buf и его длину вместе с заголовками?:
Код

sendto(sd,buf,sizeof(buf + sizeof(struct ethhdr) + sizeof(struct iphdr)),0,(struct sockaddr *)&servaddr,fromlen)?

или ......
3. как sendto понимает что ip заголовок уже набран вручную? только через IP_HDRINCL? 
попробовал так 
Код

const char on=1;
if (setsockopt(sd,IPPROTO_IP,IP_HDRINCL,(char*)&on,sizeof(on))<0)
 {perror ("setsockopt() failed");
  exit(-1);}

пишет "протокол недоступен"
спасибо
PM MAIL   Вверх
MAKCim
Дата 2.10.2009, 15:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

Репутация: 84
Всего: 207



Цитата(ДК2009 @  2.10.2009,  10:39 Найти цитируемый пост)
получается что в памяти пакет все таки располагается так:?

buf -> tcp -> ip -> eth

Цитата(ДК2009 @  2.10.2009,  10:39 Найти цитируемый пост)
пишет "протокол недоступен"

SOCK_RAW?


Цитата(ДК2009 @  2.10.2009,  10:39 Найти цитируемый пост)
т.е. на вход sendto нужно подать начальный адрес буфера buf и его длину вместе с заголовками?:

какой домен?


--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
ДК2009
Дата 5.10.2009, 12:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 29.9.2009

Репутация: нет
Всего: нет



Все то же:
Код

sd = socket(PF_PACKET, SOCK_RAW, htons(ETH_P_ALL)))

PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С/С++: Программирование под Unix/Linux"
xvr
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • Не забывайте пользоваться кнопкой "Код".
  • Вопросы мобильной разработки тут
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к разделу форума. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, xvr.

 
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Программирование под Unix/Linux | Следующая тема »


 




[ Время генерации скрипта: 0.0729 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.