Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » В помощь системному администратору » SQUID (только под *nix)

Модерирует : lynx, Crash_Master, dg, emx, ShriEkeR

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140

Открыть новую тему     Написать ответ в эту тему

Zmey



Strangled by Lynx
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Я думаю удобнее сделать будет один топик по Squid и все вопросы касательно него постить сюда. :)
У меня вопрос такого характера: как настроить резку трафика squid и как настроить замену баннеров или просто их вырезку.


SQUID - HTTP/HTTPS прокси под *nix

 
В первом посте собираем полезные ссылки, преимущественно на русском по Squid.
 
Официальный сайт: www.squid-cache.org
Squid (кеширующий прокси для http): установка, настройка и использование
Squid Web Proxy Cache: получение, компилляция, настройка (архивная версия)
Squid Proxy Server 3.1 Beginners Guide,  Packtpub, 2011, PDF (см. также и другие источники)
 
About Squid Web Proxy Cache (архивная версия)
Зона особого внимания: Squid (архивная версия)
Как не получать рекламы через Internet  
FAQ по Squid (архивная версия)
Авторизация squid в домене Windows 2003 Server
Статьи по Squid на Opennet.ru  
Как заставить Squid быть только прокси, без кэширования чего-либо?
 
Также смотрите фильтр по squid
 
В отдельных темах обсуждается

Squid и ограничение доступа по времени
Squid: ограничить трафик для отдельного юзера: ширина канала
Squid и вырезание баннеров
Анализаторы логов для Squid
 

// текущий бэкап шапки..

Всего записей: 303 | Зарегистр. 07-12-2001 | Отправлено: 14:56 10-05-2002 | Исправлено: TheBarmaley TMP, 15:33 23-03-2016
vlary



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
drsmoll
Цитата:
возможно ли средствами Squid или какого либо редиректора изменить часть URL
 From Squid FAQ,

Цитата:
The redirector program must read URLs (one per line) on standard input, and write rewritten URLs or blank lines on standard output. Note that the redirector program can not use buffered I/O. Squid writes additional information after the URL which a redirector can use to make a decision.
The format of the line read from the standard input by the program is as follows.
1 URL ip-address/fqdn ident method
2 # for example
3 http://saini.co.in 172.17.8.175/saini.co.in - GET -

Пишешь на Perl простейший скриптик, вставляешь в конфиг

Код:
redirect_program  /etc/squid/custom_redirect.pl
redirect_children 5

и извращаешься над народом как хочешь
 


----------
Заслуженный SCOтовод, почетный SUNтехник и любитель Кошек

Всего записей: 17273 | Зарегистр. 13-06-2007 | Отправлено: 17:38 29-02-2012
robin7341



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Существует задача сделать прозрачный прокси сервер, который бы мог работать с вышестоящим прокси сервером, на котором включена digest аутентификация.
Подробнее.
Существует прокси сервер (proxy1) исключительно с digest аутентификацией (DA), через который клиенты выходят в инет, используя логин и пароль.  DA поддерживается далеко не всеми приложениями и поэтому возникают сложности при решении сетевых задач. Сменить политику авторизации на прокси нельзя.
Стоит задача поставить между пользователем и proxy1, прокси сервер (proxy2). Который бы умел:
- со стороны пользователя иметь авторизацию basic (которая поддерживается гараздо шире), либо вообще быть прозрачным.
- со стороны proxy1 уметь автоматически авторизовываться DA (используя известный логин и пароль) и поддерживать соединение прозрачно для пользователя.
Что уже попробовал: squid, polipo - все они могут работать с родителским прокси, но поддерживают только basic авторизацию при работе с ними.  
Облазил весь инет - переодически возникают такие вопросы - решений нет.
Возможно кто то сталкивался с подобным, или есть мысли на эту тему. Просьба поделиться...
PS: Подозреваю что можно как-то к squid-у привязать digest parent authentication, но как пока мыслей нет.

Всего записей: 50 | Зарегистр. 27-05-2006 | Отправлено: 09:34 30-03-2012
ipmanyak



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
DA поддерживается далеко не всеми приложениями и поэтому возникают сложности при решении сетевых задач.
Вы в курсе, что squid это чистый HTTP прокси и больше ничего? Большинство программ через squid работать не будут.

----------
В сортире лучше быть юзером, чем админом...

