Чтение онлайн

ЖАНРЫ

Linux-сервер своими руками

Колисниченко Денис Николаевич

Шрифт:

Позволяет производить аутентификацию клиентов, делающих запросы. При этом должен быть определен ACL proxy_auth.

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

Традиционная программа аутентификации. Определена в ../auth_modules/NCSA.

15.5.6. Списки ACL

ACL (Access Control Lists) — списки контроля доступа. Довольно часто возникает потребность группировки однотипных параметров в единое целое для их последующей обработки. Для эффективного решения этой задачи используются списки контроля доступом (ACL). Например:

acl SSL_ports port 4-43 563

Эта запись означает,

что создается список SSL_ports типа port. Элементами списка являются номера портов 443 и 563.

Добавить новый элемент к уже существующему списку (параметр add) можно так:

acl add SSL_ports port 999

Удалить ненужный элемент можно с помощью параметра del: acl del SSL_ports 999

Переименовать список позволяет параметр ren (от rename):

acl ren SSL_ports Allowed_ports

Удалить все списки вместе с их содержимым позволяет параметр flush:

acl flush

Стандарт ACL требует, чтобы перед именем списка обязательно был указан символ $. Другими словами, все перечисленные выше примеры по большому счету должны быть неправильными. Например, для создания списка нужно использовать запись:

acl $SSL_ports port 443 563

Однако большинство фильтров, например SQUID, пренебрегают этим требованием, и вы можете указывать имена списков без знака доллара.

Итак, ACL — это определение списка доступа. Имеет следующий формат:

acl имя тип строка

где: тип — это тип объекта;

 строка — регулярное выражение.

Можно использовать список:

acl имя тип имя_файла

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

Типы ACL Таблица 15.3

Тип Описание типа
Src ip-address/netmask Задает IP-адрес клиентов
Src addr1-addr2/netmask Указывает диапазон адресов
Dst ip-address/netmask Задает URL хостов
Time [day-abbrevs] [h1:m1-h2:m2] Время, где день — это одна буква из SMTWHFA
Port Список портов
Port port1–port2 Диапазон портов
Proto Протокол — HTTP или FTP
Method Метод — GET или POST
Browser [-i] regexp Сравнивается заголовок User-Agent

[-i] — игнорируется регистр букв.

15.5.7. Параметры доступа

http_access allow|deny aclname

Разрешать доступ к прокси по HTTP.

icp_access allow | deny aclname

Разрешать доступ к прокси по ICP.

miss_access allow | deny aclname

Разрешить получать ответ MISS от вас.

cache_peer_access cache-host allow|deny aclname

Ограничить запросы к данному соседу — расширение для cache_peer_domain.

proxy_auth_realm Squid proxy-caching web server

Строка текста, которая будет выдана на экран клиента при запросе имени/пароля доступа к кэшу.

15.5.8.

Параметры администрирования

cache_mgr email

Данный параметр задает почтовый адрес, на который будет послано письмо, если squid перестанет функционировать.

cache_effective_user nobody

При запуске SQUID от имени root изменить UID на указанный в параметре cache_effective_user.

cache_effective_group nogroup

При запуске SQUID от имени root изменить GID на указанный в параметре cache_effective_group.

visible_hostname имя_хоста

Это имя будет упоминаться в сообщениях об ошибках.

hostname_aliases имя

Этот параметр задает список синонимов для имени хоста.

15.6. Отказ от рекламы. Баннерный фильтр

Вам не хочется тратить лишнее время на загрузку рекламных баннеров? Мне тоже. К счастью, SQUID позволяет достаточно просто решить эту проблему. Просто вставьте следующие строки в свой файл /usr/local /etc/squid/squid.conf:

acl good_url url_regex "/usr/local/etc/squid/acl/good_url"

acl bad_urlpath urlpath_regex "/usr/local/etc/squid/acl/bad_urlpath"

acl bad_url url_regex "/usr/local/etc/squid/acl/bad_url"

http_access deny bad_urlpath !good_url

http_access deny bad_url !good_url

Соответственно, нужно будет создать три файла: good_url, bad_url_path и bad_url. В файл bad_url следует поместить «плохие» URL, например:

^http://.*doubleclick

^http://.*-ad.flycast.com/server/img/

^http://1000-stars-ru/cgi-bin/1000-cgi

^http://1000.stars.ru/cgi-bin/1000.cgi

^http://12.16.1.10/~web_ani/

А в файл bad_url_path — «плохой» путь, например:

88x31.*gif

88x31.*GIF

100x80.*gif

100x80.*GIF

100x100.*gif

100x100.*GIF

120x60.*gif

120x60.*GIF

179x69.*gif

193x72.*gif

468x60.*gif

Обычно такие имена имеют баннеры.

Примеры файлов good_url, bad_url_path и bad_url можно взять на моей домашней страничке — http://dkws.narod.ru

15.7. Разделение канала

Допустим, вам нужно настроить прокси-сервер таким образом, чтобы одна группа компьютеров могла работать с одной скоростью, а другая — с другой. Это может потребоваться, например, для разграничения пользователей, которые используют канал для работы, и пользователей, которые используют ресурсы канала в домашних целях. Естественно, первым пропускная способность канала важнее, чем вторым. С помощью прокси-сервера SQUID можно разделить канал.

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

delay_pools 2

Затем определите классы пулов. Всего существует три класса:

1. Используется одно ограничение пропускной способности канала на всех.

2. Одно общее ограничение и 255 отдельных для каждого узла сети класса С.

3. Для каждой подсети класса В будет использовано собственное ограничение и отдельное ограничение для каждого узла.

В файл squid.conf добавьте следующие директивы:

Поделиться с друзьями: