Брандмауэры и специальное программное обеспечение 8 Часть 4

Вид материалаРеферат

Содержание


Конфигурация по умолчанию
Network options
Алгоритм выбора соседа
Размер кэша
Logfile pathnames and cache directories
External support programs
Tuning the cache
Access controls
Administrative parameters
Cache registration service
Delay pool parameters
Подобный материал:
1   ...   62   63   64   65   66   67   68   69   ...   101

Конфигурация по умолчанию


Здесь я не намерен рассказывать вам о том, как происходит компиляция и установка squid. Если вы хотите узнать об этом подробнее, ознакомьтесь с руководством пользователя, файлом часто задаваемых

вопросов (FAQ) и другими документами, предоставленными разработчиками squid. Все это можно получить по адресу -cache.org/DOC/.

В листинге 17.1 показана существенно сокращенная версия очень длинного (более 64 Кбайт) и очень хорошо аннотированного файла squid.conf (который размещается в каталоге/etc/squid/). В данном листинге все пояснения опущены (добавлены некоторые пометки на русском языке).

Листинг 17.1. Скоращенный файл /etc/squid/squid.conf

# NETWORK OPTIONS (Сетевые параметры)

#http_port 3128

#icp_port 3130

#htcp_port 4827

#mcast_groups 239.128.16.128

#tcp_incoming_address 0.0.0.0

#tcp_outgoing_address 0.0.0.0

#udp_incoming_address 0.0.0.0

#udp_outgoing_address 0.0.0.0

# OPTIONS WHICH AFFECT THE NEIGHBOR SELECTION ALGORITHM (Алгоритм выбора соседа)

#cache_peer hostname type 3128 3130

#icp_query_timeout 0

#ncast_icp_query_timeout 2000

#dead_peer_timeout 10 seconds

#hierarchy_stop1ist cgi-bin ?

#acl QUERY urlpath_regex cgi-bin \?

#no_cache deny QUERY

# OPTIONS WHICH AFFECT THE CACHE SIZE (Настройка размера кэша)

#cache_mem 8 MB

#cache_swap_low 90

#cache_swap_high 95

#maximum_object_size 4096 KB

#ipcache_size 1024

#ipcache_low 90

#ipcache_high 95

#fqdncache_size 1024

# LOGFILE PATHNAMES AND CACHE DIRECTORIES (Имена файлов журналов и каталогов кэша)

#cache_dir /var/log/squid/cache 100 16 256

#cache_access_log /var/log/squid/logs/access. log

#cache_log /var/log/squid/logs/cache.log

#cache_store_log /var/log/squid/logs/store.log

#cache_swap_log

#emulate_httpd_log off

#mime_table /etc/squid/mime.conf

#log_mime_hdrs off

#useragent_log none

#pid_filename /var/run/squid.pid

#debug_options ALL,1

#log_fqdn off

#client_netmask 255.255.255.255

# OPTIONS FOR EXTERNAL SUPPORT PROGRAMS (Внешние вспомогательные программы)

#ftp_user Squid@

#ftp_list_width 32

#cache_dns_program /usr/bin/dnsserver

#dns_children 5

#dns_defnames off

#dns_nameservers none

#unlinkd_program /usr/bin/unlinkd

#pinger_program /usr/bin/pinger

#redirect_program none

#redirect_children 5

#redirect_rewrites_host_header on

#authenticate_program none

#authenticate_children 5

#authenticate_ttl 3600

# OPTIONS FOR TUNING THE CACHE

#wais_relay_host local host

#wais_relay_port 8000

#request_size 100 KB

#refresh_pattern ftp: 1440 20% 10080

#refresh_pattern gopher: 1440 0% 1440

#refresh_pattern 0 20% 4320

#reference_age 1 month

#quick_abort_min 16 KB

#quick_abort_max 16 KB

#quick_abort_pct 95

#negative_ttl 5 minutes

#positive_dns_ttl 6 hours

#negative_dns_ttl 5 minutes

#range_offset_limit 0 KB

TIMEOUTS (Таймауты)

#connect_timeout 120 seconds

#siteselect_timeout 4 seconds

#read_timeout 15 minutes

#request_timeout 30 seconds

#client_lifetime 1 day

#half_closed_clients on

#pconn_timeout 120 seconds

#ident_timeout 10 seconds

