Как заставить squid работать через proxy? (FreeBSD 7.0 Release | Squid 2.7 Stable)

FreeBSD, NetBSD, OpenBSD, DragonFly и т. д.

Модератор: arachnid

(UED)DarthVader
Сообщения: 38
ОС: FreeBSD 7.0

Как заставить squid работать через proxy?

Сообщение (UED)DarthVader »

Всем привет.

Есть у меня Локальная сеть, которая выходит в инет через прозрачный кэш-прокси сервер под squid на FreeBSD.
Всё хорошо. Всё работает.

Есть в интернете прокси-сервер нашей компании, без авторизации, с автоматическим определением параметров проксирования, с адресом типа:
http://domen.name/
На этом сервере настроены все все необходимые правила фильтрации нежелательных URL.
Если прописать адрес этого сервера в браузере, всё что не надо - блокируется, всё что надо - не блокируется.
Всё хорошо. Всё работает.

Чего бы хотелось:
Есть ли возможность сделать так, что бы сервак со squid работал с интернетом не напрямую, а через удалённый proxy-сервер в интернете, таким образом, чтобы для всей локальной сети действовали правила фильтрации этого удалённого прокси?
Чтобы самому не заморачиваться с созданием списков запрещённых сайтов или чтобы не прописывать десяткам пользователей адрес прокси в настройках браузера (особенно учитывая то, что браузеров на ПК может быть несколько, да и особо умные могут этот прокси догадаться отключить).

Что пробовал:
1) Помимо жестокого издевательства над гуглом.
Сразу попробовал в squid.conf прописать:
acl all src 0.0.0.0/0
cache_peer domen.name parent 3128 0 no-query default
never_direct allow all


Кстати тут же у меня сразу встал вопрос. При прописывании адреса прокси-сервера в браузере, никакого порта 3128 указывать не надо. Верно ли указывать его здесь? И если нет, то что указывать тогда?

2) Кто-то посоветовал прописать в /etc/make.conf
FETCH_ENV= HTTP_PROXY=http://domen.name/

3) Кто-то посоветовал просто прописать
export HTTP_PROXY=http://domen.name/ (Использую bash)


Ни одно из трёх действий не привело к желаемому результату. Может быть squid и начал работать через этот прокси (хотя я не особо знаю как это проверить), но в локальной сети все, по идее запрещённые, сайты так и остались доступными.

Буду благодарен за любую подсказку/ссылку/наводку. Заранее спасибо.
Маленький мальчик по имени Петя,
взял Silent Hill поиграть у соседей.
Час слышны крики, потом тишина -
Здравствуй психушки весёлой стена!
Спасибо сказали:
Igor Yakimchuk
Сообщения: 110
ОС: FreeBSD

Re: Как заставить squid работать через proxy?

Сообщение Igor Yakimchuk »

вообще-то 2 и3 действие не заставят работать ваш прокси через вышестоящий. Эти команды нужны для другого, но не для работы вашего прокси.
И что было после 1 действия? Что в ваших логах, что в логах вышестоящего?
Спасибо сказали:
Аватара пользователя
ivan2ksusr
Сообщения: 882
ОС: Mac OS X, openSUSE

Re: Как заставить squid работать через proxy?

Сообщение ivan2ksusr »

cache_peer domen.name parent 3128 0 no-query default

откуда 0 то взялся? насколько мне известно :
cache_peer proxy.test.ru parent 8080 3128 no-query default
Цифры 8080 - означают порт подключения к внешнему прокси, обычно - 8080. А цыфры 3128 в строке http_port 3128 - это порт к которому будут подключатся ваши клиенты. или я что то не догоняю %)
Спасибо сказали:
(UED)DarthVader
Сообщения: 38
ОС: FreeBSD 7.0

Re: Как заставить squid работать через proxy?

Сообщение (UED)DarthVader »

Спасибо, за ответы.

ivan2ksusr писал(а):
24.05.2009 02:30
cache_peer domen.name parent 3128 0 no-query default

откуда 0 то взялся? насколько мне известно :
cache_peer proxy.test.ru parent 8080 3128 no-query default
Цифры 8080 - означают порт подключения к внешнему прокси, обычно - 8080. А цыфры 3128 в строке http_port 3128 - это порт к которому будут подключатся ваши клиенты. или я что то не догоняю %)

Возможно, я не совсем правильно понимал принцип. Я думал что ICP-порт используется только в случаях, когда надо, чтобы другой прокси использовал мой как родительский. Свой же прокси я использую как прозрачный, посему пользователям ни адрес ни порт никуда вводить не надо. По умолчанию при этом используется порт 3128? С 8080 тоже не понятно. При настройках прокси в браузере я порт так же не указывал. Точно ли по умолчанию он 8080?

Igor Yakimchuk писал(а):
23.05.2009 06:54
вообще-то 2 и3 действие не заставят работать ваш прокси через вышестоящий. Эти команды нужны для другого, но не для работы вашего прокси.
И что было после 1 действия? Что в ваших логах, что в логах вышестоящего?

Логи вышестоящего недоступны, а вот в свои я согласен - надо было посмотреть. Спасибо, доберусь до компа, обязательно распишу, если не заработает.
Маленький мальчик по имени Петя,
взял Silent Hill поиграть у соседей.
Час слышны крики, потом тишина -
Здравствуй психушки весёлой стена!
Спасибо сказали:
pimlab
Сообщения: 24
ОС: freebsd7.1

Re: Как заставить squid работать через proxy?

Сообщение pimlab »

(UED)DarthVader писал(а):
22.05.2009 17:31
Всем привет.

Есть у меня Локальная сеть, которая выходит в инет через прозрачный кэш-прокси сервер под squid на FreeBSD.
Всё хорошо. Всё работает.

Есть в интернете прокси-сервер нашей компании, без авторизации, с автоматическим определением параметров проксирования, с адресом типа:
http://domen.name/
На этом сервере настроены все все необходимые правила фильтрации нежелательных URL.
Если прописать адрес этого сервера в браузере, всё что не надо - блокируется, всё что надо - не блокируется.
Всё хорошо. Всё работает.

Чего бы хотелось:
Есть ли возможность сделать так, что бы сервак со squid работал с интернетом не напрямую, а через удалённый proxy-сервер в интернете, таким образом, чтобы для всей локальной сети действовали правила фильтрации этого удалённого прокси?
Чтобы самому не заморачиваться с созданием списков запрещённых сайтов или чтобы не прописывать десяткам пользователей адрес прокси в настройках браузера (особенно учитывая то, что браузеров на ПК может быть несколько, да и особо умные могут этот прокси догадаться отключить).

Что пробовал:
1) Помимо жестокого издевательства над гуглом.
Сразу попробовал в squid.conf прописать:
acl all src 0.0.0.0/0
cache_peer domen.name parent 3128 0 no-query default
never_direct allow all


Кстати тут же у меня сразу встал вопрос. При прописывании адреса прокси-сервера в браузере, никакого порта 3128 указывать не надо. Верно ли указывать его здесь? И если нет, то что указывать тогда?

port 3128 - соответсвенно порт на котором вертится удаленный proxy
port 0 - icp-port для общения между вашим и удаленным proxy, если не настроен,
то 0 ,а так 3130 вроде причем UDP.

copy-paste:
"Предже всего у вас должен быть указан родительсикй кеш. Во-вторых вам необходимо указать Squid-у не соединятся напрямую с запрашиваемым сервером. Это можно сделать при помощи таких 3-х строк конфигурации:

cache_peer parentcache.foo.com parent 3128 0 no-query default
acl all src 0.0.0.0/0.0.0.0
never_direct allow all

Заметьте, что при такой конфигурации, если родительсикй кеш "упал" или не отвечает, то каждый запрос будет возвращать сообщение о ошибке.

Если вам хочется соединятся напрямую, когда все ваши родительские кеши недоступны, вы должны использовать другой подход:

cache_peer parentcache.foo.com parent 3128 0 no-query
prefer_direct off

В таком случае Squid при отсутствии позитивных ICP, HTCP, других ответов содеденится напрямую с запрашиваемым сервером, взамен того, чтобы использовать родительский кеш. Директива prefer_direct off указывает Squid-у сначала попробовать использовать родительский кеш. "
Спасибо сказали:
(UED)DarthVader
Сообщения: 38
ОС: FreeBSD 7.0

Re: Как заставить squid работать через proxy?

Сообщение (UED)DarthVader »

pimlab
Спасибо за ответ, однако:
1) Ни о каком родительском кэше речи не идёт. Кэшируется всё на локальном сервере. Удалённый только выполняет функции прокси-сервера с фильтром нежелательных URL.

2) На сколько я могу заметить именно так у меня всё и настроено, как в этом копи-пасте :)

acl all src 0.0.0.0/0
cache_peer domen.name parent 3128 0 no-query default
never_direct allow all

acl all src 0.0.0.0/0.0.0.0
cache_peer parentcache.foo.com parent 3128 0 no-query default
never_direct allow all
Маленький мальчик по имени Петя,
взял Silent Hill поиграть у соседей.
Час слышны крики, потом тишина -
Здравствуй психушки весёлой стена!
Спасибо сказали:
(UED)DarthVader
Сообщения: 38
ОС: FreeBSD 7.0

Re: Как заставить squid работать через proxy?

Сообщение (UED)DarthVader »

Однако история увы на этом не закончилась.

ivan2ksusr писал(а):
24.05.2009 02:30
cache_peer domen.name parent 3128 0 no-query default

откуда 0 то взялся? насколько мне известно :
cache_peer proxy.test.ru parent 8080 3128 no-query default
Цифры 8080 - означают порт подключения к внешнему прокси, обычно - 8080. А цыфры 3128 в строке http_port 3128 - это порт к которому будут подключатся ваши клиенты. или я что то не догоняю %)


Удалённый прокси действительно использовал порт 8080 и с
cache_peer domen.name parent 8080 3130 no-query default
и
never_direct allow all
всё заработало.

То есть не заработало, а сквид стал кидать запросы на удалённый прокси, что и требовалось, однако появилась следующая проблема.

Когда с таким конфигом я пытаюсь зайти на любой сайт с пользовательской машины, вместо ожидаемого сайта у меня скачивается файл типа application/x-ns-proxy-autoconfig с расширением .part со всяким там кодом.

На сколько я понял из гугла "application/x-ns-proxy-autoconfig" это тип файла написанный на Java Script, который должен говорить компу, при обращении к моему удалённому прокси на какой прокси перенаправляться.

И вот собственно новый вопрос:
Почему вместо того, чтобы эту команду выполнить, мои ПК пытаются её скачать как файл?

Пытался найти, может быть где-то надо её прописать как тип MIME-приложения. Но так ничего и не нашёл.

Заранее спасибо за совет.
Маленький мальчик по имени Петя,
взял Silent Hill поиграть у соседей.
Час слышны крики, потом тишина -
Здравствуй психушки весёлой стена!
Спасибо сказали:
Аватара пользователя
ivan2ksusr
Сообщения: 882
ОС: Mac OS X, openSUSE

Re: Как заставить squid работать через proxy?

Сообщение ivan2ksusr »

На сколько я понял из гугла "application/x-ns-proxy-autoconfig" это тип файла написанный на Java Script, который должен говорить компу, при обращении к моему удалённому прокси на какой прокси перенаправляться

у тебя браузер должен получить настройки прокси автоматом,вот здесь пишут как можно это сделать
Спасибо сказали:
(UED)DarthVader
Сообщения: 38
ОС: FreeBSD 7.0

Re: Как заставить squid работать через proxy?

Сообщение (UED)DarthVader »

ivan2ksusr писал(а):
30.07.2009 14:01
На сколько я понял из гугла "application/x-ns-proxy-autoconfig" это тип файла написанный на Java Script, который должен говорить компу, при обращении к моему удалённому прокси на какой прокси перенаправляться

у тебя браузер должен получить настройки прокси автоматом,вот здесь пишут как можно это сделать


Так разве в этом случае мне не придётся прописывать адрес прокси вручную в браузере? Это ведь как раз то, чего надо избежать.
К тому же на сколько я понял, это инструкция как настроить свой прокси, чтобы он всех редиректил (то есть определял какой прокси использовать, а он этого не знает и узнать возможности нет), а эту функцию как раз должен выполнять удалённый прокси. На нём установлен скрипт, который раскидывает всех по разным другим прокси, только ему одно известным.

В идеале:

Пользовательский ПК не должен быть подвергнут настройке > Локальный прокси должен перехватывать его по 80 порту и перенаправлять через Squid на удалённый прокси, который должен фильтровать URL по которым ходят юзвери > Да чтоб ещё добавлялись свои правила фильтрации URL ну и кэшировалось всё само собой.

Реально ли ваще такую схему построить?
Маленький мальчик по имени Петя,
взял Silent Hill поиграть у соседей.
Час слышны крики, потом тишина -
Здравствуй психушки весёлой стена!
Спасибо сказали:
Аватара пользователя
ivan2ksusr
Сообщения: 882
ОС: Mac OS X, openSUSE

Re: Как заставить squid работать через proxy?

Сообщение ivan2ksusr »

Реально ли ваще такую схему построить?


тебе надо разобраться с proxy auto config, я тебе скинул ссылку,там есть инфа и примеры, посмотри линки в самом низу. По сути дела все завязывается на файлике с расширением РАС(в нем то как раз и будет указываться автоматический выбор соответствующего прокси-сервера (метода доступа) для конкретного адреса)

А пока что больше нет ни каких идей
Спасибо сказали:
(UED)DarthVader
Сообщения: 38
ОС: FreeBSD 7.0

Re: Как заставить squid работать через proxy?

Сообщение (UED)DarthVader »

ivan2ksusr писал(а):
31.07.2009 10:26
Реально ли ваще такую схему построить?


тебе надо разобраться с proxy auto config, я тебе скинул ссылку,там есть инфа и примеры, посмотри линки в самом низу. По сути дела все завязывается на файлике с расширением РАС(в нем то как раз и будет указываться автоматический выбор соответствующего прокси-сервера (метода доступа) для конкретного адреса)

А пока что больше нет ни каких идей

Спасибо. Попробую копать в эту сторону.
Маленький мальчик по имени Петя,
взял Silent Hill поиграть у соседей.
Час слышны крики, потом тишина -
Здравствуй психушки весёлой стена!
Спасибо сказали: