div.main {margin-left: 20pt; margin-right: 20pt}
Шлюз в Internet: давайте
защищаться
Как это сделать с помощью Microsoft
Proxy Server 2.0
Введение
Вопрос создания надежного и
безопасного шлюза из локальной сети в Internet последнее время волнует очень
многих. Людская молва постоянно твердит о всемогуществе злющих хакеров,
творящих с подключенными к Internet локальными сетями такие вещи, что их
владельцы если и не становятся сразу банкротами, то надолго лишаются
возможности нормально вести бизнес. В итоге руководители служб безопасности
компаний самого слова “Internet” боятся как огня, а у инженеров компьютерных
служб голова пухнет от бесконечных “брандмауэров”, “межсетевых экранов” и
прочих терминов, которыми пестрит литература на тему безопасности в
Internet.
На самом деле слухи о неограниченных
возможностях хакеров сильно преувеличены. Практически в реальном масштабе
времени грамотно и аккуратно построенная и обслуживаемая система взламывается
только “агентурными методами”. Подавляющее же большинство известных до сих пор
случаев “безагентурного” взлома напрямую связано с ошибками в конфигурации
системы. Здесь очень показательна ситуация, описанная Андреем Крючковым в №2
за этот год Windows NT Magazine.
Но преуменьшать проблему тоже нельзя.
Для того чтобы оставить хакеру “дыру” в локальную сеть, существует
бесчисленное множество способов, и нужна серьезная квалификация и
аккуратность, чтобы “не воспользоваться” ни одним из них. Да и после установки
и настройки сеть, подключенная к Internet, нуждается в постоянном
наблюдении.
Чем хорош прокси-сервер
Для защиты локальных сетей
разработано множество довольно сложных и дорогих программных комплексов,
реализующих различные механизмы защиты: фильтрация пакетов, трансляция адресов
и т.д. Но тем не менее самой защищенной является сеть, которая вообще не
подключена к Internet. Это абсолютно надежный способ защиты, но у него есть
один существенный недостаток: если вы им воспользуетесь, то ваши пользователи
не смогут работать в Internet.
Но может быть, в этой идее все-таки
есть рациональное зерно? А что, например, если подключить к Internet не всю
локальную сеть, а только один компьютер? Ведь настройку одного компьютера
легче “вылизать” и за ним легче уследить, чем за всей сетью. Правда,
пользователям, желающим поработать в Internet, придется пересаживаться за этот
единственный компьютер, и через некоторое время они выстроятся в длинную
очередь. Ерунда получается. Вот если бы существовала программа, которая,
работая на подключенном к Internet компьютере, позволяла бы остальным
компьютерам сети эмулировать выход в Internet, оставаясь при этом
“невидимыми”...
На самом деле такой программой и
является прокси-сервер. Он не является классическим брандмауэром, поскольку
защита сети не входит в его функции. Сеть защищена своей изоляцией от
Internet. А прокси-сервер позволяет пользователям этой изолированной сети
выходить в Internet, используя единственный подключенный
компьютер.
Microsoft Proxy Server
2.0
Мне кажется, очень удобно
использовать в этом качестве Microsoft Proxy Server 2.0. Он прекрасно
документирован, поэтому здесь я попытаюсь только коротко изложить основные его
особенности и привести пример конфигурации. На самом деле, это не единый
программный продукт, а как бы три продукта “в одном флаконе”: Web Proxy, Socks
Proxy и Winsock Proxy. Первые два продукта являются достаточно стандартными и
распространенными. Это шлюзы уровня приложения, которые переадресуют запросы
определенных ТСР-сервисов от клиентской машины к удаленному хосту. Но они
обладают одним общим недостатком: поддерживают ограниченный круг протоколов и
приложений. Наибольший интерес, пожалуй, представляет третий продукт — Winsock
Proxy.
Этот продукт подробно описан в
документации. Я попытаюсь коротко изложить принцип его работы. Winsock Proxy
состоит из двух частей — сервера и клиентской части. Клиентская часть при
установке подменяет собой обычный Winsock. Когда какое-либо приложение на
рабочей станции пытается установить Winsock-соединение с удаленным хостом,
клиентская часть Winsock Proxy устанавливает его со своим сервером, а тот уже
“от своего имени” — с требуемым хостом. Сервер как бы транслирует пакеты в
рамках установленного соединения, подменяя в них поля адресата и
отправителя.
Все три компонента Microsoft Proxy
Server разрешают соединение только в том случае, если адрес инициатора
соединения(рабочей станции)входит в его таблицу локальных адресов (Local
Address Table), которая задается администратором. Кроме того, серверу можно
указать группы пользователей, которые имеют право устанавливать
соединения.
Теперь, уяснив основные принципы
работы Microsoft Proxy Server 2.0, рассмотрим на примере, как с его помощью
организовать безопасный шлюз в Intenet.
Пример: простейший шлюз в
Internet
Аппаратные требования
Для организации такого шлюза
необходим компьютер с двумя сетевыми интерфейсами. Один из этих интерфейсов
(назовем его внешним) подключен к Internet, а другой (назовем его внутренним)
— к локальной сети.
В принципе, в качестве внешнего
интерфейса можно использовать модем, хотя это и не очень удобно. Особенности
конфигурации Microsoft Proxy Server с использованием RAS подробно изложены в
документации, и я их рассматривать не буду.
Компьютер, на котором будет
установлен Microsoft Proxy Server 2.0, должен удовлетворять всем аппаратным
требованиям, предъявляемым Microsoft Windows NT Server 4.0, но со следующими
отличиями:
• Оперативная память. При
количестве клиентов до 300 рекомендуется не менее 32 Мбайт оперативной памяти,
от 300 до 2000 — не менее б4 Мбайт. При количестве клиентов, превышающем 2000,
рекомендуется использовать массив прокси-серверов.
• Дополнительное дисковое
пространство. Для установки Microsoft Proxy Server
необходимо
10 Мбайт свободного дискового
пространства. Для кэширования запросов Web Proxy требуется 100 Мбайт плюс 0,5
Мбайт на каждого клиента.
Ну и конечно, излишне говорить, что
это должен быть надежный компьютер (идеальный вариант — “белая” сборка), а не
странное изделие, собранное в ближайшем подвале из китайских комплектующих.
Теперь, обсудив аппаратные требования, мы можем перейти к процессу установки
программного обеспечения.
Установка Microsoft Windows NT Server
4.0
Я буду исходить из того, что читатель
осведомлен о том, как проходит установка Windows NT Server, и поэтому
остановлюсь только на особенностях, характерных для нашего случая. Кроме того,
предполагается, что протокол IP в вашей локальной сети уже настроен и
нормально работает.
• Необходимо запретить маршрутизацию
IP. Для этого нужно снять флажок Enable IP Forwarding в свойствах
протокола TCP/IP (см, рис. 1).
• Поскольку локальная сеть “не видна”
из Internet, то легальный IP-адрес должен иметь только внешний сетевой
интерфейс. IP-адреса в локальной сети можно выдавать по своему усмотрению из
пула, зарезервированного для изолированных сетей.
• В целях обеспечения безопасности
лучше запретить привязку сервисов Server, Workstation и NetBIOS Interface к
внешнему сетевому интерфейсу.
• Шлюз по умолчанию должен быть
указан только для внешнего сетевого интерфейса. Если ваша локальная
сеть имеет более одной IP-подсети, то все необходимые шлюзы для этого
компьютера нужно явно указать командой route add.
• Необходимо установить Microsoft IIS
2.0. При этом, если у вас нет других планов по использованию этого компьютера,
достаточно установить только сервис WWW. Учтите, что именно этот сервис
использует Web Proxy для аутентификации пользователей. Поэтому настройте его
аутентификацию соответствующим образом. Я рекомендую выбрать Windows NT
challenge/response authentication.
• Перед установкой Microsoft Proxy
Server 2.0 необходимо установить Service Pack 3.
• Кроме того, помните, что теперь
защита вашей сети должна быть объектом повышенного внимания. Необходимы и
грамотная политика администрирования бюджетов пользователей, и тщательное
разграничение прав, и своевременная установка хот-фиксов. К тому же я
настоятельно не рекомендую использовать на шлюзе какую-либо файловую систему,
кроме NTFS.
Установка Microsoft Proxy Server
2.0
Еще раз повторю, что этот программный
продукт прекрасно документирован, поэтому я не буду описывать его установку и
настройку во всех подробностях. Я только обращу ваше внимание на детали,
которые мне кажутся действительно важными или имеют прямое отношение к
рассматриваемому случаю. Отмечу, что все операции по настройке Microsoft Proxy
Server выполняются с помощью Internet Service Manager.
• Размер кэша для Web Proxy
установите из расчета 100 Мбайт постоянных и 0,5 Мбайт на каждого клиента. Для
этого перейдите к закладке Caching свойств Web Proxy и нажмите
кнопку Cache Size. После этого вы увидите диалоговое окно, изображенное
на рис. 3. Выберите из списка дисковое устройство, введите в поле Maximum
Size требуемое значение и нажмите кнопку Set.
• Если вы хотите регулировать доступ
ваших пользователей к Internet, включите управление доступом для всех сервисов
и разрешите пользование ими только нужным группам пользователей. Для этого
нужно перейти к закладке Permissions в свойствах сервиса и установить
флажок Enable access control (см., например, рис. 4).
• Включите запись протокола
использования сервисов, если вы хотите учитывать действия пользова
телей в Internet. Если вы включили
запись протокола Web Proxy, отключите запись протокола IIS.
• Сформируйте таблицу локальных
адресов в соответствии с конфигурацией нашей сети. Для этого перейдите к
закладке Service свойств Web Proxy и нажмите кнопку Local Address
Table. После этого вы увидите диалоговое окно, показанное на рис. 5. Для
того чтобы ввести нужный диапазон адресов, заполните поля From и То и
нажмите кнопку Add. Вы можете проделать это необходимое число раз.
• Если вы планируете использовать
этот компьютер еще и как общедоступный Web-сервер, то учтите, что по умолчанию
эта функция для внешнего сетевого интерфейса будет запрещена после установки
Microsoft Proxy Server 2.0. Для того чтобы ее разрешить, перейдите к
закладке Publishing свойств Web Proxy, установите флажок Enable Web
publishing и выберите опцию sent to local web server (см. рис.
6).
• Для того чтобы ваши пользователи
могли использовать Winsock Proxy, вы должны установить его клиентскую часть на
каждую рабочую станцию. При установке сервера автоматически создается
разделяемый каталог mspcint, с которого лучше всего выполнять установку
клиентской части. При этом настройка рабочей станции на данный сервер
выполняется автоматически. Если по каким-либо причинам это делать неудобно, то
клиентскую часть можно устанавливать с любого другого источника. Но после
этого нужно запустить конфигурационную программу WSP Client из Control
Panel, ввести имя прокси-сервера и нажать кнопку Update Now (см.
рис. 7). Таким же образом можно при необходимости перенастроить рабочую
станцию на другой сервер. Вот, собственно, и все основные моменты, на которые
я хотел бы обратить ваше внимание в данном примере. Замечу только, что при
желании вы можете на этом же компьютере расположить почтовый сервер, сервер
новостей или еще что-то подобное.
Другие возможности Microsoft Proxy
Server 2.0
Рассмотренная конфигурация является
простейшим примером использования данного программного продукта, и очень
многие его возможности не нашли здесь применения. Однако эти возможности могут
оказаться весьма полезными, если вы захотите построить более сложную
конфигурацию. Попытаемся рассмотреть некоторые из них.
Дополнительные возможности Web Proxy
• Обратный прокси (reverse proxying) u обратный хостинг для Web (reverse
hosting/or Web publishing). Эти функции нужны вам в том случае, если
вы желаете разместить один или несколько общедоступных Web-серверов внутри
вашей изолированной локальной сети. Обратный прокси — это перенаправление
http-запросов, направленных извне к вашему шлюзу, на какой-либо Web-сервер
внутри вашей локальной сети. Для того чтобы включить эту опцию, в диалоговом
окне, изображенном на рис. 6, нужно выбрать опцию send to another web
server и указать имя и порт реального сервера. Функция обратного хостинга
понадобится вам, если вы хотите запросы к отдельным URL переадресовывать на
другие URL или серверы, расположенные внутри вашей сети (например, вам может
понадобиться, чтобы все запросы к URL http:/7proxy.ms.com/userl
переадресовывались на URL http://ms.internal/user 1). Для э'1 'иго вы должны
сформировать таблицу маршрутизации Web-запросов. Эта таблица представляет
собой список пар соответствующих URL. Для того чтобы добавить запись в таблицу
маршрутизации, нужно нажать кнопку Add в диалоговом окне на. После
этого вы увидите диалоговое окно, изображенное на. Заполните поля Send Web
Server requests for (Посылать запросы Web-сервера) и То this URL
(На этот URL) и нажмите кнопку ОК.
• Защищенный (выборочный) доступ к
узлам Internet. Вы можете запретить (или разрешить) своим
пользователям доступ к отдельным узлам Internet, используя доменное имя или
комбинацию IP-адреса и маски подсети. При этом возможны два режима защиты: при
первом режиме доступ разрешен ко всем узлам, кроме перечисленных, при втором —
наоборот, запрещен ко всем, кроме перечисленных. Для того чтобы настроить эту
функцию, нужно в диалоговом окне свойств Web Proxy нажать кнопку
Security и в появившемся диалоговом окне перейти к закладке Domain
Filters. После этого вы увидите диалоговое окно, изображенное на рис. 9.
Вы должны разрешить фильтрацию доступа, отметив флажок Enable
filtering, выбрать режим защиты, и сформировать список запрещенных (для
первого режима) или разрешенных (для второго режима) узлов.
• Протоколирование доступа
пользователей в Internet. Протокол может вестись в текстовом файле или
ODBC-совместимой базе данных.
• Массив серверов. Для
большой локальной сети можно сформировать массив прокси-серверовдля
равномерного распределения нагрузки.
Дополнительные возможности Winsock
Proxy
• Поддержка протоколов TCP/IP или
IPX/SPX на внутренней сети. Используя Winsock Proxy, пользователи
вашей сети могут выходить в Internet
даже с компьютеров, на которых не
установлена поддержка протокола TCP/IP.
• Защищенный (выборочный) доступ к
узлам Internet, протоколирование доступа пользователей в Internet и массив
серверов. Эти функции работают так же, как аналогичные функции Web
Proxy.
Дополнительные возможности Socks
Proxy
• Протоколирование доступа
пользователей в
Internet и массив серверов.
Эти функции работают так же, как аналогичные функции Web Proxy.
Фильтрация пакетов
Данная функция, на мой взгляд,
настолько важна и полезна, что я решил вынести ее в отдельный раздел. Строго
говоря, фильтрация пакетов не входит в задачи классического прокси-сервера, и
наличие ее у Microsoft Proxy Server 2.0 делает его более универсальным
программным продуктом.
По умолчанию фильтрация пакетов
отключена. Чтобы ее включить, нужно нажать кнопку Security в диалоговом
окне свойств любого сервиса прокси. После этого в диалоговом окне,
изображенном на рис. 10, нужно отметить флажок Enable packet filtering on
external interface и нажать кнопку ОК. Теперь функция фильтрации пакетов
включена, и самое время разобраться, что же, собственно, такое мы
включили.
Данная функция работает только на
внешнем сетевом интерфейсе. При этом блокируется прохождение в обе стороны
всех типов пакетов, кроме тех, для которых существуют фильтры. Тип пакета
определяется комбинацией типа протокола, номера порта, IP-адресов источника и
приемника, а также направления пересылки пакета. При этом любой (любые) из
перечисленных параметров в определении типа пакета может
отсутствовать.
Фильтры бывают двух типов:
динамические и статические. Динамические фильтры автоматически создаются для
нужд сервисов Microsoft Proxy Server и автоматически уничтожаются, когда
необходимость в них отпадает. Это очень удобно, поскольку при этом
администратор не обязан вручную создавать фильтры для всех типов пакетов,
которые используются клиентами Microsoft Proxy Server. Статические фильтры
создаются вручную (за исключением фильтра для пакетов HTTP, который создается
автоматически при разрешении функции Web) и существуют постоянно. Список
статических фильтров виден в диалоговом окне на рис. 10 под заголовком
Exceptions. По умолчанию в данный список входят фильтры для пакетов ICMP и
DNS. Вы можете изменить этот список, используя кнопки Add, Remove и
Edit. Например, если вы хотите на этом же компьютере расположить почтовый
сервер почты и новостей, то вы должны будете добавить фильтры для пакетов SMTP
и NNTP.
Перейдя к закладкам Alerting и
Logging, вы можете настроить сервер таким образом, чтобы он подавал
сигналы тревоги при определенных событиях, связанных с безопасностью вашего
узла, и вел их протокол. Это может оказаться очень полезным для отслеживания
возможной активности хакеров вокруг вашего
узла.
|