#shutdown_lifetime 30 seconds

ACCESS CONTROLS (Управление доступом)
acl all src 0.0.0.0/0.0.0.0

acl manager proto cache_object

acl local host src 127.0.0.1/255.255.255.255

acl SSL_ports port 443 563

acl Safe_ports port 80 21 443 563 70 210 1025-65535

acl CONNECT method CONNECT

#Default configuration:

http_access allow manager local host

http_access deny manager

http_access deny !Safe_ports

http_access deny CONNECT !SSL_ports

http_access deny all

icp_access allow all

miss_access allow all

#proxy_auth_realm Squid proxy-caching web server

#ident_lookup_access deny all

# ADMINISTRATIVE PARAMETERS (Административные параметры)

#cache_mgr webmaster

#cache_effective_user nobody

#cache_effective_group nogroup

#visible_hostname www-cache.foo.org

#unique_hostname www-cachel.foo.org

# OPTIONS FOR THE CACHE REGISTRATION SERVICE (Служба регистрации кэша)

#announce_period 1 day

#announce_host tracker.ircache.net

#announce_port 3131

# HTTPD-ACCELERATOR OPTIONS (Параметры акселерации HTTPD)

#httpd_accel_host hostname

#httpd_accel_port port

#httpd_accel_with_proxy off

#httpd_accel_uses_host_header off

# MISCELLANEOUS (Разнообразные параметры)

#dns_testnames netscape.com internic.net nlanr.net microsoft.com

#logfile_rotate 10

#append_domain .yourdomain.com

#tcp_recv_bufsize 0 bytes

#err-nomer-text

#memory_pools on

#forwarded_for on

#log_icp_queries on

#icp_hit_stale off

#minimum_direct_hops 4

#cachemgr_passwd secret shutdown

#cachemgr_passwd lesssssssecret info stats/objects

#cachemgr_passwd disable all

#store_avg_object_size 13 KB

#store_objects_per_bucket 50

#client_db on

#netdb_low 900

#netdb_high 1000

#netdb_ping_period 5 minutes

#query_icmp off

#test_reachability off

#buffered_logs off

#reload_into_ims off

#anonymize_headers

#fake_user_agent none

#minimum_retry_timeout 5 seconds

#maximum_single_addr_tries 3

#snmp_port 3401

#forward_snmpd_port 0

#Example:

#snmp_access allow public local host

#snmp_access deny all

#snmp_incoming_address 0.0.0.0

#snmp_outgoing_address 0.0.0.0

# DELAY POOL PARAMETERS (all require DELAY_POOLS compilation option)

#delay_pools 0

#delay_pools 2

#2 delay pools

#delay_class 1 2

# pool 1 is a class 2 pool

#delay_class 2 3

# pool 2 is a class 3 pool

#delay_access 1 allow some_big_clients

#delay_access 1 deny all

#delay_access 2 allow lotsa_little_clients

#delay_access 2 deny all

#delay_parameters pool aggregate

#delay_parameters pool aggregate individual

#delay_parameters pool aggregate network individual

#delay_parameters 1 -1/-1 8000/8000

#delay_parameters 2 32000/32000 8000/8000 600/64000

#delay_initial_bucket_level 50

#incoming_icp_average 6

#incoming_http_average 4

#min_icp_poll_cnt 8

#min_http_poll_cnt 8

#uri_whitespace deny

#acl buggy_server url_regex >
#broken_posts allow buggy_server

#prefer_direct on

#strip_query_terms on

Прежде чем приступать к редактированию конфигурационного файла, вы должны принять во внимание, что некоторые конфигурационные параметры требуют, чтобы компиляция squid была выполнена с учетом этих параметров. Другими словами, если параметр присутствует в конфигурационном файле, это не значит, что он действует. Если вы не уверены в том, был ли включен тот или иной параметр во время компиляции squid, включите его в конфигурационном файле, перезапустите squid и выполните тестирование.

NETWORK OPTIONS

Весь набор записей файла squid.conf разбит на несколько логических групп. Первый раздел является разделом сетевых параметров Network Options. В этом разделе содержатся все параметры, имеющие отношение к обмену данными через сеть, начиная с номеров портов, через которые squid будет ожидать поступления запросов. По умолчанию squid ожидает поступления запросов только через порт 3128, однако он может «слушать» одновременно несколько портов. Набор портов можно задать либо в конфигурационном файле через пробел, либо в командной строке. Если порты указываются в командной строке, перечень портов в конфигурационном файле игнорируется. Порт 80 используется только для акселерации обработки входящих запросов, обращенных к серверу httpd, но не в качестве прозрачного proxy для пользователей, обращающихся к ресурсам Интернета. Если вы будете использовать squid подобным образом, вы рискуете ввести эту программу в бесконечный цикл обращения к кэшу.

В документации squid часто используются термины ICP и НТСР, определение которых зачастую отсутствует. Протокол ICP — это протокол кэширования в Интернете (Internet Cache Protocol), специально предназначенный для организации работы кэширующих proxy. Протокол ICP позволяет кэширующим proxy обмениваться между собой информацией, связанной с кэшированием. Протокол НТСР — это протокол кэширования гипертекста (Hyper Text Cache Protocol). Этот протокол используется для обмена документами, поиск которых осуществляется с использованием ICP. Протокол ICP использует UDP, в то время как протокол НТСР использует TCP. Если у вас есть родительский кэш и/или кэши, осуществляющие параллельное кэширование, то получив запрос на передачу документа, программа squid пытается определить, кэширован ли этот документ локально или он содержится в кэшах, являющихся соседями по отношению к локальному кэшу. Для этой цели используется ICP. Если документ отсутствует в локальном кэше, но при этом положительный ответ ICP приходит быстрее, чем эхо-ответ ping, адресованный интересующему пользователя web-узлу, тогда вместо того, чтобы загружать запрашиваемый документ с указанного пользователем узла, программа squid считает его из соседнего кэша. Таким образом, измеряя расстояние до различных web-узлов и сопоставляя это расстояние со скоростью работы кэша, squid определяет наиболее быстрый метод получения документа. Используя squid, вы можете стать участником подобной многоуровневой кэширующей системы. Конечно же, для этого вам потребуется получить необходимое разрешение. Дополнительная информация содержится в FAQ. Однако для большинства небольших предприятий, равно как и для индивидуальных пользователей, подобная функциональность не нужна.


ПРИМЕЧАНИЕ

Расстояние в Интернете измеряется в количестве участков ретрансляции. Один участок ретрансляции иногда обозначают термином «хоп» (от английского hop). Если между локальной системой и двумя разными узлами содержится одинаковое количество участков ретрансляции, то расстояние измеряют временем передачи сообщения туда и обратно (round-trip time). Время передачи сообщения туда и обратно — это промежуток времени, который проходит между отправлением запроса некоторому узлу и получением ответа на этот запрос. Программа squid всегда измеряет расстояние временем передачи сообщения туда и обратно, так как для пользователя Web наиболее важным фактором является время, которое необходимо для получения страницы, расположенной на некотором удаленном узле.

Также в разделе Network Options содержатся параметры, связанные с многоадресной передачей данных. Если вы не знакомы с технологией многоадресной передачи данных или ваше соединение с Интернетом не обладает достаточной пропускной способностью, вы не должны пользоваться этими параметрами. Также нет необходимости назначать фиксированные порты для использования совместно с НТСР или ICP, за исключением некоторых специальных ситуаций.


ПРИМЕЧАНИЕ

Многоадресная передача данных (multicast) — это нечто похожее на широковещательную передачу данных. Многоадресная передача позволяет передавать одно сообщение одновременно нескольким IP-адресам. Чтобы воспользоваться этой технологией, вы должны откомпилировать ваше ядро с поддержкой многоадресной передачи данных. Также вы должны обладать клиентом, который поддерживает данную технологию. Кроме того, все маршрутизаторы, соединяющие ваш клиент с Интернетом, также должны поддерживать эту технологию. Многоадресная передача позволяет одному клиенту (в нашем случае Squid) обмениваться информацией с несколькими серверами одновременно. Программа Squid пытается использовать многоадресную передачу данных для обмена данными с другими кэширующими системами squid.


Алгоритм выбора соседа

Параметры алгоритма выбора соседа (Neighbor Selection Algorithm) используются только в случае, если вы взаимодействуете с удаленными кэширующими системами. В конфигурации по умолчанию все эти параметры закомментированы.

Размер кэша

Сразу же после установки squid использует размер кэша по умолчанию. Наиболее важным замечанием для данного раздела является то, что если вы настроили размер кэша, это не означает, что вы ограничили его размер. В случае необходимости размер кэша может превышать значение, заданное вами в конфигурации (а объем оперативной памяти, используемый squid, будет в несколько раз больше, чем размер кэша), однако при этом squid будет стараться как можно быстрее уменьшить размер кэша.

По умолчанию размер кэша составляет 8 Мбайт. Это значит, что squid может использовать более чем 32 Мбайт. Вы должны расценивать значение переменной cache_mem как размер кэша, который будет использоваться squid для «горячих» (то есть очень популярных) сетевых узлов. Однако Squid будет использовать больше памяти, чем указывается в данной переменной: эта программа очень нуждается в оперативной памяти. Чем больше памяти разрешается использовать squid, тем лучше и быстрее будет работать эта программа. Однако объем используемой оперативной памяти будет зависеть также от интенсивности обмена данными с Интернетом через squid. Для домашних пользователей в большинстве случаев установленного значения будет вполне достаточно. Однако если вы имеете дело с корпоративной сетью, в которой в каждый момент времени доступ к Интернету через squid обеспечивается для нескольких сотен пользователей, размер кэша может стремительно вырасти. В зависимости от того, какие другие приложения работают в вашей системе, вы можете разрешить squid использовать в качестве кэша (аргумент cache-mem) вплоть до одной трети всего объема установленной в системе оперативной памяти. Однако если в системе работают какие-либо другие программы, отдавать треть всей физической памяти в распоряжение squid может оказаться слишком расточительным. Чтобы определить необходимый объем, можно воспользоваться следующим методом. Прежде чем запускать squid, запустите программу free и обратите внимание на вторую строку с пометкой -/+ buffers/cache:. В этой строке указываются два значения: используемая и свободная память. Вы можете либо сохранить в конфигурации squid значение размера кэша по умолчанию (8 Мбайт), либо использовать треть от второго значения строки -/+ buffers/ cache: (с округлением до ближайшего целого количества Мбайт). Например, для системы, оснащенной ОЗУ объемом 64 Мбайт, при помощи данного метода вы получите рекомендуемый размер кэша 12 Мбайт.

В разделе Cache Size Options также содержатся параметры, имеющие отношение к использованию виртуальной памяти. Учитывая склонность squid к интенсивному расходу ОЗУ, вы можете быть уверены в том, что в процессе эксплуатации этой программы могут возникнуть моменты, когда физической памяти будет недостаточно и программа squid будет вынуждена обратиться к виртуальной памяти. В этой категории существует несколько параметров, однако для большинства ситуаций, предусматривающих небольшую и среднюю нагрузку, значений по умолчанию будет вполне достаточно. Если же система squid будет использоваться интенсивно, вы должны обратить внимание на верхний и нижний пределы допустимого расхода виртуальной памяти, так как разница даже в один процент может означать увеличение или уменьшение расхода виртуальной памяти на 25 Мбайт.

LOGFILE PATHNAMES AND CACHE DIRECTORIES

Некоторые наиболее важные элементы, на которые следует обратить внимание в данном разделе, не указываются в конфигурационном файле. Однако обратите внимание, что каталоги журналов и кэша по умолчанию в файле указаны. Вы должны убедиться в том, что пользователь, от лица которого запущен squid (это может быть пользователь squid или любой другой непривилегированный пользователь), обладает правом записи в эти каталоги. Об этом требовании легко позабыть, если squid работает на уровне привилегий более низком, чем root (вообще-то squid не должен запускаться от имени root за, исключением тех случаев, когда вы намерены связать его с портом ниже 1024).

Вы также должны убедиться в том, что на диске достаточно места для хранения журналов и кэшей, которые будет создавать squid. Кэш следует разместить на дисковом разделе, размер которого в два или в три раза превышает размер кэша, установленный для нормального функционирования. В начале эксплуатации squid вы должны обращать внимание на то, насколько интенсивно squid расходует дисковое пространство.

EXTERNAL SUPPORT PROGRAMS

