то заставляет squid "слушать" пакеты, приходящие на адрес 192.168.1.1, порт 6080. Прежде чем выбирать номер порта, убедитесь, что он не занят другим
приложением. Это самая часто встречаемая ошибка при настройке squid.
Движемся дальше. В процессе настройки конфигурационного файла важной опцией
является cache_mem. Она определяет количество оперативной
памяти, которую может использовать proxy-сервер для кеширования.
Я просто раскомментировал эту строку и изменил значение на -- 64
Мб.
Далее следуют опции, указывающие процент минимального и максимального уровня
заполнения дискового кеша. При достижении уровня cache_swap_high, начинается
ускоренный процесс удаления данных из кеша. Процесс прекращается при уровне
заполнения cache_swap_low.
#cache_swap_low 90 #cache_swap_high 95
|
Я раскомментировал и изменил эти строки. Указанные мною значения были выбраны
исходя из того, что в моём распоряжении был жесткий диск на 60 Гб:
cache_swap_low 95 cache_swap_high 97
|
Так....пока всё хорошо. Мы сообщили squid'у на каком порту и для какого
адреса он должен слушать приходящие пакеты, сколько памяти он может использовать
и какую долю объема дискового кеша (в процентах) он может занимать, прежде чем
начнёт удалять старую информацию. Замечательно! Если вы внесли все изменения, о
которых я говорил, то самое время сохранить их.
Следующая и предпоследняя опция, которую я менял, была одной из наиболее
важных -- она определяла местоположение и размер подкаталогов дискового кеша.
Настроил я её вот так:
cache_dir /var/squid/cache 100 16 256
|
Что о чём тут говорит? "/var/squid/cache" указывает на путь к дисковому кешу
с максимальным размером в 100 Мб, содержащему 16 подкаталогов верхнего уровня,
каждый из которых в свою очередь содержит 256 подкаталогов.
Последнее, что нужно "подкрутить" в этом файле, прежде чем переходить к
настройке фильтров, это использование регистрационных журналов. Следующими за
опциями настройки кеша (cache_dir) идут опции, описывающие расположение
регистрационных журналов (логов). Как правило, squid пишет информацию в четыре
журнала:
- access log
- cache log
- store log
- swap log
Каждый из журналов имеет в работе proxy-сервера своё собственное назначение.
Обычно я "веду" только два из них -- access log и cache log (журналы доступа и
использования кеша). По здравому размышлению, остальные мне просто не нужны.
:-)
Журнал доступа (access log) регистрирует все запросы, которые делает
пользователь (т.е. на какой сайт он хочет попасть, какой файл скачать и т.д.).
Когда я учился в школе, мне было не очень интересно, кто и куда пытался
попасть. Теперь же я рекомендую всем сисадминам включать эту опцию -- этот
журнал очень важен.
Итак, я сделал следующее (раскомментировав TAGS):
cache_access_log /var/squid/logs/access.log cache_log /var/squid/logs/cache.log |
Рекомендую вам оставить пути к файлам журналов как есть.
Обычно я оставляю большинство опций в squid.conf закомментированными.
Существует множество ключей, подходящих для различных ситуаций. Каждая опция
хорошо (я бы сказал, избыточно) документирована, поэтому, если вы захотите
выяснить, что она делает, то прочтите соответствующие комментарии в
squid.conf.
В этом разделе мы продолжаем рассматривать "/etc/squid/squid.conf" и я собираюсь
подробнее остановиться на контроле доступа (access control).
Контроль доступа предоставляет системному администратору способ
контролировать то, какие пользователи могут подключаться к proxy-серверу, через
какие IP-адреса, порты и т.д. Такой контроль может быть удобен в больших
сетях.
Обычно ACL (Access Control Lists -- списки контроля доступа) содержат
следующие настройки:
- src - Источник, т.е. IP-адрес клиента
- dst - Пункт назначения, т.е. IP-адрес сервера
- srcdomain - Источник, т.е. имя домена клиента
- dstdomain - Пункт назначения, т.е. имя домена сервера
- time - Время суток и день недели
- url_regex - Шаблон (регулярное выражение) для поиска в URL
- urlpath_regex - Шаблон (регулярное выражение) для поиска в пути,
содержащемся в URL, исключая протокол и имя хоста
- proxy_auth - Аутентификация пользователя посредством внешних процессов
- maxconn - Максимальное количество соединений для конкретного IP-адреса
клиента
Все правила контроля доступа имеют следующий формат:
acl acl_config_name type_of_acl_config values_passed_to_acl |
В конфигурационном файле squid.conf найдите строку:
И перед ней добавьте следующее:
acl weekendmechnetwork src 192.168.1.1 acl weekendmechnetwork src 192.168.1.2 acl weekendmechnetwork src 192.168.1.4 http_access allow weekendmechnetwork http_access deny all
|
Вы можете изменить имя ACL-правила "weekendmechnetwork" на любое другое по
вашему выбору. В нашем случае правило с именем "weekendmechnetwork" используется
для определения IP-адреса.Строка "http_access allow weekendmechnetwork" говорит, что для клиента
"weekendmechnetwork" разрешён доступ через http-протокол.
Если вы хотите разрешить доступ в Интернет любой машине, то объявите
следующее правило:
Все теперь у нас есть одна группа с именем weekendmechnetwork, создадим еще одну группу пользователей и ограничим им доступ к некоторым ресурсам в рабочее время.
Создайте файл /etc/squid/block.txt и поместите регулярные выражения, которые будут блокироваться
odnoklassniki vkontakte sex porno
|
Теперь в "/etc/squid.conf" укажите следующее:
acl work_time time MTWHF 09:00-18:00
acl weekendmechnetwork src 192.168.1.5 acl weekendmechnetwork src 192.168.1.7 acl weekendmechnetwork_bl src 192.168.1.2 acl weekendmechnetwork_bl src 192.168.1.4 acl block url_regex -i "/etc/squid/block.txt" http_access deny weekendmechnetwork_bl block work_time http_access allow weekendmechnetwork_bl http_access allow weekendmechnetwork http_access deny all
|
Теперь подробнее о новых изменениях:
acl work_time time MTWHF 09:00-18:00 - ACL-правило,
обозначающее временные отрезки, где M (Monday - Понетельник), T (Tuesday - Вторник)..... и время в 24-часовом формате. Время указывается до 00:00 часов, тоесть создать правило с 23:00-08:00 - Нельзя, прийдется создавать два правила с 23:00-23:59 и 00:00-08:00.
acl weekendmechnetwork_bl src IP - добавляем в эту группу IP-адреса которым запрещен доступ в рабочее время к определенным ресурсам.
acl block url_regex -i "/etc/squid/block.txt" - тут мы указали путь к файлу с регулярными выражениями для блокировки URL в которых будут встречатся эти регулярные выражения.
http_access deny weekendmechnetwork_bl block work_time - запрещаем группе weekendmechnetwork_bl доступ к определенным ресурсам в рабочее время.
http_access allow weekendmechnetwork_bl - разрешаем группе weekendmechnetwork_bl доступ к остальным ресурсам.
Теперь у нас есть две группы пользователей, с полным доступом weekendmechnetwork и с ограниченным доступом в рабочее время weekendmechnetwork_bl.
Теперь мы переходим к более важной части -- запуску squid. К сожалению, если
вы впервые столкнулись со squid, то вам придётся "перелопатить" несколько опций,
используемых при его запуске.
Большая часть ключей, как правило используемых при запуске squid,
представлена в таблице.
Флаг | Описание |
-z
| Ключ заставляет создать swap-директории, необходимые для
squid. Используется только в том случае, если squid запущен впервые или
ваши кеш-директории были удалены. |
-f
| Эта опция позволяет вместо "/etc/squid.conf" использовать
альтернативный конфигурационный файл. Однако, эта опция используется не
часто. |
-k reconfigure | Этот ключ говорит squid перегрузить конфигурационный файл,
без остановки демона squid. |
-k rotate | Эта опция заставляет squid произвести ротацию журналов --
старые записи удаляются и журналы начинаются заново. Как правило, этот
ключ используется при запуске squid через cron. |
-k shutdown | Остановить выполнение squid. |
-k check | Проверить запущен ли демон squid. |
-k parse | То же, что и "-k reconfigure". |
А это полный список существующих ключей:
Usage: squid [-dhsvzCDFNRVYX] [-f config-file] [-[au] port] [-k signal] -a port Установить номер HTTP-порта (по умолчанию: 3128). -d level Записывать отладочную информацию в stderr. -f file Использовать конфигурационный файл, вместо /etc/squid.conf -h Напечатать справочное сообщение. -k reconfigure|rotate|shutdown|interrupt|kill|debug|check|parse "Парсить" конфигурационный файл, затем послать сигнал запущенной копии (исключая -k parse) и выйти. -s Включить запись в syslog. -u port Определить номер ICP-порта (по умолчанию: 3130), 0 - отключить. -v Показать номер версии. -z Создать swap-директории -C Не обрабатывать критические сигналы (fatal signals). -D Отключить начальные тесты DNS. -F Заново загрузить все мета-данные прежде, чем приступить к выполнению запросов. -N Запустить squid в не-демон режиме. -R Не устанавливать REUSEADDR на порт. -V Виртуальный хост httpd-акселератор. -X Включить отладочный режим. -Y Возвращать только UDP_HIT или UDP_MISS_NOFETCH при быстрой перезагрузке.
|
Если вы запускаете squid первый раз, то запустите его под правами root'а с
ключом "-z":
Это создаёт кеш на диске.
Теперь вы можете выполнить команду:
Источник: http://pc-inform.ru и http://forum.ru-board.com