Страница 1 из 1

Отправка пакетиков с определёного адреса

Добавлено: 2008-11-13 23:12:13
Alex Keda
Сабж. Под фрёй.
есть интерфейс, на нём куча альясных адресов.
Как заставить абстрактное приложение (как вариант -все приложения) юзать для отправки запросов тот или иной адрес?
точно знаю что по дефолту все запросы идут с первого добавленного на интерфейс адреса.
но ifconfig на ходу - не дело помоему...

Re: Отправка пакетиков с определёного адреса

Добавлено: 2008-11-14 0:06:29
Yam
В общем случае ответ - никак, кроме случаев когда само приложение позволяет это сделать, как например ping. И такое поведение впринципе верно, хотя и не всегда удобно. Действительно, все пакеты оригинированные на хосте где интерфейс имеет несколько алиасов, по-умолчанию в качестве src ip получают первый адрес с интрефейса, через который они уйдут по маршруту (за исключением приложений вроде приведенного - ping). Но есть три варианта обхода этого поведения. Первый это взять исходник конкретного приложения, которое нужно убедить использовать в качестве src конкретный ip, а не первый, и поправить вызовы bind, заставив его забиндится на конкретный ip. Мало пригодный способ. Второй способ по сути реализует это действие за вас - jail, закрепив за jail`ом опреденный ip, получится, что весь траффик приложений выполняющиеся внутри него, будет покидать хост с конкретным src ip. Третий, не всегда применим, но возможен - source nat, завернув соответствующий трафик в нат, можно заставить его менять src-ip на заданный. Вот, как-то так.

Re: Отправка пакетиков с определёного адреса

Добавлено: 2008-11-14 0:13:08
Alex Keda
видимо надо пробовать последний вариант....
=========
задачка интеерсная - у человека есть 2x254 IP адресов, он их хочет повесить на машинку, а она будет лазить в поисковики - проверять всякие странички - в индексе ли, цитируемость и прочее...
правда пока ещё не договорились - поэтому даже не знаю на чём именно у него это реализовано....
скорей всего perl|php, маловероятно - шелл...

ну да ладно. завтра буду думать.
сегодня - уже ломает...

Re: Отправка пакетиков с определёного адреса

Добавлено: 2008-11-14 11:27:29
hizel
элементарно, сокеты везде одни, bind перед connect ;)

Код: Выделить всё

#!/usr/bin/python

import socket

sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.bind(("192.168.22.240",0))
sock.connect(("127.0.0.1", 80))

Код: Выделить всё

hizel@hzwork:~$ sudo tcpdump -i lo -np
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on lo, link-type EN10MB (Ethernet), capture size 96 bytes
11:25:41.874988 IP 192.168.22.240.52652 > 127.0.0.1.80: S 3942317081:3942317081(0) win 32792 <mss 16396,sackOK,timestamp 1123201 0,nop,wscale 6>
11:25:41.903348 IP 127.0.0.1.80 > 192.168.22.240.52652: S 3939170000:3939170000(0) ack 3942317082 win 32768 <mss 16396,sackOK,timestamp 1123201 1123201,nop,wscale 6>
11:25:41.903383 IP 192.168.22.240.52652 > 127.0.0.1.80: . ack 1 win 513 <nop,nop,timestamp 1123201 1123201>
11:25:41.877353 IP 192.168.22.240.52652 > 127.0.0.1.80: F 1:1(0) ack 1 win 513 <nop,nop,timestamp 1123202 1123201>
11:25:41.877445 IP 127.0.0.1.80 > 192.168.22.240.52652: F 1:1(0) ack 2 win 512 <nop,nop,timestamp 1123202 1123202>
11:25:41.877457 IP 192.168.22.240.52652 > 127.0.0.1.80: . ack 2 win 513 <nop,nop,timestamp 1123202 1123202>

Re: Отправка пакетиков с определёного адреса

Добавлено: 2008-11-14 11:40:24
paradox
а еще чисто теоретически можно сделать nat в pf
когда приложение какое то выходит на какойто определенный айпи заворачивать выход по айпи в нат
и все

никаких джайлов
никаких переписываний приложений

Re: Отправка пакетиков с определёного адреса

Добавлено: 2008-11-14 11:52:37
hizel
а если нада на один серверный ойпи ломицо, фаером неудобно логику эту реализовывать, помоиму

Re: Отправка пакетиков с определёного адреса

Добавлено: 2008-11-14 11:57:56
paradox
а если нада на один серверный ойпи ломицо
брр
а я про это и сказал

тоесть по dst ip заворачивать на нат
и все

тема как наталья поднимала
когда нужно было с алиясов раздать инет ( если кто помнит)

Re: Отправка пакетиков с определёного адреса

Добавлено: 2008-11-14 12:10:58
hizel
если понадобится логика смены ip на основе времени, содержания http запросов и подобного,
через nat довольно напряжно и некрасиво и вобщемто не универсально ;)

Re: Отправка пакетиков с определёного адреса

Добавлено: 2008-11-14 12:13:32
paradox
ну перезапускать pfctl дествительно неудобно)))

за то реализовать быстро
ненадо никакиз джайлов

Re: Отправка пакетиков с определёного адреса

Добавлено: 2008-11-14 12:17:46
hizel
зачем к джайлам приципилсо?
присандалил на сетевушку 256 алиасов

192.168.0.1 255.255.255.0
192.168.0.2 255.255.255.255
192.168.0.3 255.255.255.255
192.168.0.4 255.255.255.255
192.168.0.5 255.255.255.255
192.168.0.6 255.255.255.255
...
192.168.0.253 255.255.255.255

и фпирёд =)

Re: Отправка пакетиков с определёного адреса

Добавлено: 2008-11-14 12:20:07
paradox
присандалили и дальше?

как заставить определенное приложение выйти под определенным айпи?

Re: Отправка пакетиков с определёного адреса

Добавлено: 2008-11-14 12:36:51
hizel
если perl\php\python то ковырнуть исходники ;)

Re: Отправка пакетиков с определёного адреса

Добавлено: 2008-11-14 12:40:25
paradox
издеваешься??

если pfctl хоть кто то знает
то сорусы лапатить точно никто небудет)))

Re: Отправка пакетиков с определёного адреса

Добавлено: 2008-11-14 12:44:50
hizel
ладно пока разговор ни о чем, программки нет ;)

Re: Отправка пакетиков с определёного адреса

Добавлено: 2008-11-14 12:46:16
paradox
лиса?

Re: Отправка пакетиков с определёного адреса

Добавлено: 2008-11-14 15:52:52
manefesto
такс....или я ошибаюсь или что,но вроде в ipfw можно задавать по pid процесса.
То есть для определенного процесса делать свой нат,вот.
Если не возможно то жаль, но вроде где то слышал или читал, вообщем не помню