В данном разделе можно указать пользователя ftp. Многие узлы Интернета, обеспечивающие анонимный доступ к ftp, не обращают внимания на то, как именно вы к ним подключаетесь, однако некоторые проверяют корректность адреса электронной почты. Правила хорошего тона и сетевой этикет предусматривают, что сообщаемый вами адрес электронной почты является корректным. Конечно же, все это является для вас актуальным только в случае, если вы используете squid для обеспечения доступа к серверу FTP для тех клиентов, которые используют proxy. Однако proxy используют далеко не все пользователи FTP.

В данном разделе устанавливается также количество запущенных процессов dnsserver, а также параметры, связанные с другими внешними программами. На небольшой системе вы можете уменьшить количество дочерних процессов dnsserver. По умолчанию это количество равно пяти, и этого более чем достаточно для домашних систем. Если вы полагаете, что это количество слишком велико, вы можете уменьшить его, однако для корпоративной сети, в которой количество пользователей, одновременно работающих с Интернетом, в каждый момент времени достаточно велико, установленное значение может оказаться слишком мало.

TUNING THE CACHE

Эти параметры имеют отношение к различным особенностям работы механизма кэширования, например, размер индивидуального кэша на диске, а также время жизни (Time To Live, TTL) для кэшированных DNS-запросов и web-страниц. Эти параметры являются параметрами тонкой настройки. Значения по умолчанию хорошо подходят для домашних пользователей и сетей небольших предприятий. В крупных организациях, скорее всего, потребуется перенастроить эти параметры после того, как вы более тщательно проанализируете нагрузку на squid и интенсивность обращения к кэшу.

TIMEOUTS

Параметры этого раздела служат для изменения значений, заданных в конфигурации TCP/IP по умолчанию. Для большинства состояний IP-соединений значения, по умолчанию используемые squid, соответствуют базовым значениям по умолчанию, заданным в конфигурации TCP/IP. Эти тайм-ауты также влияют на подключения через сокеты Unix к самой программе squid. Очень маловероятно, что у вас может возникнуть необходимость модифицировать значения этих параметров. Если вы плохо представляете себе, как каждый из этих параметров влияет на сокетные соединения и соединения TCP между клиентами и серверами, вы не должны выполнять модификацию этих значений.

ACCESS CONTROLS

Управление доступом является наиболее важной функцией squid. Если вы не настроите должным образом механизм управления доступом, ваша система будет широко открыта для любого доступа извне (несмотря на то, что в этом случае squid будет использовать некоторую конфигурацию управления доступом по умолчанию). Даже если вы не намерены модифицировать какие-либо другие разделы конфигурационного файла squid, вы должны уделить внимание редактированию раздела параметров управления доступом.

Как уже говорилось ранее, управление доступом включает в себя две составляющие, которые комбинируются для того, чтобы разрешить или запретить доступ к squid или определенным ресурсам или URL. Первой частью системы управления доступом являются списки управления доступом ACL (Access Control List). Запись, определяющая список управления доступом, начинается с метки ad, за которой следует уникальное имя (два разных списка ad не могут обладать одним и тем же именем). После имени следует спецификация, за которой указывается один или несколько аргументов. Аргументы спецификации логически складываются, и если они являются IP-адресами, вместе с ними необходимо указывать сетевую маску. В качестве аргументов можно использовать имена сетевых узлов (при этом подразумевается сетевой узел, обладающий указанным и никаким другим именем), однако делать это следует с осторожностью, так как если вы желаете блокировать доступ к узлу с указанным именем, доступ к этому узлу можно будет получить, указав другое имя или IP-адрес.

После того как вы сформировали список ad, вы можете использовать имя этого списка в следующих далее списках прав доступа ARL (Access Rights List). Список прав доступа указывает, соответствуют ли ресурсам, указанным в acl, какие-либо права доступа. Список прав доступа — это группа прав на доступ по определенному протоколу. За идентификатором протокола следует одно из ключевых слов — allow (разрешить) или deny (запретить), а затем перечень списков ACL, которые логически перемножаются. Иными словами, для того, чтобы был использован некоторый список ARL, необходимо, чтобы были удовлетворены ВСЕ условия, определяемые перечисленными в ARL списками ACL.

