LINUX.ORG.RU

Умный прокси...


0

1

Собственно сабж: возникло желание научить проксю анализировать ответы ресурсов и изменять своё поведение. Скажем есть vds с тунелем далеко за бугром. Прокся принимает запрос, исполняет, получив ответ анализирует. Анализ может выявить цензуру провайдера, блок по национальному признаку и тд. Выявив такие «милые вещи» исполняем запрос по новой уже через тунель, другой прокси, etc. В идеале хотелось бы реализацию как редиректоры в сквиде (аки скидгуард работает). Есть ли нужные механизмы в squid? Может есть другие подходящие прокси? Заранее спасибо.

★★★★★

ну так напиши редиректор для сквида, чо ИМХО это самый правильный путь, хотя может я чего не знаю и уже есть готовые решения?

Pinkbyte ★★★★★ ()
Ответ на: комментарий от erfea

а ничего так, что редиректор может не только редиректить? :-) Ты код хотя бы того же режика читал? Там можно вернуть статус - не редиректить, да и вообще при желании кастомную страницу подставить. Подробности - в документации разработчика Squid

Pinkbyte ★★★★★ ()
Ответ на: комментарий от Pinkbyte

а ничего так, что редиректор может не только редиректить?

Ага и как мне научить редиректор заставлять сделать тот же запрос через тунель, другой прокси, etc?! Оно емнип только принимать пустой ответ и ссылки (сами редиректы) может.... Если я не прав, укажи где об этом почитать, чьё-то имхо мне не очень помогает.

erfea ★★★★★ ()
Ответ на: комментарий от Pinkbyte

можешь реализовать свой прокси а-ля bfilter

Ага, поди кода меньше писать придётся, мне ж работать не надо и времени лишнего немеряно...

erfea ★★★★★ ()

Ага и как мне научить редиректор заставлять сделать тот же запрос через тунель, другой прокси, etc

ЕМНИП, редирект - это скрипт, которому передается URL перед тем squid его пустит дальше. А как любой скрипт он может делать все что угодно, хоть и подменять конфиг squid и делать squid -k reconfigure, может iptables'ом правило создать чтобы пакеты на данных хост заворачивались куда надо да вообще что угодно. Поэтому копай в сторону редиректа.

Kroz ★★★★★ ()
Ответ на: комментарий от Kroz

А как любой скрипт он может делать все что угодно, хоть и подменять конфиг squid и делать squid -k reconfigure, может iptables'ом правило создать чтобы пакеты на данных хост заворачивались куда надо да вообще что угодно.

И как всё это может таки заставить вернуть нужную страницу сквид, то же «squid -k reconfigure» не поможет, максимум при повторном запросе...

erfea ★★★★★ ()
Ответ на: комментарий от erfea

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

erfea ★★★★★ ()
Ответ на: комментарий от erfea

как всё это может таки заставить вернуть нужную страницу сквид, то же «squid -k reconfigure» не поможет, максимум при повторном запросе...

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

Во-вторых, никто не мешает тебе для первого раза вернуть страницу с содержанием:
<meta http-equiv=«Refresh» content=«5; url=http://web.site.com»>
Тогда браузер сам сделает повторный запрос. Только no-cache незабудь сделать, чтобы браузер из кеша второй раз не брал.

Kroz ★★★★★ ()
Ответ на: комментарий от Kroz

Во-первых, у тебя будет база накапливаться.

Спасибо, о великий КО.

<meta http-equiv=«Refresh» content=«5; url=http://web.site.com»>

Правильно понимаю что это заставит браузер перезапросить сраницу? Я таки не спец по http...

erfea ★★★★★ ()
Ответ на: комментарий от Kroz

ЗЫ а как заставить таки лезть в другой прокси за страницей, если мне таки захочется решение не с vds или дополнительный вариант иметь? ЗЗЫ мне начинает казаться что проще самому проксю реализовывать, это пичаль (((

erfea ★★★★★ ()
Ответ на: комментарий от erfea

Правильно понимаю что это заставит браузер перезапросить сраницу? Я таки не спец по http...

Да. Вот тебе рабочий вариант - сохрани его куда-то в site.html и попробуй открыть в браузере.

<html>
<head>
<meta http-equiv="PRAGMA" content="NO-CACHE">
<meta http-equiv="Cache-control" content="NO-CACHE, must-revalidate">
<meta http-equiv='refresh' content='0;url=http://www.google.com'>
</head>
<body>
<p>Redirecting, please wait...</p>
</body>
</html>

Kroz ★★★★★ ()
Ответ на: комментарий от erfea

а как заставить таки лезть в другой прокси за страницей

1. Гугли про каскад прокси средствами squid, например:
http://www.odmin4eg.ru/2010/kaskad-proksi-ili-squid-cherez-squid/
2. Гугли proxychains, например вот:
http://proft.me/2012/02/29/proxychains-proksi-cepochka-iz-socks5-v-http/

Kroz ★★★★★ ()
Ответ на: комментарий от erfea

мне начинает казаться что проще самому проксю реализовывать

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

Kroz ★★★★★ ()
Ответ на: комментарий от Kroz

Курение доков натолкнуло на такую мысль (выкурил external_acl_type) пишем в кофиге

external_acl_typе тра та та "программа1, проверяющая на наличие в списке формируемым программой2" лезть через тонель
redirect_program программа2, анализирует страницы, если надо заносит в список для программы1 и выдаёт http-equiv='refresh'
взлетит?

ЗЫ надеюсь смог объяснить свою мысль... ЗЗЫ давно последний раз трогал сквид, синтаксис даже примерно не могу блюсти )))

erfea ★★★★★ ()
Ответ на: комментарий от erfea

взлетит?

Пробуй. Я вылизал конфиг squid лет 8 назад, с тех пор только banners.acl обновляю, да чуть правлю синтаксис когда новая версия ставится.

Kroz ★★★★★ ()
Ответ на: комментарий от Kroz

На досуге попробую... ща пока работы и так хватает. ЗЫ буду благодарен если кто-то активно практикующий опровергнет/подвертит реализуемость задумки.

erfea ★★★★★ ()

да, про external acl я как-то сразу не вспомнил. Может, потому что ни разу не использовал

Pinkbyte ★★★★★ ()
Ответ на: комментарий от Pinkbyte

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

erfea ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.