Маршрутизация с использованием удалённого Прокси

Простые/общие вопросы по UNIX системам. Спросите здесь, если вы новичок

Модераторы: vadim64, terminus

Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Maksir
рядовой
Сообщения: 15
Зарегистрирован: 2012-02-09 14:03:27

Маршрутизация с использованием удалённого Прокси

Непрочитанное сообщение Maksir » 2012-02-09 14:44:33

Искал подобную тему, но ничего конкретного не нашёл. А хотелось бы без лишней воды. Итак, смотрим;

Имеем;

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 создать проброс возможно лишь в рамках локальной сети. Но удалённый прокси находится за пределами маршрутизации.

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

Прошу помощи. Устал уже плавать в тонне разной информации по этому вопросу. Всё слишком запутанно, а моя задача проста по-сути. - Но как мне осуществить этот проброс маршрута?
Последний раз редактировалось f_andrey 2012-02-09 17:54:02, всего редактировалось 1 раз.
Причина: Автору, выбирайте пожалуйста раздел соответствуюший тематике вашего сообщения.

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

mak_v_
проходил мимо

Re: Маршрутизация с использованием удалённого Прокси

Непрочитанное сообщение mak_v_ » 2012-02-09 16:47:23

В зависимости от того что подразумевается под словом "ходила" -вариантов 2
1) Поднимаем впн, разруливаем маршруты через тунель, немного пилим фаервол и вуаля (весь трафик)
2) В локальном проксике указываем парента (проксирование)

Maksir
рядовой
Сообщения: 15
Зарегистрирован: 2012-02-09 14:03:27

Re: Маршрутизация с использованием удалённого Прокси

Непрочитанное сообщение Maksir » 2012-02-10 18:25:15

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 порт. А кто хочет ходить в интернет, прописывал бы нужную проксю. Но, это делается для школы, то бишь, - это мне придётся на каждом компьютере ставить и каждый раз проверять эти настройки. Либо грамотно прописать настройки у себя на сервере.

mak_v_
проходил мимо

Re: Маршрутизация с использованием удалённого Прокси

Непрочитанное сообщение mak_v_ » 2012-02-10 19:17:35

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

gatway_enable="YES"
в 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 - промаршрутить весть трафик от локалки на удалённый прокси, а уже там его прозрачно завернуть в прокси.
Я тут своё время трачу на помощь Вам, а Вы грубите?

Maksir
рядовой
Сообщения: 15
Зарегистрирован: 2012-02-09 14:03:27

Re: Маршрутизация с использованием удалённого Прокси

Непрочитанное сообщение Maksir » 2012-02-10 19:54:48

mak_v_ писал(а):

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

gatway_enable="YES"
в 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
Я уже использовал все эти методы и смотрел много статей - теоретически решения находятся, но практически они все не работают на практике.

mak_v_
проходил мимо

Re: Маршрутизация с использованием удалённого Прокси

Непрочитанное сообщение mak_v_ » 2012-02-10 20:05:22

Я не ссылаюсь на ipnat, я использую pf и IPFW
Если вам нужна исключительно теория:
1) Доставить пакеты от клиентов с неизменными заголовками до машины с "удалённым прокси", с помощью фаервола "удалённого прокси" изменить адрес и порт получателя на локальный порт прокси. Ответные пакеты от прокси сервера доставить с неизменными заголовками до клиентов
Если вам нужна практика:
1) средствами маршрутизации доставляем пакеты на "удалённый прокси", редиректим на прокси
gatway_enable="YES" это что?
Если вы задаете подобные вопросы..........

mak_v_
проходил мимо

Re: Маршрутизация с использованием удалённого Прокси

Непрочитанное сообщение mak_v_ » 2012-02-10 20:20:39

ЭЭЭ, поправлюсь..вы исправили топик в начале.
Теперь более менее ясно, забудьте ...
надо отредиректить пакеты, а потом занатить...., но вопрос, поддерживает ли провайдерская "прокся" прозрачный режим?
в синтаксисе 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
А вообще "изящнее" было бы поднять локальный прозрачный прокси, указав в настройках вышестояший провайдерский.

Maksir
рядовой
Сообщения: 15
Зарегистрирован: 2012-02-09 14:03:27

Re: Маршрутизация с использованием удалённого Прокси

Непрочитанное сообщение Maksir » 2012-02-10 21:35:01

Да все эти методы уже протопал.
Работает сеть через маршрутизатор с прозрачным прокси. IPFW + IPNAT + SQUID + SquidGuoard named dhcpd и тп...

Прокси не перенаправляет запросы на удалёный прокси, а только использует кэшированную базу удалённого прокси, так как изначально "прокси-сервер" задуман для кэширования страниц интернета с целью экономии трафика. В нём нет ничего, что бы можно было бы применить для редиректа на другой прокси с целью использования его правил фильтрации. (пересмотрел все опции и ничего дельного не нашёл - там нет редиректов. это всё не то)

