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 ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.