LINUX.ORG.RU
ФорумAdmin

Подмена имени интерфейса (для обмана одного приложения)


0

1

Есть одно жопорукое приложение, в котором рукожопые авторы захардкодили имена интерфейсов на которых оно может работать.
Подозреваю, тупо перечислили eth1 eth2 eth3 eth4
В конфиге выставляется IP на котором оно работает/слушает, при старте оно видимо пытается проверить на каком интерфейсе этот адрес и падает.
Таким образом интерфейсы вида bond1 или vlan123 авторы обошли своим вниманием.
Есь ли способы обмануть приложение без перекомпиляции/давания по голове разработчикам?


Ответ на: комментарий от adriano32

А это будет корректно работать для eth1<->br0<->bond1, если bond1 состоит из eth1 и eth2, и в бонде активен eth1?

zolden
() автор топика
Ответ на: комментарий от zolden

Вряд ли. Но можно же поднять tun и указать ему нужное имя вроде.

И да, кастую mky.

adriano32
()

может проще ifrename? А так, конечно, можно через LD_PRELOAD сделать враппер на некоторые системные вызовы, но гемор это.

Ну или подправить бинарник :) Только аккуратно, чтобы ничего там не сместилось.

true_admin
()

1. Правим /etc/udev/rules.d/70-persistent-net.rules, чтобы «реальные» eth0/1/2/3 и т.д. назывались как-то вроде phys0/1/2/3

2. В описателях vlan'ов привязыавем VLAN'ы не к eth0/1/2/3 а к phys0/1/2/3

3. ip link set vlan0 name eth0
ip link set vlan1 name eth1
ip link set vlan2 name eth2
ip link set vlan3 name eth3

Nastishka
()

Как уже написали, интерфейсы переименовываются командой

«ip link set name НовоеИМЯ dev СтароеИМЯ»

ЕМНИП для этого требовалось, чтобы интерфейс не был в состоянии UP («ip link set dev ... down»).

Может, если в вашем дистрибутиве не выпилен dummy-интерфейс, будет достаточно переименовать его и повесить на него такой же как и на основной интерфейс ip-адрес, а может это и не сработает.

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

mky 👍👍
()

Всем спасибо, всё-таки не хотел переименовывать интерфейсы ради одного поделия, ибо тогда слишком много всего переделывать

zolden
() автор топика

Что же, жопорукое приложение шло без исходников?

kompas
()

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

Pinkbyte 👍
()
Ответ на: комментарий от zolden

Мне детальная информация и не нужна. Общих характер, то есть, или софтина просто слушает сокет, или она дампит все пакеты, или модифицирует пакеты...

Потому что, если она просто работает с сокетом, то переименованный dummy-интерфейс должен подойти.

Через strace можно просто посмотреть, какие сетевые syscall'ы эта софтина делает, как много нужно будет заменять через LD_PRELOAD.

mky 👍👍
()
Ответ на: комментарий от zolden

Ну тогда попробуйте dummy, в CentOS 6 он ещё есть:

modprobe dummy
ip addr add A.B.C.D dev dummy0
ip link set name eth0 dev dummy0
ip link set up dev eth0

A.B.C.D тот же адрес, что и на br0.

mky 👍👍
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.