Шаг1 SQUID3 Debian Squeeze простая конфигурация прокси сервера.

Если при попытки установки вы видите следующую картину
# aptitude install squid3
The following NEW packages will be installed:
  squid3 squid3-common{ab} 
0 packages upgraded, 2 newly installed, 0 to remove and 0 not upgraded.
Need to get 1,693 kB of archives. After unpacking 4,264 kB will be used.
The following packages have unmet dependencies:
  squid3-common: Depends: squid-langpack which is a virtual package.
The following actions will resolve these dependencies:

     Keep the following packages at their current version:
1)     squid3 [Not Installed]                             
2)     squid3-common [Not Installed] 
Решение следующее на этой странице скачиваете необходимый пакет squid-langpack и устанавливайте в ручную.
http://packages.debian.org/squeeze/all/squid-langpack/download
# wget http://ftp.us.debian.org/debian/pool/main/s/squid-langpack/squid-langpack_20100628-1_all.deb

root@darhan:/home/dar# dpkg -i squid-langpack_20100628-1_all.deb 
Selecting previously deselected package squid-langpack.
(Reading database ... 27036 files and directories currently installed.)
Unpacking squid-langpack (from squid-langpack_20100628-1_all.deb) ...
Setting up squid-langpack (20100628-1) ...
Или в source.list добавьте строчки
deb http://ftp.debian.org/debian squeeze main
deb-src http://ftp.debian.org/debian squeeze main
и выполните команду aptitude update
Далее устанавливаем squid3
root@darhan:/home/dar# aptitude install squid3
Переходим к настройке сервера.

Давайте посмотрим настройки по умолчанию заданные явно.
# grep ^[[:alnum:]]  /etc/squid3/squid.conf 
acl manager proto cache_object
acl localhost src 127.0.0.1/32 ::1
acl to_localhost dst 127.0.0.0/8 0.0.0.0/32 ::1
acl SSL_ports port 443
acl Safe_ports port 80  # http
acl Safe_ports port 21  # ftp
acl Safe_ports port 443  # https
acl Safe_ports port 70  # gopher
acl Safe_ports port 210  # wais
acl Safe_ports port 1025-65535 # unregistered ports
acl Safe_ports port 280  # http-mgmt
acl Safe_ports port 488  # gss-http
acl Safe_ports port 591  # filemaker
acl Safe_ports port 777  # multiling http
acl CONNECT method CONNECT
http_access allow manager localhost
http_access deny manager
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow localhost
http_access deny all
http_port 3128
hierarchy_stoplist cgi-bin ?
coredump_dir /var/spool/squid3
refresh_pattern ^ftp:              1440    20%     10080
refresh_pattern ^gopher:       1440    0%        1440
refresh_pattern -i (/cgi-bin/|\?) 0          0%        0
refresh_pattern .                     0    20% 4320
acl manager proto cache_object - Список для протокола управлением кеша cache_object
Списки доступа для хостов.
acl localhost src 127.0.0.1/32 ::1
acl to_localhost dst 127.0.0.0/8 0.0.0.0/32 ::1
Списки доступа для портов
acl SSL_ports port 443
acl Safe_ports port 80 # http
acl Safe_ports port 21 # ftp
acl Safe_ports port 443 # https
acl Safe_ports port 70 # gopher
acl Safe_ports port 210 # wais
acl Safe_ports port 1025-65535 # unregistered ports
acl Safe_ports port 280 # http-mgmt
acl Safe_ports port 488 # gss-http
acl Safe_ports port 591 # filemaker
acl Safe_ports port 777 # multiling http
Списки доступа для метода(GET, POST, CONNECT)
acl CONNECT method CONNECT
Применение политик ACL правила применяются сверху вниз по первого удовлетворяющего.
http_access allow manager localhost Доступ разрешен к действию описанному в списке manager для хостов перечисленных в списке localhost. Или по простому доступ разрешен с локального компьютера для управление кешем.
http_access deny manager Запретить управлять кешем.
http_access deny !Safe_ports Доступ запрещен на все порты кроме перечисленных в списке Safe_ports.
http_access deny CONNECT !SSL_ports Запрещает использовать метод CONNECT для портов отличных от перечисленных в списке SSL_ports. Метод CONNECT нужен для создания туннеля.
http_access allow localhost Разрешить доступ с локального компьютера.
http_access deny all Запретить доступ для всех.

