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

squid tproxy + rejik. Несовместимость?

Добавлено: Чт дек 09, 2010 12:25
vad73
Режиком пользуюсь давно и успешно (под FreeBSD).
Но недавно возникла потребность задействовать режим tproxy. Был взят пакет lusca-head r14809_5 из портов (по сути squid 2.x).
Так как FreeBSD 8.1 уже поддерживает режим tproxy - все прошло без проблем.

Вот основные настройки, ipfw:

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

${fwcmd} add 020 fwd 127.0.0.1,3128 tcp from any to not me 80 in via ${if}
${fwcmd} add 030 fwd 127.0.0.1,3128 tcp from not me 80 to any in via ${if}
и squid.conf:

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

http_port 127.0.0.1:3128 transparent tproxy
url_rewrite_program /usr/local/rejik/redirector
Rejik перестает отображать странички (возникают дикие тормоза) из "redirector.conf", типа:

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

url http://127.0.0.1/ban/spyware.html
как только в squid.conf добавляю параметр tproxy.

Вдруг кто-то сталкивался с таким? Или это глюк?

Re: squid tproxy + rejik. Несовместимость?

Добавлено: Чт дек 09, 2010 12:30
Slava
Если страницы блокируются, но не выдает страницу запрета, попробуйте так:
url 302:http://127.0.0.1/ban/spyware.html

Re: squid tproxy + rejik. Несовместимость?

Добавлено: Чт дек 09, 2010 13:39
vad73
Именно так и происходит: "блокируются, но не выдает страницу запрета".
Префикс 302: добавлял и действительно в этом случае в адресной строке браузера появляется "http://127.0.0.1/ban/spyware.html",
но сответственно ничего не отображается, так как обращение идет к локальной машине.
Да и реальный адрес прокси сервера не хочется засвечивать.

Re: squid tproxy + rejik. Несовместимость?

Добавлено: Чт дек 09, 2010 13:49
Slava
vad73 писал(а):Да и реальный адрес прокси сервера не хочется засвечивать.
Тогда Вам надо как-то добиться, что бы клиент, набирая в браузере http://127.0.0.1/ban/spyware.html получал страницу с сервера.

В принципе, это не совсем правильно, что клиент пытаясь зайти на 127.0.0.1 проходит через прокси сервер, он скорее пойдет на свой локальный компьютер.

Если же они все же идут на прокси, то можно попробовать опцией raw_change делать замену в урле.

Re: squid tproxy + rejik. Несовместимость?

Добавлено: Чт дек 09, 2010 14:15
vad73
Это я немного "погорячился". Естественно никуда они не идут, получая 127.0.0.1 в адресной строке.

Re: squid tproxy + rejik. Несовместимость?

Добавлено: Чт дек 09, 2010 16:47
vad73
Слава, тогда несколько вопросов:

1) Т.о. видимо на данный момент решение только одно - прописать в "redirector.conf" строку вида:
"url 302:http://172.16.5.55/ban/spyware.html", с реальным IP сервера (с засвечивание нашего сервера клиентам)?

2) И я так понимаю - что пока "нормального" решения в режиме tproxy (для FreeBSD) не существует?

3) Я понимаю - что tproxy под FreeBSD только появился, просто Вам как автору - лучше представлять процессы взаимодействия Squid'a и Rejik'a.
Но просто интересно - что это: проблемы Rejik'a, Squid'a или может быть маршрутизации. Интересно будете ли воспроизводить эту ошибку у себя?

Re: squid tproxy + rejik. Несовместимость?

Добавлено: Чт дек 09, 2010 17:06
Slava
Попробуйте прописать без 302, но с реальным адресом прокси, типа url http://172.16.5.55/ban/spyware.html

Re: squid tproxy + rejik. Несовместимость?

Добавлено: Чт дек 09, 2010 21:45
vad73
Попробовал. Не работает.

Re: squid tproxy + rejik. Несовместимость?

Добавлено: Пт дек 10, 2010 9:02
Slava
У меня нет прозрачной прокси, проверить не могу, но народ пишет об успешном использовании
viewtopic.php?f=1&p=4627&sid=e99447df15 ... 747c#p4627
viewtopic.php?f=1&t=43

Re: squid tproxy + rejik. Несовместимость?

Добавлено: Чт дек 16, 2010 12:38
vad73
Решил проблему!
Уточню мой конфиг: FreeBSD 8.1, lusca-head r14809_5(squid 2.x) + tproxy + WCCPv2 + ipfw, с одним сетевым интерфейсом.

Все это было сделано в помошь Cisco роутеру, в основном для снижения нагрузки на канал.
Весь нюанс оказался в том, что используется только один интерфейс (как на вход, так и на выход).
В этом случае маршрутизация вернувшихся пакетов д.б. прописана явно - в том числе и для страничек с отлупами, которые выдает Rejik.
Соответственно сейчас правила ipfw выглядят так:

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

# Default rule to transparent proxy
${fwcmd} add 020 fwd 127.0.0.1,3128 tcp from any to not me 80 in via ${if}
# Catch the packets that come back using the clients IPs
${fwcmd} add 030 fwd 127.0.0.1,3128 tcp from not me 80 to any in via ${if}
${fwcmd} add 035 fwd 127.0.0.1,3128 tcp from 127.0.0.1 80 to any out via ${if}	// for rejik
Надеюсь, что кому-то это пригодится.