Страница 1 из 2
Маршрутизация с использованием удалённого Прокси
Добавлено: 2012-02-09 14:44:33
Maksir
Искал подобную тему, но ничего конкретного не нашёл. А хотелось бы без лишней воды. Итак, смотрим;
Имеем;
1. Внутренняя сеть
192.168.48.0/24
10.0.0.0/24 (alias)
2. Внешняя сеть обращённая к провайдеру. Статический адрес;
10.200.2.68 netmask 255.255.255.192
Шлюз 10.200.2.65 (internet)
Задача сделать так, что бы сеть 192.168.48.0/24 ходила через удалённый прокси 10.253.9.8:3131
---------------------
Обычным способом IPFW или NATD создать проброс возможно лишь в рамках локальной сети. Но удалённый прокси находится за пределами маршрутизации.
Нельзя пробросить маршрут на удалённую машину если её адрес не в зоне локальной сети сервера. Требуется тунелирование, или что-то в этом роде.
Прошу помощи. Устал уже плавать в тонне разной информации по этому вопросу. Всё слишком запутанно, а моя задача проста по-сути. - Но как мне осуществить этот проброс маршрута?
Re: Маршрутизация с использованием удалённого Прокси
Добавлено: 2012-02-09 16:47:23
mak_v_
В зависимости от того что подразумевается под словом "ходила" -вариантов 2
1) Поднимаем впн, разруливаем маршруты через тунель, немного пилим фаервол и вуаля (весь трафик)
2) В локальном проксике указываем парента (проксирование)
Re: Маршрутизация с использованием удалённого Прокси
Добавлено: 2012-02-10 18:25:15
Maksir
f_andrey писал(а):Последний раз редактировалось f_andrey 2012-02-09 22:54:02, всего редактировалось 1 раз.
Причина: Автору, выбирайте пожалуйста раздел соответствуюший тематике вашего сообщения.
Верните пожалуйста тему в раздел FreeBSD Проблемы установки, настройки и работы Правильной Операционной Системы
Если вы найдёте где-нибудь решение по данному вопросу среди начинающих, можете вернуть тему обратно.
mak_v_ писал(а):В зависимости от того что подразумевается под словом "ходила" -вариантов 2
1) Поднимаем впн, разруливаем маршруты через тунель, немного пилим фаервол и вуаля (весь трафик)
2) В локальном проксике указываем парента (проксирование)
1) Я описал выше схему сети, мне нужно выложить все конфиги? - Или зачем вам ещё vpn понадобился?? это дополниетльных маршрутов не хватает?
2) cache_peer - не подходит. Ещё примеры есть? - я остановился пока на переписывании заголовка, но прямых решений пока не нашёл.
Нужно что бы пользователи сети проходили через удалённый прокси, как если бы у него в настройках браузреа был прописан этот удалённый прокси.
1. В локальном прокси Squid не нашёл нужной опции. В нём просто подключается кэшь удалённого прокси, но требуется не это. Возможно не все варианты рассмотрел внимательно. Но пока не располагаю нужными данными.
2. Файрвол делает редиректы только в диапазоне доступной ему локальной сети. Вобще конечно не понятно почему он так делает, но в мануалах об этом упоминается тоже.
Остаётся тунелирование, но тогда непонятно каким образом на удалённом прокси будут распознаваться эти пакеты.
Задача-то простенькая может показаться на первый взгляд и как бы обыденной, и повседневной. Однако, - решений пока нет, ибо они спрятаны так глубоко, что на поверку пришлось избороздить всё, что было возможно в интернете. И везде отписки - "локальная сеть", в рамаках локальной сети...
Можно было бы просто - закрыть 80 порт. А кто хочет ходить в интернет, прописывал бы нужную проксю. Но, это делается для школы, то бишь, - это мне придётся на каждом компьютере ставить и каждый раз проверять эти настройки. Либо грамотно прописать настройки у себя на сервере.
Re: Маршрутизация с использованием удалённого Прокси
Добавлено: 2012-02-10 19:17:35
mak_v_
в rc.conf
Код: Выделить всё
#TRANSPARENT PROXY
nat on $ext_if from $int_lan to !$remote_proxy -> $ext_if
rdr on $int_if proto { tcp } from $int_lan to any port { 80 563 5149 } -> 10.253.9.8 port 3131
Конфигов хватает (их просто нет), а вот понимание как и что у вас есть и что вы хотите, так и не пришло.
соответственно промаршрутив этот трафик (не нат, а именно моаршрутизация)
Или вариант 2 - промаршрутить весть трафик от локалки на удалённый прокси, а уже там его прозрачно завернуть в прокси.
Я тут своё время трачу на помощь Вам, а Вы грубите?
Re: Маршрутизация с использованием удалённого Прокси
Добавлено: 2012-02-10 19:54:48
Maksir
mak_v_ писал(а): в rc.conf
Код: Выделить всё
#TRANSPARENT PROXY
nat on $ext_if from $int_lan to !$remote_proxy -> $ext_if
rdr on $int_if proto { tcp } from $int_lan to any port { 80 563 5149 } -> 10.253.9.8 port 3131
Конфигов хватает (их просто нет), а вот понимание как и что у вас есть и что вы хотите, так и не пришло.
соответственно промаршрутив этот трафик (не нат, а именно моаршрутизация)
Или вариант 2 - промаршрутить весть трафик от локалки на удалённый прокси, а уже там его прозрачно завернуть в прокси.
Я тут своё время трачу на помощь Вам, а Вы грубите?
"я грублю?" ??
Извините, но вопрос был задан - не о том, как сконфигурировать локальную сеть. Сеть работает и --
gatway_enable="YES" - это что?
Мне важно узнать -> возможности или метод. В принципе, как это можно осуществить. А уж потом я подумаю (как и любой другой, кто будет после вас читать эту тему) - как использовать ваш метод.
Итак, вы ссылаетесь на IPNAT
Я уже использовал все эти методы и смотрел много статей - теоретически решения находятся, но практически они все не работают на практике.
Re: Маршрутизация с использованием удалённого Прокси
Добавлено: 2012-02-10 20:05:22
mak_v_
Я не ссылаюсь на ipnat, я использую pf и IPFW
Если вам нужна исключительно теория:
1) Доставить пакеты от клиентов с неизменными заголовками до машины с "удалённым прокси", с помощью фаервола "удалённого прокси" изменить адрес и порт получателя на локальный порт прокси. Ответные пакеты от прокси сервера доставить с неизменными заголовками до клиентов
Если вам нужна практика:
1) средствами маршрутизации доставляем пакеты на "удалённый прокси", редиректим на прокси
gatway_enable="YES" это что?
Если вы задаете подобные вопросы..........
Re: Маршрутизация с использованием удалённого Прокси
Добавлено: 2012-02-10 20:20:39
mak_v_
ЭЭЭ, поправлюсь..вы исправили топик в начале.
Теперь более менее ясно, забудьте ...
надо отредиректить пакеты, а потом занатить...., но вопрос, поддерживает ли провайдерская "прокся" прозрачный режим?
в синтаксисе pf
Код: Выделить всё
rdr on $int_if proto { tcp } from $int_lan to any port { 80 563 5149 } -> 10.253.9.8 port 3131
nat on $ext_if from any to $remote_proxy -> $ext_if
А вообще "изящнее" было бы поднять локальный прозрачный прокси, указав в настройках вышестояший провайдерский.
Re: Маршрутизация с использованием удалённого Прокси
Добавлено: 2012-02-10 21:35:01
Maksir
Да все эти методы уже протопал.
Работает сеть через маршрутизатор с прозрачным прокси. IPFW + IPNAT + SQUID + SquidGuoard named dhcpd и тп...
Прокси не перенаправляет запросы на удалёный прокси, а только использует кэшированную базу удалённого прокси, так как изначально "прокси-сервер" задуман для кэширования страниц интернета с целью экономии трафика. В нём нет ничего, что бы можно было бы применить для редиректа на другой прокси с целью использования его правил фильтрации. (пересмотрел все опции и ничего дельного не нашёл - там нет редиректов. это всё не то)
Мы используем правила фильтрации, а сам кэш нам ни к чему. Фильтрацию нам предоставляет другая организация, это их прокси. Мы не можем влиять на них никаким образом. Эта организация обслуживает школы. Они настраивают для школ только глючный и ужасный UserGyte. Каждый год Управление образрования проводит проверки по фильтрации + инвентаризацию и лицензирование, - если мы создаём правила фильтрации, то отвечаем мы. А если другая организация, то отвечают они. До недавнего времени отвечали мы. Но эта обязанность постоянно возвращает нас к этому вопросу.
Вначале темы я указал два диапазона внутренней локальной сети - один для классов "с фильтрацией", второй служебный для секретарей и директора и т.п. без ограничений полноценный доступ.
Старая схема подразумевает выбивание из бюджета Школы лицензии на Windows + UserGyte + сопутствующие программы, + гимор на обслуживание с нюансами работы всей этой системы и разные ограничения, - неполноценный доступ в интернет по ряду протоколов не работает вообще.
Новая схема уже отработана давно. Осталось только настроить удалённый прокси, ну и заодно предложить эту схему в любую другую школу коллегам.
FreeBSD - неприхотливая система, в связи с её высокой надёжностью и высокой работоспособностью было решено подстраховаться и оставить её. Даже создали управление через web-морду написаную полностью на Perl, со справочным материалом для будущих работников по обслюживанию системы и ответственных лиц. До этого пробовали IPCop, но как-то не особо... запилинная настройками через web-морду система, многое не перестроишь (а жаль!) + те же ограничения по фильтрации (как и любой другой диструбутив).
--------------
Вот и всё.
Меня интересует сугубо теоретическая сторона - возможность перенаправления на другой удалённый прокси за пределами локальной сети через второй маршрутизатор.
С помощью IPWF пробовал, но может быть недостаточно глубоко и умело. Если бы IPWF справлялся с этой задачей, это было бы просто фантастика. Но в широком интернете нет ничего. Всё ограничивается только лишь - диапазоном локальной сети. Все отписки приводят к этому заключению.
Re: Маршрутизация с использованием удалённого Прокси
Добавлено: 2012-02-10 21:51:12
mak_v_
Вот такая сквида должна работать
Код: Выделить всё
users src 192.168.48.0/255.255.255.0
acl super src 192.168.48.0/255.255.255.252
acl all src 0.0.0.0/0.0.0.0
cache_peer 10.253.9.8 parent 3131 no-query
never_direct allow super
icp_access deny all
cache_peer_access 10.253.9.8 allow users
cache_peer_access 10.253.9.8 deny all
Re: Маршрутизация с использованием удалённого Прокси
Добавлено: 2012-02-11 0:29:05
Maksir
Как жаль что я сам до такого не додумался
Ну выглядит многообещающе) интересная конструкция. Спасибо!
Там перед "users" пропущен тег
acl
Нужно ещё протестить. Очень интересно, всё должно получиться. Благодарю!
Протестирую, отвечу
Re: Маршрутизация с использованием удалённого Прокси
Добавлено: 2012-02-11 1:09:53
Maksir
Чё-то укольчик не работает.. Может чего лишнего у меня в конфиге?
Код: Выделить всё
http_port 8080 transparent
coredump_dir /var/squid/cache
cache_access_log /var/squid/logs/access.log
cache_store_log /var/squid/logs/store.log
cache_log /dev/null
error_directory /usr/local/etc/squid/errors/Russian-koi8-r
visible_hostname fbsd
acl users src 192.168.48.0/255.255.255.0
acl super src 192.168.48.0/255.255.255.252
acl all src all
cache_peer 10.253.9.8 parent 3131 0 no-query default
never_direct allow super
acl manager proto cache_object
acl localhost src 127.0.0.1/32
acl to_localhost dst 127.0.0.0/8 0.0.0.0/32
acl localnet src 10.0.0.0/8 # RFC1918 possible internal network
acl localnet src 172.16.0.0/12 # RFC1918 possible internal network
acl localnet src 192.168.0.0/16 # RFC1918 possible internal network
acl SSL_ports port 443
acl Safe_ports port 80
acl Safe_ports port 21
acl Safe_ports port 443
acl Safe_ports port 70
acl Safe_ports port 210
acl Safe_ports port 1025-65535
acl Safe_ports port 280
acl Safe_ports port 488
acl Safe_ports port 591
acl Safe_ports port 777
acl CONNECT method CONNECT
acl slowa url_regex -i "/usr/local/etc/squid/word-utf8"
acl slowa url_regex -i "/usr/local/etc/squid/word-koi8-r"
acl slowa url_regex -i "/usr/local/etc/squid/word-cp1251"
acl Sex_zone url_regex -i ^http://.*\.(eu/|nu/|za/|co/|cg/|vu/|de/|yu/|ws/|tv/)(\?|$)
acl FTP proto FTP
always_direct allow FTP
always_direct allow all
acl CONNECT method CONNECT
http_access deny Sex_zone
http_access deny slowa
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow localnet
http_access deny all
icp_access deny localnet
icp_access deny all
cache_peer_access 10.253.9.8 allow users
cache_peer_access 10.253.9.8 deny all
hierarchy_stoplist cgi-bin ?
access_log /var/squid/logs/access.log squid
refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern -i (/cgi-bin/|\?) 0 0% 0
refresh_pattern . 0 20% 4320
acl shoutcast rep_header X-HTTP09-First-Line ^ICY.[0-9]
upgrade_http0.9 deny shoutcast
acl apache rep_header Server ^Apache
В IPFW всего 2 правила;
Код: Выделить всё
00100 fwd 127.0.0.1,8080 tcp from 192.168.48.0/24 to any dst-port 80 in via rl0
00200 fwd 10.0.0.1 ip from 10.0.0.1 to any in via rl0
Интерфейс lo0 как бы везде по-умолчанию. Это правило работает, - сквид подхватывает всё что проходит по 8080 порту.
Re: Маршрутизация с использованием удалённого Прокси
Добавлено: 2012-02-11 1:26:50
mak_v_
Правила в сквиде срабатывают "сверху-вниз" у вас http_access allow localnet стоит выше парента
лог сквида (вырезку небольшую)
Ну и глянуть на наличие трафика на наружном интерфейсе
Re: Маршрутизация с использованием удалённого Прокси
Добавлено: 2012-02-11 1:32:55
mak_v_
Код: Выделить всё
http_port 8080 transparent
coredump_dir /var/squid/cache
cache_access_log /var/squid/logs/access.log
cache_store_log /var/squid/logs/store.log
cache_log /dev/null
error_directory /usr/local/etc/squid/errors/Russian-koi8-r
visible_hostname fbsd
acl users src 192.168.48.0/255.255.255.0
acl super src 192.168.48.0/255.255.255.252
acl all src all
cache_peer 10.253.9.8 parent 3131 0 no-query default
never_direct allow super
acl manager proto cache_object
acl localhost src 127.0.0.1/32
acl to_localhost dst 127.0.0.0/8 0.0.0.0/32
acl localnet src 10.0.0.0/8 # RFC1918 possible internal network
acl localnet src 172.16.0.0/12 # RFC1918 possible internal network
acl localnet src 192.168.0.0/16 # RFC1918 possible internal network
acl SSL_ports port 443
acl Safe_ports port 80
acl Safe_ports port 21
acl Safe_ports port 443
acl Safe_ports port 70
acl Safe_ports port 210
acl Safe_ports port 1025-65535
acl Safe_ports port 280
acl Safe_ports port 488
acl Safe_ports port 591
acl Safe_ports port 777
acl CONNECT method CONNECT
acl slowa url_regex -i "/usr/local/etc/squid/word-utf8"
acl slowa url_regex -i "/usr/local/etc/squid/word-koi8-r"
acl slowa url_regex -i "/usr/local/etc/squid/word-cp1251"
acl Sex_zone url_regex -i ^http://.*\.(eu/|nu/|za/|co/|cg/|vu/|de/|yu/|ws/|tv/)(\?|$)
acl FTP proto FTP
always_direct allow FTP
always_direct allow all
acl CONNECT method CONNECT
http_access deny Sex_zone
http_access deny slowa
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
#ЭТО ВРЕМЕННЫЙ КОМЕНТАРИЙ (ПРОСТАВЬТЕ)
#http_access allow localnet
http_access deny all
icp_access deny localnet
icp_access deny all
cache_peer_access 10.253.9.8 allow users
cache_peer_access 10.253.9.8 deny all
hierarchy_stoplist cgi-bin ?
access_log /var/squid/logs/access.log squid
refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern -i (/cgi-bin/|\?) 0 0% 0
refresh_pattern . 0 20% 4320
acl shoutcast rep_header X-HTTP09-First-Line ^ICY.[0-9]
upgrade_http0.9 deny shoutcast
acl apache rep_header Server ^Apache
Re: Маршрутизация с использованием удалённого Прокси
Добавлено: 2012-02-12 14:21:57
Maksir
mak_v_ писал(а):Правила в сквиде срабатывают "сверху-вниз" у вас http_access allow localnet стоит выше парента
лог сквида (вырезку небольшую)
Ну и глянуть на наличие трафика на наружном интерфейсе
Я намерено убрал все коменты. С правилами поспешил.
Пробовал уже эту опцию в сквиде. Надеялся что получится. Однако, мне всё-таки кажится что
cache_peer используется просто для заимствования кеша с удалённого сервера.
never_direct - ограничивает доступ, хотя направление мысли правильное. Но нифига не работает.
Тупо - 401 и всё.
Может просто что-то не так.
Re: Маршрутизация с использованием удалённого Прокси
Добавлено: 2012-02-12 14:44:29
Maksir
Всё! Габотает!
Но мне для этого пришлось на габоту топать в воскресенье.
В конфиге нужно было немного подправить (вы наверное мне специально так всё подстроили, так ведь? )))
Код: Выделить всё
cache_peer_access 10.253.9.8 deny all
cache_peer_access 10.253.9.8 allow users
И сам конфиг вот;
Код: Выделить всё
http_port 3128 transparent
coredump_dir /var/squid/cache
cache_access_log /dev/null
cache_store_log /dev/null
cache_log /dev/null
error_directory /usr/local/etc/squid/errors/Russian-koi8-r
visible_hostname fbsd
acl users src 192.168.48.0/255.255.255.0
acl super src 192.168.48.0/255.255.255.252
acl all src all
cache_peer 10.253.9.8 parent 3131 0 no-query default
never_direct allow super
acl manager proto cache_object
acl localhost src 127.0.0.1/32
acl to_localhost dst 127.0.0.0/8 0.0.0.0/32
acl localnet src 10.0.0.0/8 # RFC1918 possible internal network
acl localnet src 172.16.0.0/12 # RFC1918 possible internal network
acl localnet src 192.168.0.0/16 # RFC1918 possible internal network
acl SSL_ports port 443
acl Safe_ports port 80
acl Safe_ports port 21
acl Safe_ports port 443
acl Safe_ports port 70
acl Safe_ports port 210
acl Safe_ports port 1025-65535
acl Safe_ports port 280
acl Safe_ports port 488
acl Safe_ports port 591
acl Safe_ports port 777
acl CONNECT method CONNECT
acl slowa url_regex -i "/usr/local/etc/squid/word-utf8"
acl slowa url_regex -i "/usr/local/etc/squid/word-koi8-r"
acl slowa url_regex -i "/usr/local/etc/squid/word-cp1251"
acl Sex_zone url_regex -i ^http://.*\.(eu/|nu/|za/|co/|cg/|vu/|de/|yu/|ws/|tv/)(\?|$)
acl FTP proto FTP
always_direct allow FTP
always_direct allow all
acl CONNECT method CONNECT
http_access deny Sex_zone
http_access deny slowa
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
#http_access allow localnet
http_access deny all
icp_access deny localnet
icp_access deny all
cache_peer_access 10.253.9.8 deny all
cache_peer_access 10.253.9.8 allow users
hierarchy_stoplist cgi-bin ?
access_log /var/squid/logs/access.log squid
refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern -i (/cgi-bin/|\?) 0 0% 0
refresh_pattern . 0 20% 4320
acl shoutcast rep_header X-HTTP09-First-Line ^ICY.[0-9]
upgrade_http0.9 deny shoutcast
acl apache rep_header Server ^Apache
Благодарю!
- Тему можно определить куда-нибудь на самое видное место. Ибо в интернете ничего подобного не нашлось. А здесь целое открытое решение.
Re: Маршрутизация с использованием удалённого Прокси
Добавлено: 2012-02-12 14:48:33
mak_v_
ну вот, а вы боялись.
1) Не имейте привычки грубить
2) Излагайте полные исходные данные (что есть, как настроено, что надо, что уже сделано)
С вас пиво :-)
Re: Маршрутизация с использованием удалённого Прокси
Добавлено: 2012-02-12 14:58:46
Maksir
Да, я тоже так подумал сначала... и как всегда. поспешил.
Работает, но как-то не так. Наполовину.
Странно как-то...
Вот например, страница яндекса открывается только если
mail.yandex.ru А вот прямая ссылка
yandex.ru не открывается.
Можно удалить последние сообщения, ибо вопрос по прежнему остаётся открытым.

