Установка и настройка Squid
Достаточно
исчерпывающую литературу по установке и
настройке Squid можно посмотреть здесь
или здесь
Но для установки и настройки рабочей версии Squid, для большинства случаев, имхо - достаточно этого: |
|
Во первых, берем свежую stable версию squid здесь, или берем squid-2.5.STABLE4.tar, - которую ставил я. Распаковываем сей архив в любую директорию и после входа в нее в окне терминала пишем: ./configure
--prefix=/usr/local/squid --enable-icmp --enable-htcp --enable-delay-pools
--enable-snmp --prefix=/usr/local/squid - указание в какую директорию ставить --enable-icmp - измерять путь до каждого HTTP-сервера при запросах с помощью ICMP, используется для оптимизации выбора сервера или соседа --enable-htcp - HTCP - вариант ICP по TCP, синхронизация кеша с соседями --enable-delay-pools - разрешение управления ограничения трафиком --enable-snmp - Enable SNMP monitoring в общем жмем "enter" - и ждем пока закончится генерация make - файла; по окончании пишем: make , и снова "enter" и наконец пишем: make
install Если все прошло без ошибок
- то squid уже стоит, осталось только его
настроить; Но - перед первым запуском squid, необходимо внести некоторые изменения в конфигурационный файл squid.conf, который согласно установке лежит в /usr/local/squid/etc в общем пишем : ee /usr/local/squid/etc/squid.conf (либо vi - кому что, знаете ли больше нравится) Изменения для первого запуска нужны минимальные - к примеру #Default: без большой необходимости менять не надо В общем меняем следующее: cache_mem 64 MB maximum_object_size 8192 MB cache_dir --/--/-- 512 16 256 cache_access_log --/--/-- access.log cache_log --/--/-- cache.log cache_store_log
none Сохраняем файл и выходим. Теперь, создаем директорию Cache mkdir cache /usr/local/squid/var Если
в squid.conf в тэге : #
cache_effective_user
nobody ничего не менять, то надо сделать следующее, т.к. директория cache создана от имени root, то и разрешения на нее стоит только для root: chown nobody
/usr/local/squid/var/cache chown nobody /usr/local/squid/var/logs Но можно в этой строке убрать "#" и поменять в cache_effective_user nobody на root и все. Первый запуск: ./squid -z - для построения иерархии кеша. Собственно на этом подготовку к работе - можно считать законченной. Теперь перейдем к разрешениям или запрещениям кому-либо, чего-либо. Делается это в тэге # ACL Squid представляет довольно гибкий и мощный инструмент, для разграничения доступа по компьютерам, пользователям, часам и дням недели. Но мы не будем вдаваться в это сейчас - может потом... Мы рассмотрим такую ситуацию: Есть локальная сеть - ну скажем 192.168.0.0 есть набор компьютеров 192.168.0.3 192.168.0.4 192.168.0.5 192.168.0.6 Необходимо разрешить доступ в интернет для 192.168.0.4, а для всех остальных запретить.(в принципе, можно и не запрещать, - достаточно не разрешать ;-) но нам важен принцип.) Так вот описываем компьютеры, которые у нас есть: acl comp1 src 192.168.0.3/255.255.255.255 acl comp2 src 192.168.0.4/255.255.255.255 acl comp3 src 192.168.0.5/255.255.255.255 acl comp4 src 192.168.0.6/255.255.255.255 где comp1-comp4 просто переменные, которые могут быть любыми (я лично, там пишу имена рабочих станций) Собственно теперь будем запрещать или разрешать в # TAG: http_access после строк http_access allow manager localhost пишем http_access deny comp1 http_access deny comp3 http_access deny comp4 После этого перезапускаем squid - "killall -HUP squid" и радуемся. Но, если у вас десятки машин, по уместно будет не засорять squid.conf, а сделать ссылки на файлы, в которых у нас будут располагаться адреса и описания машин, по одному на строку, к примеру: #Vasya 192.168.0.3 #Petya 192.168.0.4 #Olya 192.168.0.5 #Masha 192.168.0.6 Создаем файл good_comp, в котором у нас будут компьютеры, которым можно ходить в internet в директории - /usr/local/squid Там же, создаем файл bad_comp , в котором у нас будут компьютеры, которым нельзя ходить в internet. Теперь описываем эти файлы в squd.conf acl good src "/usr/local/squid/good_comp" acl bad src "/usr/local/squid/bad_comp"
Соответственно далее пишем:
http_access allow good http_access deny bad
Завершаться все это, должно обязательно строкой:
http_access deny all Вот пожалуй и все. |
|