The OpenNET Project / Index page

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

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"Packet modifying"
Вариант для распечатки Архивированная нить - только для чтения! 
Пред. тема | След. тема 
Форумы Программирование под UNIX (Public)
Изначальное сообщение [Проследить за развитием треда]

"Packet modifying"
Сообщение от Cadaver Искать по авторуВ закладки(ok) on 09-Авг-04, 20:12  (MSK)
Здрасьте всем!

Надо прогу написать под редхат линух, которая на одном интерфейсе слушает в промискусе пакеты, потом изменяет заголовки и отправляет на другой интерфейс измененными. Подскажите как это сделать? То есть какую сишную библиотеку лучше использовать или какие функции, буду очень признателен, дедлайн скоро :))

  Рекомендовать в FAQ | Cообщить модератору | Наверх

 Оглавление

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

1. "Packet modifying"
Сообщение от Vladislav Lazarenko emailИскать по авторуВ закладки on 10-Авг-04, 12:32  (MSK)
> Здрасьте всем!
>
> Надо прогу написать под редхат линух, которая на одном интерфейсе слушает
>в промискусе пакеты, потом изменяет заголовки и отправляет на другой интерфейс
>измененными. Подскажите как это сделать? То есть какую сишную библиотеку лучше
>использовать или какие функции, буду очень признателен,

На уровне пользовательского интерфейса это будет невозможно реализовать IMHO. Я считаю, что для Linux стоит использовать Netfilter Hooks, просто вылавливаешь пакеты, модифицируешь и передаешь дальше. О том, как использовать такие "хуки" спроси у Гагла, он знает.
Если что, будем советоваться) Удачи!

> дедлайн скоро :))

Что там дед говорит про лайн ? :)

Удачи!

  Рекомендовать в FAQ | Cообщить модератору | Наверх

2. "Packet modifying"
Сообщение от Cadaver Искать по авторуВ закладки(ok) on 10-Авг-04, 22:25  (MSK)
А я тут уже начал писать с сырыми сокетами, с ними разве не получится? Этож линух, там packet sockets...
Или есть подводные каменья?

  Рекомендовать в FAQ | Cообщить модератору | Наверх

3. "Packet modifying"
Сообщение от genie Искать по авторуВ закладки on 11-Авг-04, 09:08  (MSK)
Kak variant - vzyat' PCAP ili pol'zuisya RAW_SOCK.
> Здрасьте всем!
>
> Надо прогу написать под редхат линух, которая на одном интерфейсе слушает
>в промискусе пакеты, потом изменяет заголовки и отправляет на другой интерфейс
>измененными. Подскажите как это сделать? То есть какую сишную библиотеку лучше
>использовать или какие функции, буду очень признателен, дедлайн скоро :))


  Рекомендовать в FAQ | Cообщить модератору | Наверх

4. "Packet modifying"
Сообщение от Cadaver Искать по авторуВ закладки(ok) on 11-Авг-04, 16:59  (MSK)
>Kak variant - vzyat' PCAP ili pol'zuisya RAW_SOCK.

Pcap слать пакеты не умеет, насколько мне известно... Кстати тут проблемка - не подскажете функцию, которая переводит ip из in_addr в дот-нотейшн стринговый и обратно? Была такая, но никак не могу вспомнить/найти в манах.
  Рекомендовать в FAQ | Cообщить модератору | Наверх

5. "Packet modifying"
Сообщение от Vladislav Lazarenko emailИскать по авторуВ закладки on 11-Авг-04, 17:01  (MSK)
>>Kak variant - vzyat' PCAP ili pol'zuisya RAW_SOCK.
>
>Pcap слать пакеты не умеет, насколько мне известно...

Таки да, не умеет ...

> Кстати тут проблемка -  не подскажете функцию, которая переводит ip из in_addr в дот-нотейшн стринговый
>и обратно? Была такая, но никак не могу вспомнить/найти в манах.
>

The inet_ntoa() function converts the specified Internet host address to a string in the Internet standard dot notation.


  Рекомендовать в FAQ | Cообщить модератору | Наверх

6. "Packet modifying"
Сообщение от qq Искать по авторуВ закладки on 12-Авг-04, 00:49  (MSK)
> Здрасьте всем!
>
> Надо прогу написать под редхат линух, которая на одном интерфейсе слушает
>в промискусе пакеты, потом изменяет заголовки и отправляет на другой интерфейс
>измененными. Подскажите как это сделать? То есть какую сишную библиотеку лучше
>использовать или какие функции, буду очень признателен, дедлайн скоро :))

тут в основном форуме спрашивали про userspace bridge,
так тебе тоже ссылки могут быть полезны как примеры кода:

