|
|
|
Slackware 10.2 - перехват/изменение/редирект исходящих пакетов
|
|||
|---|---|---|---|
|
#18+
Вопрос следующий: Есть машина с Slackware Linux 10.2 (установлен с 1 DVD). Есть программа с закрытым кодом (компрессор - toonel), которой для работы нужно держать связь с тремя внешними серверами. Работает она (должна, по крайней мере) через proxy моего провайдера. Нужно каким-то образом перехватывать и изменять создаваемые программой пакеты так, чтобы после прохождения через прокси сервер (внешний, от провайдера) запрос шел, например, не на vir1a.toonel.net:8081 а на https://dub1.toonel.net, так как запросы на 8081 порт сквозь прокси не проходят (запрещены). Т.е. нужен редиректор. Как я понял, задача сводится (под виндой сводилась, по крайней мере) к замене в исходящем пакете строки "vir1a.toonel.net:8081\1" на "https://dub1.toonel.net\1", хотя возможно что я ошибаюсь. Как это можно сделать, желательно имеющимися средствами (squid не входит в дистрибутив), без установки доп софта? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2007, 13:43:45 |
|
||
|
Slackware 10.2 - перехват/изменение/редирект исходящих пакетов
|
|||
|---|---|---|---|
|
#18+
ErVВопрос следующий: Есть машина с Slackware Linux 10.2 (установлен с 1 DVD). Есть программа с закрытым кодом (компрессор - toonel), которой для работы нужно держать связь с тремя внешними серверами. Работает она (должна, по крайней мере) через proxy моего провайдера. Нужно каким-то образом перехватывать и изменять создаваемые программой пакеты так, чтобы после прохождения через прокси сервер (внешний, от провайдера) запрос шел, например, не на vir1a.toonel.net:8081 а на https://dub1.toonel.net, так как запросы на 8081 порт сквозь прокси не проходят (запрещены). Т.е. нужен редиректор. Как я понял, задача сводится (под виндой сводилась, по крайней мере) к замене в исходящем пакете строки "vir1a.toonel.net:8081\1" на "https://dub1.toonel.net\1", хотя возможно что я ошибаюсь. Как это можно сделать, желательно имеющимися средствами (squid не входит в дистрибутив), без установки доп софта? в pf (OpenBSD) есть возможность перенаправить пакеты через определенный порт/хост, какой у вас там фаэрволл, короче? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2007, 13:48:17 |
|
||
|
Slackware 10.2 - перехват/изменение/редирект исходящих пакетов
|
|||
|---|---|---|---|
|
#18+
Ося в pf (OpenBSD) есть возможность перенаправить пакеты через определенный порт/хост, какой у вас там фаэрволл, короче? Файервол сделан через iptables (iptables-1.3.5-i486-2.tgz), правила назначаются в /etc/rc.d/rc.firewall при запуске. Документацию я по нему рыл, как понял, он это не умеет (либо я недоразобрался). Т.е. через iptables я могу изменить destination address/destination port, но запрос ведь идет на проксю, значит dest addr/dest port не меняется... Т.е. нужный пакет я через iptables поймать смогу (весь внешний траффик с компьютера идет только через проксю и только с этой программы), но не знаю как изменить нужным образом . Пакета "pf" в дистрибутиве нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2007, 15:22:24 |
|
||
|
Slackware 10.2 - перехват/изменение/редирект исходящих пакетов
|
|||
|---|---|---|---|
|
#18+
ErVКак это можно сделать, желательно имеющимися средствами (squid не входит в дистрибутив), без установки доп софта?Имхо, по-хорошему, нужен прокси с возможностью редиректа. Например, тот же squid. А почему нельзя с провайдером договориться? ведь вам же это для дела надо, а не для баловства... Прогу "компрессор - toonel" нельзя перенастроить? или вообще заменить? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2007, 15:30:33 |
|
||
|
Slackware 10.2 - перехват/изменение/редирект исходящих пакетов
|
|||
|---|---|---|---|
|
#18+
DNAT на пакеты где destination ИП vir1a.toonel.net:8081 махаешь на ttps://dub1.toonel.net ничего сложного нет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2007, 15:34:09 |
|
||
|
Slackware 10.2 - перехват/изменение/редирект исходящих пакетов
|
|||
|---|---|---|---|
|
#18+
AdekamerDNAT на пакеты где destination ИП vir1a.toonel.net:8081 махаешь на ttps://dub1.toonel.net ничего сложного нетНасколько я понял из описания проблемы, "destination ИП" будет не vir1a.toonel.net, а ip-адрес провайдерского прокси-сервера. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2007, 15:39:01 |
|
||
|
Slackware 10.2 - перехват/изменение/редирект исходящих пакетов
|
|||
|---|---|---|---|
|
#18+
miksoftИмхо, по-хорошему, нужен прокси с возможностью редиректа. Например, тот же squid.[/quote] squid в дистре нет, и очень хотелось бы все же разобраться встроенными средствами. (Если других вариантов не будет, поставлю squid). Просто squid, как я понимаю, достаточно специализирован, и редирект у него не основное назначение. Прокся HTTP, как я знаю, т.е. если бы можно было вклинить в процедуру обработки пакетов прогу, которая читала бы stdin и писала бы stdout, я думаю, без проблем бы это решил. (либо прогу, либо скрипт который меняет в пакете строчку можно было бы написать без особых усилий). Или если бы был простой "тупой" прокси с исходниками, его тоже можно было бы переправить в нужную сторону. [quot miksoft] А почему нельзя с провайдером договориться? ведь вам же это для дела надо, а не для баловства... [quot miksoft] Договориться вряд ли получится. [quot miksoft] Прогу "компрессор - toonel" нельзя перенастроить? или вообще заменить? Заменить, к сожалению, не на что. Из мне известных, это наиболее лучший (хоть и java), плюс бесплатный и кросплатформенный, но, к сожалению, без исходников и с закрытым кодом. Из настроек у него есть только адрес родительской прокси, но ему нужно, чтобы у неё был открыт 8081 порт, а он закрыт. [quote Adekamer] DNAT на пакеты где destination ИП vir1a.toonel.net:8081 махаешь на ttps://dub1.toonel.net ничего сложного нет [/quote] Я тоже так думал, но это работать будет только без прокси, так как нужная мне строка находиться внутри пакета, а destination будет равен адресу прокси. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2007, 15:57:43 |
|
||
|
Slackware 10.2 - перехват/изменение/редирект исходящих пакетов
|
|||
|---|---|---|---|
|
#18+
e Adekamer DNAT на пакеты где destination ИП vir1a.toonel.net:8081 махаешь на ttps://dub1.toonel.net ничего сложного нет [/quote] Я тоже так думал, но это работать будет только без прокси, так как нужная мне строка находиться внутри пакета, а destination будет равен адресу прокси. это если прокси не прозрачное если прокси не прозрачное - то нужно еще узнать как оно работает это самое прокси впринципе - можно попробовать хитрый ход конем - но шансы что проканает мало : в hosts vir1a.toonel.net махаешь IP на dub1.toonel.ne - только вот сам порт он уже не переназначит :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2007, 17:17:38 |
|
||
|
Slackware 10.2 - перехват/изменение/редирект исходящих пакетов
|
|||
|---|---|---|---|
|
#18+
Adekamerможно попробовать хитрый ход конем - но шансы что проканает мало : в hosts vir1a.toonel.net махаешь IP на dub1.toonel.ne - только вот сам порт он уже не переназначит :(Шансов, что проканает, имхо, нет: Если прокси не прозрачная, то проге (т.е. локальному dns-клиенту) нет надобности лазить в hosts, т.к. tcp-соединение бует происходить только с прокси-сервером провайдера. Если прокси прозрачная, то подмена имени никак не повлияет на номер порта. Как вариант: если где-то в интернете есть свой или дружественный сервер, то по разрешенным портам можно попробовать прокинуть свой туннель, а уже через него выпустить эту прогу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2007, 17:29:47 |
|
||
|
Slackware 10.2 - перехват/изменение/редирект исходящих пакетов
|
|||
|---|---|---|---|
|
#18+
ErVЗаменить, к сожалению, не на что. Из мне известных, это наиболее лучший (хоть и java), плюс бесплатный и кросплатформенный, но, к сожалению, без исходников и с закрытым кодом. Из настроек у него есть только адрес родительской прокси, но ему нужно, чтобы у неё был открыт 8081 порт, а он закрыт.А что делает эта прога, если не секрет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2007, 17:34:18 |
|
||
|
Slackware 10.2 - перехват/изменение/редирект исходящих пакетов
|
|||
|---|---|---|---|
|
#18+
miksoftА что делает эта прога, если не секрет? Сжимает траффик. В том числе картинки(GIF/JPEG) - за счет уменьшения качества. Работает (как утверждают) на JZlib (или ZLibJava - не помню точно, как она называется). Голы HTML жмет до 8 раз, с картинками и т.д. - в 2..3 раза. Работает как локальный прокси-сервер. Т.е. после её запуска на неё можно пустить любой протокол, переадресовав его на 127.0.0.1:8080, а также можно пустить через неё почту, создав (в программе) маппинг портов - т.е. в почтовой программе вместо smtp сервера я прописываю localhost:25, а уже в программе пишу, что запросы с 25го порта отправляются на smtp.rambler.ru:25, например. Запросы, которые он шлет (vir1a.toonel.net)- это передача сжатого траффика на сервер. Единственная ему альтернатива, как я знаю - это traffic compressor. Там минус, что он(вроде бы) только под винду, не жмет картинки, и если использовать его бесплатно, то коннекта с сервером ждать где-то часик. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2007, 19:06:22 |
|
||
|
Slackware 10.2 - перехват/изменение/редирект исходящих пакетов
|
|||
|---|---|---|---|
|
#18+
ErV miksoftА что делает эта прога, если не секрет?Сжимает траффик.Ну тогда это далеко не единственная прога такого класса. И JPEG она, конечно, не жмет... Мы испольузем OpenVPN . Трафик жмет методом LZO, правда, не знаю насколько хорошо... Правда, требует установки на обоих концах туннеля. Что является вторым концом туннеля в вашем случае - не совсем ясно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2007, 19:17:08 |
|
||
|
Slackware 10.2 - перехват/изменение/редирект исходящих пакетов
|
|||
|---|---|---|---|
|
#18+
miksoft И JPEG она, конечно, не жмет... [/quote] Жмет, снижая качество картинки. Фактически просто "перепаковывает" картинку с указанным качеством (можно выставить в процессе работы). Сжатие картинок я проверял, работает. [quot miksoft] Мы испольузем OpenVPN . Трафик жмет методом LZO, правда, не знаю насколько хорошо... Сильно сомневаюсь, что мой провайдер согласиться жать траффик. :) Касательно темы - нашел исходники простейшей прокси (24к в архиве, прилагается в аттаче), сейчас сижу и ковыряю, думаю половину вырезать и сделать то что мне нужно... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2007, 21:03:19 |
|
||
|
Slackware 10.2 - перехват/изменение/редирект исходящих пакетов
|
|||
|---|---|---|---|
|
#18+
ErVСильно сомневаюсь, что мой провайдер согласиться жать траффик. :)А причем тут ваш провайдер? Второй конец туннеля вполне можно установить на тех серверах, с которым надо "держать связь" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.02.2007, 12:13:29 |
|
||
|
Slackware 10.2 - перехват/изменение/редирект исходящих пакетов
|
|||
|---|---|---|---|
|
#18+
После разбора исходников прокси их портирования под Win32(часть функциональности потерял, но хватило, чтобы понять как работает) и ковыряния, выяснил следующее: нужная мне программа отправляет на прокси-сервер запросы типа: Код: plaintext Т.е. только запросы "CONNECT" и больше никаких других. Потом она открывает туннель с точкой назначения и общается через него. (В найденных исходниках такой функциональности нет) Насколько я понял, по идее, программа поддержания туннеля должна быть несложной. Т.е. как я понял из rfc2616 и rfc2817, нужна простая утилита (proxy с очень урезанной функциональностью - который "знает" только CONNECT и ничего больше), которая "ловит" запрос на коннект, изменяет его, а потом поддерживает созданный туннель.. Это больше относится к программированию, как я понимаю, так что вопрос перенесу туда. Всем спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.02.2007, 05:30:21 |
|
||
|
|

start [/forum/topic.php?fid=25&msg=34341311&tid=1488439]: |
0ms |
get settings: |
6ms |
get forum list: |
11ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
38ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
43ms |
get tp. blocked users: |
1ms |
| others: | 204ms |
| total: | 316ms |

| 0 / 0 |
