Начать новую тему Ответить на тему  [ Сообщений: 8 ] 
Прозрачный прокси 
Автор Сообщение
Аватара пользователя

Зарегистрирован: 16 авг 2009, 04:29
Сообщения: 16
Сообщение Прозрачный прокси
Прозрачный прокси как Squid, Hyperpool умеет делать, ну я имею ввиду в связке с IPFW в Freebsd. :?:
А то я попробовал, форвард на порт Hyperpool идёт клиент появляется, а дальше через коммутатор не выходит.
Может зря мучаюсь. :roll:
С уважением Сергей.


Последний раз редактировалось KSD 18 авг 2012, 17:24, всего редактировалось 1 раз.

17 авг 2012, 03:00
Профиль Отправить email
Site Admin
Аватара пользователя

Зарегистрирован: 29 июл 2008, 17:22
Сообщения: 77
Откуда: Brest, BY
Сообщение Re: Прозрачный прокси
:roll: А попробуй над сервисом "Вход" вставить "Запись", чтобы глянуть приходящие http-заголовки...

P.S. Зачетный баннер в сигнатуре! 8-)


17 авг 2012, 21:25
Профиль Отправить email WWW
Аватара пользователя

Зарегистрирован: 16 авг 2009, 04:29
Сообщения: 16
Сообщение Re: Прозрачный прокси
Записал, клиент браузера обращается, посмотри во вложении.
Если вручную прописать в настройках браузера, адрес прокси, и порт, то естественно все работает.
- С уважением, Сергей.

P.S Это не баннер, а userbar. И еще слепил похожий для вас, надеюсь понравится. Тоже во вложении ;)


У вас нет доступа для просмотра вложений в этом сообщении.


18 авг 2012, 13:09
Профиль Отправить email
Site Admin
Аватара пользователя

Зарегистрирован: 29 июл 2008, 17:22
Сообщения: 77
Откуда: Brest, BY
Сообщение Re: Прозрачный прокси
А давай, для чистоты эксперимента, запишешь еще при включенных настройках в браузере...
Есть мысль, надо ее подтвердить... :idea:

P.S. Спасибо за userbar!


20 авг 2012, 19:20
Профиль Отправить email WWW
Аватара пользователя

Зарегистрирован: 16 авг 2009, 04:29
Сообщения: 16
Сообщение Re: Прозрачный прокси
Вот. Также хочу отметить, частично архив почистил с запросами, так как архив весил 4 Мб, пришлось 2 Мб убрать, форум не позволяет больше заливать говорит мол невозможно изменить это значение в большую сторону. Хотя пишет (100MB max.), прошу разобраться.

P.S. Не зачто, + оба userbara созданы моим сыном.


У вас нет доступа для просмотра вложений в этом сообщении.


20 авг 2012, 22:27
Профиль Отправить email
Site Admin
Аватара пользователя

Зарегистрирован: 29 июл 2008, 17:22
Сообщения: 77
Откуда: Brest, BY
Сообщение Re: Прозрачный прокси
Спасибо. Достаточно было бы и пары файлов, содержащих запросы от клиента ;)
Ограничение на вложения действительно есть и составляет 2MB, откуда там написано 100MB - не совсем понятно.

Ну а наша проблема состоит в следующем:

Когда мы в браузере указываем настройки прокси, он отсылает запрос, в котором указан полный адрес (протокол://хост/путь к документу):
Код:
GET http://img.yandex.net/i/www/home/yandex3.png HTTP/1.1
Host: img.yandex.net
Accept-Encoding: gzip, deflate

Прокси-серверу в этом случае легко определить, с каким хостом ему нужно связаться.

А вот если мы используем в сети настройку на прозрачный прокси, то браузер шлет запрос, как если бы он уже соединился с нужным сервером и запрашивает у него документ уже без указания хоста:
Код:
GET /crossdomain.xml HTTP/1.1
Host: tc.v4.cache2.c.youtube.com
Accept-Encoding: gzip, deflate

Можно заметить, что имя сервера присутствует в заголовке Host (фишка протокола HTTP/1.1).
Почему бы не использовать его? А вот, оказывается, спецификация не велит:
Код:
RFC 1919 - Classical versus Transparent IP Proxies

4.2.3 DNS requirements

In transparent proxy configurations, client systems MUST be
able to resolve server names belonging to remote networks. This
is critical since the proxy will determine the target server
from the destination IP address of the packets arriving from
the client.

Т.е чтобы узнать, кому адресованы данные, нужно обратиться к NAT и посмотреть IP адрес запроса.
Только вот делается это уже на системном уровне, т.к. для этого нужно реализовывать модуль ядра...

Вот несколько ссылок по теме:
:arrow:
:arrow:
:arrow:
:arrow:


21 авг 2012, 23:04
Профиль Отправить email WWW
Аватара пользователя

Зарегистрирован: 16 авг 2009, 04:29
Сообщения: 16
Сообщение Re: Прозрачный прокси
В общем схема у меня такая, стоит PC-BSD на основе FreeBSD 9.0-RELEASE, две сетевухи,
настроен NAT с опцией в ядре IPFIREWALL_NAT (так называемый ядерный нат) на основе сетевого экрана IPFW,
так вот этот НАТ форвардит все запросы приходящие на 80 порт на порт указанный в прокси, правило из конфига
IPFW ${FwCMD} add 10 fwd 127.0.0.1,8080 tcp from ${NetIn}/${NetMask} to any 80 via ${LanOut}.
Поставил SQUID c опцией http_port 8080 transporent, и прозрачный прокси работает, пробую с Hyperpool не работает,
то есть получается, что Squid нарушает RFC 1919 :lol: .
Вот нашёл статью
Таким образом городить свой модуль к ядру мне кажется избыточным 8-)
Выдержка из статьи:
Современные версии прокси-сервера Squid поддерживают возможность определения хоста и порта с помощью библиотек пакетных фильтров, таких как ipfilter в BSD-системах или netfilter в Linux. Для работы с этими библиотеками при компиляции сервера необходимо указать соответствующие опции (--enable-ipf-transparent). После сборки сервера ему будет доступна подробная информация о соединении.

Участок кода client_side.c:

#if IPF_TRANSPARENT

natLookup.nl_inport = http->conn->me.sin_port;

natLookup.nl_outport = http->conn->peer.sin_port;

natLookup.nl_inip = http->conn->me.sin_addr;

natLookup.nl_outip = http->conn->peer.sin_addr;

Как может показаться, при таком подходе возникает необходимость использовать на firewall фильтрацию на основе ipfilter/ipnat и отказаться от ipfw. Однако для работы Squid достаточно просто включить поддержку данного пакетного фильтра, а перенаправлять пакеты можно по-прежнему с помощью ipfw.

P.S. Попробовал конфигурацию Hyperpool вход 8080 выход например mail.ru, клиент уходит на mail.ru, ставлю стандартную конфигурацию прокси болт :roll:


Последний раз редактировалось KSD 23 авг 2012, 15:16, всего редактировалось 1 раз.

21 авг 2012, 23:42
Профиль Отправить email
Аватара пользователя

Зарегистрирован: 16 авг 2009, 04:29
Сообщения: 16
---------
Сообщение Re: Прозрачный прокси
Вот ещё:
fwd ipaddr [,port] - изменить next-hop (следующий отскок) для соответствующих пактов на IP-адрес ipaddr, который может быть IP-адресом в точечно-десятичной нотации или именем хоста; если IP-адрес ipaddr отсутствует в непосредственно подключенной к хосту сети, то маршрут определяется по локальной таблице маршрутизации соответствующего IP-адреса, использующегося вместо него; если IP-адрес ipaddr локальный, то производится ввод в систему с удаленного хоста и будет перенаправлен в порт port на локальной машине, сохраняя локальный IP-адрес сокета и устанавливая исходный IP-адрес для пакета, который был адресатом; это предназначено для работы с прозрачными прокси-серверами; если IP-адрес ipaddr не является локальным, то номер порта (если указан) игнорируется, и правило применяется к пакетам, уходящим из системы; это также отображает адреса к локальным портам, если пакеты сгенерированы локально; проверка завершается, если есть соответствие этому правилу; если номер порта не задан, то номер порта в пакете используется так, чтобы пакет для порта внешнего хоста Y был отправлен к локальному порту Y; системное ядро должно быть скомпилировано с опцией IPFIREWALL_FORWARD.

У меня так и сделано то есть IPFW ${FwCMD} add 10 fwd 127.0.0.1,8080 tcp from ${NetIn}/${NetMask} to any 80 via ${LanOut}.


24 авг 2012, 14:55
Профиль Отправить email
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 8 ] 


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron