Jump to content

    

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

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

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

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

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

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

 

Share this post


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

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

Share this post


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

 

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

 

 

Share this post


Link to post
Share on other sites
в корне неверный ответ. NAT заменяет обратный (source) адрес, а топикстартеру надо не это.

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

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

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

Share this post


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

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

Share this post


Link to post
Share on other sites
Необходимо разработать аппаратное устройство которое должно принимать все пакеты от компьютера пользователя, производить подмену 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 подойдёт, некоторые может и в стандартной прошивке это умеют.

Share this post


Link to post
Share on other sites
Клиент открывает 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-адрес.

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

Стоит задача слушать весь трафик по сети для отладки связи ЭВМ-контроллер. Т.к. свичи сейчас дико умные и не сливают трафик во все порты, просто использовать 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. Застрял на ровном месте. Нужна помощь.

Share this post


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

 

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

Share this post


Link to post
Share on other sites

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

 

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

Share this post


Link to post
Share on other sites
Как узнать умеет ли свич port mirroring? Как это включить у него?

 

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

Share this post


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

В USB-порт.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this