Перенаправлять запросы на внешние IP-адреса на локальный IP-адрес - PullRequest
2 голосов
/ 02 мая 2011

Привет.

Я работаю над проектом из моей компании. У нас есть приложение, которое было написано одним из наших старых санитаров - он был уволен за просмотр порнографии сайты работы. К сожалению, он взял с собой исходный код нашего приложения и жестко запрограммировал в нем IP-адрес нашего внешнего сервера. Мы недавно изменили серверы, и нам нужно изменить место, где приложение пытается получить доступ к нашей базе данных. Я бы действительно предпочел не изобретать велосипед, а переделать приложение ...

Я пытался использовать команду route, но без кубиков.

route -p [new server] mask 255.255.255.255 [old server] metric 50 if [interface]

Я установил временный веб-сервер на порт 80 нового окна, набрал старый IP-адрес в браузере машины с указанным маршрутом, добавленным в его таблицы, и он все еще пошел на старый сервер.

Любая помощь в работе команды route или возможные альтернативы? Например: программное обеспечение для перенаправления, трюки маршрутизатора ... и т. Д.

  • Примечание. Мы пытались использовать обратный поиск имен на нашем частном DNS-сервере, но это также не удалось.

Ответы [ 5 ]

4 голосов
/ 02 мая 2011

Поскольку IP-адрес жестко задан в двоичном файле, вы, вероятно, можете использовать его для grep.Вероятно, он представлен в виде четырех байтов.Затем вы можете заменить его новым IP-адресом с помощью шестнадцатеричного редактора.

2 голосов
/ 02 мая 2011

Предполагая, что у вас есть брандмауэр iptables где-то на маршруте, вы можете использовать DNAT:

iptables -t nat -A PREROUTING -d [old server] -j DNAT --to-destination [new server]

Неважно, где именно вы это запустите, пока он видит пакеты, адресованные [old server] иимеет действительный маршрут к [new server], поэтому он может находиться на хосте, на котором выполняется приложение, любой промежуточный маршрутизатор или пограничный межсетевой экран.

Конечно, вы всегда можете просто отредактировать адрес внутри самого двоичного файла...

0 голосов
/ 03 мая 2011

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

Возможно, вы сможете указать маршрут налокальный хост, добавьте старый сервер в качестве IP-адреса на локальном интерфейсе и напишите прокси-сервер для пересылки запросов на старый сервер.

Лучший вариант IMO - выяснить, как распаковать двоичный файл.и шестнадцатеричное редактировать это.Вы знаете, на каком языке это написано?Или позвоните своему адвокату, чтобы получить исходный код.=)

0 голосов
/ 02 мая 2011

В брандмауэре / маршрутизаторе настройте NAT для этого общедоступного IP-адреса, чтобы он направлялся на ваш новый частный IP-адрес.

0 голосов
/ 02 мая 2011

Используйте файл hosts для маршрутизации всех запросов на внешний IP на локальный IP: http://en.wikipedia.org/wiki/Hosts_(file)

...