Автор работы: Пользователь скрыл имя, 10 Октября 2011 в 19:40, дипломная работа
Данный вид прокси-серверов так же используется и провайдерами. Как говорилось выше, Интернет состоит из большого количества серверов. Некоторые из них содержат веб-сайты, а некоторые являются лишь транспортными узлами, перенаправляющими трафик от пользователя к веб-сайту и обратно. Провайдеры заинтересованы в уменьшении объема трафика. Для этого они применяют технологию кэширования на своих серверах, чтобы отвечать на часть пользовательских запросов, не пересылая их дальше внутренней сети. Данный метод описан в RFC 2616, позволяющий сообщить прокси-серверам, что содержимое желательно кэшировать (Cache-Control: public).
Введение………………….………………………………………………………3
1.ПОСТАНОВКА ЗАДАЧИ……………………………………………………..5
2.ОБЗОР СЕТЕЙ И ПРОКСИ-СЕРВЕРОВ…………………………………….6
2.1. Локальная сеть………………………………………………………..6
2.2. Функции различных прокси-серверов………………………………8
2.3. Сравнение «Кэширующего прокси-сервера» с другими прокси-серверами……………..……………………………………………….…..22
2.3.1. Squid………………………………………………………….22
2.3.2. DeleGate……………………...……………...………………..24
2.3.3. WinGate…………………………………………………........26
2.3.4. UserGate………………………………………………………27
2.3.5. Traffic Inspector……………………………………………....28
3. АРХИТЕКТУРА ПРИЛОЖЕНИЯ…………………………………………....30
3.1. Обоснование выбора языка программирования…………………….30
3.2. Протокол TCP…………………………………………………………31
3.3. Формат заголовка HTTP……………………………………………...35
3.4. Сокеты…………………………………………………………………38
3.5. Разработка структуры приложения………………………………....40
4.СОЗДАНИЕ ПРОГРАММЫ «КЭШИРУЮЩИЙ ПРОКСИ-СЕРВЕР» ...…42
4.1 Библиотеки и компоненты, которые использовались при разработке программы……………..……………………………………………….....42
4.2 Реализация функций программы «Кэширующий прокси-сервер»...47
5. КРАТКАЯ ИНСТРУКЦИЯ ПОЛЬЗОВАТЕЛЯ…………………...………...56
Заключение……………………………………………………………………….60
Список литературы…..…………………………………………………………..61
Наиболее распространенными
Веб-прокси, фильтрующий содержимое,
обычно поддерживает
Анонимный прокси-сервер (иногда называемый веб-прокси) применяется для анонимизации веб-серфинга, т.е. для сокрытия информации о серфере. Существует множество различных вариантов анонимизаторов, наиболее типичным из которых является открытый прокси-сервер. Благодаря тому, что их весьма трудно отследить, открытые прокси особенно полезны тем, кому необходима анонимность в онлайне - от политических диссидентов до кибер-преступников. Некоторые пользователи принципиально соблюдают анонимность, например для обеспечения конституционных прав на свободу слова. Сервер в Интернет получает запросы от анонимного прокси-сервера и таким образом не получает информации об адресе конечного пользователя. Однако, запросы к анонимизирующему прокси-серверу не являются анонимными, поэтому необходима определенная степень доверия прокси-серверу со стороны пользователя. Множество анонимных прокси-серверов финансируются рекламой, демонстрируемой пользователю на протяжении всего сеанса работы.
Некоторые прокси-серверы
В заголовок запроса некоторые
анонимизирующие прокси-
Враждебный прокси-сервер. Прокси-сервер можно установить для того, чтобы перехватить поток данных между клиентами и Интернет. Все полученные веб-страницы или отправленные формы данных могут быть сохранены и проанализированы оператором прокси-сервера. По этой причине, пароли к онлайн-сервисам (к электронной почте или клиент-банку) следует передавать по шифрованному каналу связи, например используя SSL.
Прозрачный прокси (также известный как перехватывающий прокси-сервер) сочетает в себе функции прокси-сервера и шлюза. Соединения, устанавливаемые браузерами клиентов проходят через шлюз, где перенаправляются на прокси-сервер без какой-либо необходимости в настройке клиентских программ (часто, клиентам даже не известно то, что все их запросы проходят через прокси-сервер).
Прозрачные прокси часто
Часто можно определить
Принудительный прокси-сервер. Термин "принудительный прокси" является двусмысленным. С одной стороны он похож на прозрачный прокси-сервер (так как фильтрует весь трафик, проходящий через шлюз, который запрещает доступ к ресурсам Интернет минуя прокси-сервер), а с другой стороны - прямо противоположен ему, так как требует обязательной настройки со стороны пользователя, которому необходимо получить доступ в Интернет.
Принудительный прокси-сервер
Суффиксный
прокси-сервер позволяет получить доступ
к веб-страницам приписывая имя прокси-сервера
к их адресу (например, "ru.wikipedia.org.statoscope.
Открытый прокси-сервер отличается от прочих тем, что доступ к ресурсам Интернет при помощи этого прокси-сервера может получить любой желающий. Часто открытые прокси-сервера появляются в результате неверной конфигурации программного обеспечения системным администратором. Открытый прокси-сервер часто используется с враждебными целями, и именно поэтому системные администраторы разработали ряд способов отказать в обслуживании клиенту, работающему через открытый прокси. Множество IRC-сетей автоматически тестируют клиентскую систему на известные типы открытых прокси-серверов. Схожим образом, почтовый сервер может быть настроен на блокировку сообщений, отправленных через открытые прокси.
IRC группы и операторы электронной почты поддерживают черные списки IP-адресов открытых прокси-серверов (DNSBL). В качестве примеров таких списков можно привести AHBL, CBL, NJABL и SORBS.
Этика автоматического
SOCKS proxy – прокси сервер передающий абсолютно все данные от клиента к серверу, не изменяя и не добавляя ничего. С точки зрения web-сервера SOCKS proxy является клиентом, т.е. SOCKS proxy анонимны по определению. Имеет подтипы SOCKS4, SOCKS4a, SOCKS5. Чаще всего SOCKS proxy имеют 1080, 1081 номер порта.
HTTP-прокси — самый распространенный. Он предназначен для организации работы браузеров и других программ, использующих протокол HTTP. Браузер передает прокси-серверу URL ресурса, прокси-сервер получает его с запрашиваемого веб-сервера (или с другого прокси-сервера) и отдает браузеру. У HTTP-прокси широкие возможности при выполнении запросов:
Можно сохранять полученные
Можно ограничивать доступ к
ресурсам. Например, завести "черный
список" сайтов, на которые прокси
не будет пускать
Можно выдавать не тот ресурс, который запрашивается браузером. Например, вместо рекламных баннеров и счетчиков показывать пользователям прозрачные картинки, не нарушающие дизайн сайта, но существенно экономящие время и трафик за счет исключения загрузки картинок извне.
Можно ограничивать скорость работы для отдельных пользователей, групп или ресурсов. Например, установить правило, чтобы файлы *.mp3 качались на скорости не более 1кб/сек, чтобы предотвратить забивание вашего интернет-канала трафиком меломанов, но не лишать их полностью этого удовольствия. Эта возможность, к сожалению, есть не во всех прокси. В Eproxy эта возможность есть. Она реализуется дополнением TrafC, который кроме ограничения пропускной способности (скорости) может ограничивать и суммарный трафик.
Ведутся журналы работы прокси — можно подсчитывать трафик за заданный период, по заданному пользователю, выяснять популярность тех или иных ресурсов и т.д.
Можно маршрутизировать веб-
HTTPS-прокси – фактически часть HTTP-прокси. S в названии означает “secure”, т.е. безопасный. Не смотря на то, что программно это часть HTTP-прокси, обычно HTTPS выделяют в отдельную категорию (и есть отдельное поле для него в настройке браузеров). Обычно этот протокол – безопасный HTTP – применяют, когда требуется передача секретной информации, например, номеров кредитных карт. При использовании обычного HTTP-прокси всю передаваемую информацию можно перехватить средствами самого прокси (т.е. это под силу администратору ЛС) или на более низком уровне, например, tcpdump (т.е. и администратор провайдера и любого промежуточного узла и вообще любой человек, имеющий физический доступ к маршрутам передачи ваших данных по сети, может при большом желании узнать ваши секреты). Поэтому в таких случаях применяют secure HTTP – всё передаваемое при этом шифруется. Прокси-серверу при этом дается только команда «соединится с таким-то сервером», и после соединения прокси передает в обе стороны шифрованный трафик, не имея возможности узнать подробности (соответственно и многие средства управления доступом – такие как фильтрация картинок – не могут быть реализованы для HTTPS, т.к. прокси в этом случае неизвестно, что именно передается). Собственно в процессе шифрации/дешифрации прокси тоже участия не принимает – это делают клиентская программа и целевой сервер. Наличие команды «соединиться с таким-то сервером» в HTTPS-прокси приводит к интересному и полезному побочному эффекту, которым все чаще пользуются разработчики клиентских программ. Так как после соединения с указанным сервером HTTPS-прокси лишь пассивно передает данные в обе стороны, не производя никакой обработки этого потока вплоть до отключения клиента или сервера, это позволяет использовать прокси для передачи почти любого TCP-протокола, а не только HTTP. То есть HTTPS-прокси одновременно является и простым POP3-прокси, SMTP-прокси, IMAP-прокси, NNTP-прокси и т.д. – при условии, что соответствующая клиентская программа умеет так эксплуатировать HTTPS-прокси (увы, далеко не все еще это умеют, но есть вспомогательные программы, «заворачивающие» трафик обычных клиентов через HTTPS-прокси). Никаких модификаций целевого сервера не требуется. Фактически HTTPS-прокси является программируемым mapping-proxy, как и Socks-proxy.
FTP-прокси бывает двух основных видов в зависимости от протокола работы самого прокси. С ftp-серверами этот прокси, конечно, всегда работает по протоколу FTP. А вот с клиентскими программами – браузерами и ftp-клиентами (CuteFTP, FAR, и др.) прокси может работать как по FTP, так и по HTTP. Второй способ удобнее для браузеров, т.к. исторически является для них «родным». Браузер запрашивает ресурс у прокси, указывая протокол целевого сервера в URL – http или ftp. В зависимости от этого прокси выбирает протокол работы с целевым сервером, а протокол работы с браузером не меняется – HTTP. Поэтому, как правило, функцию работы с FTP-серверами также вставляют в HTTP-прокси, т.е. HTTP-прокси, описанный выше, обычно с одинаковым успехом работает как с HTTP, так и с FTP-серверами. Но при «конвертации» протоколов FTP<->HTTP теряется часть полезных функций протокола FTP. Поэтому специализированные ftp-клиенты предпочитают и специальный прокси, работающий с обеими сторонами по FTP. В различных приложениях это называется этот прокси FTP-gate, чтобы подчеркнуть отличие от FTP-прокси внутри HTTP-прокси. Хотя встречаются и вносящие путаницу названия. Например, в программе CuteFTP FTP-gate называют firewall, хотя FireWall в общем случае – это вообще не прокси, а фактически программа обратного назначения – не для подключения к интернету, а для изоляции от него Для прокси в FireWall оставляют специальные «дыры». FTP-gate поддерживают различные способы указания в FTP-протоколе целевого сервера, с которым FTP-клиент хочет работать, в настройке FTP-клиентов обычно предлагается выбор этого способа.
Здесь USER user@site, OPEN site, и т.д. – способ указания сервера, с которым производится работа. Такое многообразие связано с тем, что нет общепринятого стандарта на этот вид прокси, и применяются такие хитрые добавки к стандартным командам FTP-протокола.
Mapping-прокси — способ заставить работать через прокси те программы, которые умеют работать с интернетом только напрямую. При настройке такого прокси администратор создает как бы "копию" целевого сервера, но доступную через один из портов прокси-сервера для всех клиентов локальной сети — устанавливает локальное "отображение" заданного сервера. Например, пользователи локальной сети хотят работать с почтовым сервером mail.ru не через браузер, а с использованием почтовой программы Outlook Express или TheBat. Эти программы не умеют работать через прокси (кроме случая, когда Outlook получает почту по HTTP с hotmail.com — тогда он, как и браузер, пользуется HTTP-прокси). Простейший способ работать с mail.ru по POP3 через прокси — установить локальное отображение сервера pop.mail.ru. И в Outlook'ах вместо pop.mail.ru написать имя прокси-сервера и порт отображения. Outlook будет соединяться с прокси-сервером ("думая", что это почтовый сервер), а прокси при этом будет соединяться с pop.mail.ru и прозрачно передавать всю информацию между Outlook и pop.mail.ru, таким образом "превращаясь" на время соединения в POP3-сервер. Неудобство mapping-прокси в том, что для каждого необходимого внешнего сервера нужно вручную устанавливать отдельный порт на прокси. Но зато не требуется модификация ни серверов, ни клиентов. Особенно это помогает в случае необходимости "проксирования" многочисленных "доморощенных" протоколов, реализованных в играх или финансовых программах. Почему-то они часто игнорируют существование прокси и стандартных протоколов. Такие программы можно "обмануть" и направить через прокси практически всегда, если они не делают другой глупости — передачи клиентского IP-адреса внутри протокола и пытаются с ним соединяться напрямую еще раз (что невозможно, т.к. локальные адреса недоступны извне).