LINUX.ORG.RU

Указать исходный IP адрес


1

1

Centos на ПК есть несколько IP адресов.

Как приложению, например telnet'y указать что нужно подключаться с конкретного IP адреса? А не с того что идёт подключение по умолчанию.


man telnet на тему "-b"

vel ★★★★★
()
Ответ на: комментарий от rawsik

Он тебе неправильно подсказал, не смотря на то что у него есть борода. Правильный ответ про ключ -b сказал vel

zolden ★★★★★
()

Вопрос вдогонку: можно ли сделать подобное для любого, заранее не определенного приложения?

Igron ★★★★★
()
Ответ на: комментарий от Igron

На ум приходит только что-то вроде «сделать хитрый chroot/хитрого пользователя/итыды, в котором программа будет видеть только один интерфейс».

strangeman ★★★★
()
Последнее исправление: strangeman (всего исправлений: 1)
Ответ на: комментарий от Igron

Пока вижу: запускать от определенного пользователя, с помощью iptables в prerouting (емнип) перенаправлять на соответствующий интерфейс.

anonymous
()
Ответ на: комментарий от Igron

Если порты известны, то тупо марчишь фаерволлом и кидаешь в другую таблицу маршрутизации.

tazhate ★★★★★
()
Ответ на: комментарий от Igron

Есть такое: http://www.ryde.net/code/bind.c.txt Через LD_PRELOAD загружает соответствующие функции. Но это только концепция, так как будет заменять всё, в том числе и запросы к DNS-у. Но при доработке даст именно bind() от имени приложения на заданный ip-адрес.

Или можно с помощью iptables (-t mangle OUTPUT) делать маркировку по --uid-owner, по маркеру выбирать таблицу маршрутизации (ip rule) и заменять ip-адрес (SNAT в POSTROUTING). Раньше можно было маркировать по pid'у ( --pid-owner), сейчас нужен отдельный пользователь. В этом случае сокет приложения будет на один адрес, а пакеты на другой.

Как реализовать вариант strangeman «в котором программа будет видеть только один интерфейс» не представляю.

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