Как подделать IP-адрес для приложения, которому нужен именно этот IP-адрес?

Как подделать IP-адрес для приложения, которому нужен именно этот IP-адрес?

В общем такая проблема, есть система RHEL 6.4 Server с парой сетевых интерфейсов, объединенных в один методом bonding. У этой системы IP адрес: 10.7.7.1. Далее на системе запущено приложение, которому нужно подключиться к MySQL-серверу 10.7.7.2на порт 3306 . И на самом деле MySQL работает на 10.7.7.3. Параметры подключения в приложении жестко прописаны поэтому не могут быть изменены . Что можно услышать черезiptablesсделать преобразование адресов. Как сделать так, чтобы когда приложение попыталось10.7.7.2:3306 iptablesперехватывается и отправляется запрос 10.7.7.3:3306, и получен ответ, и передается в приложение?

решение1

Это можно сделать с помощью правил NAT в iptables.

Если сервер MySQL находится на том же хосте, используйте правила REDIRECT. Перенаправьте все соединения на порт 3306, а не на 10.7.7.3, на требуемый адрес.

Если сервер MySQL находится не на том же хосте, используйте правило DNAT.

решение2

При условии, что

  • .1, .2 и .3 — это разные машины
  • Вы не можете поменять местами IP-адреса .2 и .3.
  • .2 работает под управлением Linux

Вот что вам нужно добавить в .2:

-t nat -A PREROUTING  -d 10.7.7.2 -p tcp --dport 3306 -j DNAT --to-destination 10.7.7.3
-t nat -A POSTROUTING -d 10.7.7.3 -p tcp --dport 3306 -j SNAT --to-source      10.7.7.2

ОДНАКО...

Если по каким-то причинам вы не можете создать правила iptables на .2 и/или хотите перехватывать трафик на .1, все, что вам нужно сделать на .1, это:

-t nat -A POSTROUTING -d 10.7.7.2 -p tcp --dport 3306 -j DNAT --to-destination 10.7.7.3

Связанный контент