Перейти к содержанию
    

Подмена IP адреса пакетов ETHERNET

Необходимо разработать аппаратное устройство которое должно принимать все пакеты от компьютера пользователя, производить подмену IP-адреса, и отправлять дальше в сеть Интернет на другой сервер с уже подменённым destination IP.

Менять IP-адрес у всех пакетов не получится, т.к. существует Провайдер от которого постоянно приходят служебные пакеты, такие как ARP, DNS и т.д.

1) Какие пакеты шлет провайдер в ПК и как на них отвечать?

2) Как организовать обмен данными, если пользователь, к примеру, откроет браузер и полезет на определённый ресурс.

3) Кто-нибудь делал что-то подобное?

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Необходимо разработать аппаратное устройство которое должно принимать все пакеты от компьютера пользователя, производить подмену IP-адреса, и отправлять дальше в сеть Интернет на другой сервер с уже подменённым destination IP.

Такое устройство называется маршрутизатор (роутер) с NAT и оно широко используется. Продается в магазине комп техники. (По секрету: сейчас каждый маршрутизатор умеет делать NAT).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

 

maxics, я готов разработать так нужное вам дорогостоящее устройство.

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

в корне неверный ответ. NAT заменяет обратный (source) адрес, а топикстартеру надо не это.

Так-так, сколько сколько попкорну запасать для шоу?? :biggrin:

нужное вам дорогостоящее устройство.

Жду шоу, аж подпрыгиваю. :a14:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Необходимо разработать аппаратное устройство которое должно принимать все пакеты от компьютера пользователя, производить подмену IP-адреса, и отправлять дальше в сеть Интернет на другой сервер с уже подменённым destination IP.

Для этого устройство должно "прикинуться" - ни много ни мало - DNS-сервером для компьютера пользователя. Любой запрос в адресной строке браузера (если это не IP-адрес) сначала резольвится через DNS-сервер, который выдаёт IP-адрес. Вот тут-то Ваше будущее устройство и произведёт подмену и выдаст тот IP, который нужен.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Необходимо разработать аппаратное устройство которое должно принимать все пакеты от компьютера пользователя, производить подмену IP-адреса, и отправлять дальше в сеть Интернет на другой сервер с уже подменённым destination IP.

Менять IP-адрес у всех пакетов не получится, т.к. существует Провайдер от которого постоянно приходят служебные пакеты, такие как ARP, DNS и т.д.

1) Какие пакеты шлет провайдер в ПК и как на них отвечать?

2) Как организовать обмен данными, если пользователь, к примеру, откроет браузер и полезет на определённый ресурс.

3) Кто-нибудь делал что-то подобное?

1) ничего не шлёт. броадкасты-мультикасты могут быть, но любой бытовой роутер без спец.настройки их не пропускает. DNS от провайдера? зачем? только ответ по запросу клиента. ARP только в пределах сегмента сети, никто не запрещает эти пакеты обрабатывать как надо.

 

Либо это упомянутый выше NAT, либо что-то похожее, реализуемое в несколько правил iptables, либо я просто не понял что требуется.

Необходимо разработать аппаратное устройство которое должно принимать все пакеты от компьютера пользователя, производить подмену IP-адреса, и отправлять дальше в сеть Интернет на другой сервер с уже подменённым destination IP.

Клиент открывает TCP-соединение на хост 1.2.3.4. Устройтсво перехватывает IP-пакет от клиента и заменяет 1.2.3.4 на 5.6.7.8 т.о. клиент попадает на другой сервер 5.6.7.8 вместо желанного изначально 1.2.3.4. Ответ от него придёт на адрес клиента (адрес источника без изменений?). Тогда http://www.debuntu.org/how-to-redirecting-...using-iptables/ + любая железка с линуксом и 2 сетевухами. Роутер за 1000 рублей с open wrt подойдёт, некоторые может и в стандартной прошивке это умеют.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Клиент открывает TCP-соединение на хост 1.2.3.4. Устройтсво перехватывает IP-пакет от клиента и заменяет 1.2.3.4 на 5.6.7.8 т.о. клиент попадает на другой сервер 5.6.7.8 вместо желанного изначально 1.2.3.4. Ответ от него придёт на адрес клиента (адрес источника без изменений?).

Это называется прокси-сервер.

В данном примере хост 5.6.7.8 является для пользователя прокси-сервером. Если сам пользователь не указал в настройках доступа в интернет "Использовать прокси-сервер 5.6.7.8", то за него это может сделать внешняя железка, перенаправляя все TCP-коннекты, кроме локальных, на нужный IP-адрес.

Только вот для чего? Вероятно, для кражи у пользователя логинов, паролей доступа к определённым сайтам.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Задача кражи чего-то не стоит. Помимо подмены IP адреса пакетов необходимо защитить посредством шифрования передаваемые данные.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Стоит задача слушать весь трафик по сети для отладки связи ЭВМ-контроллер. Т.к. свичи сейчас дико умные и не сливают трафик во все порты, просто использовать Wireshark результата не даст. Я не знаю как сказать Wireshark что бы он заставил свич лить себе весь трафик. Может он умеет?

Поэтому пытаюсь создать систему: ЭВМ(клиент источник запросов) - прослушка - цель (сервер). В ЭВМ прописываю в качестве IP сервера - IP прослушки. Туда она шлёт запрос. Прослушка приняв запрос от первого IP пересылает его во второй IP (сервер). Сервер получив запрос отвечает на IP прослушки, а он перенаправляет на ЭВМ. Всё вроде просто. Всё сидит на одном свиче. Прослушку уже написал, почти работает. Итак Прослушка построена на ЭВМ под ДОС. Использую пакетный драйвер, который сливает моей проге все пакеты из сети. Программа содержит свой IP стек и могу в нём делать любые правки. Всё что программа делает с принятым пакетом перед отправкой на другой IP: правит только IP заголовок пакета (меняет IP отправителя на свой IP, IP назначения на IP цели и пересчитывает контрольную сумму IP заголовка). Вся часть пакета после IP заголовка не трогается. МАС адреса тоже ставятся правильные, это прослушка выдала на цель пакет. В итоге программа работает без вопросов. Без проблем проходит Ping с ЭВМ на цель и обратно. Но есть какие то проблемы с ТСР пакетами. Повторю что ТСР часть вообще не трогаю. В качестве цели поставил комп, запустил на ней ТРС сервер и Wireshark. Вижу входящие SYN пакеты, но винда не посылает SYN ACK. Тупо игнорирует пакеты. Запустил соединение напрямую ЭВМ - цель. Всё ОК. Сравнил пакеты принимаемые целью в Wireshark - не вижу криминала (разницы). Запустил пакеты на цель в виде контроллера на проце STM32 со стеком LWIP. Принимает SYN, отдаёт SYN ACK. Но винда эти ответы (прошедшие через прослушку) снова игнорит. Получается что для TCP/IP стека LWIP нет ошибок, а для стека винды есть. Далее запустил ТСР пакеты на цель под ОС RTOS-32. На мой SYN даёт ICMP пакет с Type=12 Ошибка параметра. Что за ошибка не понятно. Может есть какие то дополнительные зависимости для ТСР пакетов и нельзя обойтись только изменением IP заголовка? Контрольная сумма в ТСР заголовке не зависит же от IP заголовка? Могу привести скриншоты или сохранёнки от Wireshark. Застрял на ровном месте. Нужна помощь.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Стоит задача слушать весь трафик по сети для отладки связи ЭВМ-контроллер. Т.к. свичи сейчас дико умные и не сливают трафик во все порты, просто использовать Wireshark результата не даст.

 

Практически все коммутаторы, уровнем выше начального, умеют port mirroring, на котором и слушаются все интересующие пакеты.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Объект это подстанция в поле. Комп для записи трафика это ноутбук. Куда воткнуть вторую сетевуху?

 

Как узнать умеет ли свич port mirroring? Как это включить у него?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Как узнать умеет ли свич port mirroring? Как это включить у него?

 

Посмотреть в его документацию

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Объект это подстанция в поле. Комп для записи трафика это ноутбук. Куда воткнуть вторую сетевуху?

В USB-порт.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...