Для каждого протокола squid ищет список прав доступа, удовлетворяющий условиям некоторого соединения, и как только такой список ARL обнаруживается, squid прекращает поиск и предпринимает действие, указанное в ARL (либо ALLOW — разрешить, либо DENY — запретить). Если для некоторого соединения не удалось найти ни одного подходящего списка ARL, программа squid смотрит на действие, указанное в последнем правиле (ALLOW или DENY), и выполняет прямо противоположное действие. Таким образом, на самой последней позиции следует расположить либо ARL, который будет соответствовать всем соединениям, для которых не удалось подобрать соответствия ранее, либо правило, которое является противоположным политике по умолчанию.

Начнем с наиболее простого набора правил, приведенного в листинге 17.2. Данный набор списков ACL и ARL является наиболее простым из всех возможных. Он разрешает абсолютно все.


Листинг 17.2. Разрешается полный доступ для всего окружающего мира acl all src 0.0.0.0/0.0.0.0 http_access allow all icp_access allow all

В первой строке идентифицируются абсолютно все возможные IP-адреса. Во второй строке для всех этих адресов разрешается доступ через squid по протоколу HTTP. В третьей строке всем этим адресам разрешается также доступ к кэшу squid. Очевидно, что положение вещей, определяемое данным набором правил, не может быть для вас удовлетворительным — еще бы, ведь каждый желающий в любом конце земного шара сможет использовать кэш вашей системы squid. Существуют программы, которые специально предназначены для обнаружения серверов proxy, которые позволяют подключаться к ним всем желающим. Как только такой сервер обнаружен, злоумышленник может взломать его и использовать для каких-либо целей помимо услуг proxy. Взломанная таким образом система proxy может использоваться для сканирования других систем и нападения на другие системы. Чтобы избежать подобного печального исхода, следует ограничить доступ к вашей proxy-системе. В листинге 17.3 представлена несколько более реалистичная базовая конфигурация squid.

Листинг 17.3. Расширенная базовая конфигурация

acl all src 0.0.0.0/0.0.0.0

acl manager proto cache_object

acl allowed_hosts src 192.168.0.0/255.255.0.0 127.0.0.1/255.0.0.0

http_access allow allowed_hosts

http_access deny all

icp_access allow allowed_hosts

icp_access deny all

Первая строка листинга 17.3 такая же, как и в листинге 17.2. Вторая строка указывает на протокол доступа к кэшу squid. В третьей строке идентифицируются узлы, для которых мы хотим разрешить доступ. В этой строке к узлам сети 192.168 добавляется локальный узел localhost (вместо сети 192.168 можно было бы указать сеть 192.168.0 или любую другую допустимую сеть). В большинстве примеров узел localhost идентифицируется IP-адресом 127.0.0.1, однако на самом деле для узла localhost можно использовать любой IP-адрес из диапазона адресов 127. Все адреса этого диапазона, за исключением самого первого, зарезервированы для специального использования, однако указывать их вполне допустимо, но не всегда благоразумно.

Первая связанная с HTTP строка разрешает группе узлов allowed_hosts (соответствующая строка ad добавляет в группу allowed_hosts все узлы сети 192.168, а также локальный узел localhosts) обмен данными по протоколу HTTP. Вторая строка, имеющая отношение к HTTP, запрещает доступ по протоколу HTTP для всех остальных узлов (таким образом, никто из внешнего мира не сможет использовать ваш сервер squid в качестве proxy-сервера). Две строки, имеющие отношение к icp_access, формируют аналогичный набор правил доступа к кэшу вашего сервера squid. Если вы намерены выполнять функции родительского кэша или выполнять кэширование параллельно с другими кэширующими системами, вы должны либо добавить еще один список ad и еще одну строку icp_access, либо, по крайней мере, расширить определение группы allowed_hosts.

Далее я рассмотрю, как выглядит конфигурация, которая входит в состав squid по умолчанию. На этом примере можно понять, насколько гибкими возможностями обладает squid. В листинге 17.4 содержится фрагмент конфигурационного файла squid, полный текст которого приведен в листинге 17.1.

Листинг 17.4. Конфигурация управления доступом, извлеченная из конфигурационного файла squid по умолчанию

acl all src 0.0.0.0/0.0.0.0

acl manager proto cache_object

acl localhost src 127.0.0.1/255.255.255.255

acl SSL_ports port 443 563

acl Safe_ports port 80 21 443 563 70 210 1025-65535

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 deny all

icp_access allow all

miss_access allow all

Первая строка листинга 17.4 совпадает с первой строкой листингов 17.3 и 17.2. В ней определяется группа all, в которую входят все допустимые IP-адреса. Вторая строка определяет протокол, который используется для доступа к кэшу squid. В третьей строке определяется локальный узел localhost. Его адрес 127.0.0.1.

Первая строка http_access разрешает обращение к кэшу squid только для локального узла. Другими словами, данный сервер не будет обеспечивать доступ к своему кэшу для соседних кэширующих систем (это хороший подход для домашних пользователей или небольших корпоративных сетей, в которых используется только один сервер squid). Вторая строка http_access запрещает доступ к кэшу для всех систем, для которых доступ еще не был разрешен (на текущий момент доступ к кэшу разрешен только для одной системы — localhost). Следующая строка http_access запрещает использование каких-либо портов, которые НЕ входят в группу Safe_ports (группа портов Safe_ports определена ранее при помощи соответствующей записи ad). Таким образом, squid не может подключиться к telnet (23), sendmail (25) и т. п. Данная конфигурация также запрещает новые соединения (входящие) к каким-либо портам, не являющимся портами SSL. Вы не сможете запустить какой-либо сервер, принимающий соединения из Интернета, если эти соединения не являются соединениями SSL. Последняя строка http_access запрещает все остальное. Строка icp_access разрешает всем желающим доступ к кэшу squid на данном сервере (возможно, это не самая лучшая идея), и наконец, финальная строка разрешает соседям (другим сетевым узлам squid) использовать ваш сервер squid в качестве родителя или для параллельного кэширования.

Родительским (parent) называется кэширующий узел, который, если не содержит запрашиваемого документа в собственном кэше, будет пытаться загрузить этот документ из сети. Параллельным (sibling) называется кэширующий узел, который при отсутствии документа в собственном кэше не будет загружать его из сети, а просто вернет вам сообщение о том, что документ в его кэше отсутствует. Эти правила следует учитывать при указании соседей вашей кэширующей системы. На возвращение клиенту кэшированного документа тратится не так много ресурсов, в то же время на загрузку документа из сети тратится достаточно большое количество ресурсов.

ADMINISTRATIVE PARAMETERS

В данном разделе содержатся некоторые базовые параметры, которые требуется настроить перед тем, как запускать squid. В частности, здесь вы указываете эффективного пользователя кэша (это особенно важно, если вы запускаете squid от имени root), а также адрес электронной почты лица, ответственного за узел squid. Здесь также можно настроить некоторые другие важные параметры.

CACHE REGISTRATION SERVICE

В данном разделе содержатся параметры, облегчающие обслуживание и администрирование иерархий кэширующих систем.

HTTPD-ACCELERATOR OPTIONS

В этом разделе конфигурации содержатся параметры, которые влияют на работу squid в случае, если эта программа используется только в качестве акселератора HTTPD или кэширующей системы совместно с акселерацией HTTPD. Акселератор HTTPD — это кэш, который помогает вашему web-серверу. Программа Squid используется для кэширования документов из Интернета для того, чтобы обеспечить более быстрый доступ к ним при обслуживании последующих запросов. Акселератор HTTPD извлекает запрашиваемые клиентами документы с вашего web-сервера, поэтому клиенты из Интернета получают более быстрый доступ к вашему web-серверу, так как страницы кэшируются и по запросу клиента извлекаются из кэша.


MISCELLANEOUS

В этом разделе присутствует множество разнообразных параметров, связанных с протоколированием сведений в журналах, выделением памяти, протоколом SNMP и т. п. Для большинства обычных пользователей все эти параметры вряд ли могут представлять какой-либо интерес. Исключение составляют параметры, имеющие отношение к функционированию squid в режиме перенаправления портов (port forwarded), когда squid не должен передавать запросы внутренним системам. К этому режиму имеет отношение параметр never_direct. Этот параметр обрабатывается очень похоже на параметры группы Access Control Options.

DELAY POOL PARAMETERS

Последний раздел параметров имеет отношение к механизму пулов задержки (delay pools). Этот механизм доступен только в случае, если во время компиляции squid вы использовали соответствующий параметр компиляции. Механизм пулов задержки является достаточно сложным, поэтому я не буду подробно описывать его здесь и предоставляю читателям возможность самим определить, нуждаются ли они в использовании этого механизма.