Установка и настройка Squid. Другие материалы в категории Linux

Настройка прокси сервера Squid

Очень часто нам нужен прокси. Например у вас серый IP или вы счастливый пользователь спутникового интернета. Скачать что-то с сайтов подобных Rapidshare нереально. Здесь нас и выручит squid.

Для установки proxy необходим сервер на виртуализации KVM. На других виртуализациях размещение proxy-серверов запрещено.

Более расширенный вариант моей статьи можно найти на сайте Курского LUG , где я так же рассмотрел возможность использования squid домашними пользователями, а также интеграцию системы сжатия траффика Globax или Toonel каскадом в squid.

Установка squid

cd /usr/ports/www/squid && make BATCH=yes install

Настройка squid

Немного об acl и правилах

Сердцем конфигурирования squid являются acl (access control list) и правила.
Для начала надо усвоить принципы работы acl. ACL имеют сделующий формат:

Acl <имя> <тип> <содержание>

Например этот acl описывает две пользовательские машины с айпишниками (тип src) 192.168.0.1 и 192.168.0.2

Acl comps src 192.168.0.1/32 192.168.0.2/32

Теперь рассмотрим правила.
Правила имеют следующий формат:

<тип_правила> <действие>

На этом этапе надо усвоить то, что правила одного типа проверяются до первого выполняющегося правила. Действие этого правила будет выполнено, и проверка дальнейших правил этого типа будет остановлена. Пример:

Acl all src 0/0 acl vasya src 192.168.1.12/32 http_access allow vasya http_access deny all

Правила типа http_access это правила разрешающие или запрещающие доступ по http. Рассмотри действие вышеописанного отрывка. acl all указывает нам на все айпишники. А acl vasya указывает на один ip 192.168.1.12
Проверка будет проходить так:
1) http_access allow vasya Если через прокси сидит пользователь с этого айпишника то разрешим ему доступ. Проверка будет остановлена, четвертая строка даже не будет проверена.
2) если прокси использует пользователь не с этого айпи, то правило на строке 3 не выполнится и мы перейдем к правилу на строке 4. Поскольку под acl all подходит любой айпи, то данное правило выполнится и мы заблокируем доступ. дальнейшие правила проверяться не будут . Таким образом мы запретили пользоваться прокси всем кроме Васи.

Рассмотрим частую ошибку на основе прошлого примера:

Acl all src 0/0 acl vasya src 192.168.1.12/32 http_access deny all http_access allow vasya

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

Создаем конфиг squid

Приступим к написанию конфига. Разберу на примере своего конфига.

Для начала в папке /etc/squid создадим папку acls. В ней я создал 3 файла: banners, nobanners, 1banners
В файле banners хранятся регулярные выражение реклам и баннеров которые будут вырезаны. В nobanners хранятся исключения, то есть те страницы и картинки которые будут грузиться даже если в banners есть правило под которое они попадают. В файле 1banners хранятся регулярные выражения описывающие те баннеры которые будут вырезаться в первую очередь. Содержимое своих файлов фильтрации рекламы приведу в конце статьи.

С root правами создадим файл /etc/squid/squid.conf и начинаем добавлять в него строки:

Укажем порт на котором будет работать прокси: (ВНИМАНИЕ!! Никогда не ставьте стандартные порты вроде 8080 80 или 3128 если не хотите чтобы ваш прокси легко можно было обнаружить)

Http_port 1234

Укажем имя нода на котором стоит squid. Узнать свое имя можно выполнив uname -n

Visible_hostname dimon4eg

Отключим icp

Icp_port 0

Через acl с регулярными выражениями укажем страницы которые не будут кешироваться

Acl donocache urlpath_regex cgi-bin user submit no_cache deny donocache

Создадим папку /var/spool/squid и сделаем chmod 777 /var/spool/squid
Опишем обьем "быстрого" кеша и кеша на жестком диске. Объем быстрого кеша рекомендуется ставить не более 32 метров для экономии оперативной памяти.