http_port 3128 порт на котором будет слушать прокси сервер.
hierarchy_stoplist cgi-bin ? Данная опция будет действовать если у вас иерархическая структура прокси серверов, если в строке запроса будут встречаться перечисленные слова то обращение будет происходить непосредственно к кешу этого сервера не обращаясь к соседям.

coredump_dir /var/spool/squid3 директория для кеша.

Правила устаревания кеша.
Синтаксис refresh_pattern [-i] regex min percent max [options]
Где
min минимальное время в минутах для объектов, без явного указания, в течении которого объект должен хранится в кеше.
percent время в процентах от возраста (возраст рассчитывается по дате последнего изменения объекта) для объектов, без явного указания, в течении которого объект должен хранится в кеше.
max Соответсвенно максимальное время.

refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern -i (/cgi-bin/|\?) 0 0% 0
refresh_pattern . 0 20% 4320 #Данное правило всегда должно быть последним т.к оно применимо ко всему содержимому.

Сделаем наш прокси сервер доступным для сети.
Открываем в любимом редакторе файл /etc/squid3/squid.conf
Ищем там закомментированные строки с содержимым acl localnet. Раскомментируем одну из строчек и подставим наш адрес сети у меня получилось следующее
acl localnet src 192.168.0.0/24
Далее раскомментируем строчку http_access allow localnet
Раскомментируем строчку cache_dir ufs /var/spool/squid3 100 16 256 Здесь 100 в МБ-х во избежании ошибки WARNING cache_mem is larger than total disk cache space! Это значение должно быть больше значения cache_mem. По умолчанию cache_mem = 256 МБ. 16 это сколько директорий 1-го уровня может создать squid относительно /var/spool/squid3 256 кол-во директорий 2-го уровня в этих 16.
Итоговый конфиг
# grep ^[[:alnum:]]  /etc/squid3/squid.conf 
acl manager proto cache_object
acl localhost src 127.0.0.1/32 ::1
acl to_localhost dst 127.0.0.0/8 0.0.0.0/32 ::1
acl localnet src 192.168.0.0/24 # RFC1918 possible internal network
acl SSL_ports port 443
acl Safe_ports port 80  # http
acl Safe_ports port 21  # ftp
acl Safe_ports port 443  # https
acl Safe_ports port 70  # gopher
acl Safe_ports port 210  # wais
acl Safe_ports port 1025-65535 # unregistered ports
acl Safe_ports port 280  # http-mgmt
acl Safe_ports port 488  # gss-http
acl Safe_ports port 591  # filemaker
acl Safe_ports port 777  # multiling http
acl CONNECT method CONNECT
http_access allow manager localhost
http_access deny manager
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow localnet
http_access allow localhost
http_access deny all
http_port 3128
hierarchy_stoplist cgi-bin ?
cache_dir ufs /var/spool/squid3 1024 16 256
coredump_dir /var/spool/squid3
refresh_pattern ^ftp:  1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern -i (/cgi-bin/|\?) 0 0% 0
refresh_pattern .  0 20% 4320
Перегружаем сервер
# /etc/init.d/squid3 restart
И читаем далее:
Шаг2 SQUID3 cache manager cli squidclient Часть 1 знакомство.
Шаг2 SQUID3 cache manager cli squidclient Часть 2 читаем выводы mgr:info
Шаг2 SQUID3 cache manager cli squidclient Часть 3 читаем выводы client_list, counters
Шаг3 SQUID3 Debian Squeeze лог файлы.

Комментарии

  1. Спасибо! Все работает! Теперь буду углублятся и тоньше настраивать

    ОтветитьУдалить

Отправить комментарий

Популярные сообщения