для линукс (хотя старый и с багами)
http://www.ujep.cz/~lupomesk/bridged/

для Netbsd/bpf:
ftp://ftp.kame.net/pub/kame/misc/bridged-20010701.tar.gz
под фрибсд компилится с минимальной переделкой (и похоже это баг)
в bridge.c
#ifdef HAVE_NET_ETHERNET_H -> #ifndef HAVE_NET_ETHERNET_H

  Рекомендовать в FAQ | Cообщить модератору | Наверх

7. "Packet modifying"
Сообщение от Cadaver Искать по авторуВ закладки(ok) on 12-Авг-04, 10:11  (MSK)
Спасибо, что подвердили утверждение про пкап, а то неприятно было бы узнать что я чтото недогреб :))
И теперь вопрос может не в тему, но всетаки.
Никто не знает, в редхате 9-м, там многопроцессорные машины сами определяются, или надо как в bsd врубать отдельно второй и более процессоры, а по умолчанию работает только один?

  Рекомендовать в FAQ | Cообщить модератору | Наверх

8. "Packet modifying"
Сообщение от Cadaver Искать по авторуВ закладки(??) on 12-Авг-04, 11:47  (MSK)
Кстати, в rawsockets можно посылать пакеты как мессаджи, то есть с помощью sendmsg, а то он уже достал, постоянно invalid argument. И еще - как узнать МАС неподнятого интерфейса, чтоб его потом можно было записать в unsigned char sll_addr[8] (это в структуре sockaddr_ll)???
  Рекомендовать в FAQ | Cообщить модератору | Наверх

9. "Packet modifying"
Сообщение от qq Искать по авторуВ закладки(ok) on 12-Авг-04, 14:16  (MSK)
> Кстати, в rawsockets можно посылать пакеты как мессаджи, то есть с
>помощью sendmsg, а то он уже достал, постоянно invalid argument. И
>еще - как узнать МАС неподнятого интерфейса, чтоб его потом можно
>было записать в unsigned char sll_addr[8] (это в структуре sockaddr_ll)???


ioctl(sock_fd, SIOCGIFHWADDR, &ifr)

помещает в ifr.ifr_hwaddr.sa_data mac адрес
проврено на интерфейсе который принудительно
ifconfig eth0 down

  Рекомендовать в FAQ | Cообщить модератору | Наверх

10. "Packet modifying"
Сообщение от Vladislav Lazarenko emailИскать по авторуВ закладки on 12-Авг-04, 14:18  (MSK)
>> Кстати, в rawsockets можно посылать пакеты как мессаджи, то есть с
>>помощью sendmsg, а то он уже достал, постоянно invalid argument. И
>>еще - как узнать МАС неподнятого интерфейса, чтоб его потом можно
>>было записать в unsigned char sll_addr[8] (это в структуре sockaddr_ll)???
>
>
>ioctl(sock_fd, SIOCGIFHWADDR, &ifr)
>
>помещает в ifr.ifr_hwaddr.sa_data mac адрес
>проврено на интерфейсе который принудительно
>ifconfig eth0 down

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


  Рекомендовать в FAQ | Cообщить модератору | Наверх

11. "Packet modifying"
Сообщение от qq Искать по авторуВ закладки(ok) on 12-Авг-04, 15:33  (MSK)

таблица маршрутизации тут не причём
мы ведь узнаем мак адрес _локального_ интерфейса
sock_fd - это SOCK_RAW сокет, забинденый на наш локальный интерфейс

  Рекомендовать в FAQ | Cообщить модератору | Наверх

12. "Packet modifying"
Сообщение от Vladislav Lazarenko emailИскать по авторуВ закладки on 12-Авг-04, 15:34  (MSK)
>
>таблица маршрутизации тут не причём
>мы ведь узнаем мак адрес _локального_ интерфейса

Ах, да, слажал:) Извиняюсь за невнимательность.

  Рекомендовать в FAQ | Cообщить модератору | Наверх

13. "Packet modifying"
Сообщение от Cadaver Искать по авторуВ закладки(??) on 12-Авг-04, 15:40  (MSK)
Огромная благодарность за оперативность и подробность.
  Рекомендовать в FAQ | Cообщить модератору | Наверх

14. "Packet modifying"
Сообщение от MiksIr emailИскать по авторуВ закладки on 13-Авг-04, 21:04  (MSK)
> Огромная благодарность за оперативность и подробность.


=) если что-то работающее получится, был бы благодарен за сырцы =)

  Рекомендовать в FAQ | Cообщить модератору | Наверх


Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Пожалуйста, прежде чем написать сообщение, ознакомьтесь с данными рекомендациями.




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

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