Кэширующий прокси-сервер
Введение
Глобальная сеть обладает гигантским объемом информации, к которой ежедневно обращаются миллионы пользователей, как работники компаний, так и обычные пользователи. Пользователям домашних сетей проще, так как, в большинстве своем, они обладают достаточно широким интернет-каналом и не ограничены в использовании траффика.
Пользователи же, которые работают на предприятии (особенно если предприятие достаточно крупное) не имеют всех этих преимуществ. Узкий канал передачи данных существенно снижает скорость работы в Интернете. А если учесть что в офисах находятся десятки, сотни работников, между которыми делится этот канал, то можно представить, как много времени уходит на открытие небольшой веб-страницы. К тому же их рабочие станции содержат в себе коммерческую информацию, которую необходимо сохранить втайне от конкурентов. Для того чтобы решить эти задачи в предприятиях устанавливаются серверные приложения, которые будут заниматься тем что будут позволять выходить в интернет пользователям с одного и того же IP-адреса (в этом случае злоумышленнику будет непросто отследить, на какой именно рабочей станции находится искомая информация); сохранять полученные данные из сети на локальном сервере и выдавать их клиентским рабочим станциям в случае повторных обращений (это существенно повысит скорость обращения к веб-страницам (до 60%) и снизит расход траффика). Такие программы называются кэширующими прокси-серверами.
Данный вид прокси-серверов так же используется и провайдерами. Как говорилось выше, Интернет состоит из большого количества серверов. Некоторые из них содержат веб-сайты, а некоторые являются лишь транспортными узлами, перенаправляющими трафик от пользователя к веб-сайту и обратно. Провайдеры заинтересованы в уменьшении объема трафика. Для этого они применяют технологию кэширования на своих серверах, чтобы отвечать на часть пользовательских запросов, не пересылая их дальше внутренней сети. Данный метод описан в RFC 2616, позволяющий сообщить прокси-серверам, что содержимое желательно кэшировать (Cache-Control: public).
Основное назначение программы «кэширующий прокси-сервер»: сохранить полученные из Интернета данные на локальном диске сервера и при повторном обращении клиентских рабочих станций к ним взять их не с удаленного сервера, а с локального.
Существенные преимущества использования кэширования:
- из Интернета будут загружаться только новые и изменённые файлы;
- уменьшается количество запросов, посылаемых браузером серверу в Интернет;
- локальный кэш - общий кэш на все браузеры, установленные на компьютере;
- все ранее посещённые страницы можно будет просмотреть, не подключаясь к Интернету.
Данный прокси-сервер реализует кэширование по протоколу HTTP 1.1. и описывается в RFC 2616, в 13 разделе «Кэширование HTTP».
- Постановка задачи
Необходим программный продукт, который будет являться шлюзом доступа в Интернет для рабочих станций пользователей и будет обеспечивать сохранение полученных данных из глобальной сети.
Программа должна быть рассчитана на использование в локальных сетях малого офиса и предприятия (до 50 рабочих станций).
Требования к программному продукту:
- Работа в среде семейства ОС «Windows».
- Снижение расходов на ежемесячный трафик.
- Увеличение скорости работы в интернете.
- Обзор сетей и прокси-серверов
2.1
Локальная сеть
Локальная сеть – это группа связанных между собой компьютеров, серверов, принтеров, расположенных в пределах здания, офиса или комнаты. Локальная сеть дает возможность получать совместный доступ к общим папкам, файлам, оборудованию, различным программам и т.д. Использование ресурсов локальной сети дает возможность существенно снизить финансовые затраты предприятия, повысить уровень безопасности хранения важных данных, сократить временные затраты сотрудников компании на решение различного вида задач, а так же повышение общей эффективности работы. Локальная сеть состоит из следующего оборудования и технологий:
- концентраторы (HUB) – соединяет сетевые кабели и обеспечивает взаимодействие между подключенными к ним устройствами (компьютеры, принт-серверы и т.д.);
- управляемый коммутатор – концентратор, который предоставляет возможности начального администрирования конфигурации локальной сети;
- принт-сервер
– специальное устройство, которое
обеспечивает подключение
- файл-сервер
– один компьютер локальной
сети, предоставляющий дисковое
пространство для хранения
- устройство
беспроводного доступа –
- сервер
авторизации и доступа –
Локальная сеть малого офиса (до 15 рабочих мест) предполагает создание одной рабочей группы пользователей с подключением к сети Интернет. Сетевой принтер используется для печати. Основная функция такой локальной сети – авторизация пользователей для выхода в сеть Интернет, защита локальной сети от внешних атак, тарификация Интернет трафика.
Локальная
сеть масштаба предприятия (20-50 рабочих
мест) базируется на основе проведения
сети малого офиса. В такой локальной сети
реализуется решение разграничения доступа
между пользователями разных подразделений
компании. В каждом подразделении пользователи
объединены в отдельную подсеть. Так же
рабочая группа может иметь собственный
сервер. Коммутатор контролирует возможность
доступа пользователей одной подсети
в другую.
2.2 Функции различных прокси-серверов
В компьютерных сетях под прокси-сервером (компьютерной системой или приложением) понимается сервер, который выступает в роли промежуточного звена для запросов клиентами различных ресурсов с других серверов. Клиент подключается к прокси-серверу, запрашивая какие-либо ресурсы, такие как файл, соединение, веб-страница или другие виды ресурсов, доступных на удаленном сервере. Прокси-сервер обрабатывает запрос согласно правилам фильтрации. Например, он может фильтровать трафик по IP-адресу или протоколу. Если запрос был одобрен фильтром, прокси предоставляет ресурс, предварительно запрашивая его как клиент у соответствующего сервера. Дополнительно, прокси-сервер может изменять запросы клиента или ответы сервера, также он может предоставить запрашиваемый ресурс без подключения к какому-либо серверу вообще. В этом случае, прокси-сервер "кэширует" ответы от удаленных серверов и предоставляет сохраненную информацию в ответ на все последующие запросы.
Два основных назначения
Сохранить анонимность своих клиентов (в основном для безопасности),
Ускорить
доступ к ресурсу (посредством кэширования).
Обычно это функция используется
для ускорения доступа к веб-
Прокси-сервер, который передает запросы и ответы в неизменном виде обычно называется шлюзом или, иногда, "туннелирующим прокси".
Прокси-сервер может быть
Далее попробуем раскрыть
Обратный прокси - это прокси-сервер, который ставится по соседству с одним или несколькими веб-серверами. Весь трафик, приходящий из Интернета в их направлении проходит через прокси-сервер. Причин для установки обратного прокси-сервера несколько:
- Шифрование, ускорение SSL: часто, при создании защищенных веб-сайтов, SSL-шифрование осуществляется не веб-сервером, а обратным прокси-сервером, снабженным специальным оборудованием для ускорения SSL. Кроме того, один "SSL-прокси" можно использовать для организации шифрования на нескольких веб-серверах, без необходимости получения отдельного сертификата на каждый из них. Недостатком такого способа является необходимость того, чтобы все сервера обладали одним и тем же доменным именем или IP-адресом для SSL подключений.
- Балансировка нагрузки: обратный прокси-сервер может распределять нагрузку между несколькими веб-серверами, при этом веб-сервера могут обслуживать различные области веб-приложения. В таком случае у обратного прокси-сервера может возникнуть потребность в переформировании адресов каждой веб-страницы (преобразование имен ресурсов, доступных снаружи, в имена, доступные во внутренней сети).
- Выдача/кэширование статического содержимого: обратный прокси-сервер может снять нагрузку с веб-серверов за счет кэширования статического содержимого, такого как фотографии или статические графические изображения.
- Сжатие: прокси-сервер может оптимизировать и сжимать передаваемую информацию и, таким образом, увеличивать скорость ее загрузки.
- "Кормление с ложки" уменьшает количество ресурсов, используемых "медленными" клиентами путем кэширования передаваемого веб-сервером содержимого, а затем медленной передачей его клиенту. Весомый выигрыш в экономии ресурсов наблюдается для динамически создаваемых страниц.
- Безопасность: обратный прокси-сервер представляет из себя дополнительный слой безопасности и может защитить некоторые операционные системы, веб-сервера и приложения от специфических атак. Однако, возможности прокси-сервера по защите веб-приложений (а именно веб-приложения подвергаются атакам чаще всего), весьма ограничены.
- Публикация внутренних ресурсов во внешней сети: обратный прокси-сервер, имеющий выход в Интернет, можно использовать для предоставления доступа к закрытым брандмауэрам внутренним серверам компании, без необходимости выведения серверов из под его защиты. При использовании обратного прокси-сервера таким образом следует предпринять дополнительные меры безопасности для того, чтобы защитить внутреннюю инфраструктуру сети, в том случае если сервер будет взломан в результате атаки из Интернет.
Кэширующий прокси-сервер ускоряет обработку запросов путем предоставления данных, сохраненных во время предыдущего запроса от того же самого или других клиентов. Кэширующие прокси сохраняют локальные копии часто запрашиваемых ресурсов, позволяя большим организациям существенно снизить расходы на доступ в Интернет и уменьшить потребление полосы пропускания при значительном увеличении быстродействия. Большинство провайдеров и крупных организаций имеют собственный кэширующий прокси. Эти сервера настроены так, чтобы обеспечить максимальную производительность файловой системы (обычно используется RAID с журналированием) и используют "разогнанные" версии протокола TCP. Кэширующие прокси были первым типом прокси-серверов.
Некоторые
недоработанные прокси-серверы
Другим
важным преимуществом
Прокси-сервер, который работает с WWW трафиком, называется "веб прокси-сервером". Типичное использование веб-прокси - кэширование страниц. Большинство программных прокси-серверов (например, Squid) предоставляют средства для блокировки доступа к определенным адресам, находящимся в черном списке, таким образом предоставляя возможности фильтрации содержимого. Эта возможность часто используется как в корпоративной, образовательной и библиотечной среде, так и в других местах. Некоторые веб-прокси переформатируют страницы с учетом специфических нужд или аудитории (например, для мобильных телефонов или КПК).
Веб-прокси, фильтрующий содержимое. Данный тип прокси-сервера предоставляет административный контроль за передаваемым через него содержимым. Обычно, фильтрующий прокси используется в коммерческих и некоммерческих организациях (особенно часто - в школах) для обеспечения того, что использование Интернет соответствует принятым в организации нормам. Однако, в некоторых случаях, несогласные с данными нормами пользователи могут найти способы обхода ограничений, накладываемых прокси-сервером (особенно это касается программных прокси-серверов).
Наиболее распространенными
Веб-прокси, фильтрующий содержимое,
обычно поддерживает
Анонимный прокси-сервер (иногда называемый веб-прокси) применяется для анонимизации веб-серфинга, т.е. для сокрытия информации о серфере. Существует множество различных вариантов анонимизаторов, наиболее типичным из которых является открытый прокси-сервер. Благодаря тому, что их весьма трудно отследить, открытые прокси особенно полезны тем, кому необходима анонимность в онлайне - от политических диссидентов до кибер-преступников. Некоторые пользователи принципиально соблюдают анонимность, например для обеспечения конституционных прав на свободу слова. Сервер в Интернет получает запросы от анонимного прокси-сервера и таким образом не получает информации об адресе конечного пользователя. Однако, запросы к анонимизирующему прокси-серверу не являются анонимными, поэтому необходима определенная степень доверия прокси-серверу со стороны пользователя. Множество анонимных прокси-серверов финансируются рекламой, демонстрируемой пользователю на протяжении всего сеанса работы.
Некоторые прокси-серверы
В заголовок запроса некоторые
анонимизирующие прокси-
Враждебный прокси-сервер. Прокси-сервер можно установить для того, чтобы перехватить поток данных между клиентами и Интернет. Все полученные веб-страницы или отправленные формы данных могут быть сохранены и проанализированы оператором прокси-сервера. По этой причине, пароли к онлайн-сервисам (к электронной почте или клиент-банку) следует передавать по шифрованному каналу связи, например используя 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-адреса внутри протокола и пытаются с ним соединяться напрямую еще раз (что невозможно, т.к. локальные адреса недоступны извне).

- Қaзaқстaндaғы зейнеткеpлеpдi әлеyметтiк қоpғay жүйесiн жетiлдipy жолдapы
- Қазакстандаfы азаматтык коfамнын калыптасуы
- Қазақстандағы бағалы қағаздардың инвестициялық портфелін бағалаудың нарықтық экономикадағы жағдайын жетілдіру
- Қазақстандағы банк секторында валюталық операцияның негізгі түрлері
- Қазақстандағы газ және мұнай қоймалары
- Қазақстандағы ипотека
- Қазақстандағы туризм жағдайы мен даму перспективасы
- Кызметкерлермен еңбек ақы бойынша есеп айырысу
- Кызылорда қаласындағы ЖШС «Автомобиль Жол Басқармасы
- Кызылорда облысының сарқынды суын әкету
- Кылмыс істерін тергеу
- Кылмыстың субъективтік жағы
- Кыргызская фондовая биржа
- Кыргызстан точка соприкосновения интересов России, Китая и США