Мы используем правила фильтрации, а сам кэш нам ни к чему. Фильтрацию нам предоставляет другая организация, это их прокси. Мы не можем влиять на них никаким образом. Эта организация обслуживает школы. Они настраивают для школ только глючный и ужасный UserGyte. Каждый год Управление образрования проводит проверки по фильтрации + инвентаризацию и лицензирование, - если мы создаём правила фильтрации, то отвечаем мы. А если другая организация, то отвечают они. До недавнего времени отвечали мы. Но эта обязанность постоянно возвращает нас к этому вопросу.

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

Старая схема подразумевает выбивание из бюджета Школы лицензии на Windows + UserGyte + сопутствующие программы, + гимор на обслуживание с нюансами работы всей этой системы и разные ограничения, - неполноценный доступ в интернет по ряду протоколов не работает вообще.

Новая схема уже отработана давно. Осталось только настроить удалённый прокси, ну и заодно предложить эту схему в любую другую школу коллегам.

FreeBSD - неприхотливая система, в связи с её высокой надёжностью и высокой работоспособностью было решено подстраховаться и оставить её. Даже создали управление через web-морду написаную полностью на Perl, со справочным материалом для будущих работников по обслюживанию системы и ответственных лиц. До этого пробовали IPCop, но как-то не особо... запилинная настройками через web-морду система, многое не перестроишь (а жаль!) + те же ограничения по фильтрации (как и любой другой диструбутив).

--------------

Вот и всё.
Меня интересует сугубо теоретическая сторона - возможность перенаправления на другой удалённый прокси за пределами локальной сети через второй маршрутизатор.
С помощью IPWF пробовал, но может быть недостаточно глубоко и умело. Если бы IPWF справлялся с этой задачей, это было бы просто фантастика. Но в широком интернете нет ничего. Всё ограничивается только лишь - диапазоном локальной сети. Все отписки приводят к этому заключению.

mak_v_
проходил мимо

Re: Маршрутизация с использованием удалённого Прокси

Непрочитанное сообщение mak_v_ » 2012-02-10 21:51:12

Вот такая сквида должна работать

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

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

Maksir
рядовой
Сообщения: 15
Зарегистрирован: 2012-02-09 14:03:27

Re: Маршрутизация с использованием удалённого Прокси

Непрочитанное сообщение Maksir » 2012-02-11 0:29:05

Как жаль что я сам до такого не додумался :-D
Ну выглядит многообещающе) интересная конструкция. Спасибо!

Там перед "users" пропущен тег acl

Нужно ещё протестить. Очень интересно, всё должно получиться. Благодарю!
Протестирую, отвечу

Maksir
рядовой
Сообщения: 15
Зарегистрирован: 2012-02-09 14:03:27

Re: Маршрутизация с использованием удалённого Прокси

Непрочитанное сообщение Maksir » 2012-02-11 1:09:53

Чё-то укольчик не работает.. Может чего лишнего у меня в конфиге?

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

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 порту.

mak_v_
проходил мимо

Re: Маршрутизация с использованием удалённого Прокси

Непрочитанное сообщение mak_v_ » 2012-02-11 1:26:50

Правила в сквиде срабатывают "сверху-вниз" у вас http_access allow localnet стоит выше парента
лог сквида (вырезку небольшую)
Ну и глянуть на наличие трафика на наружном интерфейсе

mak_v_
проходил мимо

Re: Маршрутизация с использованием удалённого Прокси

Непрочитанное сообщение mak_v_ » 2012-02-11 1:32:55

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

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

Maksir
рядовой
Сообщения: 15
Зарегистрирован: 2012-02-09 14:03:27

Re: Маршрутизация с использованием удалённого Прокси

Непрочитанное сообщение Maksir » 2012-02-12 14:21:57

mak_v_ писал(а):Правила в сквиде срабатывают "сверху-вниз" у вас http_access allow localnet стоит выше парента
лог сквида (вырезку небольшую)
Ну и глянуть на наличие трафика на наружном интерфейсе
Я намерено убрал все коменты. С правилами поспешил.
Пробовал уже эту опцию в сквиде. Надеялся что получится. Однако, мне всё-таки кажится что cache_peer используется просто для заимствования кеша с удалённого сервера.
never_direct - ограничивает доступ, хотя направление мысли правильное. Но нифига не работает.

Тупо - 401 и всё.

Может просто что-то не так.

Maksir
рядовой
Сообщения: 15
Зарегистрирован: 2012-02-09 14:03:27

Re: Маршрутизация с использованием удалённого Прокси

Непрочитанное сообщение Maksir » 2012-02-12 14:44:29

