Академический Документы
Профессиональный Документы
Культура Документы
3
HTTPS-proxy – фактически часть HTTP-proxy. S в названии означает “secure”, т.е.
безопасный. Несмотря на то, что программно это часть HTTP-proxy, обычно HTTPS вы-
деляют в отдельную категорию (и есть отдельное поле для него в настройке браузеров).
Обычно этот протокол – безопасный HTTP – применяют, когда требуется передача сек-
ретной информации, например, номера кредитных карт. При использовании обычного
HTTP-proxy, всю передаваемую информацию можно перехватить средствами самого
proxy (т.е. это под силу администратору ЛВС). Или на более низком уровне, например,
tcpdump (т.е. и администратор провайдера и любого промежуточного узла и вообще лю-
бой человек, имеющий физический доступ к маршрутам передачи ваших данных по сети,
может при большом желании узнать ваши секреты). Поэтому в таких случаях применяют
secure HTTP – всё передаваемое при этом шифруется. Proxy-серверу при этом дается
только команда «соединится с таким-то сервером», и после соединения proxy передает в
обе стороны шифрованный трафик, не имея возможности узнать подробности. Соответ-
ственно и многие средства управления доступом – такие как фильтрация картинок – не
могут быть реализованы для HTTPS, т.к. proxy в этом случае неизвестно, что именно пе-
редается. Собственно, в процессе шифрования/расшифровки, proxy тоже участия не при-
нимает – это делают клиентская программа и целевой сервер. Наличие команды «соеди-
ниться с таким-то сервером» в HTTPS-proxy приводит к интересному и полезному по-
бочному эффекту, которым все чаще пользуются разработчики клиентских программ.
Так как после соединения с указанным сервером HTTPS-proxy лишь пассивно передает
данные в обе стороны, не производя никакой обработки этого потока вплоть до отключе-
ния клиента или сервера, это позволяет использовать proxy для передачи почти любого
TCP-протокола, а не только HTTP. То есть HTTPS-proxy одновременно является и про-
стым POP3-proxy, SMTP-proxy, IMAP-proxy, NNTP-proxy и т.д. – при условии, что соот-
ветствующая клиентская программа умеет так эксплуатировать HTTPS-proxy (увы, дале-
ко не все еще это умеют, но есть вспомогательные программы, «заворачивающие» тра-
фик обычных клиентов через HTTPS-proxy). Никаких модификаций целевого сервера не
требуется. Фактически HTTPS-proxy является программируемым mapping-proxy, как и
SOCKS-proxy.
Mapping-proxy – способ заставить работать через proxy те программы, которые
умеют работать с Интернетом только напрямую. При настройке такого proxy админист-
ратор создает как бы «копию» целевого сервера, но доступную через один из портов
proxy-сервера для всех клиентов локальной сети – устанавливает локальное «отображе-
ние» заданного сервера. Например, пользователи локальной сети хотят работать с почто-
вым сервером mail.ru не через браузер, а с использованием почтовой программы Outlook
Express или The Bat!. Эти программы не умеют работать через proxy (кроме случая, когда
Outlook получает почту по HTTP с hotmail.com – тогда он, как и браузер, пользуется
HTTP-proxy). Простейший способ работать с mail.ru по POP3 через proxy – установить
локальное отображение сервера pop.mail.ru. И в Outlook'е вместо pop.mail.ru написать
имя proxy-сервера и порт отображения. Outlook будет соединяться с proxy-сервером
("думая", что это почтовый сервер), а proxy при этом будет соединяться с pop.mail.ru и
прозрачно передавать всю информацию между Outlook и pop.mail.ru, таким образом
«превращаясь» на время соединения в POP3-сервер. Неудобство mapping-proxy в том,
что для каждого необходимого внешнего сервера нужно вручную устанавливать отдель-
ный порт на proxy. Но зато не требуется модификация ни серверов, ни клиентов. Осо-
бенно это помогает в случае необходимости «proxy-рования» многочисленных «доморо-
щенных» протоколов, реализованных в играх или финансовых программах. Почему-то
4
они часто игнорируют существование proxy и стандартных протоколов. Такие програм-
мы можно «обмануть» и направить через proxy практически всегда, если они не делают
другой глупости – передачи клиентского IP-адреса внутри протокола и пытаются с ним
соединяться напрямую еще раз (что невозможно, т.к. локальные адреса недоступны из-
вне).
SOCKS-proxy. SOCKS-сервер устанавливается на шлюзовых компьютерах, то есть
на границе локальной сети и Internet. SOCKS обладает двумя ключевыми особенностями,
выделяющими его из группы proxy-серверов.
• Он не зависит от высокоуровневых протоколов (HTTP, FTP, POP3, SMTP, NNTP и т.
д.), так как осуществляет представительство клиентов на более низком уровне (TCP и
UDP).
• Приложение в локальной сети может попросить SOCKS-сервер выступить в роли сер-
вера от лица клиента. То есть приложение в локальной сети сможет принимать соеди-
нения извне, несмотря на отсутствие реального IP-адреса.
Вообще говоря, многие из описанных проблем решаются просто путем отображе-
ния портов с помощью Mapping-proxy, но SOCKS - более рациональное средство, не тре-
бующее в отличие от MAP знания тонкостей конкретных протоколов и приложений. Че-
рез SOCKS5 можно заставить работать даже приложения, которые и понятия не имеют о
proxy! Пример - уже упомянутый FAR. Это "перенаправление" через proxy делается, на-
пример, программой SOCKSCapture (NEC). Многие современные программы сами умеют
работать через SOCKS. Примеры - Mirabilis ICQ, MS Internet Explorer, Netscape Navigator.
В протоколе SOCKS5 есть запросы (от SOCKS-клиента SOCKS-серверу) со сле-
дующим смыслом:
• Установи TCP-соединение от моего лица с таким-то сервером и передавай между на-
ми данные в обе стороны (установленное соединение дальше работает как простое
отображение, без "вникания" SOCKS-сервера в суть происходящего в канале - это мо-
гут быть команды и данные любых высокоуровневых протоколов).
• Работай сервером от моего лица на таком-то TCP-порте, принимай входящие соеди-
нения и передавай мне для обработки (после приема соединения SOCKS-сервер опять-
таки тупо передает данные между двумя сторонами, не вникая в содержание).
• Установи UDP-отображение заданного порта (UDP не ориентирован на соединения,
поэтому ярко выраженных клиентов и серверов нет, обе стороны можно считать и тем
и другим).
Фактически SOCKS-сервер является программно-управляемым mapping-proxy,
причем с описанным единым интерфейсом. Все mapping-proxy так или иначе, программ-
но управляются, но под руководством администратора сети (человека), и отображения
статичны. А SOCKS-сервер управляется прикладными программами, и отображения ус-
танавливаются, только когда они нужны, и на то время, пока они нужны.
Запросы SOCKS хорошо согласуются с запросами, посылаемыми программами к
интерфейсу winsock, именно поэтому существует возможность "насильно" заставить лю-
бую Internet-программу пойти через SOCKS-сервер, даже если она сама не умеет. Для
этого такие программы, как SOCKSCapture, перехватывают обращения этой программы к
5
функциям wsock32.dll (и другим реализациям winsock) и преобразуют их в запросы к
SOCKS-серверу незаметно для самой программы.
SOCKS4 против SOCKS5. Цифры в названии означают версию протокола. SOCKS5
- последняя версия, определенная в RFC1928. От SOCKS4 его отличают следующие но-
вые возможности:
• SOCKS-клиент может передавать не только IP-адрес хоста, с которым необходимо ус-
танавливать соединение, но и доменное имя хоста. SOCKS5-сервер сам получит IP по
имени. Таким образом, в локальных сетях, работающих через SOCKS5, можно обой-
тись без локального DNS-сервера. SOCKS4 требовал его наличия.
• SOCKS5 поддерживает не только TCP, но и UDP. Вместе они покрывают почти все
множество используемых прикладных протоколов. Из широко используемых про-
грамм разве что диагностические утилиты ping и tracert пользуются "сырыми" (raw)
сокетами и не могут работать через TCP и UDP.
• SOCKS5-сервер может согласовывать с клиентом способ аутентификации.
• SOCKS5 может использовать не только принятые схемы адресации в Internet, но и бу-
дущие - такие, как IPv6 (IPng).
Что не может делать SOCKS. Поскольку SOCKS-proxy не знает, какие высокоуров-
невые протоколы он через себя пропускает, он не может им "помогать". В основном это
касается кэширования. SOCKS не может узнать, какие ресурсы сети извлекаются с его
помощью, и, соответственно, не может при следующем обращении к этому ресурсу
"подставить" старое содержание немедленно без выполнения запроса.
Второе ограничение - когда клиентская программа просит SOCKS-proxy выполнить
за него серверную функцию (прими для меня входящее TCP-соединение), SOCKS-proxy
не гарантирует, что он будет "слушать" именно тот номер порта, который хотел бы слу-
шать клиент, так как на шлюзовой машине этот порт может быть уже занят другим сер-
вером или другим потоком SOCKS-сервера, обслуживающим другого клиента. Таким об-
разом, почти невозможно организовать работу, например, Web-сервера, находящегося
внутри локальной сети, но принимающего соединения через SOCKS-сервер, - так как
внешний клиент не будет заранее знать, с каким портом соединяться. То есть через
SOCKS-proxy клиентское приложение сможет быть сервером, но только временным и
только после того, как эта пара - клиент и сервер - уже установили первичное соединение
и могут передать через него номер порта для вторичного соединения. Этот номер назна-
чается SOCKS-сервером и сообщается SOCKS-клиенту. В таком режиме могут работать,
например, FTP-клиенты и ICQ. Для выдачи постоянных внутренних серверов "наружу"
через proxy лучше пользоваться обычным mapping-proxy с постоянными отображениями
портов.
Другие популярные proxy:
• Traffic Inspector (http://www.smart-soft.ru/)
Комплексное решение: Биллинг + PROXY + FIREWALL. В настоящий момент самая
удобная и настраиваемая статистика по каждому пользователю. Особая вкусность –
встроенный proxy сервер (дает экономию трафика до 35%) и управление маршрути-
зацией. Пожалуй, это лучшее решение для управления и контроля доступа в Интер-
нет под Windows. Выбор сисадминов организаций и домовых сетей.
6
• WinProxy (http://www.winproxy.com/)
Winproxy является полнофункциональным средством для организации подключения
локальной сети к Интернету через одно соединение. Включает в себя файрволл, кэш
и средства антивирусной защиты. Позволяет фильтровать содержание веб-сайтов и
запрещать просмотр "нежелательных" сайтов всем или только некоторым пользова-
телям, ведет подробный лог. Стоимость программы зависит от числа входящих в
сеть компьютеров и составляет от $59.95 (3 пользователя) до $799.95 (любое количе-
ство)
• Sambar Server (http://www.sambar.ru/)
Мощный WWW, FTP и Proxy сервер для Windows. Поддерживаются виртуальные
серверы и мультихостинг, под Windows NT/2K/XP запускается как сервис. Есть еще
небесплатная версия PRo - добавляются Mail, DNS, SOCKs, CRON Daemon и многое
другое.
• Wingate (http://www.wingate.com/)
Интернет-proxy для подключения локальной сети к Интернету посредством одного
соединения. WinGate работает со всеми типами интернет-соединений (модем, ISDN,
выделенная линия и т.д.), позволяя множеству пользователей одновременно нахо-
диться в сети, проверять электронную почту или общаться в онлайне таким образом,
как если бы они были подключены к Интернету напрямую. Может обрабатывать за-
просы от различных веб-приложений и интернет-протоколов - таких, как веб-
браузеры, FTP или SSL. WinGate также поддерживает возможности просмотра и про-
слушивания видео- и аудио материалов из сети Интернет, а также поддержку участия
в играх по сети. К сильным сторонам Wingate относятся его стабильность и простота
установки, настройки и использования. Ознакомительный период работы программы
без ее оплаты - 30 дней.
II. ПОРЯДОК ВЫПОЛНЕНИЯ РАБОТЫ
В данной лабораторной работе будет рассматриваться HTTP-proxy сервер MyProxy
v7.50. Его основные характеристики и возможности:
• Условно-бесплатный HTTP-, SOCKS-, Port Mapping-proxy сервер;
• Защита настроек программы паролем;
• Может работать как через каскадный proxy сервер, так и напрямую;
• Перехватывает локальные соединения;
• Имеется возможность настроить все параметры фильтрации (в т.ч. Flash, Pop-up);
• Функция предварительной загрузки страниц;
• Ведёт расширенную статистику своей работы;
• Может сжимать трафик и ускоряет работу в Интернете:
o Блокирует баннеры,
o Производит анализ размеров картинок, и если их размеры соответствуют
размерам баннеров, то они удаляются, а ссылки на них автоматически добав-
ляются в список блокируемых адресов,
o Ведётся кэширование DNS;
• Вырезает рекламу из загружаемых страниц Интернета;
• Блокирует сайты «только для взрослых»;
• Расширенная конфигурация пользователей:
7
o Устанавливается лимит трафика (по суткам, по месяцам),
o Устанавливается лимит скорости,
o Авторизация по имени и паролю либо по IP адресу,
o Запоминает IP по имени и паролю.
После запуска программы мы увидим Главное информационное окно MyProxy.
Оно состоит из 2х частей – в верхней части выводится суммарная статистика (байт при-
нято/передано, время Online, текущая скорость), в нижней – более подробная – информа-
ция о кэшировании, количестве заблокированных баннеров, процент экономии трафика.
Важно: В «реальной жизни» при настройке proxy-сервера используется два (как
минимум) интерфейса – прямое (direct) соединение с Интернет (модем, DSL, Fiber и
т.д.) и непосредственное подключение к локальной сети. В данной лабораторной работе
мы будем использовать только одно сетевое соединение (и соответственно одну сете-
вую карту) в связи с отсутствием возможности подключиться к Интернет «напря-
мую». Поэтому сервер нужно будет настроить через каскадный proxy университета
172.27.100.5:4444.
Плавающее окошко, показывающее наиболее важные статистические данные:
8
Наиболее значимые параметры:
• Порт proxy – порт, на который мы впоследствии настроим браузеры клиентских ма-
шин,
• Вышестоящий proxy – тут необходимо указать адрес и порт университетского сервера
(т.к. мы не имеем прямого соединения с Интернет),
• Перехватывать локальные соединения – перехватывает и обрабатывает исходящие
HTTP соединения без настройки браузера.
Пункт «Сжатие». К сожалению, сжатие доступно только в платной версии про-
граммы. Но на сайте, разработчики обещают ускорение Интернета до 500% за счет сжа-
тия трафика в 2-5 раз!!!
«Фильтр». Основным достоинством MyProxy является расширенный фильтр: pop-
ups, flash-анимация, баннеры (по размеру, по совпадению адреса), Referrer, Cookies.
9
Следующий пункт – «Кэш». Тут можно изменить размер кэша программы, макси-
мальный размер файла, попадающего в кэш, а также добавить сайты, содержимое кото-
рых кэшироваться не должно.
Про вкладку «Защита детей», наверное, говорить ничего не надо – все и так по-
нятно. Единственное, то, что можно добавить свои слова в список «исключений».
10
«Расценки» - исключительно для статистики и компьютерных салонов.
Пункт «Пользователи». По умолчанию MyProxy не принимает запросы от других
компьютеров. Сделано это в целях безопасности.
• Флажок "Разрешить" позволяет временно разрешить/заблокировать доступ, вы-
бранному компьютеру не удаляя его из списка и не сбрасывая его статистику.
• "Макс. дневной трафик" и "Макс. месячный трафик" позволяют ограничивать
доступ пользователей в Интернет.
• "Макс. CPS" – максимальная разрешенная скорость соединения.
• В списке компьютеров всегда присутствует пользователь "Local user". Это обозна-
чает тот же компьютер, на котором установлен MyProxy.
11
• В той же версии на вкладке пользователя можно было посмотреть количество при-
нятых/переданных байт данных.
12
«История запросов» - список последних запрашиваемых страниц Интернета. Тут
же можно посмотреть какой пользователь их запрашивал, с какого адреса, сколько раз и
ответ сервера на эти запросы (Blocked, Cached, 200, 404 и т.д.)
13
III. КОНТРОЛЬНОЕ ЗАДАНИЕ
1. Настроить доступ браузера к ресурсам Интернет через MyProxy:
• схема сети должна быть примерно такой: