направление пакета на другой ip

Тема в разделе "WASM.UNIX", создана пользователем goga2007, 2 сен 2009.

  1. goga2007

    goga2007 New Member

    Публикаций:
    0
    Регистрация:
    10 фев 2007
    Сообщения:
    184
    имеется программа, захватывающая из сети пакеты, реализованная в виде сервера.
    -ждет подключения
    когда клиент подключился, начинается захват пакетов на заданном интерфейсе, с заданным ip & tcp-dest port
    меняем ip на ip, подключившегося клиента, порт-на порт клиента.... и вот теперь проблема передать это клиенту.
    думаю это следует передавать как тип SOCK_RAW сокета клиента, но как изменить тип сокета клиента? или может быть есть другой способ.
    ps: OS: FreeBSD 7.1
     
  2. Booster

    Booster New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2004
    Сообщения:
    4.860
    Ничего у клиента менять не надо.
     
  3. kamatoz

    kamatoz New Member

    Публикаций:
    0
    Регистрация:
    5 мар 2004
    Сообщения:
    31
    Адрес:
    Russia
    смысл менять ip и порт?, если ты хочешь снифанный трафик перекачивать подключившемуся клиенту, то просто передавай отснифанные пакеты дополнив загаловком о размере и времени к примеру, как обычные данные.
     
  4. goga2007

    goga2007 New Member

    Публикаций:
    0
    Регистрация:
    10 фев 2007
    Сообщения:
    184
    ок, я уже рассматривал такой вариант, как отрезать все заголовки и просто передать чистые данные клиенту, но проблема в другом - что если пакеты будут приходить не в том порядке, в котором нужно их передавать клиенту на обработку?... те придется реализовывать работу модуля tcp (собирать фрагменты).
    ps: эти данные - html страницы, которые вылавливаются с канального уровня.
     
  5. goga2007

    goga2007 New Member

    Публикаций:
    0
    Регистрация:
    10 фев 2007
    Сообщения:
    184
    ....и направляются, в подключившийся браузер
     
  6. Booster

    Booster New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2004
    Сообщения:
    4.860
    goga2007
    Что ты хочешь? Лично я не совсем понимаю.
     
  7. goga2007

    goga2007 New Member

    Публикаций:
    0
    Регистрация:
    10 фев 2007
    Сообщения:
    184
    идея такая: имеется некая сеть вифи, пойманные пакеты пропускаются через фильтр(уже написанный), который отделяет передающиеся пакеты интересующему меня вификлиенту, этот фильтр подает уже отсортированные пакеты на сервер, ждущий подключений....
     
  8. goga2007

    goga2007 New Member

    Публикаций:
    0
    Регистрация:
    10 фев 2007
    Сообщения:
    184
    ...те он передает именно ip+tcp+data, а подключаемся браузером...
     
  9. kamatoz

    kamatoz New Member

    Публикаций:
    0
    Регистрация:
    5 мар 2004
    Сообщения:
    31
    Адрес:
    Russia
    ну как ты хотел тоже не вариант, у подключившегося клиента уже с твоми сервером установлено соединение и значения seq & ack number, которые при хэндшейке установились, в перехваченных пакетах номера другие. Править их, порт, ип, менять чексуммы это гемор еще тот.
     
  10. goga2007

    goga2007 New Member

    Публикаций:
    0
    Регистрация:
    10 фев 2007
    Сообщения:
    184
    kamatoz
    ...да что-то не подумал. спасибо.
    те ты считаешь, что легче собирать фрагменты?
     
  11. Booster

    Booster New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2004
    Сообщения:
    4.860
    goga2007
    Всё равно не понятно, клиент/сервер/вифи сеть. Путаница какая-то.
     
  12. goga2007

    goga2007 New Member

    Публикаций:
    0
    Регистрация:
    10 фев 2007
    Сообщения:
    184
    wi-fi ))))) catcher -> filter -> server - IE connect to
     
  13. kamatoz

    kamatoz New Member

    Публикаций:
    0
    Регистрация:
    5 мар 2004
    Сообщения:
    31
    Адрес:
    Russia
    думаю сегменты проще будет. С нужными номерами выбираешь данные, которые не по порядку накапливаешь. Т.е. у тебя есть пакет есть байт начала этих данных и размер. Кстати на счет хтмл, так вовсе не одно соединение для получения страницы. Каждая ссылка отдельный коннект помоему.
     
  14. Booster

    Booster New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2004
    Сообщения:
    4.860
    А зачем менять адрес и порт? Или подключается один клиент, а передать надо другому?
     
  15. goga2007

    goga2007 New Member

    Публикаций:
    0
    Регистрация:
    10 фев 2007
    Сообщения:
    184
    самое главное получить текстовую страницу, остальное, если я правильно понимаю, при действующем подключении к интернету, само оттуда придет(ну те это работа браузера) не так ли?
     
  16. goga2007

    goga2007 New Member

    Публикаций:
    0
    Регистрация:
    10 фев 2007
    Сообщения:
    184
    Booster
    потому что в перехваченных пакетах явно не мой (те не моего подключенного браузера) ip и порт, те они только пролетают мимо меня кому-то, а мне надо их (пакеты) интерпретировать правильно.
     
  17. Booster

    Booster New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2004
    Сообщения:
    4.860
    goga2007
    Тебе надо послать их на свой браузер что-ли?
     
  18. goga2007

    goga2007 New Member

    Публикаций:
    0
    Регистрация:
    10 фев 2007
    Сообщения:
    184
    да, т.к. страницы летят в формате gzip и не понятно, что именно пролетает.
     
  19. Booster

    Booster New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2004
    Сообщения:
    4.860
    goga2007
    Всё это хозяйство на одной эвм?
     
  20. goga2007

    goga2007 New Member

    Публикаций:
    0
    Регистрация:
    10 фев 2007
    Сообщения:
    184
    Booster
    можно подключаться как к любому другому серверу: если с одной и той же машины, то 127.0.0.1:порт, если с другой - IP:port, как обычно. ну а вифи карта делает свое дело.