Реферат: Настройка прокси-сервера Squid

Реферат: Настройка прокси-сервера Squid

HTTP прокси-сервер представляет собой программу, которая принимает запросы от клиентов в виде URL-адресов и возвращает результат клиенту. Прокси-серверы используются в сетях, где клиенты не имеют прямого доступа к Интернету, но должны иметь возможность просмотра веб-страниц. Кроме того, прокси-сервер предпологает кэширование запросов выполненных однажды некоторым клиентом.

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

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

Прокси-сервер полезен только тогда, когда браузер клиента настроен так, чтобы проводить запросы через сервер, вместо обращения к сайтам напрямую. На сегодня каждый браузер умеет работать через прокси-сервер.

Проект прокси-сервера Squid в свое время отделился от ныне платного проекта Harvest и разрабатывается несколькими энтузиастами во главе с Duane Wessels из Национальной лаборатории по исследованию сетей (National Laboratory for Applied Network Research). Сервер Squid — это высокопроизводительный кэширующий прокси-сервер, ориентированный прежде всего на работу с пользователями, которые занимаются активным серфингом в Интернете. Squid поддерживает работу пользователей с такими протоколами, как FTP, HTTP, HTTPS и GOPHER. В отличие от других подобных проектов, прокси-сервер Squid обладает интересной особенностью — выполнение запросов пользователей реализовано в нем как один большой неблокируемый процесс ввода-вывода, что обеспечивает более высокую производительность сервера в целом. Поскольку сервер Squid является кэширующим прокси-сервером, он поддерживает широкие возможности по построению иерархической структуры связи кэш-серверов на основе протоколов ICP/UDP (Internet Cache Protocol), HTCP/TCP и multicast. Такая система позволяет получить высокую производительность и оптимизировать пропускную способность канала в Интернет. Кэш сервера разделяется на виртуальный, который находится в оперативной памяти компьютера, и обычный, который хранится на жестком диске. Наиболее часто используемые объекты хранятся в оперативной памяти, что ускоряет процесс их отсылки клиентам. Также в виртуальной памяти хранится большая часть запросов DNS. Squid в полной мере поддерживает SSL (HTTPS), что обеспечивает конфиденциальность передаваемой пользователями информации и приватность их работы в Интернете. Также нельзя обойти вниманием широкие возможности по аутентификации пользователей на основе различных методик: NCSA, LDAP, MSNT, NTLM, PAM, SMB, SASL и др. Все дополнительные программы для аутентификации пользователей идут в комплекте с основным ядром программы. Как видно из перечисленных методик, Squid поддерживает авторизацию пользователей средствами сервисов не только на Linux, но и на Windows-платформе (MSNT и NTLMv1). В будущем ожидается поддержка сервиса NTLMv2, который используется в операционных системах Windows 2003 Server и Vista.

1.1 Постановка задач

Для компьютерной сети, выходящей в интернет через прокси-сервер Squid, настроить список контроля доступа. Сервер расположен на компьютере под управлением операционной системы семейства Linux.

Linux Mint — дистрибутив, основанный на Ubuntu GNU/Linux. Linux Mint отличается от большинства дистрибутивов на основе Ubuntu GNU/Linux тем, что в результате изменений операционная система не теряет совместимость и те положительные качества, которыми наделена оригинальная Ubuntu. Разработчики Linux Mint вносят в дистрибутив Ubuntu ряд полезных изменений, исправляя некоторые недочеты и недостатки, тем самым делая ее доступной более широкой аудитории пользователей, а в довершение ко всему комплектуют операционную систему оригинальным интерфейсом и рядом собственных приложений (mintInstall, mintUpdate, mintBackup, mintConfig, mintAssistant, mintMenu, mintDesktop, mintNanny и других). Растущая популярность Linux Mint объясняется просто. Новые пользователи легко могут установить систему и сразу же включиться в работу. Профессионалы, в свою очередь, получают стабильную и легко конфигурируемую современную систему, на настройку которой они будут тратить значительно меньше времени. Девиз этого дистрибутива linux «from freedom came elegance» можно перевести так: свобода, привносящая элегантность.

Прокси-сервер (от англ. proxy — «представитель, уполномоченный») — служба в компьютерных сетях, позволяющая клиентам выполнять косвенные запросы к другим сетевым службам. Сначала клиент подключается к прокси-серверу и запрашивает какой-либо ресурс (например, e-mail), расположенный на другом сервере. Затем прокси-сервер либо подключается к указанному серверу и получает ресурс у него, либо возвращает ресурс из собственного кэша (в случаях, если прокси-сервер имеет свой кэш). В некоторых случаях запрос клиента или ответ сервера может быть изменён прокси-сервером в определённых целях. Также прокси-сервер позволяет защищать клиентский компьютер от некоторых сетевых атак.

1.4 Использование прокси-серверов

Чаще всего прокси-серверы применяются для следующих целей:

Обеспечение доступа с компьютеров локальной сети в Интернет.

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

Сжатие данных: прокси-сервер загружает информацию из Интернета и передаёт информацию конечному пользователю в сжатом виде. Такие прокси-серверы используются в основном с целью экономии внешнего трафика.

Защита локальной сети от внешнего доступа: например, можно настроить прокси-сервер так, что локальные компьютеры будут обращаться к внешним ресурсам только через него, а внешние компьютеры не смогут обращаться к локальным вообще (они «видят» только прокси-сервер).

Ограничение доступа из локальной сети к внешней: например, можно запретить доступ к определённым веб-сайтам, ограничить использование интернета каким-то локальным пользователям, устанавливать квоты на трафик или полосу пропускания, фильтровать рекламу и вирусы.

Анонимизация доступа к различным ресурсам. Прокси-сервер может скрывать сведения об источнике запроса или пользователе. В таком случае целевой сервер видит лишь информацию о прокси-сервере, например, IP-адрес, но не имеет возможности определить истинный источник запроса. Существуют также искажающие прокси-серверы, которые передают целевому серверу ложную информацию об истинном пользователе.

Многие прокси-серверы используются для нескольких целей одновременно. Некоторые прокси-серверы ограничивают работу несколькими портами: 80 (HTTP), 443 (Шифрованное соединение HTTPS), 20,21 (FTP).

1.5 Типы прокси-серверов

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

Ключевыми типами прокси-серверов, являются:

пересылающие прокси-серверы (forward proxies);

прозрачные прокси-серверы (transparent proxies);

кэширующие прокси-серверы (caching proxies);

прокси-сервер обеспечения безопасности (security proxies);

обратные прокси-серверы (reverse proxies).

Пересылающий прокси-сервер является прокси-сервером, который помогает пользователям из одной зоны безопасности выполнять запросы контента из «следующей» зоны, следуя направлению, которое обычно (но не обязательно) является исходящим (это значит, что клиент находится внутри, а сервер где-то в открытом Интернете).

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

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

С точки зрения топологии (как в общем смысле, так и относительно ширины полосы пропускания) пересылающие прокси-серверы всегда относительно ограничены в терминах сетевой скорости по отношению к своим пользователям из-за более медленного WAN-соединения (соединения с глобальной сетью), которое обычно отделяет пересылающий прокси-сервер от реального контента в Интернете.

Прозрачные прокси-сервера являются прокси-серверами, которые «находятся здесь», но не осведомляют пользователей в прямой форме о том, что они здесь находятся. В пересылающих прокси-серверах обычно существуют Linux/UNIX блоки, которые слушают весь трафик по определенному протоколу для определенного сегмента сети и перехватывают трафик, хотя пользовательский процесс в действительности не знает об их существовании. Фактически пользовательский процесс не общается с прокси-сервером, но общается с другим (конечным) сайтом, а прокси-сервер, в сущности, становится тем «человеком посередине», который «взламывает» соединение.

Прокси-сервер является непрозрачным, или объявленным, когда пользователи знают о том, что они общаются через прокси-сервер, потому что они обращаются (на языке прокси-сервера: HTTP) к прокси-серверу.

Прозрачные прокси-сервера сами по себе не являются на самом деле типом прокси-сервера, скорее любой прокси-сервер является либо прозрачным, либо объявленным по проекту.

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

Наиболее важным аспектом для кэширующих прокси-серверов является необходимость обеспечения того, что кэширующие прокси-серверы кэшируют только то, что на самом деле можно кэшировать. Динамический, регулярно изменяющийся контент не лучший выбор для кэширования, так как это может оказать воздействие на стабильность приложения, основанного на этом контенте. В случае HTTP-контента заголовки HTTP отображают возможность кэширования контента посредством указателей «cache».

В большинстве случаев пересылающие прокси-серверы конфигурируются также для работы в качестве кэширующих прокси-серверов. Это явление используется настолько часто, что компания IBM включила это в название компонента своего Edge Server: IBM Caching Proxy.

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

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

В большинстве случаев функциональные возможности по обеспечению безопасности могут быть добавлены стандартному прокси-серверу в виде дополнительного программного модуля (плагина, от англ.- plug-in) (к примеру, IBM Tivoli WebSeal Plug-In для IBM WebSphere Edge Server). Существуют также и отдельные продукты, такие, как IBM Tivoli Access Manager for e-Business, которые служат только в качестве прокси-сервера обеспечения безопасности.

Обратные прокси-серверы имеют много общего кода с пересылающими прокси-серверами: фактически одни и те же продукты могут быть сконфигурированы одним или другим образом либо двумя сразу. Однако с функциональной и практической точки зрения в нашем случае мы рассматриваем обратные прокси-серверы как полностью другой инструмент.

Обратные прокси-серверы прозрачны, отчасти по определению. За обратным прокси-сервером пользователь вообще не знает о своем общении с прокси-сервером. Пользователь полагает, что общается с реальным предметом – сервером, на котором находится контент.

Обратные прокси-серверы обычно избраны и реализованы в целях обеспечения изоляции контента и зон. Однако, вы можете также добавить в обратные прокси-серверы функциональные возможности по кэшированию для обеспечения производительности заодно с преимуществами обеспечения безопасности.

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

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

1.6 Прокси-сервер Squid

Squid — программный пакет, реализующий функцию кэширующего прокси-сервера для протоколов HTTP, FTP, Gopher и (в случае соответствующих настроек) HTTPS. Разработан сообществом как программа с открытым исходным кодом (распространяется в соответствии с GNU GPL). Все запросы выполняет как один неблокируемый процесс ввода/вывода. Используется в UNIX-like системах и в ОС семейства Windows NT. Имеет возможность взаимодействия с Active Directory Windows Server путём аутентификации через LDAP, что позволяет использовать разграничения доступа к интернет ресурсам пользователей, которые имеют учётные записи на Windows Server, также позволяет организовать «нарезку» интернет трафика для различных пользователей.

В сочетании с некоторыми межсетевыми экранами и маршрутизаторами Squid может работать в режиме прозрачного прокси-сервера. В этом режиме маршрутизатор вместо того, чтобы сразу пересылать http-запросы пользователя http-серверу в интернете, перенаправляет их прокси-серверу, который может работать как на отдельном хосте, так и на самом маршрутизаторе. Прокси-сервер обрабатывает запрос (с возможной отдачей содержимого из кэша), это содержимое направляется к запросившему пользователю, для которого оно выглядит как «ответ» сервера, к которому адресовался запрос. Таким образом, пользователь может даже не знать, что все запросы и ответы прошли через прокси-сервер.

Сервер Squid развивается в течение уже многих лет. Обеспечивает совместимость с большинством важнейших протоколов Интернета, а также с операционными системами:

📎📎📎📎📎📎📎📎📎📎