Всё! Габотает! :smile:
Но мне для этого пришлось на габоту топать в воскресенье. =)

В конфиге нужно было немного подправить (вы наверное мне специально так всё подстроили, так ведь? )))

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

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
Благодарю!
- Тему можно определить куда-нибудь на самое видное место. Ибо в интернете ничего подобного не нашлось. А здесь целое открытое решение.

mak_v_
проходил мимо

Re: Маршрутизация с использованием удалённого Прокси

Непрочитанное сообщение mak_v_ » 2012-02-12 14:48:33

ну вот, а вы боялись.
1) Не имейте привычки грубить
2) Излагайте полные исходные данные (что есть, как настроено, что надо, что уже сделано)

С вас пиво :-)

Maksir
рядовой
Сообщения: 15
Зарегистрирован: 2012-02-09 14:03:27

Re: Маршрутизация с использованием удалённого Прокси

Непрочитанное сообщение Maksir » 2012-02-12 14:58:46

Да, я тоже так подумал сначала... и как всегда. поспешил.
Работает, но как-то не так. Наполовину.
Странно как-то...

Вот например, страница яндекса открывается только если mail.yandex.ru А вот прямая ссылка yandex.ru не открывается.
Можно удалить последние сообщения, ибо вопрос по прежнему остаётся открытым. :(


Maksir
рядовой
Сообщения: 15
Зарегистрирован: 2012-02-09 14:03:27

Re: Маршрутизация с использованием удалённого Прокси

Непрочитанное сообщение Maksir » 2012-02-12 17:48:57

В логе всё банально - нет перенаправления и транспарант 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

mak_v_
проходил мимо

Re: Маршрутизация с использованием удалённого Прокси

Непрочитанное сообщение mak_v_ » 2012-02-12 18:17:33

поставьте логгирование выше на сквиде, посмотрите трафик от "удалённой прокси" в момент запроса.
анализируйте

Maksir
рядовой
Сообщения: 15
Зарегистрирован: 2012-02-09 14:03:27

Re: Маршрутизация с использованием удалённого Прокси

Непрочитанное сообщение Maksir » 2012-02-12 19:20:40

Вот ещё может быть в этом дело;

Стартуем сквид

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

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 - он вроде как для ответа клиенту.

Пробую поставить логирование выше, ничего не происходит.

mak_v_
проходил мимо

Re: Маршрутизация с использованием удалённого Прокси

Непрочитанное сообщение mak_v_ » 2012-02-12 19:33:45

Постарайтесь внимательно разобрать конфиг сквида

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

TAG: icp_access

     Этот тэг разрешает или запрещеает доступ по ICP порту основываясь на ACL
     
        icp_access  allow|deny [!]aclname ...

     Смотри http_access для подробностей

По умолчанию:
 icp_access deny all

Maksir
рядовой
Сообщения: 15
Зарегистрирован: 2012-02-09 14:03:27

Re: Маршрутизация с использованием удалённого Прокси

Непрочитанное сообщение Maksir » 2012-02-13 1:43:47

Пришёл домой, скинул все настройки себе на Squid. Вообще, не знаю почему, но у меня теперь дома весь интернет на халяву... :-D
По идее, удалённый прокси должен резать всё и вся нещадно.

Правда, я немного пошевелил конфиг, но незначительно. Хотел добиться хоть какого-то положительного ответа, по этому стал снимать все ограничения и даже не знаю почему, дописал в список разрешёных проктолов - протоколы удалёного прокси (хотя они итак должны быть разрешены. но в данном случае я явно указал);

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

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
Итак... чё бы скачать.. дома ведь можно и забить на габоту.. :-D

Maksir
рядовой
Сообщения: 15
Зарегистрирован: 2012-02-09 14:03:27

Re: Маршрутизация с использованием удалённого Прокси

Непрочитанное сообщение Maksir » 2012-02-13 16:29:20

Вобщем, всё работает. Просто, если я вбиваю прокси провайдера в настройки браузер, при этом оставляю свой работающий прокси с теми же настройками от провайдера, то ограничение не работает. Просто вхожу в интернет и куда угодно используя удалённый прокси)). Какой-то странный там-дем получился с портами... =)
Если настройки в браузере не прописывать, то включаются ограничения, как и должно быть.
Ещё одна странность, это работающий skype и др.увлекательные сервисы..))

Вобщем, можно считать что цель достигнута и даже слишком.. :oops:

Благодарю за поддержку!
ps. "я знаю точно - невозможное/возможно!))" :drinks:

Maksir
рядовой
Сообщения: 15
Зарегистрирован: 2012-02-09 14:03:27

Re: Маршрутизация с использованием удалённого Прокси

Непрочитанное сообщение Maksir » 2012-02-23 21:56:24

Всё сделал! Настроил.
У меня прозрачный прокси с поддержкой 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