Cache_mem 32 MB cache_dir ufs /var/spool/squid 1000 16 256

Аналогично создадим папки /var/log/squid и укажем где хранить логи

Cache_access_log /var/log/squid/access.log cache_log /var/log/squid/cache.log cache_store_log /var/log/squid/store.log

Таблица mime и pid процесса

Mime_table /etc/squid/mime.conf pid_filename /var/run/squid.pid

Настройки фтп через прокси

Ftp_user anonymous@ ftp_list_width 32 ftp_passive on ftp_sanitycheck on

Служебные acl

Acl all src 0/0 acl SMTP port 25

Список айпи с которых разрешен прокси. Обязательно указать 127.0.0.1 и адрес самого сервера в локалке. Далее укажем всех пользователей кто имеет доступ. (ВНИМАНИЕ, обязательно отключите доступ всем кому попало.)

Acl doallow src 192.128.0.2/32 127.0.0.1/32

Зададим порты которые разрешены

Acl Safe_ports port 80 acl Safe_ports port 21 acl Safe_ports port 443 563 5190 5552 acl Safe_ports port 777

Расположение файлов с правилами вырезания рекламы. Ключ -i означает сделать правила не чувствительными к регистру

Acl banners url_regex -i "/etc/squid/acls/banners" acl 1banners url_regex -i "/etc/squid/acls/1banners" acl nobanners url_regex -i "/etc/squid/acls/nobanners"

Теперь опишем правила

Http_access deny 1banners http_access deny banners !nobanners http_access deny !Safe_ports http_access deny SMTP http_access allow doallow http_access deny all

Запретим доступ icp

Icp_access deny all

Приложения

Полный текст моего squid.conf

http_port 1234 visible_hostname dimon4eg icp_port 0 acl donocache urlpath_regex cgi-bin user submit no_cache deny donocache
cache_mem 32 MB cache_dir ufs /var/spool/squid 1000 16 256
cache_access_log /var/log/squid/access.log cache_log /var/log/squid/cache.log cache_store_log /var/log/squid/store.log
mime_table /etc/squid/mime.conf pid_filename /var/run/squid.pid
ftp_user anonymous@ ftp_list_width 32 ftp_passive on ftp_sanitycheck on
acl server src 192.168.0.2/32
acl all src 0/0 acl manager proto cache_object acl localhost src 127.0.0.1/32 acl SSL_ports port 443 563 acl SMTP port 25
acl doallow src 192.128.0.2/32 127.0.0.1/32
acl Safe_ports port 80 acl Safe_ports port 21 acl Safe_ports port 443 563 acl Safe_ports port 777 acl CONNECT method CONNECT
acl banners url_regex -i "/etc/squid/acls/banners" acl 1banners url_regex -i "/etc/squid/acls/1banners" acl nobanners url_regex -i "/etc/squid/acls/nobanners"
http_access deny 1banners http_access deny banners !nobanners http_access deny !Safe_ports http_access deny SMTP http_access allow doallow http_access deny all
icp_access deny all
never_direct allow all

Мои правила для нарезки рекламы

/etc/squid/acls/banners

.?(count(\d|er|\.rbc)|hitbox|advertising|linkexchange|click\d|\dcount|adriver) .*(/ad(s|v)|\.adnet\.ru|banview|banner|adriver|\dcount|bnr|bans\.|/sale|/pagead) .*exaccess\.ru/asp/. .*(spylog|warlog\.info|ipz.ru/cgi-bin/cm\.cgi\?|c\.mystat-in\.net|c\.bigmir\.net|online\.mirabilis|top\.winrate\.net|vipelita\.ru|cnews\.ru.*/informres).* .*(brs\.trilan\.ru/images|google-analytics\.com|/informer|bantex\.ru|100-100\.ru).* .?(hotlog|tours|sharereactor|&rand=|livejournal\.com/userpic).* ^(www\.)?ad\d?\..* .?images\.rambler\.ru/upl.* .*s1\.adward\.ru/\?r.* .*(bhanvad)\.com.* .*(dosugonline|blogonline|all-web|otvali|loveplanet|ziza|body\.imho|meganame)\.ru.* .?(clx|gold-music)\.ru/.* .*(nnm.ru|rambler|realcoding|kpnemo\.ru/advimg).*\.swf .*/ad?.* .?re(k|c)lama.* .^(www\.)?(1001tur|jmp\.net|kmindex.ru/.*/\?|kreis\.trl\.ru|rot\.goup\.ru/\?|au-au\.ru).* .?r\.mail\.ru/b.*\.swf .?bs\.yandex\.ru/show.* .?br\.gcl\.ru/cgi-bin/br.* .?m1.nedstatbasic.net/basic.js .*\.doubleclick\.net .*an.yandex.ru/* .*/adserver/*

Squid - это популярный прокси-сервер, который используется в основном для кэширования часто запрашиваемого веб-контента, чтобы уменьшить время отклика страниц, а также для фильтрации сетевого трафика. Он поддерживает множество различных протоколов таких как HTTP, FTP, TLS, SSL, Internet Gopher и HTTPS. А еще эта штука может быть очень полезной при медленном интернет-соединении. Первоначально Squid был разработан как Unix демон, но потом было выпущено несколько портов для WIndows. Squid распространяется под лицензией GNU General Public License.

В этой инструкции вы узнаете как установить Squid в Ubuntu 16.04. Просто последовательно выполняйте эти инструкции и установка squid ubuntu не вызовет никаких проблем. Squid это довольно многофункциональная программа и мы не сможем охватить в этой статье все ее функции, но попытаемся рассмотреть основные, чтобы вы смогли ее полностью настроить и использовать. Начнем с установки.

Есть несколько способов установки Squid в Ubuntu, один из самых распространенных - установка из официальных репозиториев с помощью утилиты apt.

Сначала откройте терминал сочетанием клавиш Ctrl+Alt+T и обновите индекс пакетов:

После обновления списка пакетов можно переходить к установке прокси-сервера просто выполните команду:

sudo apt install squid

Затем утилита спросит нужно ли продолжать установку, введите Y и дождитесь окончания загрузки и установки:

Затем можно переходить к настройке.

Настройка Squid

Конфигурационный файл сервера находится в директории /etc/squid. В зависимости от версии Squid название папки и самого файла может отличаться, например, /etc/squid3/squid.conf или /etc/squid/squid.conf. Все настройки находятся в этом файле. Давайте его рассмотрим.

vim /etc/squid3/squid.conf

Когда откроется файл вы увидите что то похожее:

Файл содержит несколько опций настроек, а также очень много документации по их использованию. Мы не будем трогать многие из них, но основные рассмотрим.

Контроль доступа

Сначала нам нужно настроить правила доступа клиентов к нашему прокси-серверу. Squid проектировался как программа для организаций и даже если вы используете его дома, настройка squid 3 тоже должна быть выполнена.

Для это используется acl список. это обычный список объектов, сейчас он вообще ничего не значит. Это могут быть ip адреса, порты и т д. Потом мы укажем программе что нужно делать с этим списком, разрешать или запрещать доступ. Синтаксис создания acl списка такой:

acl имя_списка тип_списка элемент_списка

Таких строк может быть несколько с одним именем и типом, из них получается список. Имя списка может быть произвольным, мы его еще будем использовать. Тип списка это намного интереснее. Может быть одним из:

  • src - ip адрес откуда исходит соединение, адрес клиента;
  • dst - ip адрес назначения соединения, адрес сервера, к которому хочет получить доступ клиент;
  • dstdomain - домен назначения соединения;
  • srcdomain - домен клиента;
  • arp - MAC адрес сетевой карты клиента;
  • time - время, когда выполняется соединение;
  • port - порт, к которому пытается получить доступ клиент;
  • proto - протокол, по которому устанавливается соединение;
  • method - метод передачи данных, например, GET - передача данных HTTP, POST - передача данных форм в HTTP, CONNECT - запрос соединения с сервером;
  • http_status - ответ сервера;
  • browser - браузер клиента;
  • url_regex - url адрес, к которому пытаются получить доступ.

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

Добавим список, для доступа к серверу из локальной сети:

acl localnet src 192.168.0.0/16

Создадим список Safe_ports, чтобы разрешить трафик на порты основных сетевых служб, а также незарегистрированные порты выше 1024:

acl Safe_ports port 80 # http
acl Safe_ports port 21 # ftp
acl Safe_ports port 443 # https
acl Safe_ports port 70 # gopher
acl Safe_ports port 210 # wais
acl Safe_ports port 1025-65535 # unregistered ports
acl Safe_ports port 280 # http-mgmt
acl Safe_ports port 488 # gss-http
acl Safe_ports port 591 # filemaker
acl Safe_ports port 777 # multiling http

Создадим еще два списка - SSL_ports и connect, чтобы разрешить использовать метод connect только для ssl соединений. Это запретит клиенту использовать другие прокси-серверы поверх нашего:

acl SSL_ports port 443

acl connect method CONNECT

Как я уже говорил, эти списки сами по себе ничего не значат и никак не влияют на работу сервера. Чтобы применить список нужно использовать директиву http_access. Ее синтаксис:

http_access действие имя_списка

Действие может быть allow (разрешить) или deny (запретить). теперь запретим доступ ко всем портам, кроме заданных в Safe_ports:

http_access deny Connect !SSL_ports

Теперь разрешим доступ из этого компьютера (acl список localhos предопределен):

http_access allow localhost

Разрешим доступ из локальной сети:

http_access allow localnet

И запретим все остальное:

http_access deny all

Другие настройки

Контроль доступа, это один из самых важных компонентов, но настройка squid ubuntu на этом незакончена. Есть еще много интересных параметров, мы рассмотрим только несколько из них:

http_port - задает ip адрес и порт, на котором будет работать программа. Можно запускать прокси только на этом компьютере такой конструкцией:

http_port localhost:3218

Или в локальной сети:

https_port - задает ip адрес и порт, на котором будут приниматься https соединения. Мы не рассматриваем работу с https в этой статье.

cache_mem - количество памяти, которая выделяется для кэширования объектов.

cache_dir - позволяет задать папку для хранения кэша. По умолчанию весь кэш хранится в оперативной памяти. Синтаксис:

cache_dir файловая_система папка размер_в_мб L1 L2

L1 и L2 - количество подпапок первого и второго уровня. Файловая система определяет каким образом данные будут писаться на диск. Например:

cache_dir aufs /var/spool/squid 100 16 256

coredump_dir - директория, в которую будет сохранен дамп памяти в случае ошибки.

refresh_pattern - очень интересный параметр, который позволяет продлить время жизни объектов в кэше. Синтаксис такой:

refresh_pattern -i регулярное_выражение минимальное_время процент максимальное_время параметры

  • регулярное выражение - задает объекты, к которым нужно применять параметр;
  • минимальное_время - время в минутах пока объект считается свежим;
  • максимальное_время - максимальное время в минутах, пока объект будет свежим;

параметры могут быть такие:

  • override-expire - игнорировать заголовок expire;
  • override-lastmod - игнорировать последнюю дату изменения файла;
  • reload-into-ims - вместо не кэшировать отправлять запрос If-Modified-Since;
  • ignore-reload - игнорировать запросы клиента не кэшировать.

Например:

refresh_pattern -i \.gif$ 43200 100% 43200 override-lastmod override-expire

Вам могут понадобиться и другие настройки после того, как установка squid ubuntu Будет завершена. Но они выходят за рамки этой статьи. Теперь сохраните изменения, закройте файл и перезагрузите Squid:

sudo service squid3 restart

Если эта команда вернет ошибку, попробуйте другую:

sudo service squid restart

Осталось проверить работу нашего прокси-сервера. Это можно сделать с помощью любого браузера. Откройте настройки браузера и выполните настройку прокси. Я покажу как это сделать в Mozilla Firefox. Если у вас другой браузер, например, Google Chrome думаю вы разберетесь как там настраивается прокси.

Настройка клиентской стороны

Откройте браузер, перейдите в Настройка --> Дополнительно --> Сеть . Затем нажмите Настройки в разделе Подключение и выберите настроить прокси вручную :

В поле HTTP прокси укажите IP адрес машины, на которой выполнялась установка Squid сервера, а в поле порт - номер порта 3128. Этот порт используется по умолчанию в Squid, но вы можете изменить номер порта с помощью /etc/squid/squid.conf

Многие администраторы сталкиваются с проблемой разумного использования времени и канала для выхода в сеть Интернет, задумываются о возможности экономии времени и денег, об ограничении скорости для отдельных видов файлов или личностей, в конце концов об экономии всего, что связано с теми или иными аспектами выхода в глобальную сеть.

Я, с помощью этой статьи, попытаюсь наглядно и доходчиво объяснить о настройках самого распространенного прокси сервера - прокси сервера 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.

Пулы могут быть трёх классов:

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

С помощью этой статьи я попытался хоть немного раскрыть для обширных масс некоторые функции прокси сервера Squid.

Linux: Полное руководство Колисниченко Денис Николаевич

18.3. Настройка SQUID

18.3. Настройка SQUID

Сервер SQUID использует файл конфигурации squid.conf , который обычно располагается в каталоге /etc/squid (или /usr/local/squid/etc - более ранние версии). Подробнее на отдельных настройках мы остановимся чуть позже. А сейчас просто по шагам произведем настройку SQUID. Отредактируйте в этом файле следующие строки.

Укажите прокси-провайдера (тот сервер, который станет вашим «соседом» (neighbour, peer)):

cache_peer proxy.isp.ru

Установите объем памяти, разрешенный для кэша squid , в байтах, и каталог для дискового кэша:

cache_dir ufs /usr/local/squid/cache 1024 16 256

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

Укажите узлы, которым разрешен доступ к прокси-серверу:

acl allowed_hosts src 192.168.1.0/255.255.255.0

acl localhost src 127.0.0.1/255.255.255.255

Укажите разрешенные SSL-порты:

acl SSL_ports port 443 563

Запретите метод CONNECT для всех портов, кроме указанных в acl SSL_ports:

http_access deny CONNECT !SSL_ports

Запретите доступ всем, кроме тех, кому можно:

http_access allow localhost

http_access allow allowed_hosts

http_access allow SSL_ports http_access deny all

Пропишите пользователей, которым разрешено пользоваться SQUID (в рассматриваемом примере это den, admin и developer):

acl allowed_users user den admin developer

http_access allow allowed_users

http_access deny all

Тэги maximum_object_size и maximum_object устанавливают ограничения на размер передаваемых объектов.

Ниже приведен пример запрета доступа к любому URL, который соответствует шаблону games, и разрешения доступа ко всем остальным:

acl GaMS url_regex games

http_access deny GaMS

http_access allow all

Из книги Linux-сервер своими руками автора

15 Прокси-сервер SQUID 15.1. Что такое SQUID? SQUID - это программа, которая получает HTTP/FTP-запросы клиентов и по ним обращается к ресурсам Интернет. Применение прокси-сервера (squid) дает возможность использовать фиктивные IP-адреса во внутренней сети (Masquerading - маскарадинг),

Из книги Linux: Полное руководство автора Колисниченко Денис Николаевич

15.1. Что такое SQUID? SQUID - это программа, которая получает HTTP/FTP-запросы клиентов и по ним обращается к ресурсам Интернет. Применение прокси-сервера (squid) дает возможность использовать фиктивные IP-адреса во внутренней сети (Masquerading - маскарадинг), увеличивает скорость

Из книги Linux глазами хакера автора Флёнов Михаил Евгеньевич

15.2. Установка SQUID SQUID может быть установлен из исходных текстов или в виде RPM-пакета. Установка RPM-пакета SQUID очень проста - для этого нужно ввести команду rpm –ih squid-2.3.STABLE2-3mdk.i586.rpmЯ использую версию squid 2.3. Более новая версия доступна в виде исходных кодов. Исходники можно

Из книги автора

15.4. Запуск SQUID Теперь, когда вы выполнили базовую настройку SQUID, его нужно запустить: /usr/local/squid/bin/squid –zПараметр –z необходим для создания (обнуления) каталога, содержащего кэш. Обычно этот параметр нужен только при первом запуске. Некоторые другие полезные параметры SQUID

Из книги автора

15.5. Формат файла squid.conf В файле squid.conf задаются всевозможные параметры конфигурации прокси-сервера. Давайте рассмотрим их все по

Из книги автора

17.1.5. Настройка Squid Установите пакет squid. Осталось настроить и запустить его. Для этого нужно отредактировать файл конфигурации /etc/squid/squid.conf. Сначала укажите адрес прокси провайдера: cach_peer proxy.your_isp.comЗадайте объем ОЗУ, который будет использовать прокси-сервером: cache_memВ том

Из книги автора

Глава 18. Прокси-серверы SQUID и SOCKS 18.1. Что такое прокси-сервер? Прокси-сервер (сервер-посредник) - это программа, которая выполняет HTTP/FTP-запросы от имени клиентов. Применение прокси-сервера дает возможность использовать фиктивные IP-адреса во внутренней сети (IP-маскарадинг),

Из книги автора

18.2. Установка SQUID Я использую версию squid 2.5. Пакет squid входит в состав современных дистрибутивов, а если его у вас почему-то нет, то скачать можно с www.squid-cache.org.При сборке SQUID из исходных кодов первым шагом должна быть команда# ./configure --prefix=/usr/local/squidSQUID будет установлен в каталог,

Из книги автора

18.3. Настройка SQUID Сервер SQUID использует файл конфигурации squid.conf, который обычно располагается в каталоге /etc/squid (или /usr/local/squid/etc - более ранние версии). Подробнее на отдельных настройках мы остановимся чуть позже. А сейчас просто по шагам произведем настройку SQUID.

Из книги автора

18.4. Запуск SQUID Первый раз squid нужно запускать с ключом -z, чтобы создать и очистить каталог кэша:# /usr/local/squid/bin/squid -zЕще несколько полезных ключей, с которыми можно запускать squid, перечислены в таблице 18.2.Ключи запуска squid Таблица 18.2 Ключ Назначение -а порт Задает

Из книги автора

18.5. Расширенные настройки SQUID. Конфигурационный файл squid.conf 18.5.1. Параметры сети В файле squid.conf могут быть заданы следующие параметры сети:? http_port - порт для запросов клиентов. С этого порта прокси-сервер будет ожидать и обрабатывать запросы клиентов. Значение по умолчанию

Из книги автора

18.8. Разделение канала с помощью SQUID Допустим, вам нужно настроить прокси-сервер таким образом, чтобы одна группа компьютеров работала в Интернете с одной скоростью, а другая - с другой. Это может потребоваться, например, для разграничения пользователей, которые

Из книги автора

9.3. squid Как я уже сказал, самым распространенным прокси-сервером является squid. Этот сервер имеет достаточно длинную историю, и за время его существования в нем реализовано много возможностей. Еще не было ничего такого, что я не смог бы получить с помощью squid.Основной

Из книги автора

9.4. Права доступа к squid Это самая больная тема для любого администратора. Да, и в squid тоже есть права доступа, и они также описываются в конфигурационном файле /etc/squid/squid.conf. Но мы рассматриваем права отдельно, потому что основной упор делаем на безопасность. Именно поэтому

Из книги автора

9.5. Замечания по работе squid Сейчас нам предстоит немного поговорить о некоторых вопросах безопасности сервиса squid и дополнительных возможностях, которые могут ускорить работу в

Из книги автора

12.5.4. Журнал прокси-сервера squid Основным журналом прокси-сервера squid является /var/log/squid/access.log. Это текстовый файл, в котором каждая строка состоит из следующих полей:? время начала соединения или события;? продолжительность сессии;? IP-адрес клиента;? результат обработки

Squid — распространенное в среде программистов, системных администраторов и энтузиастов компьютерных сетей решение для создания эффективного прокси-сервера и управления им. Программа особенно привлекательна тем, что она кроссплатформенная. То есть устанавливать и запускать ее можно как в Linux и иных ОС, соответствующих архитектуре Unix, так и в Windows. Возможности данного инструмента — самые выдающиеся. Каким образом их можно задействовать? Есть ли особенности в настройке программы в зависимости от конкретной ОС?

Общие сведения о Squid

Что такое Squid? Под этим названием известен особо производительный прокси-сервер, используемый чаще всего с веб-клиентами. С его помощью можно организовывать одновременный доступ к Интернету для нескольких пользователей. Другое примечательное свойство Squid заключается в том, что он может кэшировать различные запросы. Это позволяет ускорять получение файлов, так как повторно скачивать их из Интернета не нужно. Прокси-сервер Squid также может регулировать скорость интернет-канала при соотнесении ее с фактической нагрузкой.

Squid адаптирован для использования на Unix-платформах. Однако есть версии Squid для Windows и многих других популярных ОС. Данная программа, так же как и многие операционные системы, основанные на концепции Unix, бесплатна. Она поддерживает FTP, SSL, позволяет настраивать гибкий контроль над доступом к файлам. Squid также записывает в кэш DNS-запросы. При этом можно настроить и прозрачный Squid-прокси, то есть работу сервера в формате, когда пользователь не знает, что обращается к Сети через него, а не напрямую. Таким образом, Squid — это мощный инструмент в руках системного администратора или поставщика коммуникационных услуг.

Практическая полезность Squid

В каких случаях Squid может быть наиболее полезным? Например, это может быть задача, при которой необходимо осуществить эффективную интеграцию нескольких компьютеров в сеть и обеспечить для них доступ в Интернет. Целесообразность использования прокси-сервера в данном случае заключается в том, что запросы между ним и браузером конкретного ПК осуществляются быстрее, чем в случае взаимодействия пользователя с Интернетом напрямую. Также при использовании Squid кэш в самом браузере можно отключить совсем. Подобная функция очень востребована в среде пользователей.

Состав Squid

Решение, о котором идет речь, состоит из нескольких компонентов. Фактически это пакет программного обеспечения. В его структуре — приложение, с помощью которого запускается сервер, а также дополняющая его программа для работы с DNS. Интересная ее особенность состоит в том, что она запускает процессы, каждый из которых функционирует независимо от других. Это позволяет оптимизировать взаимодействие сервера с DNS.

Установка программы

Установка Squid обычно никаких сложностей не вызывает. Очень легко ставится программа на Linux: достаточно ввести команду $ sudo apt-get install squid.

Что касается Squid для Windows, здесь все немного сложнее. Дело в том, что данная программа не имеет исполняемых файлов — основных элементов приложений для ОС от Microsoft.

Однако установка Squid на Windows — задача, решаемая вполне оперативно. Необходимо найти на или релевантных ему ресурсах дистрибутив, содержащий файлы типа.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 Для того чтобы найти его, необходимо выбрать пункт меню 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. Все четыре компонента имеют огромное значение для решения задач, которые стоят перед системными администраторами в аспекте оптимизации ресурсов локальной сети.

Статьи по теме: