Организация прокси на базе Squid

Способы применения прокси-серверов: обеспечение доступа с компьютеров локальной сети в Интернет, кэширование и сжатие данных, защита локальной сети от внешнего доступа. Администрирование и установка Squid Quickstart. Transparent HTTP caching/proxying.

Рубрика Программирование, компьютеры и кибернетика
Вид лекция
Язык русский
Дата добавления 27.11.2013
Размер файла 84,3 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Организация прокси на базе Squid

  • Содержание
  • 1. Прокси-сервер
  • 2. Как поставить/настроить squid? (коротко)
  • 3. Squid Quickstart
  • 4. Squid - Администрирование (установка, настройка и использование)
  • 5. Squid и Web Cache Control Protocol (WCCP)
    • 5.1 Transparent HTTP caching/proxying
  • 6. Открытый прокси
  • 7. Linux ACLs
  • прокси сервер кэширование squid

1. Прокси-сервер

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

Чаще всего прокси-серверы применяются для следующих целей:

Обеспечение доступа с компьютеров локальной сети в Интернет.

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

Сжатие данных: прокси-сервер загружает информацию из Интернета и передаёт информацию конечному пользователю в сжатом виде. Такие прокси-серверы используются в основном с целью экономии внешнего трафика.

Защита локальной сети от внешнего доступа: например, можно настроить прокси-сервер так, что локальные компьютеры будут обращаться к внешним ресурсам только через него, а внешние компьютеры не смогут обращаться к локальным вообще (они "видят" только прокси-сервер). См. также NAT.

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

Анонимизация доступа к различным ресурсам. Прокси-сервер может скрывать сведения об источнике запроса или пользователе. В таком случае целевой сервер видит лишь информацию о прокси-сервере, например, IP-адрес, но не имеет возможности определить истинный источник запроса. Существуют также искажающие прокси-серверы, которые передают целевому серверу ложную информацию об истинном пользователе.

Многие прокси-серверы используются для нескольких целей одновременно. Некоторые прокси-серверы ограничивают работу несколькими портами: 80 (Браузер), 443 (Шифрованное соединение (HTTPS)), 20,21 (FTP).

В отличие от шлюза прокси-сервер чаще всего не пропускает ICMP-трафик (невозможно проверить доступность машины командами ping и traceroute).

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

2. Как поставить/настроить squid? (коротко)

Иван Паскаль, Linux RSP Web Site

Прежде чем разбираться со squid'ом, надо убедиться, что все остальное работает. А именно:

1. машина, на которой будет работать Proxy, может соединится (по WWW, FTP, Telnet - не важно) с машинами в мире;

2. машины из внутренней сети могут соединится с этой машиной, опять же - не важно каким клиентом;

Если что-то из этого отсутствует, пока за squid браться рано.

Если же связь изнутри к Proxy-машине есть, и эта Proxy-машина может общаться с внешним миром, переходим к настройке squid'а. Я проверял на squid-1.1.20. Но, в других версиях (если они не намного древнее) должно быть примерно так же.

Squid надо ставить из packages или ports, тогда есть уверенность, что все его компоненты разложаться по нужным директориям, как это принято именно во FreeBSD. Должно получиться примерно следующее:

1. Бинарники лежат в /usr/locl/sbin;

2. В /usr/local/etc появилась директория squid, в которой лежит squid.conf - это как раз его конфиг-файл, его надо будет подправлять.

3. В /usr/local/etc/rc.d появился файлик squid.sh - это основная запускалка (дело в том, что система при старте просматривает этот каталог, и все, что найдет там типа *.sh запустит автоматом). Но можно его запустить и вручную просто ./squid.sh. Если такого файла нет, то при перезагрузке squid не будет запускаться.

4. В /usr/local образовалась директория squid, в которой две поддиректории cache - там будет его кэш и logs - логи. Там же должен быть файлик (возможно, он появится после первого запуска) squid.out - это основной лог, в которм и будут сообщения об ошибках, если squid почему-либо не сможет стартовать нормально.

Если что-то из вышеописанного лежит не там, то надо будет найти.

Для начала squid.conf можно не сильно не копать. Там стоят значения "по умолчанию", они вполне приемлимы. Единственное, что я советую - определится, сколько мегабайт диска вы согласны выделить под кэш. По умолчанию 100 МB. Если у Вас напряженка с дисковым пространством, или наоборот, переизбыток, то найдите в squid.conf строчку:

cache_swap 100

и поставьте подходящее значение (если строчка закоментарена знаком '#' в начале - раскоментарьте). Максимальный обьем можно оценочно определить как обьем, который можно прокачать по Вашей линии к провайдеру за сутки.

Еще одна правка, скорее всего понадобится. Я запустил squid'а, ничего не исправляя, и он тут же выдал мне в squid.out сообщение об ошибке. Смысл сообщения был такой, что "нельзя запускать от имени root, используйте cache_effective_user в конфиге". Поскольку, при старте машины squid.sh будет исполняться от имени root, то надо сделать, что он просит. То есть, найти в конфиге строчку:

cache_effective_user nobody nogroup

и раскоментарить ее. Это будет означать, что в процессе работы, squid будет иметь права "псевдоюзера" nobody. На самом деле, это не совсем правильно. Правильнее - завести нового "псевдоюзера" squid (или еще как-нибудь - www, cache ...) и в конфиге вписать именно его, а не nobody. но если это слишком сложная для Вас задача, то просто раскоментарьте строчку и все. После этого надо будет поправить владельца для директории /usr/local/squid (ну, там где кэш и логи). Для этого выполните команду

chown -R nobody /usr/local/squid

("-R означает, что меняется владелец не только директории, но и Rекурсивно обходится все содержимое поддиректорий). Если вы завели специального "псевдоюзера", то, естественно, в команде вместо nobody укажите его имя.

Теперь осталось сформировать "внутреннюю структуру кэша". Кстати, если этого не сделать, то squid при запуске сам скажет вам: "запустите программу squid -z". Сделайте, как он говорит. Только учтите, что /usr/local/sbin, обычно, не прописана в PATH даже у root'а, поэтому лучше набрать полный путь

/usr/local/sbin/squid -z.

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

Теперь можно попытаться запустить squid. Зайдите в /usr/local/etc/rc.d и запустите ./squid.sh. У меня с этого момента все заработало. Кстати, на консоли должно появится сообщение от squid'а "Ready to serve requests" ("готов обслуживать запросы").

3. Squid QUICKSTART

После того, как вы скачали, откомпилировали и установили Squid (см. файл INSTALL в корневой директории исходников), вам необходимо отредактировать файл squid.conf. Ниже приведен список параметров, которые вам *необходимо* изменить, т.к. по умолчанию им не присвоены какие-либо значения. Другие переменные пока не трогайте. Мы предполагаем, что вы установили Squid в /usr/local/squid, как указано по умолчанию.

Раскоментируйте и отредактируйте следующие строки в файле /usr/local/squid/etc/squid.conf:

cache_peer

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

cache_mem

Укажите здесь кол-во памяти (имеется ввиду ОЗУ) выделенной под кеширование. Предупреждение: реально Squid использует больше, чем указанное здесь значение. Золотое правило: если вы имеете N мегабайт свободной памяти, которую можете отдать под Squid, укажите здесь значение N/3.

cache_dir

cache_dir /usr/local/squid/var/cache 100 16 256

Укажите здесь (первое число, в данном случае - 100) кол-во дискового пространства, отведенного под кеш (в мегабайтах).

acl, http_access, icp_access, miss_access

Списки контроля доступа. Это важно, т.к. предотвращает нелегальное использование ваших сетевых ресурсов кем-либо. Чтобы попасть в ACL для разрешенных хостов (allowed_hosts), используйте ваш адрес сети (к примеру 192.168.10.0) и маску вашей сети (к примеру 255.255.255.0):

acl manager proto cache_object

acl localhost src 127.0.0.1/255.255.255.255

acl all src 0.0.0.0/0.0.0.0

acl allowed_hosts src 192.168.10.0/255.255.255.0

http_access deny manager all

http_access allow allowed_hosts

http_access deny all

icp_access allow allowed_hosts

icp_access deny all

miss_access allow allowed_hosts

miss_access deny all

cache_mgr

Укажите здесь адрес e-mail человека, отвечающего за работу прокси:

cache_effective_user

Если вы должны запускать Squid из под root, найдите безопасного пользователя и группу от которых он будет запускаться после загрузки системы (обычно "nobody" и "nogroup"). Не используйте "root" по соображениям безопасности.

visible_hostname

Имя хоста, представляющего кеш.

После редактирования под ваши нужды файла squid.conf, запустите Squid из командной строки ДВАЖДЫ, вот так:

% /usr/local/squid/sbin/squid -z

% /usr/local/squid/sbin/squid

Проверьте ваш cache.log (/usr/local/squid/var/logs/cache.log), чтобы убедиться, что все в порядке. Появление предупреждения "WARNING: Cannot write to swap directory" абсолютно нормально для первого запуска Squid.

Как только Squid создаст все необходимые файлы (на некоторых системах это может занять до нескольких минут), проверьте его работоспособность при помощи echoping или обычного Web-клиента. По умолчанию ваш Squid будет запущен на порту 3128. См. Squid FAQ для более подробной информации.

Как только вам удалось заставить работать Squid из командной строки, можете указать вашему Unix запускать Squid во время загрузки системы (в основном это зависит от того, какой Unix вы используете, в большинстве случаев вам потребуется внести изменения в файл типа /etc/rc_something).

Эта инструкция по быстрому запуску написана Stephane Bortzmeyer и Duane Wessels.

4. Squid - Администрирование (установка, настройка и использование)

Назначение

Представляет собой HTTP, FTP, gopher, SSL и WAIS (убрано в 2.6) proxy, кеширующий запросы. Также кеширует DNS. Один процесс на всех, неблокированный ввод/вывод, держит часто используемые объекты в виртуальной памяти. Бесплатен (GPL). Основан на проекте Harvest. Поддерживает иерархию или сеть серверов (ICP/UDP - Internet Cache Protocol, HTCP/TCP, multicast). Откуда брать объект определяется так (в упрощенном виде): послать ICP/HTCP/multicast запросы ко всем подходящим соседям; подождать определенное время; загрузить с первого соседа, пославшего HIT; иначе загрузить с первого отца, ответившего MISS; иначе загрузить с первоисточника. Предусмотрены различные методы оптимизации для выбора наиболее быстрого источника.

Делается различие между частными и общими объектами. Кешируются только общие объекты. Только метод GET дает общие объекты. Объекты, попавшие в стоп-лист есть частные объекты. Если запрос содержит аутентификационную информацию или ответ типа "401 Unauthorized" - это частный объект.

cache digest - очень компактная форма представления какие объекты имеются в кеше. Кеши могут обмениваться этой информацией с соседями, чтобы избежать необходимости делать ICP-запросы. В качестве ключей объектов используется MD5.

Текущая стабильная версия: Squid 2.6-STABLE12; готовится к выходу 3.0 (отличия 2.6.STABLE12 от 2.5.STABLE14, 2.5.STABLE14 от 2.5.STABLE6, 2.5.STABLE6 от 2.4, 2.4 от 2.3, 2.3 от 2.2).

Установка

Squid 2.6.STABLE12, Linux CentOS 4.4 (головной для филиала)

Squid 2.5.STABLE6, Linux CentOS 4.0/4.4 (без излишеств)

Squid 2.5-PRE6, Linux RedHat 7.2 (transparent, балансировка нагрузки, антибаннер)

Squid 2.3-STABLE4, Linux RedHat 7.0 (два сервера: распасовщик и антибаннер)

Squid 2.3-STABLE2, Linux RedHat 6.2 (transparent proxy)

Squid 2.3-STABLE1, Linux RedHat 6.0 (распасовочный)

Squid 2.2-STABLE4, Linux RedHat 6.0, из rpm

Squid 2.2-STABLE2, Solaris 2.5, Sparc

Полезные ключи ./configure (--help, squid -v)

--prefix=/usr/local/squid (куда инсталлировать файлы, также имеется множество дополнительных ключей для тонкой настройки расположения файлов)

--enable-async-io=число-нитей (подразумевает --with-aufs-threads=число-нитей, --with-pthreads, --enable-storeio=ufs,aufs)

--enable-storeio="список-методов-хранения" (ufs - unix file system; aufs - async unix file system; diskd - отдельные процессы для асинхронного доступа к файлам; null - не хранить данные на диске; coss - файловая система COSS)

--enable-icmp (измерять путь до каждого HTTP-сервера при запросах с помощью ICMP, используется для оптимизации выбора сервера или соседа)

--enable-htcp (HTCP - вариант ICP по TCP, синхронизация кеша с соседями)

--enable-forw-via-db (включить поддержку БД Forw/Via для оптимизации выбора сервера или соседа)

--enable-cache-digests (использовать Cache Digests для оптимизации выбора сервера или соседа)

--enable-carp (включить балансировку с помощью CARP - Cache Array Routing Protocol; в новых версиях его надо наоборот отключать: --disable-carp)

--disable-wccp (не включать поддержку протокола WCCP - Web Cache Coordination Protocol - позволяет Cisco IOS автоматически распознавать падение сервера)

--disable-wccpv2

--enable-delay-pools (управление ограничением трафика)

--enable-useragent-log (журнализовать заголовок Useragent)

--enable-referer-log (журнализовать заголовок Referer)

--enable-forward-log (поддержка директивы forward_log, в 2.6)

--enable-kill-parent-hack (помогает сделать shutdown чисто)

--enable-snmp (включить SNMP сервер для мониторинга)

--enable-arp-acl (поддержка ACL, основанных на ethernet MAC адресах)

--enable-cachemgr-hostname=имя-хоста (cachemgr.cgi будет по умолчанию натравлен на этот хост)

--enable-err-language=языки-для-сообщений-об-ошибках (по умолчанию - все)

--enable-default-err-language=язык-сообщений-об-ошибках (Russian-1251?)

--enable-gnuregex (вместо regex, плохо работающего в старых Linux)

--enable-poll (можно использовать poll, epoll или select; poll быстрее, но не на всех платформах работает; обычно выбор делается автоматически, но если вы умнее configure, то можете это проверить)

--disable-poll

--enable-select

--disable-select

--enable-select-simple (использовать только простое подмножество select)

--enable-epoll

--disable-epoll

--disable-http-violations (игнорировать все строки в конфигурации, которые нарушают стандарты HTTP)

--enable-ipf-transparent (разрешить поддержку transparent proxy для систем, использующих IP-Filter - в ядре Linux 2.2 и без этого хорошо)

--enable-pf-transparent (разрешить поддержку transparent proxy для систем, использующих PF network address redirection)

--enable-linux-netfilter (transparent proxy для ядра Linux 2.4)

--enable-large-cache-files (позволяет хранить в кеше файлы размером более 2GB; при этом меняется формат хранения; 2.6)

--enable-linux-tproxy (поддержка Netfilter TPROXY)

--disable-ident-lookups (ident в современном мире - вещь бесполезная)

--disable-internal-dns (вместо внутренних запросов использовать внешние процессы dnsserver; рекомендуется для версий до 2.4)

--enable-truncate (обнулять файлы вместо их удаления: быстрее, но требует много inode; были проблемы, когда переполнялась таблица inode; наверное, параметр minimum_object_size из-за этого появился; не рекомендуется для асинхронного ввода/вывода)

--disable-unlinkd (запретить использование внешних процессов для удаления файлов)

--enable-underscores (позволять подчеркивания в именах хостов, надеясь что резолвер их не обрежет; в 2.6 заменён директивой squid.conf)

--enable-heap-replacement (использовать улучшенные алгоритмы замещения кеша вместо стандартного LRU, в версиях Squid до 2.4; в новых версиях рекомендуется использовать --enable-removal-policies)

--enable-removal-policies="lru,heap" (улучшенные алгоритмы замещения кеша вместо стандартного LRU, в версиях Squid 2.4 и выше)

--enable-dlmalloc (своя библиотека malloc, не быстрая но без memore leak)

--enable-ssl (включить поддержку работы в качестве шлюза SSL с помощью OpenSSL)

--enable-auth="список методов аутентификации" (по умолчанию только basic; вместе со squid поставляются: basic, digest, ntlm, negotiate; имеется множество дополнительных ключей, позволяющих настраивать отдельные методы аутентификации:

--enable-basic-auth-helpers="список программ для аутентификации basic" (в комплекте имеются: getpwnam, LDAP, MSNT (обращается к NT серверу), mswin_sspi (только под MS Windows NT?), multi-domain-NTLM, NCSA, PAM, SASL, SMB, YP)

--enable-ntlm-auth-helpers="список программ для аутентификации ntlm" (в комплекте имеются: fakeauth (проверяет только синтаксис запроса), mswin_sspi (только под MS Windows NT?), no_check (проверяет только синтаксис запроса), SMB (обращается к контроллеру домена)

--enable-ntlm-fail-open (делать клиентам "поблажки")

--enable-digest-auth-helpers="список программ для аутентификации digest" (в комплекте имеются: password, ldap)

--enable-negotiate-auth-helpers="список программ для аутентификации negotiate" (в комплекте имеются: mswin_sspi (только под MS Windows NT?))

--enable-external-acl-helpers="список программ для проверки ACL" (в комплекте имеются: ip_user, ldap_group, mswin_lm_group, session, unix_group, wbinfo_group)

--enable-follow-x-forwarded-for (отслеживать цепочку X-Forwarded-For, 2.6)

--with-large-files (журналы и пр.)

--with-maxfd=число-дескрипторов

--with-openssl= (в CentOS надо указать /usr/kerberos)

Ключи запуска squid

-a порт (TCP порт для входных HTTP запросов, 3128)

-d (отладка на stderr)

-f имя-файла-конфигурации

-h (help)

-k (послать команду работающему серверу, номер процесса из squid.pid?)

reconfigure (посылка сигнала HUP - разобрать заново файл конфигурации)

rotate (rotate журналы; сигнал USR1)

shutdown (сигнал TERM)

interrupt (shutdown без паузы; сигнал INT)

kill (даже не закрыв журналы; сигнал KILL)

debug (начать/закончить полную трассировку; сигнал USR2)

check (сигнал ZERO)

parse (проверить синтаксис squid.conf)

-l facility (источник для записей в syslog)

-s (level 0 debugging to syslog в дополнение к выводу в файл)

-u порт (UDP порт для входных ICP запросов, 3130)

-v (напечатать версию параметры сборки)

-z (создать дисковый кеш при первом запуске)

-C (не отлавливать сигналы к завершению)

-D (не делать DNS-тест при запуске)

-F (восстановление после сбоя не в фоновом режиме)

-N (не становиться фоновым процессом)

-R (не устанавливать REUSEADDR на порту)

-V (поддержка виртуальных хостов для режима акселерации - аналогично "httpd_accel_host virtual" в конфигурационном файле)

-X (включить отладку при разборе конфигурационного файла)

-Y (более быстрое восстановление после сбоев)

Формат squid.conf

сетевые параметры сервера

http_port 3128 (порт для запросов клиентов); в версии 2.3 можно указывать перед портом имя хоста или IP-адрес

https_port порт (обработка SSL/TLS запросов в режиме акселерации; в качестве опций указывается файл с сертификатом, приватный ключ, версия SSL/TLS, тип шифрования)

ssl_unclean_shutdown off

icp_port 3130 (если соседей не ожидается, то поставить "icp_port 0")

htcp_port 4827 (порт для общения с соседями - ICP - через TCP, нужен "--enable-htcp" в configure, иначе его нельзя устанавливать даже в 0)

mcast_groups 239.128.16.128 224.0.1.20 (к каким multicast группам подсоединяться для получения ICP, если используется multicast; для раздачи используется cache_peer; не трогать)

tcp_incoming_address 0.0.0.0 (по какому адресу принимать входные пакеты, если хост имеет несколько интерфейсов; в 2.3 убран)

tcp_outgoing_address 0.0.0.0 [[!]acl] (при посылке ставить указанный адрес в качестве исходного; в 2.5 появилась возможность задавать ACL)

udp_incoming_address 0.0.0.0 (по какому адресу принимать пакеты ICP)

udp_outgoing_address 255.255.255.255 (с какого адреса должны выходить пакеты ICP; по умолчанию - с того же, что и приходят)

tcp_outgoing_tos TOS-биты [!]acl (установка битов приоритета траффика в зависимости от ACL)

tcp_recv_bufsize 0 bytes (0 означает, что надо использовать размер буфера по умолчанию)

incoming_icp_average 6

incoming_http_average 4

incoming_dns_average 4

min_icp_poll_cnt 8

min_http_poll_cnt 8

min_dns_poll_cnt 8

соседи (neighbour, peer)

cache_peer hostname type proxy-port icp-port options (каждый сосед описывается отдельной строкой)

type

parent - старший в иерархии (если запрос отсутствует в локальном кеше, то он направляется к parent, тот - при отсутствии в своем кеше - пересылает запрос дальше и возвращает готовый ответ подчиненному в иерархии; если squid получает от parent TCP_DENIED, то он лезет напрямую)

sibling - одного уровня (если запрос отсутствует в локальном кеше, то он направляется к sibling, тот - при отсутствии в своем кеше - сразу возвращает сообщение об этом, ничего не предпринимая)

multicast

options

proxy-only (объекты, взятые с этого узла не хранить у себя)

weight=число (число от 1, по умолчанию - 1, чем больше, тем больше приоритет при прочих равных)

ttl=число (TTL в посылаемых ICP пакетах при использовании multicast)

no-query (не посылать ICP запросы - только принимать)

default (самый старший в иерархии, используемый как last-resort)

round-robin (определяет множество старших кешей, используемых по очереди)

multicast-responder (данный сосед является членом multicast группы, запрос к нему посылается через multicast, но запросы от него будут обрабатываться и так)

closest-only (при ответах ICP_OP_MISS не передавать FIRST_PARENT_MISS)

no-digest (не запрашивать от этого соседа cash-digest)

no-netdb-exchange (не запрашивать у этого соседа ICMP RTT - round trip time - NetDB)

no-delay (при перегрузке delay pool не лезть к этому соседу)

login=user:password (если старший в иерархии proxy требует аутентификации)

login=PASS (передавать имя/пароль пользователя вышестоящему прокси)

connect-timeout=

digest-url=URL

allow-miss (передавать соседям запросы не только в режиме only-if-cached; может порождать циклы)

max-conn=число (максимальное число соединений с данным соседом)

cache_peer_domain host domain [domain...]

ограничить запросы к данному соседу данным списком доменов (можно использовать отрицание с помощью восклицательного знака)

neighbor_type_domain parent | sibling domain...

модифицировать тип соседа при запросах к данному домену

icp_query_timeout milisec (по умолчанию определяется автоматически для каждого соседа)

maximum_icp_query_timeout milisec

mcast_icp_query_timeout milisec (по умолчанию 2000 ms, ожидание ответа на регулярные multicast опросы)

dead_peer_timeout 10 seconds (как долго ждать прежде, чем объявить соседа "мертвым")

hierarchy_stoplist (список строк - через пробел, - при встрече которых в URL, запрос будет направлен сразу напрямую, а не "по соседям"; по-умолчанию - "cgi-bin ?")

minimum_direct_hops 4 (If using the ICMP pinging stuff, do direct fetches for sites which are no more than this many hops away)

minimum_direct_rtt400 (при использовании ICMP ping для вычисления близости серверов, использовать только тех соседей, которые отзываются быстрее указанного числа милисекунд)

icp_hit_stale on|off (возвращать ли ответ ICP_HIT для зачерствевших объектов; по умолчанию - off)

netdb_low 900

netdb_high 1000 (нижняя верхняя границы для базы данных измерения ICMP)

netdb_ping_period 5 minutes (минимальное время между ping-ами в одну и ту же сеть)

query_icmp on|off (должны ли соседи включать в ICP ответы ICMP данные; соответствующие данные собираются если сосед сконфигурирован с --enable-icmp, в это случае он измеряет путь до http-сервера помощью ICMP, выключен по умолчанию)

test_reachability on|off (если включить, то ответ ICP_MISS будет заменяться на ICP_MISS_NOFETCH если сервер отсутствует в ICMP базе данных или RTT равен нулю)

retry_on_error off (повторять запрос к соседу после получения сообщения об ошибке)

mcast_miss_addr адрес (по этому multicast адресу посылается сообщение при каждом cache miss)

mcast_miss_port порт

mcast_miss_encode_key ключ

nonhierarchical_direct on (запросы из hierarchy_stoplist и некешируемых типов будут направляться к первоисточнику, off - к родительскому кешу)

prefer_direct on (если никакая методика - ICP, HTCP, digest - не указали родительский кеш, то напрвлять запрос к первоисточнику; off - к родительскому кешу)

размер кеша и параметры кеширования, параметры запросов

cache_mem 8 MB (объем оперативной памяти, используемой для хранения обрабатываемых объектов; если требуется, то этот лимит может быть слегка превышен; если осталось свободное место, то оно используется для хранения наиболее часто используемых объектов отрицательных ответов; память используется и под другие нужды - индекс объектов - на каждый объект требуется около 100 байт ОП; если средний размер объекта 9КБ (в очень старом руководстве говорится - 20КБ, в более новом - 13КБ, у меня - 9КБ, как измельчал интернет!), то на 8ГБ диска понадобится 100МБ ОП только под индекс объектов; еще понадобится память под кеш IP-адресов, fqdn-кеш и др.)

cache_dir тип имя-директории Mbytes Level-1 Level2[read-only] [max-size=число] (определяет имя, размер и количество поддиректорий на первом и втором уровне кеша на диске - каждый кешируемый объект кладется в отдельный файл, файлы не сваливаются в одно место, а разносятся в двухуровневой иерархии директорий; можно иметь несколько директорий под кеш - особенно полезно иметь их на разных дисках; эксперимент показал, что при кэше в 700 МБ используется только 2 директории первого уровня; при стандартной структуре директорий кеша в него "с комфортом" влезает миллион объектов (9 GB), если их больше, то надо увеличить число директорий верхнего уровня; тип кеша указывается начиная с версии 2.3: ufs (unix file system), aufs (async ufs), diskd (внешние процессы для избежания блокировки squid на дисковом вводе/выводе); директорию верхнего уровня надо создавать самому; поддиректории создаются командой squid -z)

cache_swap_log полное-имя-файла (это не журнал, а оглавление кеша на диске)

cache_swap_high 95 (при достижении данного уровня заполнения кеша - в процентах - начинается ускоренный процесс удаления старых объектов; для большого кеша эти границы надо поднять, 5% от 8 GB - это 400 MB!)

cache_swap_low 90 (процесс удаления старых объектов заканчивается, если достигнут данный уровень)

maximum_object_size 4096 KB (максимальный размер кешируемого объекта; если его увеличишь, то съэкономишь трафик, если уменьшишь, то странички быстрее грузиться будут - хотя можно просто увеличить размер кеша; максимальный размер объекта, который удалось за раз скачать по модему - 8 MB)

minimum_object_size 0 KB (файлы меньшего размера не сохраняются; введено в 2.3-STABLE3

maximum_object_size_in_memory 8 KB

ipcache_size 1024 (размер кеша для IP адресов)

ipcache_high 95 и ipcache_low 90 (верхний и нижний уровень заполнения IP кеша для алгоритма удаления старых объектов по LRU)

fqdncache_size 1024 (размер кеша fqdn - полных доменных имен)

cache_replacement_policy policy (алгоритмы замещения объектов в кеше: lru, heap GDSF, heap LFUDA или heap LRU; действует на последующие cache_dir)

memory_replacement_policy policy

memory_pools on|off (по умолчанию, однажды захваченная, но ныне не используемая память не отдается обратно в систему, off позволяет освобождать ее)

memory_pools_limit байт (максимальное количество неиспользуемой памяти, которое squid будет придерживать; если 0, то придерживать все, что было захвачено; см. memory_pools)

request_size 100 KB (максимально возможный размер запроса; если клиент загружает файлы с помощью метода POST, то необходимо увеличить допустимый размер) - убран в версии 2.3

request_header_max_size 10KB (появился в 2.3)

request_body_max_size 1 MB (появился в 2.3; в новых версиях по умолчанию - без ограничений)

reply_header_max_size 20 KB (появился в 2.5)

reply_body_max_size 0 allow | deny all (появился в 2.3; в версии 2.4 появилась возможность задать ACL)

refresh_pattern [-i] regex MIN_AGE percent MAX_AGE[options]

используется, чтоб определить не устарел ли объект в кеше. Имя объекта сравнивается по очереди с регулярными выражениями в строках refresh_pattern до первого совпадения, параметры из соответствующей строк используются в алгоритме проверки "на свежесть". По умолчанию, регулярные выражения различают прописные/строчные буквы, чтобы игнорировать это различие, используется ключ "-i". MIN_AGE и MAX_AGE- время в минутах (MAX_AGE также используется, если приходится делать запрос к соседям (Cache-Control: Max-age=nnn) ). procent - целое число. OBJ_DATE - время извлечения объекта с исходного сервера (заголовок HTTP Date). OBJ_LASTMOD - время последнего изменения объекта (заголовок HTTP Last-Modified). OBJ_AGE = NOW - OBJ_DATE (как давно мы его извлекли). LM_AGE = OBJ_DATE - OBJ_LASTMOD (насколько стар был объект в момент извлечения). LM_FACTOR = OBJ_AGE / LM_AGE. CLIENT_MAX_AGE - максимальный возраст объекта, который удовлетворит клиента (HTTP/1.1 Cache-Control: ). EXPIRES - срок хранения объекта (из ответа сервера, если есть). В общих чертах алгоритм описан так:

если (определен CLIENT_MAX_AGE)

если (OBJ_AGE > CLIENT_MAX_AGE)

то (объект старый)

если (определен EXPIRES) {

если ( EXPIRES <= NOW)

то (объект старый)

иначе (объект свежий)

}

если (AGE > MAX_AGE) то (объект старый)

если (OBJ_DATE > OBJ_LASTMOD ) {

если (LM_FACTOR меньше PERCENT) то (объект свежий)

иначе (объект старый)

}

если (AGE <= MIN_AGE) то (объект свежий)

(объект старый)

По умолчанию (я эти числа изрядно увеличиваю):

refresh_pattern ^ftp: 1440 20% 10080

refresh_pattern ^gopher: 1440 0% 1440

refresh_pattern . 0 20% 4320

options

override-expire - нарушение стандарта HTTP! - использовать min даже если явно задан expire

override-lastmod - использовать min даже для недавно модифицированных объектов

reload-into-ims - нарушение стандарта HTTP! - преобразует клиентские запросы типа no-cache в If-Modified-Since

ignore-reload - нарушение стандарта HTTP! - игнорировать заголовки no-cache или reload в запросах клиентов

replacement_policy GDSF | LFUDA (частотные алгоритмы замещения объектов в кеше вместо LRU; требуется --enable-heap-replacement при сборке; в версии 2.4 расслоился на cache_replacement_policy и memory_replacement_policy)

reference_age 1 year (максимальное время хранения неиспользуемого объекта до его удаления по LRU алгоритму; если места на диске не хватает, то автоматически уменьшается)

quick_abort_min 16 KB (если клиент оборвал запрос, а осталось докачать всего min KB, то squid докачает)

quick_abort_max 16 KB (если клиент оборвал запрос, и осталось качать больше max KB, то прекратить)

quick_abort_pct 95 (если клиент оборвал запрос, а уже получено больше чем pct процентов объекта, то докачать)

read_ahead_gap 16 KB (размер буфера упреждающего чтения)

negative_ttl 5 minutes (некоторые негативные ответы тоже кешируются - "connection refused "и "404 not found" - ttl задает их время жизни в кеше; по-моему, хватит и 1 минуты)

range_offset_limit 0 KB (если клиент делает запрос с середины объекта, то offset_limit равный -1 вынуждает squid загрузить весь объект в кеш до того как начать передачу клиенту - скажем 17го мегабайта ;) -; offset_limit равный 0 означает. что squid никогда не будет грузить больше, чем клиент запросил; offset_limit равен определенному числу означает, что squid будет грузить весь объект, если начало запроса меньше этого числа)

no_cache deny имя-ACL (определяет список объектов, которые не будут кешироваться; по-умолчанию, кешируется все, хотя рекомендуется определить "acl QUERY urlpath_regex cgi-bin \?" запретить его кеширование "no_cache deny QUERY"; на самом деле cgi-bin и query все-таки кешируются, хотя и слабо)

store_avg_object_size 13 KB (предполагаемый средний размер объекта, используемый для расчетов; у меня - 9КБ (12 КБ, если не кешировать маленькие объекты); не д.б. вдвое больше реального или возникнут проблемы)

store_objects_per_bucket 20 (число объектов на хеш-корзину, чем меньше, тем больше будет создано корзин)

always_direct allow|deny [!]aclname ... (запросы, удовлеворяющие данным acl не кешировать, а всегда направлять к первоисточнику)

never_direct allow|deny [!]aclname ...

store_dir_select_algorithm least-load | round-robin (алгоритм выбора директории хранения для кешируемого объекта)

сообщения об ошибках, журналы и мониторинг

logformat имя спецификация-формата (позволяет описать формат журнала запросов; предопределены форматы squid, squidmime, common и combined)

cache_access_log /usr/local/squid/logs/access.log (журнал запросов к кешу; до версии 2.6)

access_log /usr/local/squid/logs/access.log [имя-формата [ACL ...]] (журнал запросов к кешу; в версии 2.6)

cache_log /usr/local/squid/logs/cache.log (журнал запусков процессов)

cache_store_log /usr/local/squid/logs/store.log (журнал записи объектов в дисковый кеш; авторы рекомендуют поставить none, т.к. программ анализа все равно нет

emulate_httpd_log off | on (эмулировать или нет Common Log Format; лучше использовать родной формат)

log_ip_on_direct on | off (записывать в журнале IP-адрес сервера или соседа вместо имени)

log_mime_hdrs off (в журнал access записываются переданные полученные HTTP-заголовки - очень интересная информация, но больно длинная)

useragent_log имя-файла (по-умолчанию none; в этот файл будут записываться строки User-agent из HTTP-заголовков; необходима компиляция с "--enable-useragent_log")

referer_log имя-файла (по-умолчанию none; в этот файл будут записываться строки Refererиз HTTP-заголовков; необходима компиляция с "--enable-referer_log")

debug_options раздел,уровень (уровень отладки; волшебное слово ALL для всех разделов; по умолчанию ALL,1; уровень от 1 до 9 - наивысший; перечень разделов приведен в doc/debug-sections.txt)

log_fqdn off (определять и записывать в журнал полные доменные имена источника запроса, вносит дополнительную задержку в обработку запроса)

client_netmask 255.255.255.255 (при записи в журнал можно обнулять некоторые биты IP-адреса, чтоб защитить частную жизнь клиента)

log_icp_queries on|off (записывать ли в журнал ICP-запросы)

logfile_rotate 10 (squid -k rotate переименовывает журнальные файлы, данный параметр задает количество старых копий для ротации)

err_html_text строка (подставляется в шаблоны текстов сообщений об ошибках - лежат в директории error - вместо %L)

deny_info err_page_name acl (запросы, не прошедшие проверку в http_access, проверяются на соответствие acl выдается соответствующее сообщение об ошибке из файла page_name)

client_db on|off (сбор статистики о клиентах, по умолчанию - включен)

buffered_logs on|off (при включении запись в журнал буферизуется и слегка ускоряется)

error_directory /usr/local/squid/share/errors/English

high_response_time_warning msec (выдается предупреждение, если среднее время ответа в течении минуты превышает указанную величину)

high_page_fault_warning штук-в-секунду (выдается предупреждение, если среднее за минуту число подкачек страниц в секунду превышает указанную величину)

high_memory_warning число (выдается предупреждение, если используется слишком много памяти - mallinfo)

strip_query_terms on (удалять параметры query перед записью в журнал)

параметры обработки запросов FTP, WAIS, gopher

passive_ftp on | off (по умолчанию включен, но если squid за firewall, то надо выключить (будет использоваться PORT); введен в 2.3-STABLE3)

ftp_user email-адрес (будет подставляться вместо пароля при анонимном доступе к ftp-серверам; по умолчанию - Squid@, что вызывает проблемы с серверами, которые проверяют синтаксис адреса)

ftp_list_width 32 (ширина листинга ftp) - маловато

ftp_sanitycheck on (проверять, чтобы сервер не перепослал нас куда-то ещё в ответе на команду PORT)

ftp_telnet_protocol on (отключить для доступа на FTP-сервер, нарушающий стандарты)

icon_directory /usr/local/squid/etc/icons (каталог с иконками для FTP-оглавления)

short_icon_urls off (использовать относительные URL для адресов иконок)

wais_relay_host localhost

wais_relay_port 8000 (куда перенаправлять wais-запросы; в новых версиях по умолчанию - 0, что правильно :)

параметры обработки DNS запросов

check_hostnames on (проверять DNS имена на соответствие стандартам)

allow_underscore on (разрешать подчёркивания в DNS именах)

cache_dns_program /usr/local/squid/bin/dnsserver

dns_children 5 (число внешних процессов, которые делают DNS lookup вместо squid - чтобы он не зависал, ожидая результата поиска; 0 - если не нужен (реально использвать только в версиях от 2.5); от 5 до 32; сколько их надо легко понять, просматривая cache.log; при 300 тыс. запросах в день уже третий dnsserver имеет нулевую загрузку)

dns_retransmit_interval 5 seconds (каждый следующий интервал удваивается)

dns_timeout 5 minutes

dns_defnames off (дополнять однокомпонентные DNS-имена доменом по умолчанию перед запросом DNS-сервера)

dns_nameservers список-IP-адресов (будет использоваться вместо того списка DNS-серверов, который опреден в /etc/resolv.conf; по умолчанию - none)

hosts_file /etc/hosts

dns_testnames netscape.com internic.net nlanr.net microsoft.com (список имен хостов на примере которых проверяется работоспособность DNS, чтобы запретить проверку надо использовать ключ -D)

append_domain .deol.ru (добавляется к имени хоста, если в нем нет ни одной точки)

positive_dns_ttl 6 hours

negative_dns_ttl 5 minutes

ignore_unknown_nameservers on (игнорировать сообщения от DNS-серверов, которые мы не запрашивали)

параметры внешних программ

diskd_program /usr/local/squid/libexec/

unlinkd_program /usr/local/squid/bin/unlinkd (программа, используемая в параллельном процессе для удаления файлов; не нужна, если используется async-io)

pinger_program /usr/local/squid/bin/pinger (имя программы, используемой в параллельном процессе pinger; только если при компиляции использовался ключ "--enable-icmp")

redirect_program none (позволяет подключить программу преобразования URL при каждом запросе; запускается при запуске самого squid и висит в ожидании очередной строки; см.)

redirect_children 5 (сколько процессов преобразования запускать параллельно)

redirect_rewrites_host_header on (по умолчанию, Squid переписывает поле "Host:" в заголовках преобразованных запросов, это не всегда хорошо)

redirector_access acl (какие запросы направлять через редиректор; по умолчанию - все; в версии 2.4 появились ключевые слова allow и deny перед acl)

url_rewrite_program имя-программы (в отличие от redirect_program дополнительно передаётся urlgroup)

url_rewrite_children 5 (сколько процессов преобразования запускать параллельно)

url_rewrite_concurrency 0 (сколько запросов каждый процесс может обрабатывать параллельно)

url_rewrite_host_header no (переписывать заголовок Host:)

url_rewrite_access acl (какие запросы направлять через преобразователь; по умолчанию - все)

location_rewrite_program имя-программы (преобразование URL в ответах)

location_rewrite_children 5 (сколько процессов преобразования запускать параллельно)

location_rewrite_concurrency 0 (сколько запросов каждый процесс может обрабатывать параллельно)

location_rewrite_access acl (какие запросы направлять через преобразователь; по умолчанию - все)

mail_program mail (имя программы для посылки письма при падении squid)

параметры аутентификации (для включения аутентификации необходимо задать в http_access ACL (типа proxy_auth, proxy_auth_regex, external %LOGIN) с использованием имён пользователей; аутентификация прокси несовместима с прозрачным режимом до 2.6.15; после изменения схемы требуется restart, а не reload):

auth_param схема имя-параметра значение (задание параметров для программ аутентификации в 2.5 и выше; squid может предлагать клиенту несколько схем аутентификации (заголовок Proxy-Authenticate:), а браузер должен выбрать из них самую безопасную из понимаемых им; на практике, браузеры обычно выбирают самую первую; порядок предъявления схемы определяется порядком первого появления имени схемы в squid.conf; выключить действие схемы командой reconfigure нельзя):

basic: если squid получает запрос, который попадает под ACL proxy_auth (proxy_auth_regex, external с %LOGIN) в http_access, то squid ищет заголовок Authorization и извлекает из него имя и пароль (base64, открытым текстом); если заголовок не обнаружен, то браузеру возвращается сообщение об ошибке 407 (Proxy Authentication Required) со списком допустимых схем аутентификации, браузер запрашивает у пользователя имя и пароль для определённой области действия (realm); полученные от пользователя имя и пароль браузер передаёт в последующих запросах к squid в заголовке Authorization; для аутентификации используется внешняя программа, которая получает на стандартный ввод имя и пароль и должна ответить "OK" или "ERR"; параметры: program (имя программы и параметры), children (5), concurrency (предварительно необходимо убедиться, что поддерживается), realm (область действия, показывается пользователю при запросе пароля), credentialsttl (2 часа), casesensitive (off), blankpassword (off); в комплекте поставки имеются программы:

NCSA (ncsa_auth, вместе с именем программы /usr/local/squid26/libexec/ncsa_auth указывается имя файла с именами и хешированными crypt/md5/sha1 паролями; файл можно заполнять, например, с помощью htpasswd из комплекта apache; необходимо закрыть на чтение, чтобы не подбирали)

getpwnam (getpwname_auth)

LDAP (squid_ldap_auth)

MSNT (обращается к NT серверу)

mswin_sspi (только под MS Windows NT?)

multi-domain-NTLM

PAM (pam_auth)

SASL (sasl_auth)

SMB (smb_auth, smb_auth.sh)

YP

digest - squid возвращает браузеру требование аутентифицироваться вместе с именем области действия и случайной строкой (nonce), браузер запрашивает имя и пароль и выдаёт squid запрос с именем пользователя; для аутентификации используется внешняя программа, которая получает на стандартный ввод имя пользователя и область действия и возвращает сделанный из них хеш или "ERR"; этот хеш возвращается браузеру, который делает из него и пароля пользователя второй хеш, который посылается в следующем запросе к squid; параметры: program (имя программы и параметры), children (5), concurrency, realm, nonce_garbage_interval (5 minutes), nonce_max_duration (30 minutes), nonce_max_count (50), nonce_strictness (off), check_nonce_count (on), post_workaround (off); в комплекте поставки имеются программы:

password (digest_pw_auth, вместе с именем программы /usr/local/squid26/libexec/digest_pw_auth указывается имя файла с именами пользователей и паролями в формате "имя:пароль"; можно указать ключ "-c" и имя файла с готовыми хешами - MD5 (имя:область-действия:пароль) - в формате "имя:область-действия:хеш"; файл необходимо закрыть от чтения)

ldap (digest_ldap_auth)

ntlm (NTLMv1 до 2.5.STABLE5) - используется протокол NTLMSSP между squid и браузером; с клиентской стороны поддерживается MS IE (не работает в MS Windows Server 2003; "keep_alive off" на сервере не помогает, включение HTTP 1.1 для прокси на клиенте не помогает, помогает перевод клиента с NTLMv2 на LM: установить HKLM\System\CurrentControlSet\Control\LSA\LMCompatibilityLevel из 2 в 0) и Firefox (на всех платформах); Opera 9.02 под MS Windows выдаёт окошко для ручного ввода имени и пароля только, если ntlm-аутентификация является единственной; первый запрос браузер делает без указания аутентификационной информации; squid возвращает сообщение об ошибке 407 с указанием "Proxy-Authenticate: NTLM"; затем squid разрывает соединение, не глядя на keep-alive; клиент создаёт новое соединение и выдаёт запрос с "Proxy-Authorization: NTLM что-то", на что squid опять отвечает 407 с указанием "Proxy-Authenticate: NTLM другое-что-то"; теперь браузер может послать достаточно информации для аутентификации пользователя определённого домена; со следующим запросом клиента цикл повторяется в отличие от basic аутентификации (2 лишних пакета, 20% трафика), если разорвать TCP соединение; для аутентификации используется внешняя программа, которая участвует в этом протоколе; параметры: program (имя программы и параметры), children (5), keep_alive (on, могут быть проблемы с IE); в комплекте поставки имеются:

fakeauth (проверяет только синтаксис запроса),

mswin_sspi (только под MS Windows NT?),

no_check (no_check.pl, проверяет только синтаксис запроса),

SMB (ntlm_auth, обращается к контроллеру домена; параметры: имя-домена/имя-DC ... (необходимо определить в DNS соответствующее имя); требуется пропускать пакеты к DC на порт TCP/139; простейший тест: запустить "ntlm_auth -d имя-домена/имя-DC" и ввести "YR"; ключ "-d" вызывает выдачу большого объёма отладочной печати в cache.log

предлагается также использовать ntlm_auth из пакета samba-common с параметром --helper-protocol=squid-2.5-ntlmssp)

negotiate - используется протокол SPNEGO (Simple and Protected GSS-API Negotiation) между squid и браузером; для аутентификации используется внешняя программа, которая участвует в этом протоколе; параметры: program (имя программы и параметры), children (5), keep_alive (on, могут быть проблемы с IE); в комплекте поставки имеются: mswin_sspi (только под MS Windows NT?), ожидается поддержка SPNEGO в ntlm_auth из Samba-4.X (--helper-protocol=gss-spnego)

authenticate_program none (убрана в 2.5; позволяет производить аутентификацию клиентов, делающих запросы; программа должна в цикле читать строку "имя пароль" выдавать OK или ERR; должен быть определен ACL proxy_auth; традиционная для 2.4 программа аутентификация определена в ../auth_modules/NCSA (надо сказать make; make install), после чего добавить

authenticate_program /usr/local/squid/bin/ncsa_auth /usr/local/squid/etc/passwd

authenticate_children 5 (сколько параллельных процессов будут заниматься аутентификацией; убрана в 2.5)

authenticate_ttl 3600 (сколько секунд кешировать результаты работ программы аутентификации)

authenticate_cache_garbage_interval 1 hour (интервал сборки мусора)

authenticate_ip_ttl 0 (чтобы с нескольких мест не пользовались одним именем, требуется повторная аутентификация клиента, см. также max_user_ip)

authenticate_ip_ttl_is_strict on (убрана в 2.5)

proxy_auth_realm Squid proxy-caching web server (строка текста, которая будет выдана на экран клиента при запросе имени/пароля доступа к кешу; в 2.4 заменен обобщенной директивой auth_param; убрана в 2.5)

пример:

auth_param ntlm program /usr/local/squid/libexec/ntlm_auth имя-домена/простое-имя-DC

auth_param ntlm children 10

# файл digest_passwd_ha1 содержит имена и хеши для схемы digest

auth_param digest program /usr/local/squid/libexec/digest_pw_auth -c /usr/local/squid/etc/digest_passwd_ha1

auth_param digest realm proxy (digest, ha1)

# файл ncsa_passwd содержит имена и хеши для схемы basic

auth_param basic program /usr/local/squid/libexec/ncsa_auth /usr/local/squid/etc/ncsa_passwd

auth_param basic realm proxy (basic)

...

# файл noauth.acl содержит список IP, запросы с которых принимаются без аутентификации

acl noauth src "/usr/local/squid/etc/noauth.acl"

http_access allow noauth

# файл auth.acl содержит список IP, запросы с которых принимаются с аутентификацией

acl auth src "/usr/local/squid/etc/auth.acl"

acl password proxy_auth REQUIRED

# файл authname.acl содержит список IP, запросы с которых принимаются с аутентификацией

# по ограниченному списку имён;

acl authname src "/usr/local/squid/etc/authname.acl"

# список допустимых имён пользователей (как WS2003, так и pre-2000; в кодировке cp1251 ;)

# задаётся в файле names.acl с добавлением имени домена или имени компьютера

acl password-name proxy_auth "/usr/local/squid/etc/names.acl"

http_access allow authname password-name

...

timeout's

forward_timeout 4 minutes (максимальное время поиска пути)

connect_timeout 120 seconds (сколько времени ждать соединения от squid к серверу)

minimum_retry_timeout 5 seconds (если сервер имеет несколько IP адресов, то connection timeout делится на их количество, данный параметр ограничивает получившийся результат снизу, маловато; убран в 2.5)

peer_connect_timeout 30 seconds

siteselect_timeout 4 seconds (сколько времен разрешается потратить на выбор URL из URN; убрана в 2.5)

read_timeout 15 minutes (сколько времени разрешается ждать следующего байта от сервера, достаточно и 5 минут)

request_timeout 30 seconds (сколько разрешается ждать запроса после установления соединения, маловато)

persistent_request_timeout 1 minute (в 2.4)

client_lifetime 1 day (сколько времени разрешать клиенту быть присоединенным к squid; в т.ч. в случае если он ушел не попрощавшись; это перебор, хватит и 8 часов; соединение обрывается даже если происходит передача данных!)

half_closed_clients on (разрешать наполовину закрытые соединения - например чтение есть, а запись уже закрыта; не стоит их баловать)

pconn_timeout 120 seconds (постоянные соединения с серверами и другими кешами)

ident_timeout 10 seconds

shutdown_lifetime 30 seconds (сколько времени продолжать обслуживание после получения SIGTERM or SIGHUP)

maximum_single_addr_tries 3 (сколько раз пытаться достучаться до сервера, имеющего 1 IP адрес; если сервер имеет несколько IP адресов, то каждый из них будет опробован ровно один раз)

ACL - определение списка доступа (тип: тип объекта, строка: регулярное выражение - шаблон для сравнения; по умолчанию чувствительное к регистру букв (строчные/прописные); чтобы игнорировать регистр букв, надо использовать ключ "-i")

acl имя тип строка ... ... (логическое ИЛИ)

acl имя тип "имя файла" (по одному параметру в строке)

external_acl_type имя опции формат имя-программы параметры (описание внешней программы обработки ACL)

типы:

src ip-address/netmask ... (clients IP address)

src addr1-addr2 ... (range of addresses)

dst ip-address/netmask ... (URL host's IP address)

myip ip-address/netmask ... (local socket IP address)

srcdomain foo.com ... (reverse lookup, client IP)

dstdomain foo.com ... (Destination server from URL; если в URL использовался IP, то делается попытка определить имя домена, если не удалась, то подставляется слово "none")

srcdom_regex [-i] строка ... (regex matching client name)

dstdom_regex [-i] строка ... (regex matching server; если в URL использовался IP, то делается попытка определить имя домена, если не удалась, то подставляется слово "none")

time [day-abbrevs] [h1:m1-h2:m2] (где день это одна буква из SMTWHFA)

url_regex [-i] строка (регулярное выражение для всего URL)

urlpath_regex [-i] строка (регулярное выражение для path-части URL)

...

Подобные документы

  • Настройка списка контроля доступа для компьютерной сети, выходящей в интернет через прокси-сервер Squid. Использование и типы прокси-серверов, описание их архитектуры. Списки контроля доступа, идентификация, настройка конфигурации и запуск серверов.

    курсовая работа [1,3 M], добавлен 26.08.2010

  • Основные характеристики и особенности использования прокси-сервера в локальной сети. Способы выхода в Интернет из локальных сетей. Методы аутентификации прокси-сервером пользователя клиента, авторизация клиента для доступа к определенному контенту.

    курсовая работа [887,9 K], добавлен 21.04.2019

  • Определение логической и физической структуры предприятия. Реализация локальной вычислительной сети, согласно, построенной схемы и модели. Моделирование сети в Cisco Packet Tracer. Обеспечение доступа к Интернету. Установка и настройка серверов.

    курсовая работа [3,8 M], добавлен 22.05.2019

  • История развития вычислительных сетей. Понятия рабочих групп и доменов. Подключение к Интернет через прокси-сервер локальной сети. Возможности администрирования операционных систем Windows. Организация локальной вычислительной сети в компьютерном классе.

    курсовая работа [1,3 M], добавлен 23.05.2013

  • Прокси-сервер UserGate как оптимальное решение, позволяющее администратору организовать работу пользователей локальной сети в Интернет. Структурно-функциональная схема организации. Определение задач автоматизации. Программное и информационное обеспечение.

    курсовая работа [2,2 M], добавлен 03.07.2012

  • Модификация системы управления пользователями прокси-сервера SQUID. Выбор средств разработки программного обеспечения. Структура базы данных MySQL. Построение web-интерфейса. Авторизация в системе управления пользователями, страница администрирования.

    курсовая работа [456,2 K], добавлен 23.07.2011

  • Соединение компьютеров в сеть. Разработка локальной вычислительной сети. Организация информационного обмена данными между рабочими станциями, организация доступа пользователей к ресурсам ЛВС. Имитационная и математическая модели модернизированной сети.

    дипломная работа [2,8 M], добавлен 27.11.2012

  • Обоснование модернизации локальной вычислительной сети (ЛВС) предприятия. Оборудование и программное обеспечение ЛВС. Выбор топологии сети, кабеля и коммутатора. Внедрение и настройка Wi-Fi - точки доступа. Обеспечение надежности и безопасности сети.

    дипломная работа [2,4 M], добавлен 21.12.2016

  • Разработка проводной локальной сети и удаленного доступа к данной сети с использованием беспроводной сети (Wi-Fi), их соединение между собой. Расчет времени двойного оборота сигнала сети (PDV). Настройка рабочей станции, удаленного доступа, сервера.

    курсовая работа [2,0 M], добавлен 10.11.2010

  • Способы связи разрозненных компьютеров в сеть. Основные принципы организации локальной вычислительной сети (ЛВС). Разработка и проектирование локальной вычислительной сети на предприятии. Описание выбранной топологии, технологии, стандарта и оборудования.

    дипломная работа [2,3 M], добавлен 19.06.2013

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

    курсовая работа [749,1 K], добавлен 05.05.2010

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

    дипломная работа [1,4 M], добавлен 22.12.2010

  • Основные требования к созданию локальной сети и настройке оборудования для доступа обучающихся к сети Интернет. Принципы администрирования структурированной кабельной системы, его виды (одноточечное и многоточечное). Выбор сетевого оборудования.

    дипломная работа [2,1 M], добавлен 11.07.2015

  • Анализ административного программного обеспечения локальной сети. Структура сетевых операционных систем. Планирование и сетевая архитектура локальной сети. Использование сетевых ресурсов на примере предприятия, предоставляющего услуги Интернет-провайдера.

    контрольная работа [112,5 K], добавлен 15.12.2010

  • Token ring как технология локальной вычислительной сети (LAN) кольца с "маркерным доступом" - протокол локальной сети на канальном уровне (DLL) модели OSI. Логическая организация станций Token ring в кольцевую топологию с данными. Описание метода доступа.

    лекция [168,8 K], добавлен 15.04.2014

  • Классификация локальной вычислительной сети. Типы топологий локальной вычислительной сети. Модель взаимодействия систем OSI. Сетевые устройства и средства коммуникаций. Виды сетевых кабелей. Конфигурация компьютеров-серверов, техники рабочих станций.

    курсовая работа [1,3 M], добавлен 05.01.2013

  • Задачи, решаемые малым предприятием с использованием Интернет-ресурсов. Способы и схемы подключения к сети Интернет. Организация доступа к информации и требования к технологии управления сетью. Расчет суммарных затрат на разработку программного продукта.

    дипломная работа [2,0 M], добавлен 17.10.2013

  • Общий анализ структуры локальной вычислительной сети военного назначения. Необходимость повышения защиты информации путем использования дополнительных средств защиты. Создание виртуальных защищенных сетей в рамках локальной компьютерной сети объекта.

    дипломная работа [1,2 M], добавлен 20.10.2011

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

    курсовая работа [43,9 K], добавлен 21.07.2012

  • Проект локальной вычислительной сети, объединяющей два аптечных магазина и склад. Выбор топологии сети и методов доступа. Технико-экономическое обоснование проекта. Выбор сетевой операционной системы и разработка спецификаций. Смета на монтаж сети.

    курсовая работа [501,4 K], добавлен 08.06.2011

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.