Всего записей: 11724 | Зарегистр. 10-12-2003 | Отправлено: 12:08 30-03-2012
Alukardd



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ipmanyak
Цитата:
чистый HTTP прокси
ну зачем же так... это полноценный прокси-сервер, поддерживающий и соединения методом connect по любому протоколу. А в последней 3.3 версии ему функционал SOCKS сервера прикручивают.
 
Да собственно вопрос с авторизацией к этому отношения не особо имеет.
 
robin7341
Что бы сиё провернуть надо скорее всего самому код пилить. Т.к. squid поддерживает в качестве клиента только basic авторизацию. Ну также он может прокидывать данные от клиента напрямую к старшему прокси, но Вас этот вариант не устраивает т.к. проблема как раз в клиенте.

----------
Microsoft gives you windows, linuх gives you the whole house...
I've been using Vim for about 4 years now, mostly because I can't figure out how to exit it.

Всего записей: 6562 | Зарегистр. 28-08-2008 | Отправлено: 12:25 30-03-2012 | Исправлено: Alukardd, 12:25 30-03-2012
robin7341



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Alukardd
Чем дальше копаю, тем больше убеждаюсь что вы правы - придется писать самому, и задача сводится к просмотру всего трафика между проксей и клиентом, и при появлении от сервера сообщений вида:
____________
бла-бла
HTTP/1.0 407 Proxy Authentication Required
бла-бла
Proxy-Authenticate: Digest realm="Squid proxy-caching web server", nonce="JHJ1T0BpFAmaebNt", qop="auth", stale=false
бла-бла
____________
Брать имя, пароль, nonce, высчитывать по ним response и отправлять проксе что то вида:
____________
бла-бла
Proxy-Authorization: Digest username="proxy_user", realm="Squid proxy-caching web server", nonce="JHJ1T0BpFAmaebNt", uri="/", response="6ba70122c874affecf2726341c5938e5", qop=auth, nc=00000001, cnonce="082c875dcb2ca740"
бла-бла
____________
Осталось только механизм авторизации проштудировать на тему, запрос-ответ происходит один раз или переодически прокся перезапрашивает пользователя по схеме nonce/response. Но это уже другая история и к теме squid отношения не имеет.

Всего записей: 50 | Зарегистр. 27-05-2006 | Отправлено: 12:56 30-03-2012 | Исправлено: robin7341, 12:57 30-03-2012
Agran

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Написал скрип на perl для подсчёта экономии на кешировани по логам Squida. Не совсем уверен в том что он правильно всё считает. Прошу посмотреть знающих.
 

Код:
 
