Рейтинговые книги
Читем онлайн Linux - Алексей Стахнов

Шрифт:

-
+

Интервал:

-
+

Закладка:

Сделать
1 ... 77 78 79 80 81 82 83 84 85 ... 151

• request_timeout 30 seconds – сколько разрешается ждать запроса после установления соединения;

• client_lifetime 1 day – сколько времени разрешать клиенту быть присоединенным к Squid; соединение обрывается, даже если происходит передача данных;

• haif_ciosed_clients on – разрешать наполовину закрытые соединения – например чтение есть, а запись уже закрыта;

• shutdown_lifetime 30 seconds – сколько времени продолжать обслуживание после получения сигнала SIGTERM или SIGHUP.

ACL – Access Control List

Этот раздел определяет правила доступа пользователей к группам файлов и хостов. С помощью ACL можно очень гибко настроить доступ к различным сайтам.

acl имя тип строка – определение списка доступа (имя – имя правила, тип – тип объекта, строка – регулярное выражение (шаблон для сравнения), по умолчанию чувствительное к регистру букв.

Параметр тип может принимать следующие значения:

• IP-адреса клиентов:

src ip-address/netmask…

• диапазон адресов:

src addrl-addr2/netmask…

• получение IP-адреса no URL:

srcdomain foo.com…

• если в URL использовался IP, то делается попытка определить имя домена, если не удалась, то подставляется слово попе:

dstdomaien foo.com…

• получение IP-адреса клиента по URL с использованием регулярных выражений:

srcdom_regex [-i] строка…

• если в URL использовался IP, то делается попытка определить имя домена используя регулярные выражения:

dstdom_regex [-i] строка…

• регулярное выражение для всего URL:

url_regex [-i] строка

• регулярное выражение для path-части URL:

urlpath_regex [-i] строка

• определяются безопасные порты:

port порт…

• сопоставляется заголовок User-Agent:

browser [-i] regexp

• ограничивает число соединеной с одного и того же IP:

maxconn число Права доступа

Права доступа определяются следующими строками:

• http_access allow| deny [!] aclname… – кому разрешать доступ к proxy по HTTP;

• icp_access allow| deny [!] aclname… – кому разрешать доступ к proxy по ICP;

• miss_access allow| deny [!] aclname. – кому разрешить получать ответ MISS;

• cache_peer_access cache-host allow|deny [!]aclname… – ограничить запросы к данному соседу;

• proxy_auth_realm Squid proxy-caching web server – строка текста, которая будет выдана на экран клиента при запросе имени/пароля доступа к кэшу.

Параметры администрирования

Параметры администрирования определяются следующими строками:

• cache_mgr email – почтовый адрес, на который будет послано письмо, если у Squid возникнут проблемы;

• cache_effective_user nobody – если запускается Squid от имени root, то заменить UID на указанный;

• cache_effective_group nogroup – если запускается Squid от группы root, то заменить GID на указанный;

• visible_hostname имя-хоста – это имя будет упоминаться в сообщениях об ошибках;

• unique_hostname уникальное-имя – если нескольким кэшам дали одно и то же visibie_hostname, необходимо определить каждому из них уникальное имя;

• hostname aliases имя… – список синонимов для имени хоста.

Параметры для работы в режиме ускорителя HTTP-сервера

Параметры для работы в режиме ускорителя HTTP-сервера определяются следующими строками:

• httpd_accel_host hostname – если нужна поддержка виртуальных хостов, в частности для transparent proxy (прозрачное кэширование), то вместо имени указать virtual;

• httpd_accei_port port – порт для HTTP-сервера;

• httpd_accei_with_proxy on | off – кэширование для ускоряемого сервера;

• httpd_accel_uses_host_header on | off – для работы в прозрачном режиме требуется включить, иначе виртуальные серверы не будут правильно кэшироваться.

Разное

Здесь содержатся параметры Squid, не вошедшие в предыдущие разделы:

• dns_testnames netscape.com internic.net microsoft.com – список имен хостов, на примере которых проверяется работоспособность DNS;

• iogfile_rotate 10 – данный параметр задает количество старых копий при ротации;

• append_domain.vasya.ru – добавляется к имени хоста, если в нем нет ни одной точки;

• tcp_recv_bufsize о bytes -о означает, что надо использовть размер буфера по умолчанию;

• err_htmi_text строка – подставляется в шаблоны текстов сообщений об ошибках;

• deny_info err_page_name acl – запросы, не прошедшие проверку в http_access, проверяются на соответствие ACL, выдается соответствующее сообщение об ошибке из файла page_name;

• memory_poois on | off – эта переменная определяет политику использования захваченной памяти:

– on – однажды захваченная, но не используемая память не отдается обратно в систему;

– off – позволяет освобождать захваченную память;

• memory_рооls_limit байт – максимальное количество неиспользуемой памяти, которое Squid будет удерживать, если 0 – то удерживать все, что было захвачено;

• fоrwarded_fоr on | off – если включено, то Squid будет вставлять IP-адрес или имя в заголовки перенаправляемых HTTP-запросов: X-Forwarded-For: 192.1.2.3; если выключено, то X-Forwarded-For: unknown;

• log_icp_queries on | off – записываются ли в журнал ICP-запросы;

• icp_hit_staie on | off – возвращать ли ответ icp_hit для устаревших объектов;

• cachemgr_passwd password action action… – задание пароля для действий по администрированию Squid; чтобы запретить действие – поставьте пароль disable; чтоб разрешить действие без проверки пароля – поставьте пароль попе, кроме действий config и shutdown; полную информацию смотрите в документации на Squid;

• store_avg_object_size 13 KB – предполагаемый средний размер объекта, используемый для расчетов;

• store_objects_per_bucket 20 – число объектов на хэш-корзину;

• client_db on | off – сбор статистики о клиентах;

• netdb_iow 900 – нижняя граница для базы данных измерения ICMP;

• netdbjiigh 1000 – верхняя граница для базы данных измерения ICMP;

• netdb_ping_period 5 minutes – минимальное время между посылок ping-пакетов в одну и ту же сеть;

• query_icmp on | off – должны ли соседи в IСР-ответы включать ICMP-данные;

• test_reachabiiity on | off – если включить, то ответ icpjmiss будет заменяться на icp_miss_nofetch, если сервер отсутствует в базе данных ICMP или RTT равен нулю;

• buffered_iogs on | off – при включении запись в журнал буферизуется;

• always_direct allow| deny [!] aclname. – запросы, удовлеворяющие данным ACL, не кэшировать, а всегда направлять к первоисточнику;

• never_direct allow| deny [!] aclname. – запросы, удовлеворяющие данным ACL, всегда кэшировать;

• anonymize_headers allow| deny header_name.. – перечень заголовков, которые нуждаются в анонимизации;

• fake_user_agent none – если заголовок User-Agent фильтруется с помощью анонимизатора, то подставляется эта строка;

• minimum_retry_timeout 5 seconds – если сервер имеет несколько IP-адресов, то тайм-аут соединения делится на их количество;

• maximum_singie_addr_tries 3 – сколько раз пытаться соединиться с сервером, имеющим один IP-адрес; если сервер имеет несколько IP-адресов, то каждый из них будет опробован один раз;

• snmp_port 3401 – порт, который слушает Squid для SNMP-запросов;

• snmp_access allow| deny [!] aclname… – определяет, кто будет допущен к SNMP-порту;

• offiine_mode on | off – если включить, то Squid будет брать объекты только из кэша и не будет пытаться обращаться к первоисточникам;

• uri_whitespace strip – что делать с запросами, имеющими пробелы в URI; возможные варианты:

– strip – удалять пробелы;

– deny – сообщать Invalid Request (ошибочный запрос);

– allow – передавать как есть;

– encode – кодировать в соответствии с RFC 1738, передавать дальше;

– chop – остаток после первого же пробела отбрасывать;

• mcast_miss_addr адрес – по этому multicast-адресу посылается сообщение при каждом «непопадании» в кэш;

• mcast_miss_port порт – этот порт не пользуется для посылки сообщения;

• strip_query_terms on – удалять параметры запроса перед записью в журнал;

• ignore_unknown_nameservers on – игнорировать сообщения от DNS-серверов, с которыми Squid не работает.

Пример конфигурации Squid

Как вы уже заметили, опций для конфигурации Squid очень много. Для быстрой настройки proxy-сервера можно воспользоваться приведенными ниже параметрами. Конечно они не являються идеальными, наверняка тонкая настройка поможет вам оптимизировать сервер как с точки зрения увеличения производительности, так и с точки зрения безопасности.

Возьмем стандартный файл Squid.conf и отредактируем только нижеприведенные строки:

• http_port 3128 – номер порта, на котором Squid будет слушать команды от клиентов;

• hierarchy_stoplist cgi-bin, chat – слова в URL, при обнаружении которых proxy-сервер будет не кэшировать объекты, а напрямую перенаправлять запрос серверу;

• cache_mem 16 MB – сколько оперативной памяти Squid может забрать под свои нужды. Чем больше выделить памяти – тем быстрее будут обрабатываться запросы. Весьма зависит от количества клиентов;

• maximum_object_size 16384 KB – максимальный размер объектов, которые будут сохранены в кэше. Размер специфичен для ваших задач и объема жесткого диска;

• cache_dir /usr/local/Squid/cache 2048 16 256 – указывает proxy-серверу, где сохранять кэшируемые файлы. Под кэш выделяется два гигабайта и создается 16 и 256 каталогов 1-го и 2-го уровня;

• ftp_user [email protected] – задает proxy-серверу, под каким паролем регистрироваться на анонимных FTP-серверах;

• negative_ttl 1 minutes – время жизни страничек с ошибкой;

• positive_dns_tti 6 hours – время жизни удачного преобразования DNS-имен в IP-адреса;

• negat ive_dns_tt 1 5 minutes – время жизни соответственно удачного и неудачного преобразования DNS-имен в IP-адреса.

Дальнейшие наши действия касаются разграничения прав пользователей.

Сначала необходимо определить ACL (Access Control List, список управления доступом). Сначала закомментируем все строчки в файле Squid.conf, начинающиеся на aci. Затем пишем свои правила. К примеру:

1 ... 77 78 79 80 81 82 83 84 85 ... 151
На этой странице вы можете бесплатно читать книгу Linux - Алексей Стахнов бесплатно.

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