Итак, приступаем .... скачиваем squid-2.1.PATCH2-src.tar.gz - самую последнюю версию.
Распаковываем его (gzip -d), разворачиваем (tar xvf). И запускаем ./configure --
prefix=/usr/local/squid, где /usr/local/squid - путь до места, куда установиться squid со всем своим
содержимым. Во время отработки смотрим на то, что выводит программа .... на обычно
устанновленных линуксах она предупредит, что число файл-дескрипторов недостаточно для
загруженного кеша. Но на практике установок по умолчанию хватает для нормальной работы
кеша для 10-15 клиентов, если Вас это не устраивает, то в предупреждающем сообщении
указывается адрес, по которому расписано, что и куда смотреть и делать. После отработки
configure можете запустить make - squid пойдет компилиться ;-). Это занимает некоторое время
;-). После отработки make запустите с правами суперпользователя make install. Маленькое
предупреждение - перед make install убедитесь, что предыдущая версия сквида выключена. И
маленькая подсказка ... по умолчанию инсталлятор squid в каталог etc/errors (заметьте, пути
относительные !!) записывает файлы с английскими сообщениями, для полной красоты можно
взять и переписать из одноименного каталога в поставке сообщения на русском языке (в кои или
вынь кодировке, лежит в errors/Russian*). Теперь можно попробовать запустить squid.
Переходим в каталог /usr/local/squid/bin и говорим ./squid& .... если вы пускаете его первый раз,
то он сругается на невозможность открыть каталог с кэшем и даже выдаст командочку, которую
ему надо дать, чтобы он их сделал .... если же не первый раз, то обычно ничего видимого не
происходит ...
Да, хочу напомнить, что Squid является только http- и ftp-over-http- прокси кэшем! Он не умеет
работать с ICQ или любыми другими программами.
Теперь будем разбираться с настройками ... все настройки у сквида лежат в etc/squid.conf,
вот его открываем на редактирование и меняем следующие места (весь файл редактировать не
надо ... там очень много комментариев, и ненужных опций )....
http_port 3128 - номер порта, на котором сквид будет слушать команды от клиентов. Дальше
идут настройки для связки 2х и более сквидов в совместную работу, я этим не занимался,
поэтому опускаю ...
hierarchy_stoplist cgi-bin ? chat - слова в урл, при которых сквид не будет кешировать странички,
а будет напрямую перенаправлять запрос серверу, в данном примере он не будет кешировать
динамически генерируемые страницы (поисковые сервера, некоторые другие серверы и чаты ;-
)))
acl QUERY urlpath_regex cgi-bin \? chat
no_cache deny QUERY - примерно аналогично предыдущему случаю, но касательно кэша... то
есть если каким-либо данные странички попали в кэш (ну например работал сквид без
предыдущей строчки некоторое время), то они немедленно удаляются из кеша.
cache_mem 20 MB - сколько оперативной памяти сквид может забрать под свои нужды. По
умолчанию стоит 8 мегабайт, что хватит лишь при очень слабой загрузке ...
maximum_object_size 16384 KB - максимальный размер объектов, которые будут сохранены в
кэше. По умолчанию стоит 4 мегабайта ...
cache_dir /usr/local/squid/cache 500 16 256 - указывает сквиду, где сохранять кешируемые файлы.
Указывает отдать под кеш 500 мегабайт и создать 16 и 256 соответственно каталогов 1го и 2го
уровня ...про каталоги сами все поймете, когда загляните в место, где у сквида кэш ...;-)
cache_access_log /usr/local/squid/logs/access.log
cache_log /usr/local/squid/logs/cache.log
cache_store_log /usr/local/squid/logs/store.log - файлы, где сквид хранит отчет о своих действиях
,соответственно кто куда ходил, вообще о себе, и чтокуда положил .... очень полезные файлики
для статистики ... как собирать статистику, расскажу в следующих номерах.
ftp_user anonymous@multik.istu.ru - очень важная опция - показывает сквиду, под каким паролем
ходить сквиду на анонимные серверы. По умолчанию тут стоит Squid@ - многие ftp серверы не
пускают так ;-)
cache_dns_program /usr/local/squid/bin/dnsserver - путь до программки, которая помогает сквиду
хранить имена.
authenticate_program /usr/local/squid/bin/ncsa_auth /usr/local/squid/etc/passwd - указание
аунтифицирующей программы в случае, если охота, что бы сквид запрашивал логин/пароль у
пользователя для доступа к кешу. В данном случае указана поставляющаяся в поставке сквида
программа ncsa_auth, для которой сипользуется файл паролей etc/passwd (ФОРМАТ
ОТЛИЧНЫЙ ОТ /etc/passwd, подробнее читайте readme к ncsa_auth).
quick_abort_pct 60 - указывает сквиду, при достижении какого обьема (в данном случае 60
процентов) от уже скаченного файла, при отказе пользователя от дальнейшей скачки, сквид все
равно будет докачивать файл. Т.е если пользователь выкачал (по статистике браузера) 650 кил
из мега, и решил отказаться, нажав кнопку stop, сквид все равно постарается докачать этот файл
до конца. Поаккуратней с этой опцией на медленных каналах.
negative_ttl 1 minutes - время жизни страничек с ошибкой. По истечении заданного времени
сквид снова полезет по указанному адресу ...
positive_dns_ttl 6 hours
negative_dns_ttl 5 minutes - время жизни соответственнно удачного и неудачного резолвинга
DNS имен в ip адреса ...
half_closed_clients on - при частичных зависах клиентов насильно пристреливать их ;-).
Дальше пошло самое интересное разграничение прав пользователей ... сначала определяется
ACL (access control list). Расписано в комментариях там очень хорошо, и по умолчанию там
определены acl почти все для всех .... комментируем все строчки, начинающиеся на acl, и пишем
свою.
acl users proxy_auth multik tolik - этой строчкой мы указываем сквиду новый acl, по которому мы
разрешаем пускать пользователей multik&tolik с использованием аунтифицирующей программы
через сквид (если честно, то я так и не понял .. сквид все равно пускает всех тех, кто указан в
файле паролей).
acl BANNER url_regex banner reklama linkexch banpics us\.yimg\.com [\./]ad[s]?[\./] - в этом acl мы
указывем все (или почти) урл, которые указывают на рекламу ...
http_access deny !users
http_access deny BANNER - в этих двух простых строчках мы указываем сквиду, не пускать тех,
кто не подходит под acl users, и второй строчкой запрещаем доступ к рекламе для всех ....
ВНИМАНИЕ !!! Закоментируйте последующие строчки http_access,icp_access, miss_access по
умолчанию они разрешают всем доступ на все ...Если вы не знаете, что делает то или иное
правило, закомментируйте его и перезагрузите потом сквид !!!
proxy_auth_realm Multik proxy-caching web server - строчка, которую сквид выводит в окно с
логином/паролем. Используется для индификации сквида.
cache_mgr multik@istu.ru - при всех проблемах с кешем выводить этот адрес как контактный.
cache_effective_user nobody
cache_effective_group nogroup - от какого пользователя/группы работает сквид.
logfile_rotate 1 - время ротации логов ... мне нужно для использование вместе с статистикой.
forwarded_for on - разрешить показывать в посылаемых заголовках адрес клиента сквида ....
Например, если запрос пришеил с машины 192.1.2.3, то в заголовок будет включена строка X-
Forwarded-For: 192.1.2.3, если поставить этот параметр в off, то будет включена строка X-
Forwarded-For: unknown. Что вам выбрать, решайте сами ....
cachemgr_passwd [*****] all - пароль на cachemgr (менеджер кеша). Пароль свой, понятное дело
, я вам не покажу ....;-)) пароль этот разрешает делать с кэшем все (all)... более подробно
смотрите в конфигурационном файле, там расписано ;-)
client_db on - собирать статистику по клиентам ?
Вот в основном и все .... дальше пошли ограничения пользователей по обьему скачиваемой
информации/скорости, управление по snmp и прочее, что в нормальной жизни я надеюсь, Вам
никогда не понадобиться ....теперь перезапустите сквид и можете наслаждаться, как при
попытке запросить что-то из сквида выскочит окошко с логином и паролем ...;-))
В качестве маленького дополнения ....программу ncsa_auth можно взять в каталоге
auth_modules, там кроме нее лежит программа для аунтификации в домене win_nt. Как
устанавливать и компилировать - просто зайдите в соответствующий каталог и скажите make.
Программу, с помощью которой заводятся пароли, можно взять из комплекта Apache,
называется htpasswd.
Напоследок я выложу еще несколько acl, ведь не всем нужна обязательная авторизация по
паролю
acl intranet src 172.0.0.0/255.0.0.0 - указывает на всех пользователей, у которых ip-адрес
начинается с 172.
acl work_time time MTWHF 9:00-17:00 - указывает на рабочие дни с 9 до 17 ...
acl ftp_serv url_regex ^ftp:// - указывает, на облом всех ftp сервера ....
ну и потом путем их комбинаций и методов allow и dell можно перекрыть все, что угодно кому
угодно и когда угодно ....ведь можно их комбинировать ... например
acl piktime time 8:00-17:00
acl nopikftp src "/opt/squid/etc/fullftp"
http_access allow nopikftp !piktime
Разрешает доступ к клиентам, адреса/маски которых указаны в файле fullftp, доступ в любое
время, кроме как с 8 утра и до конца рабочего времени ;-)))
Кроме вышеперечисленных возможностей, у сквида есть возможность http-акселератора,
анономайзера, ограничения по скорости/объему и многое что другое .... для выяснения всех его
возможностей надо просто хорошо прочитать файл squid.conf ;-)
|
|
|