Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Unix-системы [игнор отключен] [закрыт для гостей] / Slackware 10.2 - перехват/изменение/редирект исходящих пакетов / 15 сообщений из 15, страница 1 из 1
19.02.2007, 13:43:45
    #34340848
ErV
ErV
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Slackware 10.2 - перехват/изменение/редирект исходящих пакетов
Вопрос следующий:
Есть машина с 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 не входит в дистрибутив), без установки доп софта?
...
Рейтинг: 0 / 0
19.02.2007, 13:48:17
    #34340867
Ося
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Slackware 10.2 - перехват/изменение/редирект исходящих пакетов
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) есть возможность перенаправить пакеты через определенный порт/хост,
какой у вас там фаэрволл, короче?
...
Рейтинг: 0 / 0
19.02.2007, 15:22:24
    #34341268
ErV
ErV
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Slackware 10.2 - перехват/изменение/редирект исходящих пакетов
Ося
в 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" в дистрибутиве нет.
...
Рейтинг: 0 / 0
19.02.2007, 15:30:33
    #34341311
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Slackware 10.2 - перехват/изменение/редирект исходящих пакетов
ErVКак это можно сделать, желательно имеющимися средствами (squid не входит в дистрибутив), без установки доп софта?Имхо, по-хорошему, нужен прокси с возможностью редиректа. Например, тот же squid.

А почему нельзя с провайдером договориться? ведь вам же это для дела надо, а не для баловства...

Прогу "компрессор - toonel" нельзя перенастроить? или вообще заменить?
...
Рейтинг: 0 / 0
19.02.2007, 15:34:09
    #34341333
Adekamer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Slackware 10.2 - перехват/изменение/редирект исходящих пакетов
DNAT на пакеты где destination ИП vir1a.toonel.net:8081 махаешь на ttps://dub1.toonel.net
ничего сложного нет
...
Рейтинг: 0 / 0
19.02.2007, 15:39:01
    #34341355
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Slackware 10.2 - перехват/изменение/редирект исходящих пакетов
AdekamerDNAT на пакеты где destination ИП vir1a.toonel.net:8081 махаешь на ttps://dub1.toonel.net
ничего сложного нетНасколько я понял из описания проблемы, "destination ИП" будет не vir1a.toonel.net, а ip-адрес провайдерского прокси-сервера.
...
Рейтинг: 0 / 0
19.02.2007, 15:57:43
    #34341454
ErV
ErV
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Slackware 10.2 - перехват/изменение/редирект исходящих пакетов
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 будет равен адресу прокси.
...
Рейтинг: 0 / 0
19.02.2007, 17:17:38
    #34341852
Adekamer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Slackware 10.2 - перехват/изменение/редирект исходящих пакетов
e Adekamer
DNAT на пакеты где destination ИП vir1a.toonel.net:8081 махаешь на ttps://dub1.toonel.net
ничего сложного нет
[/quote]
Я тоже так думал, но это работать будет только без прокси, так как нужная мне строка находиться внутри пакета, а destination будет равен адресу прокси.
это если прокси не прозрачное
если прокси не прозрачное - то нужно еще узнать как оно работает это самое прокси
впринципе - можно попробовать хитрый ход конем - но шансы что проканает мало :
в hosts vir1a.toonel.net махаешь IP на dub1.toonel.ne - только вот сам порт он уже не переназначит :(
...
Рейтинг: 0 / 0
19.02.2007, 17:29:47
    #34341900
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Slackware 10.2 - перехват/изменение/редирект исходящих пакетов
Adekamerможно попробовать хитрый ход конем - но шансы что проканает мало :
в hosts vir1a.toonel.net махаешь IP на dub1.toonel.ne - только вот сам порт он уже не переназначит :(Шансов, что проканает, имхо, нет:
Если прокси не прозрачная, то проге (т.е. локальному dns-клиенту) нет надобности лазить в hosts, т.к. tcp-соединение бует происходить только с прокси-сервером провайдера.
Если прокси прозрачная, то подмена имени никак не повлияет на номер порта.


Как вариант: если где-то в интернете есть свой или дружественный сервер, то по разрешенным портам можно попробовать прокинуть свой туннель, а уже через него выпустить эту прогу.
...
Рейтинг: 0 / 0
19.02.2007, 17:34:18
    #34341919
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Slackware 10.2 - перехват/изменение/редирект исходящих пакетов
ErVЗаменить, к сожалению, не на что. Из мне известных, это наиболее лучший (хоть и java), плюс бесплатный и кросплатформенный, но, к сожалению, без исходников и с закрытым кодом. Из настроек у него есть только адрес родительской прокси, но ему нужно, чтобы у неё был открыт 8081 порт, а он закрыт.А что делает эта прога, если не секрет?
...
Рейтинг: 0 / 0
19.02.2007, 19:06:22
    #34342208
ErV
ErV
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Slackware 10.2 - перехват/изменение/редирект исходящих пакетов
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. Там минус, что он(вроде бы) только под винду, не жмет картинки, и если использовать его бесплатно, то коннекта с сервером ждать где-то часик.
...
Рейтинг: 0 / 0
19.02.2007, 19:17:08
    #34342234
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Slackware 10.2 - перехват/изменение/редирект исходящих пакетов
ErV miksoftА что делает эта прога, если не секрет?Сжимает траффик.Ну тогда это далеко не единственная прога такого класса. И JPEG она, конечно, не жмет...

Мы испольузем OpenVPN . Трафик жмет методом LZO, правда, не знаю насколько хорошо...
Правда, требует установки на обоих концах туннеля. Что является вторым концом туннеля в вашем случае - не совсем ясно.
...
Рейтинг: 0 / 0
19.02.2007, 21:03:19
    #34342408
ErV
ErV
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Slackware 10.2 - перехват/изменение/редирект исходящих пакетов
miksoft
И JPEG она, конечно, не жмет...
[/quote]
Жмет, снижая качество картинки. Фактически просто "перепаковывает" картинку с указанным качеством (можно выставить в процессе работы). Сжатие картинок я проверял, работает.

[quot miksoft]
Мы испольузем OpenVPN . Трафик жмет методом LZO, правда, не знаю насколько хорошо...

Сильно сомневаюсь, что мой провайдер согласиться жать траффик. :)

Касательно темы - нашел исходники простейшей прокси (24к в архиве, прилагается в аттаче), сейчас сижу и ковыряю, думаю половину вырезать и сделать то что мне нужно...
...
Рейтинг: 0 / 0
20.02.2007, 12:13:29
    #34343418
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Slackware 10.2 - перехват/изменение/редирект исходящих пакетов
ErVСильно сомневаюсь, что мой провайдер согласиться жать траффик. :)А причем тут ваш провайдер?
Второй конец туннеля вполне можно установить на тех серверах, с которым надо "держать связь"
...
Рейтинг: 0 / 0
24.02.2007, 05:30:21
    #34352587
ErV
ErV
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Slackware 10.2 - перехват/изменение/редирект исходящих пакетов
После разбора исходников прокси их портирования под Win32(часть функциональности потерял, но хватило, чтобы понять как работает) и ковыряния, выяснил следующее:

нужная мне программа отправляет на прокси-сервер запросы типа:
Код: plaintext
CONNECT vir1b.toonel.net: 8081  HTTP/ 1 . 1 
и больше никаких других.

Т.е. только запросы "CONNECT" и больше никаких других. Потом она открывает туннель с точкой назначения и общается через него. (В найденных исходниках такой функциональности нет) Насколько я понял, по идее, программа поддержания туннеля должна быть несложной.

Т.е. как я понял из rfc2616 и rfc2817, нужна простая утилита (proxy с очень урезанной функциональностью - который "знает" только CONNECT и ничего больше), которая "ловит" запрос на коннект, изменяет его, а потом поддерживает созданный туннель..

Это больше относится к программированию, как я понимаю, так что вопрос перенесу туда.

Всем спасибо.
...
Рейтинг: 0 / 0
Форумы / Unix-системы [игнор отключен] [закрыт для гостей] / Slackware 10.2 - перехват/изменение/редирект исходящих пакетов / 15 сообщений из 15, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]