Кафедра Информационных Систем и Технологий. Сдана на проверку Допустить к защите 2007 г. 2008 г. Защищена с оценкой 2008 г курсовая

Вид материалаКурсовая

Содержание


2.2.Высокоуровневая классификация прокси-серверов
2.2.1.Кэширующие прокси-серверы
2.2.2.Прозрачный прокси-сервер
2.3.Применение прокси-серверов
2.3.1.Совместный доступ к Web
2.3.2.Кэширование ответов
2.3.3.Анонимизация клиентов
2.3.4.Преобразование ответов и запросов
2.3.5.Шлюзы к системам, не являющимся HTTP-серверами
2.3.6.Фильтрация запросов и ответов
Подобный материал:
1   2   3   4   5   6   7   8   9   10   11
^

2.2.Высокоуровневая классификация прокси-серверов




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

2.2.1.Кэширующие прокси-серверы




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

2.2.2.Прозрачный прокси-сервер




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

Непрозрачный прокси-сервер способен модифицировать запрос и/или ответы. Примером такого изменения запроса является анонимизация, в соответствие с ко­торой информация о клиенте прокси-сервера скрывается. Примером изменения от­вета может послужить преобразование формата - изображение конвертируется из одного формата в другой для уменьшения размера ответа. Другой пример непро­зрачного прокси-сервера - прокси-сервер, осуществляющий перевод документа с одного языка на другой. Имеются правила, являющиеся общими для прокси-сер­веров обоих видов. В то же время с каждым видом прокси-серверов связаны свои собственные правила. Прозрачный прокси-сервер должен обеспечить, чтобы длина содержимого сообщения не изменялась при передаче сообщения через прокси-сер­вер. Заметим, что прозрачные и непрозрачные прокси-серверы отличаются от шлюзов и туннелей. Оба вида прокси-серверов могут, в отличие от туннелей, иметь ассоциированный с ними кэш. Оба вида прокси-серверов действуют как промежуточное звено между Web-клиеитом и Web-сервером; т.е. обмен сообще­ниями осуществляется в формате HTTP.
^

2.3.Применение прокси-серверов




Ниже мы рассмотрим различные варианты использования прокси-серверов, по­мимо предоставления клиентам доступа к ресурсам в Web. Это совместное исполь­зование ресурсов, кэширование, аионимизация, трансформация запросов и/или от­ветов и, наконец, фильтрация запросов/ответов.
^

2.3.1.Совместный доступ к Web




Прокси-сервер действует как внешний интерфейс для группы клиентов и дает им возможность осуществлять совместный доступ к Web. Клиенты совместно осу­ществляют доступ к Internet через прокси-серверы и могут совместно использовать ресурсы. Если несколько клиентов запрашивают один и тот же ресурс с исходного сервера, между прокси-сервером и исходным сервером может быть установлено одно соединение. Альтернативой может служить установка отдельных соединений между различными клиентами и исходным сервером, что увеличивает нагрузку на исходный сервер. Однако в том случае, когда выполняются запросы на различные ресурсы, прокси-сервер может последовательно упорядочить их. Если имеется за­держка в получении ответа для первого запроса, второй ответ также будет задер­жан. Каждое соединение между клиентом и прокси-сервером является в некотором смысле локальным соединением (т.е. расстояние в сети между ними небольшое), а более длинный маршрут между прокси-сервером и исходным сервером совместно используется всеми клиентами. Таким образом, запросы и ответы, которые разли­чаются для клиентов, проходят короткое расстояние, в то время как запросы/отве­ты, которые являются общими для всех клиентов, совместно используют более длинный путь между прокси-сервером и исходным сервером.

Многие провайдеры Internet и корпорации принудительно осуществляют дос­туп пользователей к Web через прокси-серверы. Хотя некоторым пользователям могут быть известны способы обхода прокси-серверов и у них может иметься раз­решение делать это, большинство пользователей провайдеров Internet и поставщи­ков информационного содержимого (таких как America Online) осуществляют вы­ход в Internet через прокси-серверы. Ряд таких прокси-серверов являются кэширующими прокси-серверами.
^

2.3.2.Кэширование ответов




Одной из главных задач прокси-серверов является кэширование. Кэширование представляет собой сохранение ранее полученного ответа для последующего ис­пользования, когда клиенты запрашивают один и тот же ресурс. Кэш возвращает ответ, если ответ все еще считается актуальным (т.е. исходный сервер санкциони­рует ответ, который и будет возвращен). Функция кэширования для прокси-сервера является необязательной; т.е. прокси-сервер выполняет роль кэша в дополнение к его роли как сервера для клиентов, находящихся за ним, и клиента для исходных серверов. Многие про­кси-серверы в Internet играют роль некэширующих прокси-серверов. Не все клиен­ты получают выигрыш от наличия кэширующего прокси-сервера. Например, если клиентом является программа, осуществляющая сканирование Web-ресурсов, не имеет смысла осуществлять запросы через кэш прокси-сервера, поскольку способы ее работы с Web-ресурсами существенно отличаются от поведения обычных кли­ентов. Для большинства ответов вероятность, что они снова будут востребованы, в этом случае весьма мала. Принимая во внимание, что большинство прокси-серве­ров имеют ограниченный объем дискового пространства для кэширования ответов, следует избегать кэширования ответов на запросы, сделанные программами, осу­ществляющими сканирование Web-ресурсов.
^

