Squid настраиваем контроль доступа и оптимизируем кэш. Squid оптимизация
Настройка Squid для начинающих. Как настроить на Squid прокси-сервер
Squid — распространенное в среде программистов, системных администраторов и энтузиастов компьютерных сетей решение для создания эффективного прокси-сервера и управления им. Программа особенно привлекательна тем, что она кроссплатформенная. То есть устанавливать и запускать ее можно как в Linux и иных ОС, соответствующих архитектуре Unix, так и в Windows. Возможности данного инструмента — самые выдающиеся. Каким образом их можно задействовать? Есть ли особенности в настройке программы в зависимости от конкретной ОС?
Общие сведения о Squid
Что такое Squid? Под этим названием известен особо производительный прокси-сервер, используемый чаще всего с веб-клиентами. С его помощью можно организовывать одновременный доступ к Интернету для нескольких пользователей. Другое примечательное свойство Squid заключается в том, что он может кэшировать различные запросы. Это позволяет ускорять получение файлов, так как повторно скачивать их из Интернета не нужно. Прокси-сервер Squid также может регулировать скорость интернет-канала при соотнесении ее с фактической нагрузкой.
Squid адаптирован для использования на Unix-платформах. Однако есть версии Squid для Windows и многих других популярных ОС. Данная программа, так же как и многие операционные системы, основанные на концепции Unix, бесплатна. Она поддерживает протоколы HTTP, FTP, SSL, позволяет настраивать гибкий контроль над доступом к файлам. Squid также записывает в кэш DNS-запросы. При этом можно настроить и прозрачный Squid-прокси, то есть работу сервера в формате, когда пользователь не знает, что обращается к Сети через него, а не напрямую. Таким образом, Squid — это мощный инструмент в руках системного администратора или поставщика коммуникационных услуг.
Практическая полезность Squid
В каких случаях Squid может быть наиболее полезным? Например, это может быть задача, при которой необходимо осуществить эффективную интеграцию нескольких компьютеров в сеть и обеспечить для них доступ в Интернет. Целесообразность использования прокси-сервера в данном случае заключается в том, что запросы между ним и браузером конкретного ПК осуществляются быстрее, чем в случае взаимодействия пользователя с Интернетом напрямую. Также при использовании Squid кэш в самом браузере можно отключить совсем. Подобная функция очень востребована в среде пользователей.
Состав Squid
Решение, о котором идет речь, состоит из нескольких компонентов. Фактически это пакет программного обеспечения. В его структуре — приложение, с помощью которого запускается сервер, а также дополняющая его программа для работы с DNS. Интересная ее особенность состоит в том, что она запускает процессы, каждый из которых функционирует независимо от других. Это позволяет оптимизировать взаимодействие сервера с DNS.
Установка программы
Установка Squid обычно никаких сложностей не вызывает. Очень легко ставится программа на Linux: достаточно ввести команду $ sudo apt-get install squid.
Что касается Squid для Windows, здесь все немного сложнее. Дело в том, что данная программа не имеет исполняемых файлов — основных элементов приложений для ОС от Microsoft.
Однако установка Squid на Windows — задача, решаемая вполне оперативно. Необходимо найти на сайте squid-cache.org или релевантных ему ресурсах дистрибутив, содержащий файлы типа .bat, которые в чем-то близки традиционным для Windows исполняемым. После этого следует скопировать их в отдельную папку на диске. Затем необходимо запустить Squid в качестве системной службы. После этого программу можно использовать как прокси через браузер ПК. Можно сказать, что на этом установка Squid завершена.
В дистрибутиве прокси-сервера практически всегда содержится конфигурационный файл типа .conf. Он является главным инструментом настройки доступа к Интернету с компьютера пользователя и иных устройств, объединенных в локальную сеть при задействовании Squid.
Нюансы настройки
Какие нюансы может включать в себя настройка Squid? Windows — это операционная система, в которой работа с прокси-сервером будет осуществляться посредством редактирования конфигурационных файлов.
В случае с Linux можно задействовать командную строку для некоторых процедур. Но в целом в данной операционной системе, так же как и в том случае, если ОС, в которой ведется настройка Squid, — Windows, чаще всего задействуется файл squid.conf. В нем прописываются определенные выражения («команды»), в соответствии с которыми сервер выполняет управление подключениями к сети.
Рассмотрим, таким образом, как осуществляется настройка Squid, подробнее. Первым делом необходимо разрешить пользователям сети доступ к серверу. Для этого следует выставить в файле squid.conf соответствующие значения в http_port, а также в http_access. Также полезно будет создать список, предназначенный для контроля доступа, или ACL. Настройки http_port имеют для нас значение, так как наша задача — подготовить Squid только для обслуживания конкретной группы компьютеров. В свою очередь, такой параметр, как http_access, важен, так как с помощью него мы сможем регулировать доступ к конкретным ресурсам Сети, запрашиваемым с тех или иных адресов (возможны и иные критерии — протоколы, порты и иные свойства, содержащиеся в ACL).
Каким образом выставить необходимые настройки? Сделать это очень просто.
Допустим, мы создали компьютерную сеть с диапазоном адресов, начинающимся с 192.168.0.1 и заканчивающимся 192.168.0.254. В этом случае в ACL-настройках следует выставить следующий параметр: src 192.168.0.0/24. Если нам нужно настроить порт, то в файле конфигурации надо сделать запись http_port 192.168.0.1 (только следует указать правильный IP-адрес) и ввести номер порта.
Для того чтобы ограничить доступ к создаваемому с помощью Squid прокси (не считая компьютеров, входящих в локальную сеть), необходимо внести изменения в http_access. Это делается просто — с помощью выражений («команд» - условимся называть их так, хотя, строго говоря, в тексте они таковыми не являются, но в строке терминала вполне соответствовали бы им) allow LocalNet и deny all. Очень важно расположить первый параметр выше второго, так как Squid распознает их по очереди.
Работа с ACL: запрет доступа к сайтам
Собственно, настройки доступа возможны в Squid в очень широком спектре. Рассмотрим примеры полезных в практике управления локальными сетями.
Достаточно востребован элемент src. С его помощью можно зафиксировать IP-адрес компьютера, который осуществил запрос к прокси-серверу. Сочетая элемент src с http_access можно, например, разрешать доступ к сети конкретному пользователю, но запрещать аналогичные действия для всех остальных. Это делается очень просто.
Пишем ACL (название группы пользователей) src (интервал IP-адресов, попадающих под регулирование). Строчкой ниже — ACL (название конкретного компьютера) src (IP-адрес соответствующего ПК). После этого работаем уже с http_access. Устанавливаем разрешение на вход в сеть для группы пользователей и отдельного ПК посредством команд http_access allow. Строчкой ниже фиксируем, что доступ остальным компьютерам в сеть закрыт командой deny all.
Настройка прокси Squid также предполагает задействование другого полезного элемента, предусмотренного системой контроля доступа, — dst. Он позволяет зафиксировать IP-адрес сервера, к которому желает подключиться пользователь прокси.
С помощью рассматриваемого элемента мы можем, например, ограничить доступ к той или иной подсети. Для этого можно задействовать команду ACL (обозначение сети) dst (IP-адрес подсети), строчкой ниже — http_access deny (имя конкретного компьютера в сети).
Еще один полезный элемент — dstdomain. Он позволит нам зафиксировать домен, к которому желает подключиться пользователь. Задействуя рассматриваемый элемент, мы можем ограничить доступ того или иного пользователя, например, к внешним ресурсам Интернета. Для этого можно задействовать команду: ACL (группа сайтов) dstdomain (адреса сайтов), строчкой ниже — http_access deny (имя компьютера в сети).
Есть и иные примечательные элементы в структуре системы контроля доступа. В числе таковых — SitesRegex. С помощью данного выражения можно ограничить доступ пользователей на интернет-домены, содержащие определенное слово, например mail (если стоит задача запретить сотрудникам компании обращаться на сторонние почтовые серверы). Для этого можно задействовать команду ACL SitesRegexMail dstdom_regex mail, затем ACL SitesRegexComNet dstdom_regex \.com$ (это значит, что доступ будет закрыт для соответствующего типа доменов). Строчкой ниже — http_accesss deny с указанием компьютеров, с которых выход на внешние почтовые сервера нежелателен.
В некоторых выражениях может использоваться ключ -i. С помощью него, а также такого элемента, как, например, url_regex, предназначенного для создания шаблона для веб-адресов, мы можем запретить доступ к файлам с заданным расширением.
Например, с помощью команды ACL NoSwfFromMail url_regex -i mail.*\.swf$ мы регулируем возможность обращения к почтовым сайтам, в структуре которых присутствуют Flash-ролики. Если нет необходимости включать в алгоритмы доступа доменное имя сайта, то можно задействовать выражение urlpath_regex. Например, в виде команды ACL media urlpath_regex -i \.wma$ \.mp3$.
Запрет доступа к программам
Настройка Squid позволяет запрещать доступ пользователей к тем или иным программам при задействовании ресурсов прокси-сервера. Для этой цели может использоваться команда ACL (название программы) port (интервал портов), строчкой ниже — http_access deny all (имя программы).
Задействование стандартов и протоколов
Настройка Squid также позволяет системному администратору задать предпочтительный протокол использования интернет-канала. Например, если есть необходимость в том, чтобы человек с конкретного ПК выходил в сеть через протокол FTP, то можно задействовать следующую команду: ACL ftpproto proto ftp, строчкой ниже — http_access deny (имя компьютера) ftpproto.
С помощью элемента method мы можем указать то, каким способом должен осуществляться HTTP-запрос. Всего их 2 — GET и POST, но в ряде случаев предпочтителен именно первый, а не второй, и наоборот. Например, возможна ситуация, при которой конкретный сотрудник не должен просматривать почту через mail.ru, однако его работодатель не будет возражать, если человек захочет читать на указанном сайте новости. Для этого системный администратор может задействовать следующую команду: ACL sitemailru dstdomain .mail.ru, строчкой ниже — ACL methodpost method POST, далее — http_access deny (имя компьютера) methodpost sitemailru.
Таковы нюансы, которые включает в себя настройка Squid. Ubuntu используется, Windows или другая совместимая с прокси-сервером ОС, — рассмотренные нами особенности задания нужных параметров в целом характерны для любой программной среды функционирования Squid. Работа с данным ПО - невероятно увлекательный процесс и одновременно несложный в силу логичности и прозрачности основных алгоритмов настройки программы.
Отметим некоторые ключевые моменты, характерные для настройки Squid.
На что обратить внимание при настройке?
Если есть сложности в обнаружении файла squid.conf, который является основным инструментом конфигурирования сервера, то можно попробовать проверить каталог etc/squid.
Лучше всего, если при работе с файлом, о котором идет речь, вы будете использовать самый простой текстовый редактор: не нужно, чтобы в строки, отвечающие за настройку прокси-сервера, попали какие-либо элементы форматирования.
В ряде случаев может возникнуть необходимость в том, чтобы при работе указан был прокси-сервер провайдера. Для этого существует команда cache_peer. Вписывать ее нужно так: cache_peer (адрес прокси-сервера провайдера).
В ряде случаев полезно фиксировать величину оперативной памяти, которую будет задействовать Squid. Это можно сделать посредством команды cache_mem. Также полезно указать каталог, в котором будут храниться кэшированные данные, делается это с помощью выражения cache_dir. В первом случае полностью команда будет выглядеть как cache_mem (объем ОЗУ в байтах), во втором – как cache_dir (адрес каталога, количество мегабайтов дискового пространства). Желательно размещать кэш на самых высокопроизводительных дисках, если есть выбор.
Может понадобиться указание компьютеров, которые имеют доступ к прокси-серверу. Это можно сделать с помощью команд ACL allowed hosts src (интервал IP-адресов компьютеров), а также ACL localhost src (локальный адрес).
Если в подключениях задействуются порты типа SSL, то их также можно зафиксировать с помощью команды ACL ssl_ports port (указание порта). Одновременно можно запретить использование метода CONNECT для остальных портов, кроме тех, что указаны в защищенном соединении SSL. Это сделать поможет выражение http_access deny CONNECT! SSL_Ports.
Squid и pfSense
В ряде случаев вместе с рассматриваемым прокси-сервером используется интерфейс pfSense, применяемый в качестве эффективного межсетевого экрана. Каким образом организовать их совместную работу? Алгоритм решения данной задачи не слишком сложный.
Для начала нам нужно поработать в интерфейсе pfSense. Squid, настройка которого уже осуществлена нами, необходимо будет инсталлировать посредством SSH-команд. Это один из самых удобных и безопасных способов работы с прокси-серверами. Для этого необходимо активизировать в интерфейсе пункт Enable Secure Shell. Для того чтобы найти его, необходимо выбрать пункт меню System, затем — Advanced, после — Admin Access.
После этого нужно скачать PuTTY - удобное приложение для работы с SSH. Далее, используя консоль, необходимо инсталлировать Squid. Это легко сделать с помощью команды -pkg install squid. После этого необходимо также установить прокси через веб-интерфейс pfSense. Squid (настройка его параметров на данном этапе не производится) можно инсталлировать, выбрав пункт меню System, затем Packages, после — Available Packages. В соответствующем окне должен быть доступен пакет Squid Stable. Выбираем его. Необходимо выставить следующие настройки: Proxy Interface: LAN. Напротив строки Transparent Proxy можно поставить галочку. Выбираем адрес для лога и отмечаем русский язык как предпочтительный. Нажимаем Save.
Инструмент оптимизации ресурсов
Настройка Squid позволяет системным администраторам эффективно распределять ресурсы серверов. То есть в данном случае речь не идет о запретах доступа на какой-либо сайт, однако интенсивность задействования канала тем или иным пользователем или их группой может требовать контроля. Рассматриваемая программа позволяет решить данную задачу несколькими способами. Во-первых, это задействование механизмов кэширования: за счет этого повторная загрузка файлов из Интернета не потребуется, так как снизится нагрузка на трафик. Во-вторых, это ограничение доступа к сети по времени. В-третьих, это установление предельных значений для скорости обмена данными в сети в отношении действий тех или иных пользователей или конкретных типов загружаемых файлов. Рассмотрим указанные механизмы подробнее.
Оптимизация сетевых ресурсов посредством кэширования
В структуре сетевого трафика присутствует множество типов файлов, задействуемых в неизменном виде. То есть, однажды закачав их на компьютер, пользователь может не повторять соответствующую операцию. Программа Squid позволяет осуществлять гибкую настройку механизма распознавания подобных файлов сервером.
Достаточно полезная опция исследуемого нами прокси-сервера — проверка возраста файла, находящегося в кэше. Объекты, слишком долго располагающиеся в соответствующей области памяти, следует обновлять. Задействование этой опции возможно при использовании команды refresh_pattern. Так, полностью выражение может выглядеть как refresh_pattern (минимальная длительность времени — в минутах, максимальная доля «свежих» файлов — в %, максимальный период). Соответственно, если файл находится в кэше дольше установленных критериев, то, возможно, потребуется загрузка его новой версии.
Оптимизация ресурсов посредством ограничений доступа по времени
Другой вариант, который можно задействовать благодаря возможностям Squid-Proxy, — это ограничение доступа пользователей к сетевым ресурсам по времени. Устанавливается оно с помощью очень простой команды: ACL (имя компьютера) time (день, час, минута). Доступ можно ограничивать для любого дня недели, подставив вместо «день» первую букву слова, соответствующую его названию в английском алфавите. Например, если это понедельник — то M, если вторник, то T. Если в команде нет слова «день», то соответствующий запрет будет установлен на всю неделю. Интересно, что можно также регулировать расписание вхождения в сеть, осуществляемого пользователями с помощью тех или иных программ.
Оптимизация ресурсов посредством ограничения скорости
Достаточно распространенный вариант — оптимизация ресурсов с помощью регулирования допустимой скорости обмена данными в рамках компьютерной сети. Изучаемый нами прокси-сервер — удобнейший инструмент для решения данной задачи. Регулирование скорости обмена данными в сети осуществляется с помощью таких параметров, как delay_class, delay_parameters, delay_access, а также посредством элемента delay_pools. Все четыре компонента имеют огромное значение для решения задач, которые стоят перед системными администраторами в аспекте оптимизации ресурсов локальной сети.
fb.ru
заметки на полях: Оптимизация кэша squid
Оригинал http://www.ylsoftware.com/news/403 и еще вот http://www.papercut.com/kb/Main/ConfiguringSquidProxyToAuthenticateWithActiveDirectoryСтандартно шаблоны выглядят так:
refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern . 0 20% 4320Для начала закомментируем имеющиеся правила.
Далее настроим более жёсткое кэширование для определённых типов файлов:refresh_pattern \.bz2$ 43200 100% 43200 override-lastmod override-expire ignore-reload ignore-no-cache
refresh_pattern \.exe$ 43200 100% 43200 override-lastmod override-expire ignore-reload ignore-no-cache
refresh_pattern \.gif$ 43200 100% 43200 override-lastmod override-expire ignore-reload ignore-no-cache
refresh_pattern \.gz$ 43200 100% 43200 override-lastmod override-expire ignore-reload ignore-no-cache
refresh_pattern \.ico$ 43200 100% 43200 override-lastmod override-expire ignore-reload ignore-no-cache
refresh_pattern \.jpg$ 43200 100% 43200 override-lastmod override-expire ignore-reload ignore-no-cache
refresh_pattern \.mid$ 43200 100% 43200 override-lastmod override-expire ignore-reload ignore-no-cache
refresh_pattern \.mp3$ 43200 100% 43200 override-lastmod override-expire ignore-reload ignore-no-cache
refresh_pattern \.pdf$ 43200 100% 43200 override-lastmod override-expire ignore-reload ignore-no-cache
refresh_pattern \.swf$ 43200 100% 43200 override-lastmod override-expire ignore-reload ignore-no-cache
refresh_pattern \.tar$ 43200 100% 43200 override-lastmod override-expire ignore-reload ignore-no-cache
refresh_pattern \.tgz$ 43200 100% 43200 override-lastmod override-expire ignore-reload ignore-no-cache
refresh_pattern \.zip$ 43200 100% 43200 override-lastmod override-expire ignore-reload ignore-no-cache
Далее на очереди реклама. Конечно её можно вырезать с помощью bfilter и/или adzapper, но ни один фильтр не может убрать всей рекламы, потому на всякий случай добавим правила для кэширования рекламы:refresh_pattern http://ad\. 43200 100% 43200 override-lastmod override-expire ignore-reload ignore-no-cache
refresh_pattern http://ads\. 43200 100% 43200 override-lastmod override-expire ignore-reload ignore-no-cache
refresh_pattern http://adv\. 43200 100% 43200 override-lastmod override-expire ignore-reload ignore-no-cache
refresh_pattern http://click\. 43200 100% 43200 override-lastmod override-expire ignore-reload ignore-no-cache
refresh_pattern http://count\. 43200 100% 43200 override-lastmod override-expire ignore-reload ignore-no-cache
refresh_pattern http://counter\. 43200 100% 43200 override-lastmod override-expire ignore-reload ignore-no-cache
refresh_pattern http://engine\. 43200 100% 43200 override-lastmod override-expire ignore-reload ignore-no-cache
refresh_pattern http://img\.readme\.ru 43200 100% 43200 override-lastmod override-expire ignore-reload ignore-no-cache
refresh_pattern http://userpic\.livejournal\.com 43200 100% 43200 override-lastmod override-expire ignore-reload ignore-no-cache
refresh_pattern \.ru/bf-analyze 43200 100% 43200 override-lastmod override-expire ignore-reload ignore-no-cache
refresh_pattern \.ru/bf-si 43200 100% 43200 override-lastmod override-expire ignore-reload ignore-no-cache
refresh_pattern /advs/ 43200 100% 43200 override-lastmod override-expire ignore-reload ignore-no-cache
refresh_pattern /banners/ 43200 100% 43200 override-lastmod override-expire ignore-reload ignore-no-cache
refresh_pattern /cgi-bin/iframe/ 43200 100% 43200 override-lastmod override-expire ignore-reload ignore-no-cache
Наконец можно написать правила для адресов, не подпадающих под остальные шаблоны. Используем дефолтные правила с небольшой модификацией:refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern . 0 80% 14400
При наличии достаточного количества места на сервере так же имеет смысл увеличить размер кэша и максимальный размер объекта, попадающего в кэш. За размер кэша отвечает параметр cache_dir:# cache_dir ufs /var/spool/squid 100 16 256
cache_dir ufs /var/spool/squid 10240 16 256 # 10240 Мб - 10 ГбЗа максимальный размер объекта в кэше отвечает параметр maximum_object_size:
# maximum_object_size 4096 KB
maximum_object_size 20480 KBНастройка сообщений squid на русском языке:error_directory /usr/share/squid/errors/ru
Закончив изменения сохраняем файл и даём команду squid перечитать настройки:
silver979.blogspot.com
FAQed: Настройка Squid для начинающих
Вступление
Многие администраторы сталкиваются с проблемой разумного использования времени и канала для выхода в сеть Интернет, задумываются о возможности экономии времени и денег, об ограничении скорости для отдельных видов файлов или личностей, в конце концов об экономии всего, что связано с теми или иными аспектами выхода в глобальную сеть.
Я, с помощью этой статьи, попытаюсь наглядно и доходчиво объяснить о настройках самого распространенного прокси сервера - Squid.
Начальные настройки Squid для доступа пользователей
Мы не будем вдаваться в процесс установки прокси сервера Squid, а перейдем сразу к его настройке.
Самое элементарное, что нам после установки следует сделать, так это разрешить доступ пользователям нашей локальной сети. Для этого служат параметры http_port, http_access. Кроме этого, мы заведем acl (список контроля доступа) для нашей локальной сети.
И так, http_port нам нужен постольку, поскольку наш прокси сервер Squid должен обслуживать только компьютеры нашей локальной сети и быть невидимым для внешнего мира, дабы исключить возможность "плохим людям" внешней сети воспользоваться нашим каналом или трафиком, а в случае, если будут обнаружены "дыры" в коде прокси сервера Squid, воспользоваться ими.
Параметр http_access используется для разрешения или запрещения доступа к определенным ресурсам, определенным адресам либо с определенных адресов, к определенным сайтам, по определенным протоколам, портам и всему тому, что непосредственно указано с помощью Acl (списков контроля доступа).
Таблица N 1. Некоторые подсети.
Диапазон адресов |
Полная форма |
Краткая форма |
192.168.0.1-192.168.0.254 |
192.168.0.0/255.255.255.0 |
192.168.0.0/24 |
192.168.20.1-192.168.20.254 |
192.168.20.0/255.255.255.0 |
192.168.20.0/24 |
192.168.0.1-192.168.254.254 |
192.168.20.0/255.255.0.0 |
192.168.20.0/16 |
10.0.0.1-10.254.254.254 |
10.0.0.0/255.0.0.0 |
10.0.0.0/8 |
Предположим, что у Вас сеть с адресами от 192.168.0.1 до 192.168.0.254, тогда добавим новый Acl (см. таблицу N1):
acl LocalNet src 192.168.0.0/24
Предположим, что у Вас прокси сервер Squid расположен по адресу 192.168.0.200 на порту 3128, тогда пишем в файле конфигурации:
http_port 192.168.0.200:3128Следующим нашим действием будет запрет использования нашего прокси сервера, кроме как пользователями нашей локальной сети:
http_access allow LocalNet http_access deny all
В данном случае слово allow является разрешением, а слово deny запрещением, то есть мы разрешаем доступ к прокси серверу Squid с адресов нашей локальной сети и запрещаем доступ всем остальным.
Будьте внимательны, указывая http_access, так как Squid использует их в порядке указания Вами.
Изучаем ACL (Списки контроля доступа)Система управления доступом в прокси сервере Squid является очень гибкой и обширной. Она состоит из элементов со значениями и списков доступа c указанием allow (разрешение) или deny (запрещение).
Формат Acl следующий:
acl имя элемент список
Формат списка доступа:
http_access указание имя_acl
Мы рассмотрим некоторые элементы, которые позволяет использовать прокси сервер Squid, конечно же с примерами:
* acl имя src список
С помощью этого элемента (src) мы указываем IP-адрес источника, то есть клиента от которого пришел запрос к нашему прокси серверу.
В следующем примере мы разрешим Васе Пупкину (Pupkin) и отделу программирования (Progs) доступ к нашему прокси серверу, а всем остальным запретим:
acl Progs src 192.168.0.1-192.168.0.9 acl Pupkin src 192.168.0.10 http_access allow Progs http_access allow Pupkin http_access deny all
* acl имя dst список
Данный элемент (dst) указывает IP-адрес назначения, то есть IP-адрес того сервера, доступ к которому желает получить клиент прокси сервера.
В следующем примере мы запретим Васе доступ к подсети 194.67.0.0/16 (к примеру, в ней находится тот же aport.ru):
acl Net194 dst 194.67.0.0/16 http_access deny Pupkin Net194
* acl имя dstdomain список
С помощью этого элемента (dstdomain) мы указываем домен, доступ к которому желает получить клиент прокси сервера.
В следующем примере мы запретим Васе доступ к варезным сайтам nnm.ru и kpnemo.ru:
acl SitesWarez dstdomain .nnm.ru .kpnemo.ru http_access deny Pupkin SitesWarez
В случае, если будет необходимо указать домен источника, то используйте srcdomain.
* acl имя [-i] srcdom_regex список* acl имя [-i] dstdom_regex список
Данные элементы отличаются от srcdomain и dstdomain лишь тем, что в них используются регулярные выражения, которые в данной статье мы не рассматриваем, но пример всё-таки приведём:
Acl SitesRegexSex dstdom_regex sex Acl SitesRegexComNet dstdom_regex .com$ .net$ http_access deny Pupkin SitesRegexSex http_access deny Pupkin SitesRegexComNet
В данном примере мы запретили доступ Пупкину Василию на все домены, содержащие слово sex и на все домены в зонах .com и .net.
Ключ -i призван игнорировать регистр символов в регулярных выражениях.
* acl имя [-i] url_regex списокС помощью этого элемента (url_regex) мы указываем шаблон регулярного выражения для URL.
Пример указания файлов с расширением avi, начинающихся на слово sex:
acl NoAviFromSex url_regex -i sex.*.avi$
В случае, если Вы желаете указать шаблон только для пути URL, то есть исключая протокол и имя хоста (домена), то используйте urlpath_regex.
Пример для указания музыкальных файлов:
acl media urlpath_regex -i .mp3$ .asf$ .wma$
* acl имя_acl port список
Указание номера порта назначения, то есть порта, к которому желает подключится клиент нашего прокси сервера.
Как пример, запретим всем использование программы Mirc через наш прокси сервер:
Acl Mirc port 6667-6669 7770-7776 http_access deny all Mirc
* acl имя_acl proto список
Указание протокола передачи.
Как пример, запретим вышеупомянутому Васе использование протокола FTP через наш прокси сервер:
acl ftpproto proto ftp http_access deny Pupkin ftpproto
* acl имя_acl method список
Указание метода http запроса клиентом (GET, POST).
Возьмем ситуацию, когда следует запретить Васе Пупкину просматривать его почту на сайте mail.ru, но при этом разрешить прогуливаться по сайту без запретов, то есть запретить Васе возможность войти в свой почтовый ящик через форму входа на сайте:
acl SiteMailRu dstdomain .mail.ru acl methodpost method POST http_access deny Pupkin methodpost SiteMailRu
Ограничения пользователейДостаточно часто в нашей стране возникает ситуация, что канала доступа в глобальную сеть Интернет на всех пользователей не хватает и возникает желание дать каждому по максимуму, но при этом не дать каналу "загнуться" из-за любителей позагружать файлы.
Средства прокси-сервера Squid позволяют этого добится несколькими путями:
-
первый путь это оптимизация кеширования объектов;
-
второй - это ограничение по времени определенных пользователей, что не совсем корректно;
-
третий путь заключается в ограничении скорости для определенных типов файлов, пользователей и всего того, что определено нами через Acl.
Ограничения по времениОграничить пользователей по времени можно следующим образом:
acl имя time дни чч:мм-ЧЧ:ММ
Где день: M - Понедельник, T - Вторник, W - Среда, H - Четверг, F - Пятница, A - Суббота, S - Воскресенье.
При этом чч:мм должно быть меньше чем ЧЧ:ММ, то есть можно указать с 00:00-23:59, но нельзя указать 20:00-09:00.
Давайте запретим всё тому же Васе иметь доступ в сеть Интернет с 10 до 15 часов каждый день:
acl TimePupkin time 10:00-15:00 http_access deny Pupkin TimePupkinЕсли хочется разрешить Васе пользоваться программой Mirc с 13 до 14 часов, то пишем:
acl TimePupkin time 13:00-14:00 http_access allow Pupkin TimePupkin Mirc http_access deny Pupkin Mirc
А что делать, если необходимо запретить или разрешить в определенные дни недели? Squid также позволяет это сделать, к примеру с 13 до 14 в понедельник и в воскресенье:
acl TimePupkin time MS 13:00-14:00
Как видите, ничего сложного в этом нет.
Ограничения по скоростиРегулировка скорости в прокси сервере Squid осуществляется с помощью пулов. Пул - это своего рода бочонок с пивом, в который пиво постоянно заливают до краёв, а клиенты наливают в свои стаканы или иные ёмкости для дальнейшего внутреннего потребления по мере надобности через свои персональные краны.
Пулы регулируются с помощью трех параметров: delay_class, delay_parameters, delay_access. Количество пулов указывается с помощью параметра delay_pools.
Пулы могут быть трёх классов:
-
Весь поток пива ограничен одним краном (на всю сеть).
-
Весь поток пива ограничен одним краном, но при этом кран делится на подкранчики (на каждый IP).
-
Весь поток пива ограничен одним краном, но кран делится на подкранчики (на подсети), которые также делятся на мини кранчики (на каждый IP).
Форматы:
delay_pools количество_объявленных_пулов delay_access номер_пула действие имя_aclДействие может быть allow (разрешить) и deny (запретить). При этом, данный пул действует на тех, кому он разрешен и не действует на тех, кому он запрещен. В случае, если указано allow all, а затем deny Pupkin, то на Пупкина данный класс всё-равно подействует, т.к. IP-адрес Пупкина объявленный в acl Pupkin, входит в список адресов acl all. Имейте это ввиду.
delay_class номер_пула класс_пула delay_parameters номер_пула параметры
Параметры отличаются в зависимости от класса пула:
для первого класса:
delay_parameters 1 байт_на_всю_сеть
для второго класса:
delay_parameters 1 на_всю_сеть на_клиента
для третьего класса:
delay_parameters 1 на_всю_сеть на_подсеть на_клиента
Для примера, у нас канал на 128 Кбит (в среднем 15 Кбайт в секунду) и мы желаем Васе (Pupkin) дать всего 4 Кбайта/сек (на все про всё один маленький бокальчик), отделу программирования (Prog) дать всего 10 Кбайт/сек и на каждого всего по 5 Кб/сек (всего два бокальчика), всех остальных ограничить в 2 Кбайта/сек на каждого и 10 Кб/сек на всех, а файлы mp3 (media) ограничить в 3 Кбайта в секунду на всех (на всю бочку пива такой маленький кран). Тогда пишем:
acl Prog src 192.168.0.1-192.168.0.9 acl Pupkin src 192.168.0.10 acl LocalNet src 192.168.0.0/255.255.255.0 acl media urlpath_regex -i .mp3$ .asf$ .wma$
delay_pools 4 # сначала ограничим mp3 delay_class 1 1 delay_parameters 1 3000/3000 delay_access 1 allow media delay_access 1 deny all # ограничим бедного Васю delay_class 2 1 delay_parameters 2 4000/4000 delay_access 2 allow Pupkin delay_access 2 deny all # ограничим отдел программирования delay_class 3 2 delay_parameters 3 10000/10000 5000/5000 delay_access 3 allow Prog delay_access 3 deny all # а теперь ограничим остальных (второй класс пула) delay_class 4 2 delay_parameters 4 10000/10000 2000/2000 delay_access 4 deny media delay_access 4 deny Pupkin delay_access 4 deny Prog delay_access 4 allow LocalNet delay_access 4 deny all
Часто возникает вопрос, а как лучше всего использовать столь малый канал, чтобы он автоматически делился между всеми теми, кто в данный момент что-либо загружает? На этот вопрос имеется однозначный ответ - средствами прокси сервера Squid этого сделать не возможно, но всё-таки кое-что предпринять можно:
delay_class 1 2 delay_parameters 1 -1/-1 5000/15000 delay_access 1 allow LocalNet delay_access 1 deny all
Таким образом мы выделяем на всю нашу сеть и на подсети максимальный канал (-1 означает неограниченность), а каждому пользователю даем скорость максимум в 5 Кб/сек после того, как он скачает на максимальной скорости первые 15 Кбайт документа.
Таким образом клиент не съест весь канал, но достаточно быстро получит первые 15 Кбайт.
Оптимизируем кэширование объектов в Squid
Существует множество типов файлов, которые обновляются не достаточно часто, чтобы позволить прокси серверу реагировать на заголовки от вебсерверов о том, что данный объект не подлежит кешированию либо он был на удивление только что изменён. Это довольно частая ситуация.
Для разрешения таких ситуаций призван параметр refresh_pattern в файле настроек прокси-сервера Squid, но полностью с формулами и т.п. мы его рассматривать не будем.
Формат:
refresh_pattern [-i] строка МИНВ процент МАКСВ параметры
Данный параметр используется для того, чтобы определить возраст объекта (считайте файла) в кеше, следует ли его обновлять или нет.
МИНВ (минимальное время) - время в минутах, когда объект, имеющийся в кеше считается свежим.
МАКСВ (максимальное время) - максимальное время в минутах, когда объект считается свежим.
Параметры - это один или несколько следующих параметров:
-
override-expire - игнорировать информацию об истечении свежести объекта и использовать МИНВ.
-
override-lastmod - игнорировать информацию о дате изменения файла использовать МИНВ.
-
reload-into-ims - вместо запроса клиентского запроса "не кешировать документы" (no-cache) посылать запрос "Если изменен с" (If-Modified-Since)
-
ignore-reload - игнорировать запросы клиентов "не кешировать документы" (no-cache) или "перезагрузить документ" (reload).
И так, мы подошли к самом главному. Ну, так какие же типы файлов реже всех обновляются? Как правило, это разнообразные музыкальные файлы и картинки.
Установим свежесть объектов, для этого для картинок и музыкальных файлов укажем, скажем так для примера, целых 30 дней (43200 минут):
refresh_pattern -i .gif$ 43200 100% 43200 override-lastmod override-expire refresh_pattern -i .png$ 43200 100% 43200 override-lastmod override-expire refresh_pattern -i .jpg$ 43200 100% 43200 override-lastmod override-expire refresh_pattern -i .jpeg$ 43200 100% 43200 override-lastmod override-expire refresh_pattern -i .pdf$ 43200 100% 43200 override-lastmod override-expire refresh_pattern -i .zip$ 43200 100% 43200 override-lastmod override-expire refresh_pattern -i .tar$ 43200 100% 43200 override-lastmod override-expire refresh_pattern -i .gz$ 43200 100% 43200 override-lastmod override-expire refresh_pattern -i .tgz$ 43200 100% 43200 override-lastmod override-expire refresh_pattern -i .exe$ 43200 100% 43200 override-lastmod override-expire refresh_pattern -i .prz$ 43200 100% 43200 override-lastmod override-expire refresh_pattern -i .ppt$ 43200 100% 43200 override-lastmod override-expire refresh_pattern -i .inf$ 43200 100% 43200 override-lastmod override-expire refresh_pattern -i .swf$ 43200 100% 43200 override-lastmod override-expire refresh_pattern -i .mid$ 43200 100% 43200 override-lastmod override-expire refresh_pattern -i .wav$ 43200 100% 43200 override-lastmod override-expire refresh_pattern -i .mp3$ 43200 100% 43200 override-lastmod override-expire
Показанные Выше настройки лишь пример, для того, чтобы была понятна суть.
Теперь можете проверить эффективность своего прокси сервера, она уж точно возрастет.
ЗаключениеПрокси сервер Squid не является одним лишь распространенным прокси сервером, существуют и другие. Но как показывает статистика, большинство используют именно этот прокси сервер, но при этом всё равно у многих начинающих возникают проблемы с настройкой.
Страница сгенерирована за 0,0739 s
faqed.ru
|
ubuntu.5.x6.nabble.com
Squid настраиваем контроль доступа и оптимизируем кэш — Linux портал
Статья из журнала Взломщик
В конце ссылка на видео
Если нужно предоставить кооперативный доступ сервисам нескольким пользователям с возможностью кэширования трафика, то поначалу вспоминают о кэширующем прокси-сервере Squid. Это очень гибкое решение, которое употребляют как в малых кабинетах с несколькими пользователями, так и в корпоративных сетях со сложной топологией. Предлагаю разобрать, как настроить в Squid самые популярные функции – контроль доступа и работу с кэшем.
Установка Squid
Поначалу пару слов о самом Squid для новичков. Squid (www.squid-cache.org) — приложение позволяющее организовать прокси/кэширующий сервер для HTTP, FTP и некоторых других фаворитных протоколов.
Поддерживается работа с защищенными TLS/SSL соединениями, кэширование DNS, может быть внедрение Squid в качестве прозрачного или реверсного прокси. Распространяется по лицензии GNU GPL. Работает во всех фаворитных вариантах Unix систем — GNU/Linux, *BSD, Mac OS X, SunOS/Solaris, и некоторых других.
Есть версия для Windows.Для примера буду использовать Ubuntu, но все произнесенное касается и всех других дистрибутивов или ОС, не считая особенностей установки в определенном решении. Хотелось бы также отметить, что сейчас параллельно развивается две ветки: 2-x и 3-x.
3-я ветка перешла в разряд STABLE в конце прошедшего года и рекомендуема к использованию. По чертам описываемых далее различий у их практически нет, поэтому все описанное касается обоих версий, отличия будут оговорены раздельно.
В репозитарии Ubuntu 6.06 LTS Dapper Drake находится пакет с версией Squid 2.5, в последнем 7.10 – 2.6.14. Также репозитариях всех Ubuntu начиная от Festy Fawn (7.04) есть и пакеты с третьей версией Squid. Об различиях поведано здесь. Установка Squid в Ubuntu вообщем то проста:
$ sudo apt-get install squid squid-commonИли для Squid 3:
$ sudo apt-get install squid3 squid3-common
После установки Squid будет запущен с установками по умолчанию.
Временами в процессе запуска появляется ошибка:
FATAL: Could not determine fully qualified hostname. Please set ‘visible_hostname’
По умолчанию разрешение имени узла, на котором работает Squid, происходит при помощи gethostname(), зависимо от установок DNS, он временами не может однозначно отыскать имя, которое будет фигурировать в журналах и выводах об ошибках “ Generated … by server.com (squid/3.0.STABLE2) ”. И просит тебя ему помочь.Все функции Squid производятся в единственном файле /etc/squid/squid.conf, черт внутри очень много, но кидаться поменять их все и слету не стоит. Просмотреть список черт, убрав пустые и закомментированные строки, можно при помощи команды:
$ sudo grep -v «^#» /etc/squid/squid.conf | sed -e ‘/^$/d’
Формат squid.conf стандартен для Unix, неважно какая запись состоит из строк вида:
параметр значение
Может быть внедрение переменных. Cтроки начинающиеся со знака решетки (#) являются комментариями. Для удобства функции, все свойства разбиты по секциям.
Такое разбиение чисто условно и можно прописывать свои свойства в хоть какое место файла, лишь бы было понятно. Может быть подключение внешнего файла с опциями при помощи include.
Единственное о чем следует держать в голове – установки употребляются в порядке очередности. После установки в /usr/share/doc/squid найдешь документацию и примеры конфигурационных файлов.Для начала запустим Squid, устранив ошибку обозначенную выше. Заносим в этот файл строку с именованием сервера Squid, оно не обязательно должно совпадать с DNS:
visible_hostname mysquid
И запускаем:
$ sudo /etc/init.d/squid start
В настройках по умолчанию сквид принимает входящие сообщения на 3128 порту. При необходимости другой порт можно указать в параметре http_port. Проверяем введя команду “netstat –ant | grep 3128”слушается ли этот порт.
Если все нормально, настраиваем веб-браузер для работы через прокси-сервер и выходим в Интернет. Но сейчас это может быть только с localhost. При попытке подключиться другого компьютера в сети, получаем:
$ sudo cat /var/log/squid/access.log | grep 192.168.0.10
1206182759.796 Один 192.168.0.10 TCP_DENIED/403 Одна тыща триста девяносто три GET http://www.tux.in.ua/
Чтобы в Интернет могли попасть другие пользователи сети, нужно установить соответствующие разрешения, используя контроль доступа.
Настраиваем доступ
Если на компьютере есть некое количество интерфейсов, изменив параметр http_port ограничим доступ к Squid только внутренней сетью:
http_port 192.168.0.1:3128
Хотя Ip-адрес в http_port не является неотклонимым, можно просто указать порт.Чтобы разрешить всем пользователям сетей 192.168.0.0, 172.16.0.0 и компьютера 192.168.1.1 подключаться к Squid, добавляем описание нового списка доступа в секцию “ACCESS CONTROL”:
acl localnet src 192.168.0.0/24 172.16.0.0/12acl localnet src 192.168.1.1
2-ая строка – это название нового списка доступа. Переменные чувствительны к регистру, но использовав параметр “acl –i” можно поменять это поведение. Сейчас в этом необходимости нет, чуть дальше покажу как.
Если нужно настроить доступ не для всей сети, а отдельных ее узлов, проще записать их адреса в файл (по одному в строке), который и указать в качестве последнего параметра. 3-я строка – тип списка доступа. В нашем случае использован src (от source).
При помощи других черт можно указать внешний адрес (dst), МАС-адрес (arp), доменное имя (srcdomain, dstdomain), порт (port), протокол (proto), время (time) и многие другие. Фактически работа по организации доступа сводится с описания объекта в acl, а позже разрешении или запрете работы объекта при помощи “http_access” с такими параметрами. Например, чтобы указать рабочее время, используем такую конструкцию:
acl work_hours time M T W T F 9:00-18:00
В описании употребляются 1-ые буквы английского языка, соответствующие дням недели. В секции “ACCESS CONTROL” уже описаны некоторые ACL, а конкретно описываются номера некоторых портов (привожу не все) и ACL соответствующий всем адресам:
acl SSL_ports port Четыреста 40 три 563 873acl Safe_ports port Восемьдесят 21 Четыреста 40 три 563 1025-65535
acl all src 0.0.0.0/0.0.0.0
Следует внимательно просмотреть весь список, и закомментировать строки с портами не подходящих или неиспользуемых сервисов.Когда списки составлены, при помощи параметра http_access разрешаем или запрещаем доступ обозначенному ACL. Общий формат вызова такой:
http_access allow|deny [!]название_ACL
Восклицательный знак инвертирует значение списка, другими словами звучит как “все не считая”. По умолчанию употребляется правило:
http_access deny all
Его мы обязательно помещаем в конец списка правил. В этом случае все соединения которые разумеется тобой не разрешены, будут блокированы. Майнтайнеры собирающие пакеты в дистрибутивах, обычно, добавляют и несколько собственных правил.Чтобы разрешить подключение к Squid с обозначенных адресов и работу только с подходящими портами пишем:
http_access allow localnethttp_access deny !Safe_portshttp_access deny !SSL_ports
Сохраняем результат и перезапускаем Squid:
$ sudo /etc/init.d/squid restart
И проверяем. Если все нормально, идем дальше. Чтобы не перестраивать клиентские системы проще использовать iptables:
iptables -t nat -A PREROUTING -i eth2 -p tcp -m tcp —dport Восемьдесят -j DNAT —to-destination 192.168.0.1:3128
iptables -t nat -A PREROUTING -i eth0 -p tcp -m tcp —dport Восемьдесят -j REDIRECT —to-ports 3128
Очередной пример, нам нужно, чтобы компютеры определенными IP могли соединяться только в рабочее время. Без заморочек:
acl workip src 192.168.1.100 192.168.1.200-192.168.1.210http_access deny !work_hours workip
Можно расписать это правило на два, сделав его более читабельным:
http_access allow work_hours workiphttp_access deny workip
1-ая строка разрешит доступ при совпадении 2-ух ACL: рабочее время и Ip-адрес. 2-ая запретит доступ всех записанных в ACL workip при несовпадении с первым правилом, другими словами в другой временной просвет.
Режем баннеры и сайты
Одна из функций присущих сквиду, которая делает его необходимым – возможность запрета доступа к определенным ресурсам Интернет. Это реализовано на той же сладкой парочке: acl и http_access. Зная адрес ресурса, можно просто закрыть доступ к определенному адресу или целой подсети:
Похожие статьи
-
Система контроля доступа к веб-сервису DACS
Статья двугодичной давности написанная в журнале Системный администратор, кое что поменялось, но базы остались прежними. Если для настольных систем делему аутентификации и авторизации можно считать р...
-
Таковой разный Squid
Статья написана в мартовском номере журнала СисадминОдним из самых фаворитных решений для организации совместного доступа в Интернет, кэширования трафика и борьбы с баннерами является прокси-серв...
-
Настраиваем SWAP файл
На правах рекламы: Для вас нужно цифровое пианино приобрести в Москве? Мы подберем для вас сбалансированный вариант. SWAP - swapping (”подкачка”) употребляется тогда когда операционная система считает, что для...
-
Права доступа в Unix
Нашел старую статью по правам доступа, я понимаю на данный момент есть ACL и прочее, поэтому некоторые постулаты нужно принимать с фильтрацией, но все же новым думаю полезно. Файлы в Linux име...
-
Права доступа Unix
Настало время поговорить о швабре на которую наступают новые. Речь на данный момент пойдет о правах доступа.И так вы садитесь за компьютер работа не идет и в порыве вы уничтожаете случаем принципиал...
hpunix.org
Оптимизация кэша squid - Linux - Каталог статей
Развивая тему экономии трафика с помощью прокси-сервера squid нельзя не упомянуть про возможности дополнительной настройки кэша, а так же возможность задания правил кэширования для разных адресов (которые можно задавать шаблонами).
Все описанные здесь изменения делаются в файле squid.conf, который в большинстве дистрибутивов расположен в /etc/squid/
Сначала вспомним про очень полезную опцию: reload_into_ims. По умолчанию она выключена. Если ещё включить, то вместо reload squid будет посылать запрос If-Modified-Since. Это нарушение стандарта HTTP, однако большинство серверов корректно обрабатывают этот запрос, потому включаем:
reload_into_ims onДалее находим параметр refresh_pattern. Он задаёт параметры кэширования. Стандартно шаблоны выглядят так:
refresh_pattern ^ftp: 1440 20% 10080refresh_pattern ^gopher: 1440 0% 1440refresh_pattern . 0 20% 4320Обычно используется эта инструкция так:
refresh_pattern regex min percent max optionsОпции означают следующее:
regex | Регулярное выражение. Описывает адреса, к которым применимо это правило. |
min | Минимальное время, в течении которого объект в кэше считается новым. Рекомендуется использовать 0, чтобы корректно отображались динамические страницы. |
percent | Процент от возраста объекта с явным указание срока актуальности, в течении которого объект считается новым. |
max | Указывает верхний предел времени, в течении которого объекты без явного указания времени актуальности считаются новыми. |
options | Дополнительные опции, перечисляемые через пробел. Самые интересные из них:
|
Правила обрабатываются сверху вниз до первого сработавшего правила. Потому правило для "." должно идти последним.
Пишем правила. Для начала закомментируем имеющиеся правила. Вместо них мы будем писать свои:
#refresh_pattern ^ftp: 1440 20% 10080#refresh_pattern ^gopher: 1440 0% 1440#refresh_pattern . 0 20% 4320Далее настроим более жёсткое кэширование для определённых типов файлов:
refresh_pattern \.bz2$ 43200 100% 43200 override-lastmod override-expire ignore-reload ignore-no-cacherefresh_pattern \.exe$ 43200 100% 43200 override-lastmod override-expire ignore-reload ignore-no-cacherefresh_pattern \.gif$ 43200 100% 43200 override-lastmod override-expire ignore-reload ignore-no-cacherefresh_pattern \.gz$ 43200 100% 43200 override-lastmod override-expire ignore-reload ignore-no-cacherefresh_pattern \.ico$ 43200 100% 43200 override-lastmod override-expire ignore-reload ignore-no-cacherefresh_pattern \.jpg$ 43200 100% 43200 override-lastmod override-expire ignore-reload ignore-no-cacherefresh_pattern \.mid$ 43200 100% 43200 override-lastmod override-expire ignore-reload ignore-no-cacherefresh_pattern \.mp3$ 43200 100% 43200 override-lastmod override-expire ignore-reload ignore-no-cacherefresh_pattern \.pdf$ 43200 100% 43200 override-lastmod override-expire ignore-reload ignore-no-cacherefresh_pattern \.swf$ 43200 100% 43200 override-lastmod override-expire ignore-reload ignore-no-cacherefresh_pattern \.tar$ 43200 100% 43200 override-lastmod override-expire ignore-reload ignore-no-cacherefresh_pattern \.tgz$ 43200 100% 43200 override-lastmod override-expire ignore-reload ignore-no-cacherefresh_pattern \.zip$ 43200 100% 43200 override-lastmod override-expire ignore-reload ignore-no-cache#refresh_pattern . 0 20% 4320
Уже это даёт солидную экономию. Далее на очереди реклама. Конечно её можно вырезать с помощью bfilter и/или adzapper, но ни один фильтр не может убрать всей рекламы, потому на всякий случай добавим правила для кэширования рекламы:
refresh_pattern http://ad\. 43200 100% 43200 override-lastmod override-expire ignore-reload ignore-no-cacherefresh_pattern http://ads\. 43200 100% 43200 override-lastmod override-expire ignore-reload ignore-no-cacherefresh_pattern http://adv\. 43200 100% 43200 override-lastmod override-expire ignore-reload ignore-no-cacherefresh_pattern http://click\. 43200 100% 43200 override-lastmod override-expire ignore-reload ignore-no-cacherefresh_pattern http://count\. 43200 100% 43200 override-lastmod override-expire ignore-reload ignore-no-cacherefresh_pattern http://counter\. 43200 100% 43200 override-lastmod override-expire ignore-reload ignore-no-cacherefresh_pattern http://engine\. 43200 100% 43200 override-lastmod override-expire ignore-reload ignore-no-cacherefresh_pattern http://img\.readme\.ru 43200 100% 43200 override-lastmod override-expire ignore-reload ignore-no-cacherefresh_pattern http://userpic\.livejournal\.com 43200 100% 43200 override-lastmod override-expire ignore-reload ignore-no-cacherefresh_pattern \.ru/bf-analyze 43200 100% 43200 override-lastmod override-expire ignore-reload ignore-no-cacherefresh_pattern \.ru/bf-si 43200 100% 43200 override-lastmod override-expire ignore-reload ignore-no-cacherefresh_pattern /advs/ 43200 100% 43200 override-lastmod override-expire ignore-reload ignore-no-cacherefresh_pattern /banners/ 43200 100% 43200 override-lastmod override-expire ignore-reload ignore-no-cacherefresh_pattern /cgi-bin/iframe/ 43200 100% 43200 override-lastmod override-expire ignore-reload ignore-no-cacheДалее полезно ещё раз изучить логи squid. Возможно вы напишите какие-то свои дополнительные правила.
Наконец можно написать правила для адресов, не подпадающих под остальные шаблоны. Используем дефолтные правила с небольшой модификацией:
refresh_pattern ^ftp: 1440 20% 10080refresh_pattern ^gopher: 1440 0% 1440refresh_pattern . 0 80% 14400При наличии достаточного количества места на сервере так же имеет смысл увеличить размер кэша и максимальный размер объекта, попадающего в кэш.
За размер кэша отвечает параметр cache_dir:
# cache_dir ufs /var/spool/squid 100 16 256cache_dir ufs /var/spool/squid 10240 16 256За максимальный размер объекта в кэше отвечает параметр maximum_object_size:
# maximum_object_size 4096 KBmaximum_object_size 10240 KBЗакончив изменения сохраняем файл и даём команду squid перечитать настройки:
squid -k reconfigureНа этом всё. Если вы используете sarg для анализа логов squid то вы наверняка заметите рост эффективности кэша. (У автора использование кэша увеличилось с 6% до 28%)
Источник: http://ylsoftware.com/?action=news&na=viewfull&news=403
opensource.ucoz.ru