#!/usr/bin/perl
 
  print "Content-type: text/html\n\n";
 
  open(access_log, "<access.log");
  flock(access_log, 1);
  $size = 0;
  $zaprosov_vsrgo = 0;
  $zaprosov_hit = 0;
  $hit_size = 0;
  while (<access_log>) {
    $zaprosov_vsrgo ++;
    ($log_date, $log_reqtime, $log_requester, $log_status,
         $log_size, $log_method, $log_url, $log_ident, $log_hierarchie,
         $log_content) = split;
    $size += $log_size;      
    ($log_hitorfail)=(split(/\//,$log_status))[0];
    if ($log_hitorfail =~ /^TCP\w+HIT/)
    {
      $zaprosov_hit++;
      
      $links{$log_url}++;
      if($log_size > $link_size{$log_url})
      {
        $link_size{$log_url} = $log_size;
      }    
      $hit_size  += $link_size{$log_url};
    }
     if ($log_hitorfail =~ /^UDP_HIT/)
    {
      $zaprosov_hit++;
      $hit_size  += $log_size;
    }
  }
   
  close (access_log);
  print "Запросов всего: ".$zaprosov_vsrgo;
  print "<br>Запросов в кеш: ".$zaprosov_hit." (".sprintf("%.1f",($zaprosov_hit/$zaprosov_vsrgo)*100)."%)";
  print "<br>Всего скаченно: ".&size_view($size);
  print "<br>Скаченно из кеша: ".&size_view($hit_size)." (".sprintf("%.1f",($hit_size/$size)*100)."%)";
 
  print "<br><br>Популярные закешированные файлы: (файл, количество запросов в кеш, размер файла, скаченно этого файла из кеша)<br>\n";
  @sorted_keys = (sort {($links{$b} * $link_size{$b}) <=> ($links{$a} * $link_size{$a})} keys %links);
  $i = 0;
  foreach(@sorted_keys){
      $i ++;
      print "$_ $links{$_} ".&size_view($link_size{$_})." ".&size_view($links{$_} * $link_size{$_})."<br>\n";  
      if ($i > 50){last};
  };
   
sub size_view {
  $sizebuf = $_[0];
  if($sizebuf >= 1073741824)
  {return sprintf("%.1f GB",$sizebuf/1073741824)}  
  elsif($sizebuf >= 1048576)
  {return sprintf("%.1f MB",$sizebuf/1048576)}  
  else
  {return sprintf("%.1f KB",$sizebuf/1024)}  
}
 

 
Добавлено:
Сам нашёл ошибку. Приведённый код сильно врёт. Если кому интересно - могу выложить исправленную версию, в которой добавил статистику экономии по дням.

Всего записей: 27 | Зарегистр. 06-04-2003 | Отправлено: 00:20 06-04-2012
vlary



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Agran При нынешних скоростях, ценах на интернет и характере трафика кэширование потеряло свою актуальность. Практически все, кто отмечался в данной теме, утверждали, что давно перестали его использовать.
Ты можешь, конечно, попытаться удивить нас цифрами, типа 50% экономии, но это будет либо чисто специфика вашего трафика, либо ошибка подсчета.


----------
Заслуженный SCOтовод, почетный SUNтехник и любитель Кошек

Всего записей: 17273 | Зарегистр. 13-06-2007 | Отправлено: 13:00 06-04-2012 | Исправлено: vlary, 13:01 06-04-2012
Agran

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
vlary 50% нету, но до 17% доходит. Там где я работаю (в провинции) такая экономия весьма актуальна.

Всего записей: 27 | Зарегистр. 06-04-2003 | Отправлено: 14:26 07-04-2012
Alukardd



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Agran
Это очень большая цифра, можно нам список основных посещаемых ресурсов, если не секрет, конечно? Вообще в современном мире, кэш для многих ресурсов только вредит, взять этот форум - можно долго видеть что никто не отвечает, наблюдая закэшированную страницу, а потом удивиться увидев с пяток ответов разом...

----------
Microsoft gives you windows, linuх gives you the whole house...
I've been using Vim for about 4 years now, mostly because I can't figure out how to exit it.

Всего записей: 6562 | Зарегистр. 28-08-2008 | Отправлено: 16:16 07-04-2012
Agran

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Alukardd
Пока очень мало данных для выводов. В популярных файлах в основном автоматические обновления используемых программ, а так же статические файлы js и картинки с популярных сайтов. Так же замечены тяжёлые flv-файлы от флешевых видеореклам.

Всего записей: 27 | Зарегистр. 06-04-2003 | Отправлено: 20:13 08-04-2012
me2k

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Народ. Заметил интересную особенность.
Сквид3 с авторизацией на базе ЛДАП.
 
Если человек идёт на сайт по ССЛ – авторизацию не спрашивает. Есть у кого-то мысли, как это вылечить? Запретить 433 и 4343 ?
 
Конфиг:
 

Код:
 
#Port Squid
http_port 8080
 
# MEMORY CACHE OPTIONS
# --------------------------------------------------------------------
#  TAG: cache_mem       (bytes)
cache_mem 256 MB
#  TAG: maximum_object_size_in_memory   (bytes)
maximum_object_size_in_memory 250 KB
 
# DISK CACHE OPTIONS
# --------------------------------------------------------------------
#  TAG: cache_dir
cache_dir ufs /etc/squid3/cache 1024 16 256
#  TAG: minimum_object_size     (bytes)
#Default:
minimum_object_size 10 KB
#  TAG: maximum_object_size     (bytes)
#Default:
maximum_object_size 32 MB
#  TAG: cache_swap_low  (percent, 0-100)
#  TAG: cache_swap_high (percent, 0-100)
#
cache_swap_low 90
cache_swap_high 95
 
#  TAG: cache_mgr
cache_mgr ****
 
#  TAG: access_log
access_log /var/log/squid3/access.log squid
 
 
#-------setings for AD/LDAP
auth_param basic program /usr/lib/squid3/squid_ldap_auth -R -D \
yul-squid@domain.local -w pass -b dc=domain,dc=local -f \
"sAMAccountName=%s" 10.68.2.226
 
external_acl_type ldap_users %LOGIN /usr/lib/squid3/squid_ldap_group -R -s sub -b "dc=Domain,dc=local" -f \
"(&(sAMAccountName=%v)(memberOf=cn=%a,OU=YUL_inet_access,OU=Groups,OU=YUL,OU=SG_Ukraine,DC=Domain,DC=local))" -D yul-squid@domain.local -w Pass 10.68.2.226
 
#---------------ACL's
 
#ACL for unlim access
acl Full_Inet external ldap_users YUL_inet_full_access
 
#ACL for users_access
acl Users_Inet external ldap_users yul_users_inet
 
# acl for intranet/etc sites
acl     intranet      dstdomain       \
        "/etc/squid3/allow_urls.txt"
 
# acl for deny media files.
acl     deny_media      url_regex       \
        "/etc/squid3/deny_media.txt"
 
# acl for deny media files.
acl     deny_word_in_urls      url_regex       \
        "/etc/squid3/deny_word_in_urls.txt"
 
# acl for deny urls
acl     deny_urls      dstdomain       \
        "/etc/squid3/deny_urls.txt"
 
#ACL for services
acl     services    dst             \
        "/etc/squid3/allow_serives.txt"
 
#ACL for microsoft.com
acl acl_microsoft.com dstdomain .microsoft.com
 
#-----------------PORTS
acl Safe_ports port 80    # http
acl Safe_ports port 443    # https
acl Safe_ports port 4343    # https
acl UnSafe_ports port 21    # ftp
acl UnSafe_ports port 70    # gopher
acl UnSafe_ports port 210    # wais
acl UnSafe_ports port 1025-65535    # unregistered ports
acl UnSafe_ports port 280    # http-mgmt
acl UnSafe_ports port 488    # gss-http
acl UnSafe_ports port 591    # filemaker
acl UnSafe_ports port 777    # multiling http
acl CONNECT method CONNECT
 
 
 
 
#sqstat
acl manager proto cache_object
acl localhost src 10.68.2.177/32
http_access allow manager localhost
http_access deny manager
 
#Access config
http_access allow CONNECT
http_access allow services all
http_access allow localhost
http_access allow intranet all
http_access allow Full_Inet all
http_access allow acl_microsoft.com all
http_access deny deny_word_in_urls
http_access deny deny_media
http_access deny deny_urls
http_access deny Users_Inet !Safe_ports
http_access allow Users_Inet
http_access deny all
 
 
 
 

Всего записей: 153 | Зарегистр. 01-10-2007 | Отправлено: 08:41 10-04-2012 | Исправлено: me2k, 08:45 10-04-2012
Alukardd



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
me2k
добавляем в конфиг - acl authorized proxy_auth REQUIRED
И пишем перед http_access allow CONNECT строку - http_access deny !authorized.

----------
Microsoft gives you windows, linuх gives you the whole house...
I've been using Vim for about 4 years now, mostly because I can't figure out how to exit it.

Всего записей: 6562 | Зарегистр. 28-08-2008 | Отправлено: 09:54 10-04-2012
FUTURiTY

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Подскажите как сделать что-бы сквид обновлял листинг файлов/каталогов на FTP сразу?
Сейчас почему-то новые файлы на FTP отображаются с большой задержкой (несколько часов и более).
 
В тоталкоммандер стоит галка на "Получение списка файлов командой MLSD"
 
Спасибо.

Всего записей: 2948 | Зарегистр. 24-04-2007 | Отправлено: 12:29 10-04-2012
vlary



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
FUTURiTY  Давно пора отключить кэш на сквиде и не мучиться.
А кстати, ты уверен, что виноват сквид, а не локальный кэш броузера?

----------
Заслуженный SCOтовод, почетный SUNтехник и любитель Кошек

Всего записей: 17273 | Зарегистр. 13-06-2007 | Отправлено: 13:24 10-04-2012 | Исправлено: vlary, 13:25 10-04-2012
FUTURiTY

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
vlary

Цитата:
Давно пора отключить кэш на сквиде и не мучиться.

А можно его только для ftp отключить?
Глобально на всех протоколах нельзя.
 

Цитата:
А кстати, ты уверен, что виноват сквид, а не локальный кэш броузера?

Так Total Commander дропает файл кэша листинга файлов после закрытия соединения с FTP.
Проблема явно в сквиде.
 
Причем обновиться листинг может через 1 час, а может через сутки.

Всего записей: 2948 | Зарегистр. 24-04-2007 | Отправлено: 14:02 10-04-2012
me2k

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Alukardd
 
помогает, но тогда перестают работать без авторизации сайты из списков  
 
http_access allow services all  
http_access allow intranet all
 
что есть не очень правильно.
 
а если перенести строки
http_access deny !authorized
http_access allow CONNECT
 
ниже строк с списками сайтов интранета, - начинает опять пускать на сайты по ССЛ без авторизации. Логично - вторизация по ИП прошла ведь на интранет.
 

Всего записей: 153 | Зарегистр. 01-10-2007 | Отправлено: 23:37 10-04-2012 | Исправлено: me2k, 23:41 10-04-2012
Alukardd



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
me2k
Так скажите по русски куда вы хотите пускать без авторизации, а куда нет.
 
p.s. правила можно комбинировать: http_access deny CONNECT !authorized, не пускать методом CONNECT не авторизованных, применяется только к данному сочетанию и не дальше.

----------
Microsoft gives you windows, linuх gives you the whole house...
I've been using Vim for about 4 years now, mostly because I can't figure out how to exit it.

Всего записей: 6562 | Зарегистр. 28-08-2008 | Отправлено: 00:17 11-04-2012
me2k

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Alukardd
 
#Access config  
http_access allow CONNECT  
http_access allow services all  - пускаем всех
http_access allow localhost - пускаем всех
http_access allow intranet all - пускаем всех
http_access allow Full_Inet all - инет без ограничений
http_access allow acl_microsoft.com all - пускаем на сайт МС
http_access deny deny_word_in_urls - запретили всякое порно
http_access deny deny_media - запретили скачивание файлов
http_access deny deny_urls - запретили некоторые УРЛ
http_access deny Users_Inet !Safe_ports - запретили не стандартные порты
http_access allow Users_Inet - разрешили инет пользователям.
http_access deny all  
 
 
мне нужно, чтобы на services, intranet  - пускало без авторизации.
А вот Users_Inet должен требовать авторизацию полюбому.
 
беда в том, что если пользователь сначала зашёл на интранет сайт, то прошла авторизация по ИП. И дальше, если пользователь пойдёт к примеру на гмайл по ССЛ - то его пустить по http_access allow Users_Inet - без авторизации.
 

Всего записей: 153 | Зарегистр. 01-10-2007 | Отправлено: 10:23 11-04-2012
Alukardd



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
me2k
> то его пустить
пустить или вы хотели сказать "пустит"?
 
Всё определяет порядок правил. Сначал пишем правила которым можно все и всегда, потом требуем авторизацию, а оптом все остальные правила в т.ч Users_Inet и CONNECT. Ксатит CONNECT тоже следует разрешить наверное не на все порты, а только на https, например.

----------
Microsoft gives you windows, linuх gives you the whole house...
I've been using Vim for about 4 years now, mostly because I can't figure out how to exit it.

Всего записей: 6562 | Зарегистр. 28-08-2008 | Отправлено: 10:44 11-04-2012
me2k

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Alukardd
 
я пытался делать вот так:
 
#Access config  
http_access allow services all  
http_access allow localhost  
http_access allow intranet all  
http_access allow Full_Inet all  
http_access allow acl_microsoft.com all  
http_access deny deny_word_in_urls  
http_access deny deny_media  
http_access deny deny_urls  
http_access deny !authorized
http_access allow CONNECT

http_access deny Users_Inet !Safe_ports  
http_access allow Users_Inet  
http_access deny all  
 
 
Всё хорошо, но почему-то если пользователь сначала заходит на сайты из списка интранет, а потом на сайты которые попадают в группу http_access allow Users_Inet  - то на сайты по ССЛ пускает БЕЗ авторизации.
 
в чём я не прав?)

Всего записей: 153 | Зарегистр. 01-10-2007 | Отправлено: 10:46 11-04-2012 | Исправлено: me2k, 10:52 11-04-2012
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140

Компьютерный форум Ru.Board » Компьютеры » В помощь системному администратору » SQUID (только под *nix)


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru