Установка и настройка 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:
#http_port 3128

без большой необходимости менять не надо

В общем меняем следующее:

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

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

cache_dir --/--/-- 512 16 256 (определяет имя, размер и количество поддиректорий на первом и втором уровне кеша на диске - каждый кешируемый объект кладется в отдельный файл, файлы не сваливаются в одно место, а разносятся в двухуровневой иерархии директорий; можно иметь несколько директорий под кеш - особенно полезно иметь их на разных дисках;

cache_access_log --/--/-- access.log (журнализируется каждый запрос к кешу)

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

cache_store_log none (журнал записи объектов в дисковый кеш; автор рекомендуют поставить 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

это поменяет разрешение на nobody.

Но можно в этой строке убрать "#" и поменять в 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 manager

пишем
http_access allow comp2

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

Вот пожалуй и все.


оглавление

Hosted by uCoz