Обзор программных прокси-серверов.
С развитием и удешевлением технологий доступа к удаленным сетям увеличилось число небольших офисных и домашних сетей с выходом в Интернет. В каждом случае при подключении локальной сети к провайдеру для доступа в Интернет приходится решать ряд задач:
- выбор платформы для организации шлюза из локальной сети в Интернет;
- обеспечение защиты локальной сети от сетевых атак;
- антивирусная проверка получаемых файлов и электронных писем;
- экономия сетевого трафика и ускорение доступа к Web-ресурсам;
- контроль использования клиентами локальной сети ресурсов Интернета;
- фильтрация почты и содержимого Web-документов от рекламных объявлений.
При выборе платформы и ПО для построения шлюза, соединяющего локальную сеть и Интернет, прежде всего следует учитывать опыт и квалификацию обслуживающего персонала, которому предстоит поддерживать и настраивать программное обеспечение, установленное на шлюзе. В случае подключения небольшой сети часто выбирают решения для платформы Windows.
Остальные задачи можно решить с помощью специализированных программных комплексов — прокси-серверов.
Прокси-сервер выступает посредником между клиентами локальной сети и Интернетом: обрабатывает клиентские запросы к ресурсам Сети, скрывает структуру локальной сети, обеспечивает защиту и анонимность клиентов, предоставляя им более или менее широкий спектр возможностей.
Я протестировал прокси-серверы, названные в ходе опросов на форумах проектов ixbt.com, bugtraq.ru и лидеров соответствующих разделов ПО ресурсов www.download.com и www.tucows.com.
Давайте проанализируем программные комплексы, выбранные для представления ваших интересов в Интернете и обеспечения защиты, выявим их достоинства и недостатки.
Возможности прокси-серверов
Антивирусная защита — проверка получаемых и передаваемых файлов на содержание вирусов.
Брандмауэр — фильтрация входящего и исходящего трафика в соответствии с определенными пользователем правилами.
Предустановленные правила — список правил для брандмауэра, предлагаемых разработчиками. Обычно описывают сетевую активность какой-либо программы, корректные настройки которой могут вызвать у пользователей затруднения.
Создание новых правил — возможность разработки пользователем новых правил сетевой фильтрации для брандмауэра.
Переадресация сетевых портов (port mapping) — способ передать на другой компьютер приходящие на определенный порт компьютера-шлюза сетевые запросы. Эта возможность используется для разрешения доступа из Интернета к определенным ресурсам локальной сети. Например, в локальной сети расположен Web-сервер, на котором выкладываются новости компании. Если локальная сеть подключена к Интернету через шлюз, то доступ к данному Web-серверу закрыт. Чтобы разрешить какому-либо клиенту компании, работающему вне локальной сети, просматривать документы с локального Web-сервера, администратор локальной сети должен установить переадресацию с незанятого порта шлюза (например, 34 567-го) на 80-й порт (порт Web-сервера) компьютера, где размещен Web-сервер. Таким образом, запрашивая в браузере порт 34 567-го шлюза, клиент попадает на 80-й порт Web-сервера в локальной сети.
Дополнительные сервисы — различного рода ПО, включаемое в состав прокси-сервера.
Механизм проксирования — механизм обработки запросов пользователя на получение разного рода документов из Интернета.
Классическое проксирование — пользователь в настройках своего Интернет-браузера или FTP-клиента устанавливает опцию «Работать через прокси-сервер», а также указывает IP-адрес и сетевой порт, на котором работает прокси-сервер. При запросе через браузер документа с какого-либо Интернет-ресурса он передается прокси-серверу. Получив запрос, последний открывает документ и, сохраняя его в кэше, передает пользователю. При повторном запросе прокси проверяет, не устарел ли документ, хранящийся в кэше. Если документ не устарел, он передается пользователю, в противном случае прокси обновляет его, получив новую версию из Интернета, и затем передает пользователю. Не сделав соответствующих настроек использования прокси, пользователь обращается к ресурсам Интернета напрямую, минуя сервер и обходя таким образом возможные ограничения по доступу к ресурсам, установленным для него на прокси-сервере.
Прозрачное проксирование — способ функционировать «невидимо» для пользователя. Не нужно делать настройки в своих программах: прокси сам перехватит и обработает запросы к ресурсам Интернета, сэкономив трафик и не позволив пользователю обойти наложенные на него ограничения.
Каскад прокси-серверов — возможность объединения нескольких прокси с целью обмена данными из кэша.
Кэширование DNS-записей — сохранение в кэше связей между IP-адресом и доменным именем сервера в Интернете. При первом запросе документа с какого-либо Интернет-сервера (пользователь обычно указывает доменное имя типа www.lenta.ru) прокси запрашивает DNS-сервер провайдера об IP-адресе, соответствующем имени ресурса. Получив ответ о найденном соответствии IP-адреса заданному доменному имени, прокси требует документ, а также сохраняет DNS-запись в кэше. Сервер www.lenta.ru имеет IP-адрес: 81.19.69.28. Согласитесь, человеку легче запомнить строку вида www.lenta.ru, чем такой набор цифр. Но для связи компьютеров в сети IP-адресация необходима. При повторном запросе прокси, найдя соответствующую DNS-запись в своем кэше, обслуживает пользователя, уже не опрашивая DNS-сервер провайдера, экономя на этих операциях в среднем 6—7% от общего объема трафика.
Блокировка спама и Web-рекламы — возможность осуществлять фильтрацию Web- и e-mail-трафика, избирательно ограничивая получение документов, определенных в правилах как реклама (и не только). В среднем блокировка Web-рекламы позволяет экономить 8—12% от объема полезного трафика. Фильтрация спама не экономит трафик, так как письмо вначале попадает на ваш сервер и лишь затем происходит анализ его содержимого. Просто эта функция освобождает пользователя от необходимости среди десятков рекламных объявлений разыскивать деловые письма.
Блокировка Web-ресурсов — способ ограничить для некоторых групп пользователей доступ к определенным ресурсам. В правилах, описывающих данное ограничение, можно либо указать список Интернет-серверов (например, запретить доступ ко всем Web-серверам, содержащим в названии слово «sex», в том числе и к ресурсам вида www.musicsexchange. org), либо установить ограничения на отображение содержимого Web-документов (не показывать страницы, содержащие слова «adult», «porno», «war»).
Ограничение пользовательских привилегий — возможность регламентировать доступ к ресурсам прокси-сервера. Например, кто-то может работать только с почтой, а кому-то разрешается и по Интернету гулять.
Обновление данных кэша — управление механизмом обновления кэшированных данных. Если кэш обновляется автоматически через определенные промежутки времени, то заново загружаются все устаревшие документы. В другом режиме работы документы удаляются из кэша по мере устаревания, а заносятся только при запросе пользователя. Первый режим от второго отличается как увеличением средней скорости получения документов из Интернета, так и большим расходом трафика (неважно, что какую-то страницу смотрели дважды в неделю, она обновляется в кэше ежедневно). О последней особенности работы механизма обновления кэша часто забывают. Например, один пользователь жаловался, что кто-то по ночам работает из его сети в Интернете. Поочередно обвинялись как система учета провайдера, так и вредные хакеры. В результате оказалось, что каждые 48 ч прокси-сервер пользователя обновлял свой 2 Гбайт-кэш.
Просмотр статистики работы прокси-сервера и кэша — функция, необходимая для анализа оптимальности работы системы в текущей конфигурации.
Ведение лог-записей (в файл/на удаленный сервер) — анализ сетевой активности, информационных сообщений и операций, выполняемых прокси, обязательная задача при администрировании системы. Исходя из данных анализа можно сделать вывод о необходимости изменения параметров конфигурации прокси-сервера для оптимизации его работы. Или определить попытку сетевой атаки. После взлома системы атаковавший пытается скрыть следы своего проникновения. Если он получит доступ к лог-файлам, то после проведенной им коррекции данных все будет выглядеть очень пристойно и безобидно. Поэтому записи лучше вести не только в локальные файлы, но и на отдельный сервер, а доступ к нему сделать возможным только с консоли.
Удаленное администрирование — востребованная функция, если прокси-сервер размещен в труднодоступном месте. На основе личного опыта могу сказать: при режиме работы 24Ё7 необходим постоянный доступ к функциям администрирования важного ПО, осуществляемый в соответствии с политикой безопасности организации. При входе с консоли надо быть морально готовым к звонку от начальника примерно в два часа ночи: шеф не возражает против вашего прихода на работу минут этак через 20. При сетевом доступе звонок также не исключен, но можно отделаться малой кровью. В любом случае нельзя забывать о защите администраторского доступа.
Заявлениям разработчиков о надежности ПО не всегда можно доверять. Для поиска явных и потенциальных уязвимых мест при тестировании я пользовался сетевым сканером безопасности Nessus.
CoolProxy
CoolProxy. Просмотр документов, сохраненных в кэше |
Среди дополнительных возможностей программы реализована интересная функция «механизм заказов». В офлайновом режиме можно составить очередь из запросов на поиск определенных документов (html- и pdf- документы, AVI,MP3,WAW файлы, и т.п.), которые будут получены при следующем подключении. В состав прокси также входят планировщик заданий и механизм пользовательской тарификации (возможность учета стоимости работы пользователя либо по объему полученного трафика, либо по времени работы).
Про встроенный брандмауэр замечу, что он выполняет весьма декоративную роль, ограничивая доступ только к самому прокси-серверу. К тому же при конфигурировании брандмауэра можно задать всего один диапазон IP-адресов. Указать список или несколько диапазонов уже нельзя.
CoolProxy. Настройка работы прокси-сервера |
Кэшируемые документы сохраняются в иерархической структуре каталогов, копирующей структуру Web-серверов, с которых они были получены. Для каждого Web-сервера создается свое дерево каталогов в кэше. По утверждению разработчиков, «размер кэша ограничивается только размером вашего диска». Отсутствие контроля над размером кэша, вероятно, не самая блестящая идея. Если раздел жесткого диска, где размещен кэш прокси-сервера, используется ОС для операций с виртуальной памятью (swap), то недостаток дискового пространства может привести к сбоям в работе и зависанию системы.
Рассматривая предлагаемые в структуре прокси Web- и FTP-серверы, стоит заметить, что механизм работы Web-сервера довольно примитивен, а FTP-сервер из-за обнаруженных уязвимых мест лучше вообще не использовать.
Общее впечатление от работы с CoolProxy: советую рассматривать данную разработку как экспериментальную, не прошедшую окончательной обкатки, и не использовать в «промышленных» целях.
CProxy Server
Рассматриваемый прокси-сервер предлагает широкие возможности по настройке сетевых взаимодействий. Интерфейс встроенного брандмауэра логичен и прост.
CProxy Server. Главное окно программы |
Доступна детальная настройка индивидуального профиля для каждого пользователя, в том числе с отдельными фильтрами содержимого Web-страниц и списком разрешенных для доступа ресурсов.
Среди интересных функций отмечу возможность просмотра механизма учета входящего и исходящего трафика, времени работы каждого пользователя и списка запрошенных пользователем из Интернета документов.
CProxy Server. Установка пользовательских ограничений |
Для проверки получаемых файлов на вирусы прокси может использовать любую антивирусную программу, запускаемую из командной строки. С самой системой CProxy Server поставляется антивирус F-Prot AV.
Используется интеллектуальный механизм кэширования данных, при заполнении кэша до 90% удаляются все наименее часто запрашиваемые объекты.
Недостатком рассматриваемой программы является отсутствие возможности просмотра данных в кэше.
Попробуйте установить этот прокси-сервер и самостоятельно оцените его достоинства.
NetProxy
Этот прокси-сервер идентифицирует своих клиентов и подтверждает их полномочия, используя специальную программу, размещаемую на компьютере клиента. Если вы будете работать только с HTTP- и SOCKS-сервисами, то эту клиентскую программу можно не ставить, а указать регистрационные данные в настройках браузера, пейджера ICQ и подобных программ, предусматривающих такой способ идентификации.
NetProxy. Главное окно программы |
Просмотр статистики сетевых соединений идет через telnet-сервис. Предоставляемые в отчете данные отличаются излищней лаконичностью. Удаленное администрирование также осуществляется через telnet-сервис.
Брандмауэр ограничивает доступ только к сервисам прокси-сервера, регламентируя полномочия самих пользователей. Рассматривать данный брандмауэр как средство защиты локальной сети от возможной сетевой атаки из Интернета — серьезное заблуждение.
NetProxy. Установка ограничений на использование Интернет- сервисов для группы пользователей |
Потенциальный минус рассматриваемой программы — отсутствие возможности просмотра данных сетевой активности, статистики, кэша. Есть только одно средство диагностики — анализ лог-файла. Для работы с лог-файлом прокси-сервера необходимо дополнительно загрузить с Web-сайта разработчика специальную программу-анализатор.
После окончания испытательного срока через прокси разрешается работать только одному пользователю.
Общее впечатление: недостатки этого прокси-сервера не перевешиваются его достоинствами. Работать можно, но ничем особенным он не выделяется.
Proxy Workbench
Характерной особенностью этого прокси-сервера является система отображения сетевой активности. Показываются все установленные сетевые соединения. Выбрав какое-либо из них, можно увидеть процесс передачи информации. Например, обмен данными между почтовым сервером и почтовым клиентом или во время FTP-сессии. Предоставлена возможность сохранения в файле данных, передаваемых в выбранном соединении.
Proxy Workbench. Отчет о сетевой активности, построенный программой в течение 10 мин |
Еще одно отличительное свойство рассматриваемого прокси-сервера — представление статистики сетевой активности в виде HTML-страницы с анимированными картинками. Наглядно и поначалу даже интересно. Но интерпретация данных в таком виде для рабочей сети с большим трафиком не слишком-то удобна.
Кстати, в этом прокси-сервере отсутствуют какие бы то ни было возможности кэширования информации.
Proxy Workbench. Главное окно программы |
Общее впечатление от работы с Proxy Workbench сложилось такое: можно использовать в исследовательских целях для анализа работы сетевых сервисов и программ (если лень читать RFC-документы и работать с ethereal), но не слишком подходит для рабочих задач.
Proxy+
В бесплатной версии программы установлены ограничения: работать с прокси могут только три пользователя, максимальный размер кэша — 1 Мбайт.
Proxy+. Главное окно программы |
Дополнительно в состав прокси-сервера входят Web-сервер для intranet и полнофункциональный MAIL-(SMTP-, POP3-)сервер. Почтовый сервер поддерживает пересылку почты в Интернет и intranet-сети. Включены функции антивирусной проверки почты и сохранения копий входящей и исходящей корреспонденции (последняя возможность иногда диктуется правилами пользования корпоративной электронной почтой). Реализована APOP-идентификация для получения почты (передача пароля в зашифрованном виде к почтовому ящику). Осуществляется контроль структуры электронных писем на использование уязвимых мест в MS Outlook и Outlook Express.
Proxy+. Просмотр текущей конфигурации программы |
Рассматриваемая программа обладает интересной особенностью — возможностью подключения дополнительных модулей, что увеличивает потенциал прокси-сервера. Архив дополнительных модулей расположен на Web-сервере разработчика. В основном это модули, выполняющие функции по фильтрации Web- и e-mail-трафика и антивирусной проверки. Среди них хотелось бы отметить несколько модулей с не совсем обычным назначением. Модуль MPP (Multi Purpose Plugin) включает поддержку языка сценариев (Innerfuse Pascal Script). Это позволяет самостоятельно определять реакцию системы при наступлении определенных событий. Модуль MP3 Saver предоставляет возможность фильтровать из проходящего HTTP-трафика объекты определенного типа и сохранять их на диске. Так можно сохранять файлы формата GIF, JPEG, AVI. Но главным образом модуль предназначен для работы с MP3-файлами. Он способен распознавать MP3, ICV-теги и сохранять файлы, сортируя их по стилю и исполнителю.
Отмечу, что в состав прокси также входит планировщик заданий. Администрирование осуществляется только через Web-интерфейс.
Общее впечатление: интересная разработка, привлекательная своими потенциальными возможностями.
WinProxy (Ositis Software)
Демоверсия программы не отличается по функциональности от коммерческой. Из особенностей работы программы отмечу следующее.
По умолчанию прокси-сервер прослушивает 80-й порт. Если на этом же компьютере работает Web-сервер, для устранения конфликта надо изменить номер порта с 80 на 8080 или на 3128.
WinProxy (Ositis). Главное окно программы |
Интегрированный антивирус способен работать с разными сетевыми протоколами (HTTP, FTP, SMTP, POP3, SOCKS). Обнаруженный зараженный файл очищается от программного кода вируса или уничтожается. По умолчанию антивирус не проверяет файлы больше 30 Мбайт. Разработчик модуля антивирусной проверки — компания Panda Software (версия 2.10.1.6_3.1.5.211).
Возможна разработка пользователем правил, описывающих сетевые инциденты. При выполнении правил генерируется определенное пользователем информационное сообщение. Реализована возможность передачи информационных сообщений на удаленный сервер.
WinProxy (Ositis). Просмотр сохраненных в кэше DNS-записей |
Включена функция удаленного администрирования через Web-интерфейс. Можно получить доступ к подробным данным статистики работы прокси-сервера.
Проект имеет хорошее информационное сопровождение. На Web-сервере разработчика представлена подробная документация по настройке прокси-сервера для работы с разными типами подключений к провайдеру (с использованием DSL-модемов, Ethernet и т. д.) и по особенностям настройки WinProxy в различных операционных системах. Представлены рекомендации разработчиков по конфигурированию локальной сети. Кроме того, на Web-сервере выложен расширенный справочный файл по функциям прокси-сервера.
Советую обратить внимание, что по умолчанию пароль доступа к функциям управления программы не задан. Не установлены и ограничения на удаленный доступ к администраторскому Web-интерфейсу.
Общее впечатление от работы: профессиональная реализация заложенных в прокси-сервер идей сочетается с продуманным пользовательским интерфейсом.
WinProxy (LanProject)
Функции предлагаемой для тестирования демоверсии программы серьезно ограничены по сравнению с коммерческой. В демоверсии возможны всего два одновременно работающих через прокси пользователя. Максимальный размер кэша установлен в 1 Мбайт. На почтовом сервере можно зарегистрировать трех пользователей.
WinProxy (LanProject). Администрирование прокси-сервера |
Администрирование программы осуществляется только через Web-интерфейс. Есть возможность использовать встроенный почтовый сервер для отложенной отправки почты, например, написать письмо и поставить в очередь, чтобы затем при подключении к Интернету сервер самостоятельно переслал почту.
WinProxy (LanProject). Конфигурирование параметров работы прокси-сервера |
Недостаток — отсутствие средств индикации сетевой активности. Необходимо также учитывать следующие факты: по умолчанию администраторский пароль не установлен, как не установлены и ограничения на удаленный доступ к администраторскому интерфейсу прокси-сервера. Как следствие, после стандартной установки программы любой пользователь сети может получить доступ к функциям управления прокси-сервером.
Общее впечатление: одноименная программа от Ositis Software предоставляет более полные возможности по регламентированию сетевой активности.
* * *
При выборе программного обеспечения в первую очередь необходимо руководствоваться стоящими перед вами задачами. Поэтому однозначного совета по выбору того или иного программного продукта быть не может. Но рекомендую обратить внимание на WinProxy (Ositis) и Proxy+. Первый примечателен множеством полезных функций, удобством и гибкостью настройки. Кроме того, опытный образец WinProxy по возможностям не отличается от коммерческой версии прокси-сервера. Уже на стадии тестирования опытного образца его можно использовать для обработки реальной сетевой нагрузки. Во втором прокси-сервере реализовано подключение дополнительных модулей, увеличивающих функциональность программы, плюс возможность одного из дополнительных модулей исполнять сценарии, написанные пользователем. В результате можно увеличить гибкость реакции системы на определенные события, что станет неприятным сюрпризом для взломщика.
Настройка TCP-протокола в локальной сети
Для обеспечения работы клиентов локальной сети с Интернет-ресурсами через шлюз (один из компьютеров локальной сети, также подключенный к сети провайдера), необходимо настроить протокол TCP. Для адресации компьютеров локальной сети можно взять IP-адреса из специально выделенных диапазонов для частного использования. У компьютера шлюза будет два IP-адреса, по одному на каждый сетевой интерфейс (сетевую карту). Один из сетевых интерфейсов (внутренний) подключен к локальной сети, ему присвоен IP-адрес локальной сети. Другой интерфейс (внешний) подключен к сети провайдера, ему присвоен IP-адрес из диапазона адресов, принадлежащих провайдеру. При настройке TCP-протокола сетевых интерфейсов компьютеров локальной сети в качестве параметра «шлюз» надо указать IP-адрес внутреннего интерфейса шлюза. При настройке TCP-протокола внутреннего сетевого интерфейса шлюза в качестве параметра «шлюз» берется IP-адрес внешнего интерфейса. Данные для настройки внешнего интерфейса предоставляет провайдер.
Не надо устанавливать прокси-сервер на все компьютеры в сети, достаточно поставить его только на шлюз.
Список IP-адресов для локальных сетей
Для адресации компьютеров в локальной сети рекомендуется использовать специально зарезервированные организацией Internet Assigned Numbers Authority (IANA) IP-адреса. Они действительны только внутри локальных сетей и не маршрутизируются между Интернет-серверами. Для частного использования зарезервированы следующие IP-адреса из документа RFC 1597:
10.0.0.0 - 10.255.255.255 172.16.0.0 - 172.31.255.255 192.168.0.0 - 192.168.255.255
Тестирование TCP/IP-сетей
При тестировании TCP/IP-сетей для Windows применяются программы ping и tracert, для Unix — их аналоги ping и traceroute. Программа ping показывает время прохождения сетевого пакета до выбранного хоста (компьютера в сети) и количество потерянных сетевых пакетов на всем маршруте. Программа tracert подробно информирует о сетевом маршруте, показывая весь путь сетевых пакетов до выбранного хоста с указанием времени прохождения до каждого промежуточного хоста на маршруте. Программа VisualRoute предоставляет более детальную и удобную для восприятия информацию. Дополнительно показывается процент потерь сетевых пакетов на промежуточных участках маршрута, что часто бывает удобно при диагностике сетевых каналов. Предоставлена возможность получения информации о владельцах и обслуживающем персонале сетевых хостов (сервис whois).
Ссылки на упоминаемые в тексте программы и проекты
Ethereal, http://www.ethereal.com/
F-Prot Antivirus, http://www.f-prot.com/
Panda Antivirus, http://www.pandasoftware.com/
Nessus, http://www.nessus.org/
VisualRoute, http://www.visualware.com/