Re: Маршрутизация с использованием удалённого Прокси
Добавлено: 2012-02-12 15:17:49
mak_v_
Смотрите логи сквида
Re: Маршрутизация с использованием удалённого Прокси
Добавлено: 2012-02-12 17:48:57
Maksir
В логе всё банально - нет перенаправления и транспарант 403
Вот как происходит соединение с vk.com и yandex.ru
(для vk.com - при прямом соединении через родной сквид, сразу устанавливается перенаправление, это видно в олге. Но при подключении удалённого прокси, соединение вообще ни в какую, даже на yandex.ru - не отвечает)
Код: Выделить всё
1329085721.956 0 192.168.48.81 TCP_DENIED/403 1277 GET http://www.yandex.ru/ - NONE/- text/html
1329085721.956 0 192.168.48.81 TCP_DENIED/403 1277 GET http://www.yandex.ru/ - NONE/- text/html
1329085721.956 0 192.168.48.81 TCP_DENIED/403 1277 GET http://www.yandex.ru/ - NONE/- text/html
1329085742.249 0 192.168.48.81 TCP_DENIED/403 1281 POST http://vk.com/al_im.php - NONE/- text/html
1329085742.249 0 192.168.48.81 TCP_DENIED/403 1281 POST http://vk.com/al_im.php - NONE/- text/html
1329085742.249 0 192.168.48.81 TCP_DENIED/403 1281 POST http://vk.com/al_im.php - NONE/- text/html
1329085742.381 1 192.168.48.81 TCP_DENIED/403 1283 POST http://vk.com/errors.php - NONE/- text/html
1329085742.381 1 192.168.48.81 TCP_DENIED/403 1283 POST http://vk.com/errors.php - NONE/- text/html
1329085742.381 1 192.168.48.81 TCP_DENIED/403 1283 POST http://vk.com/errors.php - NONE/- text/html
1329085785.374 0 192.168.48.81 TCP_DENIED/403 1263 GET http://vk.com/ - NONE/- text/html
1329085785.374 0 192.168.48.81 TCP_DENIED/403 1263 GET http://vk.com/ - NONE/- text/html
1329085785.374 0 192.168.48.81 TCP_DENIED/403 1263 GET http://vk.com/ - NONE/- text/html
1329085785.420 0 192.168.48.81 TCP_DENIED/403 1285 GET http://vk.com/favicon.ico - NONE/- text/html
1329085785.420 0 192.168.48.81 TCP_DENIED/403 1285 GET http://vk.com/favicon.ico - NONE/- text/html
1329085785.420 0 192.168.48.81 TCP_DENIED/403 1285 GET http://vk.com/favicon.ico - NONE/- text/html
1329085788.420 0 192.168.48.81 TCP_DENIED/403 1285 GET http://vk.com/favicon.ico - NONE/- text/html
1329085788.420 0 192.168.48.81 TCP_DENIED/403 1285 GET http://vk.com/favicon.ico - NONE/- text/html
1329085788.420 0 192.168.48.81 TCP_DENIED/403 1285 GET http://vk.com/favicon.ico - NONE/- text/html
При обычном проксировании на прямую вот;
Код: Выделить всё
1329086350.697 1289 192.168.48.81 TCP_MISS/302 412 GET http://vk.com/ - DIRECT/87.240.143.248 text/html
1329086350.697 1289 192.168.48.81 TCP_MISS/302 412 GET http://vk.com/ - DIRECT/87.240.143.248 text/html
1329086353.504 2806 192.168.48.81 TCP_MISS/200 22693 GET http://vk.com/feed - DIRECT/87.240.143.248 text/html
1329086353.504 2806 192.168.48.81 TCP_MISS/200 22693 GET http://vk.com/feed - DIRECT/87.240.143.248 text/html
1329086354.727 1 192.168.48.81 TCP_MEM_HIT/200 4189 GET http://cs305206.vk.com/u139511601/75628422/s_fe6efb20e2x:001.jpg - NONE/- image/jpeg
1329086354.727 1 192.168.48.81 TCP_MEM_HIT/200 4189 GET http://cs305206.vk.com/u139511601/75628422/s_fe6efb20e2x:001.jpg - NONE/- image/jpeg
1329086355.922 1189 192.168.48.81 TCP_MISS/200 499 GET http://www.tns-counter.ru/V13a***R%3E*vkontakte_ru/ru/UTF-8/tmsec=vk_total/213740408 - DIRECT/217.73.200.218 image/gif
1329086355.922 1189 192.168.48.81 TCP_MISS/200 499 GET http://www.tns-counter.ru/V13a***R%3E*vkontakte_ru/ru/UTF-8/tmsec=vk_total/213740408 - DIRECT/217.73.200.218 image/gif
1329086355.951 1219 192.168.48.81 TCP_MISS/200 370 GET http://counter.yadro.ru/hit? - DIRECT/88.212.196.66 image/gif
1329086355.951 1219 192.168.48.81 TCP_MISS/200 370 GET http://counter.yadro.ru/hit? - DIRECT/88.212.196.66 image/gif
1329086355.964 1 192.168.48.81 TCP_MEM_HIT/200 2443 GET http://vk.com/notifier.php? - NONE/- text/html
1329086355.964 1 192.168.48.81 TCP_MEM_HIT/200 2443 GET http://vk.com/notifier.php? - NONE/- text/html
1329086358.224 3854 192.168.48.81 TCP_MISS/200 491 POST http://vk.com/al_feed.php? - DIRECT/87.240.188.247 text/plain
1329086358.224 3854 192.168.48.81 TCP_MISS/200 491 POST http://vk.com/al_feed.php? - DIRECT/87.240.188.247 text/plain
1329086360.185 1222 192.168.48.81 TCP_MISS/200 320 POST http://q77.queue.vk.com/im272 - DIRECT/87.240.131.226 text/javascript
1329086360.185 1222 192.168.48.81 TCP_MISS/200 320 POST http://q77.queue.vk.com/im272 - DIRECT/87.240.131.226 text/javascript
Чего-то видимо не хватает в правиле. Как-то кеш ведь должен использоваться. Может направление в маршрутизации как-то не цепляет (не видит) этот прокси 10.253.9.8:3131
??
Вот правило файрвола;
Код: Выделить всё
-f flush
add fwd 192.168.48.1,3128 tcp from 192.168.48.0/24 to any dst-port www in via rl0
IpNAT
Код: Выделить всё
map rl1 192.168.48.0/24 -> 10.200.2.68/32
map rl1 10.0.0.0/24 -> 10.200.2.68/32
Пробовал с ipnat поиграть, ничего не вышло;
Код: Выделить всё
map rl1 192.168.48.0/24 -> 10.200.2.68/32
map rl1 10.0.0.0/24 -> 10.200.2.68/32
rdr rl1 192.168.48.0/24 port 80 -> 10.253.9.8 port 3131
Re: Маршрутизация с использованием удалённого Прокси
Добавлено: 2012-02-12 18:17:33
mak_v_
поставьте логгирование выше на сквиде, посмотрите трафик от "удалённой прокси" в момент запроса.
анализируйте
Re: Маршрутизация с использованием удалённого Прокси
Добавлено: 2012-02-12 19:20:40
Maksir
Вот ещё может быть в этом дело;
Стартуем сквид
Код: Выделить всё
2012/02/13 06:42:26| User-Agent logging is disabled.
2012/02/13 06:42:26| Referer logging is disabled.
2012/02/13 06:42:26| DNS Socket created at 0.0.0.0, port 56660, FD 10
2012/02/13 06:42:26| Adding nameserver 127.0.0.1 from /etc/resolv.conf
2012/02/13 06:42:26| Accepting transparently proxied HTTP connections at 192.168.48.1, port 3128, FD 11.
2012/02/13 06:42:26| Accepting ICP messages at 0.0.0.0, port 3130, FD 13.
2012/02/13 06:42:26| Accepting HTCP messages on port 4827, FD 14.
2012/02/13 06:42:26| Pinger socket opened on FD 16
2012/02/13 06:42:26| Configuring 10.253.9.8 Parent 10.253.9.8/3131/0
2012/02/13 06:42:26| Loaded Icons.
2012/02/13 06:42:26| Ready to serve requests.
Accepting ICP messages at 0.0.0.0, port 3130, FD 13.
Configuring 10.253.9.8 Parent 10.253.9.8/3131/0
И может быть в связи с этим происходит отвал TCP
Код: Выделить всё
1329090148.440 0 192.168.48.81 [b]TCP_DENIED/403[/b] 1277 GET http://www.yandex.ru/ - NONE/- text/html
В конфиге указан только проксирующий протокол HTTP я подставил IP что бы вижно было (192.168.48.1, port 3128)
Он такой же в локальном Squid; Accepting ICP messages at 0.0.0.0, port 3130
Может его тоже чтоит указать для этого соединения --
cache_peer 10.253.9.8 parent 3131 3130 no-query default Хотя, совсем не обязательно что у 10.253.9.8 будет именно этот порт 3130 - он вроде как для ответа клиенту.
Пробую поставить логирование выше, ничего не происходит.
Re: Маршрутизация с использованием удалённого Прокси
Добавлено: 2012-02-12 19:33:45
mak_v_
Постарайтесь внимательно разобрать конфиг сквида
Код: Выделить всё
TAG: icp_access
Этот тэг разрешает или запрещеает доступ по ICP порту основываясь на ACL
icp_access allow|deny [!]aclname ...
Смотри http_access для подробностей
По умолчанию:
icp_access deny all
Re: Маршрутизация с использованием удалённого Прокси
Добавлено: 2012-02-13 1:43:47
Maksir
Пришёл домой, скинул все настройки себе на Squid. Вообще, не знаю почему, но у меня теперь дома весь интернет на халяву...
По идее, удалённый прокси должен резать всё и вся нещадно.
Правда, я немного пошевелил конфиг, но незначительно. Хотел добиться хоть какого-то положительного ответа, по этому стал снимать все ограничения и даже не знаю почему, дописал в список разрешёных проктолов - протоколы удалёного прокси (хотя они итак должны быть разрешены. но в данном случае я явно указал);
Код: Выделить всё
http_port 8080 transparent
coredump_dir /var/squid/cache
error_directory /usr/local/etc/squid/errors/Russian-koi8-r
visible_hostname fbsd
acl users src 192.168.48.0/255.255.255.0
acl super src 192.168.48.0/255.255.255.252
cache_peer 10.253.9.8 parent 3131 0 no-query default
never_direct allow super
acl manager proto cache_object
acl all src all
acl localhost src 127.0.0.1/32
acl to_localhost dst 127.0.0.0/8 0.0.0.0/32
acl localnet src 10.0.0.0/8 # RFC1918 possible internal network
acl localnet src 172.16.0.0/12 # RFC1918 possible internal network
acl localnet src 192.168.0.0/16 # RFC1918 possible internal network
acl SSL_ports port 443
acl Safe_ports port 80
acl Safe_ports port 21
acl Safe_ports port 443
acl Safe_ports port 70
acl Safe_ports port 210
acl Safe_ports port 1025-65535
acl Safe_ports port 280
acl Safe_ports port 488
acl Safe_ports port 591
acl Safe_ports port 777
acl Safe_ports port 3131
acl Safe_ports port 3130
acl CONNECT method CONNECT
acl slowa url_regex -i "/usr/local/etc/squid/word-utf8"
acl slowa url_regex -i "/usr/local/etc/squid/word-koi8-r"
acl slowa url_regex -i "/usr/local/etc/squid/word-cp1251"
acl Sex_zone url_regex -i ^http://.*\.(eu/|nu/|za/|co/|cg/|vu/|de/|yu/|ws/|tv/)(\?|$)
acl FTP proto FTP
always_direct allow FTP
always_direct allow all
acl CONNECT method CONNECT
http_access deny Sex_zone
http_access deny slowa
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
#http_access allow localnet
http_access deny all
icp_access deny localnet
icp_access deny all
cache_peer_access 10.253.9.8 allow users
cache_peer_access 10.253.9.8 deny all
hierarchy_stoplist cgi-bin ?
access_log /var/squid/logs/access.log squid
refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern -i (/cgi-bin/|\?) 0 0% 0
refresh_pattern . 0 20% 4320
acl shoutcast rep_header X-HTTP09-First-Line ^ICY.[0-9]
upgrade_http0.9 deny shoutcast
acl apache rep_header Server ^Apache
cache_access_log /var/squid/logs/access.log
cache_store_log /var/squid/logs/store.log
cache_log /var/squid/logs/cache.log
Итак... чё бы скачать.. дома ведь можно и забить на габоту..

Re: Маршрутизация с использованием удалённого Прокси
Добавлено: 2012-02-13 16:29:20
Maksir
Вобщем, всё работает. Просто, если я вбиваю прокси провайдера в настройки браузер, при этом оставляю свой работающий прокси с теми же настройками от провайдера, то ограничение не работает. Просто вхожу в интернет и куда угодно используя удалённый прокси)). Какой-то странный там-дем получился с портами...

Если настройки в браузере не прописывать, то включаются ограничения, как и должно быть.
Ещё одна странность, это работающий skype и др.увлекательные сервисы..))
Вобщем, можно считать что цель достигнута и даже слишком..
Благодарю за поддержку!
ps. "я знаю точно - невозможное/возможно!))"

Re: Маршрутизация с использованием удалённого Прокси
Добавлено: 2012-02-23 21:56:24
Maksir
Всё сделал! Настроил.
У меня прозрачный прокси с поддержкой ssl (https 443)
Но тут правда маленький вопрос. -> Проксирующий https, трафик ходит. Но а вопрос следующий - после аутификации по ssl происходит перенаправление, но не до конца.
Так вот;
Код: Выделить всё
DansGuardian - 400 Bad Request
Запрашиваемый URL является неправильно оформлен.
В конфиге squid указано - обращаться к кешу удалённого прокси сервера. А у него как бы с этим как? Если прописать прокси в браузер на удалённый прокси, то https перенаправляет. Но может быть есть способ и здесь сделать как бы - "транзит https" потока?
# tail /var/squid/logs/access.log
Код: Выделить всё
1330050805.418 1265 10.1.1.82 TCP_REFRESH_HIT/304 308 GET http://s0.2mdn.net/viewad/2583822/16-1x1.gif - DEFAULT_PARENT/10.253.9.8 -
1330050810.170 1462 10.1.1.82 TCP_MISS/302 1567 POST http://passport.yandex.ru/passport? - DEFAULT_PARENT/10.253.9.8 text/plain
1330050811.376 1199 10.1.1.82 TCP_MISS/302 621 GET http://passport-ckicheck.yandex.ru/passport? - DEFAULT_PARENT/10.253.9.8 text/plain
1330050813.167 1145 10.1.1.82 TCP_MISS/302 477 GET http://pass.yandex.ru/login? - DEFAULT_PARENT/10.253.9.8 text/html
1330050815.127 1957 10.1.1.82 TCP_MISS/302 2226 GET http://mail.yandex.ru/? - DEFAULT_PARENT/10.253.9.8 -
1330050816.730 1701 10.1.1.82 TCP_MISS/302 547 GET http://mail.yandex.ru/neo2/ - DEFAULT_PARENT/10.253.9.8 text/html
1330050816.746 7 10.1.1.82 TCP_MISS/400 310 GET https://mail.yandex.ru/neo2/ - DEFAULT_PARENT/10.253.9.8 text/html
Вот сырой, но рабочий вариант;
# cat squid.conf | egrep -v '^#|^$'
Код: Выделить всё
http_port 3128 transparent
https_port 3129 transparent key=/usr/local/etc/squid/squid.key cert=/usr/local/etc/squid/squid.pem sslflags=DELAYED_AUTH
icp_port 0
cache_peer 10.253.9.8 parent 3131 0 no-query default
hierarchy_stoplist cgi-bin ?
coredump_dir /var/squid/cache
visible_hostname fbsd
error_directory /usr/local/etc/squid/errors/Russian-koi8-r
acl all src all
acl manager proto cache_object
acl localhost src 127.0.0.1/32
acl to_localhost dst 127.0.0.0/8 0.0.0.0/32
acl localnet src 10.0.0.0/8 # RFC1918 possible internal network
acl localnet src 172.16.0.0/12 # RFC1918 possible internal network
acl localnet src 192.168.0.0/16 # RFC1918 possible internal network
acl SSL_ports port 443
acl Safe_ports port 80
acl Safe_ports port 21
acl Safe_ports port 22
acl Safe_ports port 443
acl Safe_ports port 70
acl Safe_ports port 210
acl Safe_ports port 1025-65535
acl Safe_ports port 280
acl Safe_ports port 488
acl Safe_ports port 591
acl Safe_ports port 777
acl purge method PURGE
acl CONNECT method CONNECT
acl FTP proto FTP
always_direct allow FTP
http_access allow localnet
acl users_src src 10.1.1.0/255.255.255.0
acl users_dst dst 10.1.1.0/255.255.255.0
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
always_direct allow users_dst
never_direct allow all
http_access allow localhost
icp_access deny localnet
icp_access deny all
refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern -i (/cgi-bin/|\?) 0 0% 0
refresh_pattern . 0 20% 4320
acl shoutcast rep_header X-HTTP09-First-Line ^ICY.[0-9]
upgrade_http0.9 deny shoutcast
acl apache rep_header Server ^Apache
cache_access_log /var/squid/logs/access.log squid
cache_store_log /var/squid/logs/store.log squid
cache_log /var/squid/logs/cache.log squid