2.3.3.Анонимизация клиентов




Прокси-серверы играют важную роль в анонимизации клиентов, находящихся за ними. Когда Web-запрос поступает на исходный сервер через прокси-сервер, ис­ходный сервер воспринимает прокси-сервер как клиента, обращающегося с запро­сом. Когда исходный сервер пытается идентифицировать имя компьютера, с кото­рого получен запрос, он обнаруживает прокси-сервер вместо клиентов, которые на­ходятся за прокси-сервером. Учитывая, что за прокси-сервером могут иметься сотни клиентских компьютеров, у исходного сервера может отсутствовать возмож­ность различать конкретных клиентов. Анонимизация доступа может иметь очень важное значение для определенных клиентов. Некоторые пользователи могут осу­ществлять доступ к сайтам, которые содержат конфиденциальную информацию (например, связанную с состоянием здоровья), и могут не захотеть раскрывать себя. Конечно, прокси-серверу известно, какой клиент осуществляет доступ к ре­сурсу, но никому другому это не известно, если только прокси-сервер не сообщит данную информацию. Обычно организации, поддерживающие прокси-серверы, располагают средствами управления ими. Поставщики услуг Internet могут обеспе­чить сохранение конфиденциальности и неразглашение информации о работе в Web отдельных клиентов.

Некоторые прокси-серверы могут быть явным образом настроены так, чтобы не обеспечивать анонимность и добавлять заголовок, указывающий на клиента, от имени которого пересылается сообщение. В общем случае, хотя прокси-серверы в целом обеспечивают анонимность, в запросе имеются, но крайней мере, два фраг­мента информации, в которых имеются данные о пользователе:
  • Первый фрагмент информации - это заголовок User-Agent, присутствующий в запросах, в которых идентифицируется браузер пользователя и, возможно, операционная система компьютера пользователя.
  • Второй фрагмент информации - это данные, используемые для идентифика­ции состояния сеанса клиента. Эти данные часто хранятся в cookies или в других полях идентификатора сеанса, явно устанавливаемых исходным сервером. Прокси-сервер передает запросы от многих пользователей и тем самым предоставляет для них некоторую сте­пень анонимности. Исходным серверам не известны IP-адреса компьютеров клиентов, поскольку запросы приходят через прокси-сервера. Хотя cookies не обязательно раскрывают информацию о пользователе, они снижают степень анопимизации, обеспечиваемую прокси-сервером.

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

2.3.4.Преобразование ответов и запросов




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

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

2.3.5.Шлюзы к системам, не являющимся HTTP-серверами




Прокси-сервер может также играть роль промежуточного звена при работе с другими системами, не поддерживающими HTTP. Web была создана с целью обеспечения беспрепятственного доступа к ресурсам в Internet. Важно, что про­кси-сервер, как компонент Web, облегчает такой доступ. Например, прокси-сервер может действовать как промежуточное звено между Web-клиентом и FTP-сервером. Прокси-сервер может действовать так, как он действует в случае применения промежуточного звена Web; клиентский запрос пересылается на сервер, а ответ по­сылается обратно клиенту. Однако вследствие того, что Web-клиепт и FTP-сервер используют разные протоколы, прокси-сервер должен преобразовать HTTP-запрос клиента в FTP-запрос и переформатировать ответ FTP-сервера в HTTP-ответ. Та­ким образом, прокси-сервер играет роль шлюза. Отсутствие информации о типе со­держания в запросах, производящихся с использованием других протоколов (па-пример, FTP), может сделать эту задачу достаточно сложной.

Предположим, что Web-клиент посылает запрос FTP-серверу ftp://ftp.research.att.eom/F через прокси-сервер. Запрос, направляемый прокси-серверу, представляет собой обычный HTTP-запрос. Прокси-сервер сначала конвертирует запрос Web-клиента в FTP-запрос, который может быть преобразован в последова­тельность команд FTP. Для некоторых протоколов преобразование запроса может состоять просто в обрамлении HTTP-запроса другими заголовками. Однако в слу­чае протокола FTP прокси-сервер должен сначала установить FTP-соединение, действуя как FTP-клиент. Таким образом, про­кси-серверу следует открыть соединение управления для авторизации, а затем установить соединение и для передачи содержимого файла F, запрошенного Web-клиентом. Аналогичным образом прокси-сервер может действовать как шлюз к серверу электронной почты с целью получения почтового ресурса М. На рис. 2 показано, как прокси-сервер выступает в качестве шлюза к FTP-серверу и серверу электронной почты, в то же время играя роль прокси-сервера для HTTP.



Рис. 2. Прокси-сервер, действующий в качестве шлюза к FTP, HTTP-серверам и серверам электронной почты

С точки зрения Web-клиента был сделан Web-запрос ресурса ftp://ftp.research.att.eom/F, после чего ресурс F был получен. Этапы обработки FTP-запроса - установление соединения, авторизация, отправка последовательности команд и закрытие соединения - выполняются прокси-сервером. Прокси-сервер должен возвратить файл Web-клиенту в виде HTTP-ответа с соответствующим кодом от­вета и HTTP-заголовками ответа.

Порой прокси-сервер может играть роль пассивного передаточного звена. На­пример, при обслуживании защищенного соединения поверх протокола Secure Socket Layer (SSL) прокси-сервер действует как туннель. SSL выполняет шифрова­ние содержимого сообщения. Прокси-сервер передает биты сообщения в обоих па-правлениях. Программа прикладного уровня, каковой является прокси-сервер, мо­жет нарушать требования к конфиденциальности, которые предъявляются к SSL. Даже если прокси-серверу разрешено было «увидеть» лишь унифицированный указатель ресурса (URL), это уже может нести некоторую информацию, снижаю­щую степень конфиденциальности. На самом деле практически все, что может «увидеть» прокси-сервер при работе с SSL, - это адрес целевого сервера и помер порта. Способность действовать в качестве туннеля расширяет область применения прокси-серверов.
^

2.3.6.Фильтрация запросов и ответов




Прокси-сервер исполняет роль «стража», отфильтровывая ненадлежащие запросы и ответы. Прокси-сервер может отфильтровывать запросы на основе адресов сайтов и ответы на основе определенных их параметров, например, размера ответа. Организа­ция может устанавливать правила применительно к пользователям, запрещающие им посещение определенных сайтов, например, развлекательных (т.е. игровых сайтов, сайтов с анекдотами, порнографических сайтов), электронных аукционов и сайтов но трудоустройству. Прокси-сервер может сопоставлять каждый запрос со списком сай­тов, которые организация считает нежелательными для посещения, и отказывать в об­работке таких запросов, отправляя сообщение об ошибке. Сравнение может выпол­няться по полному URL (например, dmedia.com/dilbert), но чаще всего осуществляется сравнение с частью URL, которая представляет собой имя сер­вера (www.unitedmedia.com). При фильтрации вполне очевидна возможность излиш­не «запретительного» характера таких мер. В то же для некоторых сотрудников орга­низации могут иметься вполне разумные причины для посещения «запретных» сай­тов. Чтобы решить данную проблему, надо либо предоставить таким клиентам возможность обойти прокси-сервер, либо прокси-сервер должен устанавливать раз­личные правила доступа для определенных клиентов на основе их IP-адресов. Про­кси-сервер - это специализированное программное средство, поэтому он допускает значительную гибкость при его настройке. Многие хорошо известные продукты (на­пример, Netnanny, SurfWatch и др.), которые фильтруют запросы к нежелательным сайтам, сопоставляют запрашиваемый URL с набором шаблонов. Другой причиной, по которой прокси-сервер фильтрует запросы к сайту, может стать то, что обслужива­ние ответов требует значительных ресурсов. Ограничивая набор сайтов, разрешенных клиентам для доступа, прокси-сервер может реально повысить производительность для других клиентов.

Фильтрация запросов на основе URL - это только один из примеров использо­вания фильтрации. Другой пример - фильтрация запросов к поисковым системам при указании определенных ключевых слов в строке поиска. Это заставляет про­кси-сервер сначала проверить, является ли сайт, к которому осуществляется обра­щение, поисковой системой, а затем сопоставить искомый аргумент с набором клю­чевых слов для поиска, являющихся нежелательными. Еще один пример фильтра­ции запросов - удаление определенных заголовков в Web-запросе, которые могут содержать сведения о клиенте, такие как адрес электронной почты пользователя.

При фильтрации ответов прокси-сервер обычно удаляет определенные ответы, содержащие данные в форматах, вызывающих подозрения. Некоторые вирусы пе­редаются с помощью ресурсов определенных форматов, и прокси-сервер может уделить дополнительное внимание ответам в подобных форматах. Прокси-сервер может проверять такие ответы на вирусы, прежде чем возвратить ответы клиенту. Помимо текста и изображений, довольно часто в Web в качестве ответов возвраща­ются программы. В качестве примеров можно привести апплеты Java или сценарии JavaScript. Интеллектуальный прокси-сервер способен выполнять проверки таких программ, чтобы удостовериться, что они не могут нанести вред. Другим критери­ем может быть размер ответа. Предположим, что прокси-серверу известно о низкой пропускной способности находящегося за ним клиента, и запросы, длина которых превышает определенное значение, выявляются. Прокси-сервер может принять ре­шение изменить формат (например, сжать ответ) перед его передачей клиенту.