Когда дело касается безопасности компьютерных систем, большинство организаций сосредоточивает свои усилия на серверах. Но многие из недавно объявившихся «червей», разрушивших целые сети и стоивших компаниям миллионы долларов, нанесли этот огромный ущерб, проникнув в сеть через беззащитные рабочие станции. Злоумышленники — будь то посторонние лица или недовольные сотрудники компании, умеющие контролировать рабочую станцию и имитировать легитимного пользователя системы, могут получать доступ к конфиденциальной информации и ресурсам на локальной системе и в локальной сети. Прошли те времена, когда локальную сеть можно было расценивать как безопасное убежище. Теперь от атак «червей» и действий злоумышленников нужно защищать все открытые порты на рабочих станциях.
Очевидно, разработчики Microsoft отдают себе в этом отчет. Именно поэтому в рамках инициативы Trustworthy Computing компания сделала вопрос безопасности ключевым при разработке пакета обновлений Windows XP Service Pack 2 (SP2) — самого крупного ориентированного на безопасность пакета обновлений со времени выпуска Windows NT 4.0 SP3. В сообществе пользователей тот пакет обновлений окрестили Security Pack 3 («Пакет безопасности 3»), и XP SP2 (выпуск которого был запланирован на конец этого лета) заслуживает такого же звания. SP2 до отказа набит новыми функциями безопасности для борьбы с «червями» и вредоносными программами, которые могут поражать сети через незащищенные рабочие станции. Самой важной частью SP2 является Windows Firewall — заметно усовершенствованная версия Internet Connection Firewall (ICF). Изменение названия функции отражает тот факт, что Microsoft делает упор на использовании технологии локального брандмауэра для защиты рабочих станций, которые подключены только к внутренней локальной сети, в той же мере, что и для защиты рабочих станций, имеющих подключение к Internet. Лучшим способом воспользоваться преимуществами нового защитного экрана SP2 была бы установка SP2 на выделенном тестовом сервере; о том, как это сделать, будет рассказано ниже. После ознакомления с брандмауэром можно установить SP2 и выполнить централизованную конфигурацию Windows Firewall на всех рабочих станциях в сети (я расскажу об этом в одной из следующих статей).
Первое знакомство
Для того чтобы начать осваивать Windows Firewall, я предлагаю вручную установить SP2 на тестовую систему XP. После установки SP2 Windows Firewall активируется автоматически. Брандмауэр вмещает два конфигурационных профиля — доменный и стандартный — для систем, являющихся членами домена. Windows Firewall задействует доменный профиль, когда рабочая станция подключена к внутренней локальной сети; в противном случае применяется стандартный профиль. Для конфигурирования этой двойственной возможности необходимо использовать Group Policy. Однако в данном случае мы будем предполагать, что тестовая система не является членом домена. Поэтому мы задействуем только один профиль, который будет использоваться как при подключении компьютера к внутренней сети, так и при подключении к Internet. Мы рассмотрим реальный механизм развертывания Windows Firewall на примере пошаговой ручной настройки брандмауэра через панель управления на выделенном тестовом сервере.
Экран 1. Добавление исключений |
Начали!
Открываем приложение Windows Firewall в Control Panel. Сейчас, когда я пишу эту статью, диалоговое окно в версии XP SP2 все еще носит оригинальное название брандмауэра — Internet Connection Firewall. В окончательной версии SP2 диалоговые окна, возможно, будут выглядеть иначе, чем в приведенных в статье экранах. Во врезке «Пока готовился Windows Firewall» обсуждаются и другие, уже реализованные изменения. На вкладке General показан переключатель для двух режимов функционирования, On и Off. Установление режима Off для Windows Firewall означает отключение функции, и рабочая станция (и сеть) остается полностью открытой для атак. Выбор режима On активирует Windows Firewall. Windows Firewall является брандмауэром, анализирующим трафик, т. е. он отслеживает состояние всех TCP- и UDP-взаимодействий и может выявлять входящие пакеты, которые не являются частью регламентированного взаимодействия, инициированного рабочей станцией. Тем не менее в некоторых ситуациях может потребоваться разрешить запросы входящих подключений. Например, если рабочая станция подключена к LAN, возможно, администратор предпочтет разрешить соединения через порт 3389, который используется и службой Remote Assistance, и службой Remote Desktop. Если активируется Windows Firewall, он отключает все входящие подключения, кроме тех, что определены на вкладке Exceptions.
Для установления временной блокировки — когда, например, новый «червь» набирает обороты в сети, а поставщик антивирусов еще не выпустил обновление сигнатуры или когда не удается вовремя добраться до необходимого исправления, можно переключить рабочую станцию в режим Shielded на то время, пока на всех компьютерах не будут установлены исправления или пока не будет обновлен антивирусный продукт. Такая широкомасштабная конфигурация выполняется с использованием Group Policy. Следует иметь в виду, что во время блокировки этого типа службы, которые должны принимать входящие подключения (например, Windows Messenger), работать не будут. Подробнее о режиме Shielded можно узнать из врезки «Пока готовился Windows Firewall».
Исключение из правил
Исключения (Exceptions) определяют, как Windows Firewall обрабатывает нежелательные входящие пакеты. Для того чтобы выполнить конфигурацию глобальных исключений, применяемых ко всем сетевым подключениям, в том числе к коммутируемым, LAN, VPN и WAN, нужно перейти на вкладку Exceptions приложения Windows Firewall, показанную на экране 1. Позже я покажу, как настраивать исключения, которые применяются к отдельным сетевым подключениям.
Экран 2. Настройка исключений для порта |
Заметим, что Windows Firewall не накладывает никаких ограничений на исходящие пакеты. В идеале брандмауэр рабочей станции, такой как Windows Firewall, должен также контролировать исходящие пакеты. Без такого контроля невозможно будет оградить другие компьютеры сети от атак, исходящих от рабочих станций злоумышленников и программистов. Хотя на самом деле контроль исходящего трафика осуществлять намного сложнее, чем контроль входящего трафика, поскольку отличить исходящее подключение злоумышленника довольно трудно.
Windows Firewall выпускается со стандартной конфигурацией, в которой несколько компонентов Programs and Services определены как исключения, при этом можно добавлять другие. Каждое исключение определяется на основе конкретного TCP- или UDP-порта или по имени исполняемого файла. Классический метод задания регламента поведения защитного экрана состоит в использовании номеров портов, но утилиты несанкционированного управления и троянские программы доказали, что номера портов не являются надежным способом оценки входящих пакетов. Успешно установившаяся на компьютере утилита несанкционированного управления открывает порт и ждет подключения хакера. Некоторые из этих утилит открывают порты, используемые легитимными программами; другие несанкционированные утилиты управления располагаются между легитимной программой и ее портом, исследуют входящий трафик и перехватывают входящие запросы к утилите (эти запросы выдаются за запросы к легитимной программе). Для отражения действий несанкционированных утилит управления обоих типов Windows Firewall также позволяет ограничивать круг программ, которым разрешено открывать порты. Рассмотрим два предустановленных исключения Windows Firewall, которые иллюстрируют подходы к ограничению на основе портов и на основе программ.
Подключения — в порядке
Если на компьютере имеется несколько сетевых соединений (включая коммутируемые соединения и VPN), возможно, потребуется включать, отключать или настраивать Windows Firewall для каждого соединения по-разному. Эту задачу можно выполнить на вкладке Network Connections приложения Windows Firewall, как показано на экране 4. Чтобы включить или отключить Windows Firewall для какого-либо соединения, нужно установить или убрать флажок этого соединения на вкладке Network Connections. Чтобы выполнить дополнительные настройки некоторого соединения, необходимо установить флажок, соответствующий этому соединению, и нажать кнопку Settings, открывающую диалоговое окно Advanced Settings. Вкладка Services, показанная на экране 5, позволяет открыть определенные службы для Internet-трафика в процессе использования функции Internet Connection Sharing (ICS). Подобным же образом вкладка ICMP диалогового окна Advanced Settings, показанная на экране 6, позволяет определить, как Windows Firewall будет отвечать на сообщения Internet Control Message Protocol (ICMP) (например, на запросы о доступности), которые принимаются на определенном сетевом соединении. Вкладка ICMP-приложения, показанная на экране 7, предназначена для глобальных настроек, определяющих, как Windows Firewall будет отвечать на получаемые системой сообщения ICMP, такие как запрос о доступности. Каждый тип запросов ICMP можно включать и отключать по своему усмотрению.
Экран 3. Настройка исключений для программы |
Порты. Для того чтобы увидеть текущую конфигурацию на основе портов, следует установить флажок Remote Assistance and Remote Desktop в разделе Programs and Services на вкладке Exceptions и открыть диалоговое окно Exceptions. На экране 2 показано, что это предустановленное исключение выделяет TCP порт 3389, используемый протоколом Remote Desktop Protocol (RDP), через который осуществляется взаимодействие служб Remote Assistance и Remote Desktop.
В нижней части диалогового окна Exceptions расположены два варианта для диапазона Scope: можно открыть указанный порт для всех адресов (All IP addresses) (т. е. для всех систем в локальной сети и всего Internet) или открыть порт только для локальной подсети (Local Subnet Only). Вариант Local Subnet Only предназначен для небольших и средних компаний, имеющих только одну подсеть, и для организаций, в которых пользователи и программы, имеющие доступ к данной рабочей станции, заведомо находятся в той же подсети, что и рабочая станция. Для компаний, в которых имеется более одной подсети, варианты выбора диапазона Scope почти бесполезны. Если используются программы управления системами, такие как Microsoft Systems Management Server (SMS), или администраторам нужен сетевой доступ к рабочим станциям в нескольких подсетях, у вас нет другого выбора, кроме как установить значение All IP addresses. Альтернативой использованию Scope является применение встроенной в XP поддержки IP Security (IPSec). С помощью политик IPSec можно задать правила Allow и Deny для нескольких IP-подсетей, чтобы компьютеры за пределами диапазонов адресов подсетей не имели возможности подключаться к портам, которые приходится оставлять открытыми, настраивая Windows Firewall. Для упрощения применения политик IPSec можно задействовать тот объект групповой политики (GPO), который использовался при работе с Windows Firewall.
Экран 4. Закладка Network Connections. |
Программы. Теперь посмотрим на исключения на основе программ. Следует щелкнуть Cancel в диалоговом окне Exceptions, чтобы закрыть окно, затем установить флажок Windows Messenger, чтобы открыть новое диалоговое окно Exceptions. Как показано на экране 3, это исключение привязывается к определенному программному файлу (%ProgramFiles%Messengermsmsgs.exe), а не к номеру порта. Некоторые программы, например Windows Messenger, не используют заранее заданных номеров портов.
Windows Firewall выпускается с несколькими предустановленными исключениями, но только три из них — Files and Settings Transfer Wizard (%windir%system32usmtmigwiz.exe), NetMeeting (%ProgramFiles%NetMeetingconf.exe) и Windows Messenger (%ProgramFiles%Messengermsmsgs.exe) — включены по умолчанию. Чтобы активировать другие предустановленные исключения, следует установить соответствующие флажки на вкладке Exceptions. Для задания исключения по другой программе или порту нужно щелкнуть Add, затем ввести подходящую информацию о программе или порте.
Экран 5. Открытие службы для сетевого соединения |
Возникает вопрос: как исключения, сделанные для портов на основе сетевых подключений, соотносятся с исключениями глобального типа, которые были сделаны, когда создавались исключения на основе портов? Лучше всего показать это на примере. Предположим, у нас есть два сетевых адаптера, NIC1 и NIC2. Нам нужно открыть порт 3389 на обоих адаптерах и порт 80 — на адаптере NIC1, но не на адаптере NIC2. В этом случае можно задать исключение, открывающее порт 3389, затем в диалоговом окне Network Connections Advanced Settings добавить настройку, открывающую порт 80 на адаптере NIC1.
Для чего нужен журнал
Вкладка Log Settings приложения Windows Firewall, показанная на экране 8, позволяет определить, как будет Windows Firewall отражать свои действия в журнале и будет ли вообще. Нужно иметь в виду, что журнал Windows Firewall по умолчанию отключен. С помощью журналов Windows Firewall можно контролировать блокированные пакеты и успешные входящие и исходящие соединения. Таким образом, с помощью журнала можно узнать, что кто-то пытается безуспешно подключиться к компьютеру, а также получить информацию обо всех успешных входящих соединениях и обо всех случаях, когда компьютер открывает исходящее соединение для другой системы, такой как локальный файловый сервер или Web-сервер в Internet. В журнал записываются IP-адреса отправителя и получателя и номера портов. Кроме того, журнал позволяет узнать, было соединение блокированным или успешным. Например, запись в журнале, приведенная на экране 9, показывает, что Windows Firewall пресек попытку системы с IP-адресом 10.42.42.2 подключиться к порту 80 на локальной рабочей станции. Затем журнал показывает, что система с IP-адресом 10.42.42.10 успешно подключилась к локальной рабочей станции через Remote Desktop Protocol (порт 3389). Наконец, последняя часть записи показывает, что локальная рабочая станция подключилась к IP-адресу 10.42.42.100 для выполнения процедуры удаленного вызова (RPC), используя порт 135.
Экран 6. Разрешение обмена по ICMP для сетевого соединения |
По умолчанию Windows Firewall хранит журнал в файле C:windowspfirewall.log и выделяет 4 Мбайт дисковой памяти как максимум объема журнала, но можно изменить и расположение, и имя журнала (файл должен быть на локальной системе), а также его максимальный объем. Когда объем журнала достигает верхнего значения, Windows добавляет расширение .old к имени файла, а затем начинает новый журнал, имеющий полный путь, указанный на вкладке Log Settings. В следующий раз, когда файл журнала заполняется полностью, Windows снова переименовывает файл журнала (который после этого занимает место оригинального, самого старого файла) и начинает новый журнал.
Усиливаем защиту
Экран 7. Настройка глобальных параметров ICMP |
Изучение принципов работы Windows Firewall позволит определить, как добиться наилучшей конфигурации брандмауэра в конкретной среде. В своей следующей статье я покажу, как с помощью Group Policy выполнить автоматическое развертывание SP2 на всех рабочих станциях XP и централизованно конфигурировать и управлять Windows Firewall на этих компьютерах.
Экран 8. Настройка параметров журнала |
Рэнди Франклин Смит — редактор Windows & .NET Magazine и президент компании Monterey Technology Group, которая занимается обучением и консалтингом в области защиты Windows NT. Связаться с ним можно по адресу: rsmith@montereytechgroup.com
Изменения в процессе подготовки Windows Firewall
Ранее я уже рассматривал изменения, которые вносит пакет Service Pack 2 (SP2) во встроенный брандмауэр Windows XP. Еще раз подчеркну, что в процессе подготовки статей я был вынужден основываться на предварительных версиях SP2, поэтому не исключено, что окончательный продукт будет отличаться от моих описаний. Действительно, сейчас уже известно, что в финальной версии SP2 используются термины и синтаксис, отличные от тех, что использовал я. Вот небольшой обзор этих изменений.
Названия профилей
Можно настроить брандмауэр так, чтобы он вел себя определенным образом, когда находится внутри частной сети, и по-другому, когда находится снаружи, в Internet. Эти два способа поведения называются профилями и в финальной версии SP2 они называются доменным (domain) и стандартным (standard). В предыдущих версиях они назывались domain и mobile или corporate и other. Командная строка и Group Policy взаимодействуют с этими профилями по тем же названиям, в отличие от предыдущих версий. Можно запросить брандмауэр, какой профиль он в данный момент использует, набрав в командной строке.
netsh firewall show state
On/off-режимы
В ранних версиях SP2 предлагалось три основных режима функционирования брандмауэра: On, Off и Shielded. On означал, что брандмауэр включен, но позволяет открывать отдельные порты, разрешая компьютеру с XP, например, отвечать на запросы готовности, запросы главных файловых и принт-серверов и быть управляемым дистанционно. Shielded означал, что брандмауэр включен, а ни один порт для входящих соединений не активизирован. Режим предназначался для ситуации, когда сеть атакована «червем» и администратору нужно запретить весь незатребованный входящий трафик. В финальной версии графического интерфейса SP2 сохранилось только два режима функционирования, On и Off. В командной строке и в Group Policy эти режимы называются Enabled и Disabled. Вместо режима Shielded брандмауэр SP2 называет все открытые порты исключениями (Exceptions) и содержит настройку для разрешения (Allow exceptions) и запрета (Disallow exceptions) исключений. Через графический интерфейс, из командной строки или через Group Policy можно создать режим Shielded, включив брандмауэр и установив настройку Disallow exceptions.
Настройки Group Policy
Ранее я рассказывал о девяти настройках Group Policy, позволяющих контролировать Windows Firewall. Финальная версия SP2 содержит несколько больше — 14, но все они интуитивно понятны.
Командная строка
В финальной версии SP2 обновлен синтаксис командной строки и предлагается более высокий уровень управления по сравнению с предыдущими версиями. Самое значительное изменение касается управления диапазоном адресов. Теперь можно открыть определенный порт только для систем, внесенных в список IP-адресов. Раньше, открывая порт, нужно было выбирать между локальной подсетью и Internet целиком. Все команды начинаются с Netsh Firewall, а не с Netsh Firewall Ipv4. Основная часть команды для включения или отключения брандмауэра выглядит так:
netsh firewall set opmode
В ней mode и exceptions имеют значение либо включено (enable), либо отключено (disable), а profile либо domain, либо standard. Неуказание параметра profile устанавливает, что поведение брандмауэра должно соответствовать обоим профилям, а неуказание exceptions сохраняет действие имеющихся исключений. Например, чтобы включить брандмауэр со стандартным профилем и разрешить исключения, следует ввести
netsh firewall set opmode enable
enable standard
Иначе можно добавить параметры mode=, exceptions= и profile=, как в следующей команде:
netsh firewall set opmode mode=enable
exceptions=enable profile=standard
Можно добавить параметр interface=, чтобы сделанные настройки применялись только к одному сетевому адаптеру, но я по опыту знаю, что это работает, только если не устанавливать exceptions и profile. Например, команда
netsh firewall set opmode mode=enable
interface=»Local Area Connection»
включит брандмауэр для сетевого адаптера с именем Local Area Connection.
Объем статьи не позволяет охватить все команды, но я могу привести несколько примеров. Например, чтобы разрешить работу Ping (т. е. включить все эхо-команды протокола Internet Control Message Protocol, ICMP), следует ввести
netsh firewall set icmpsetting type 8
Чтобы разрешить доступ к Microsoft SQL Server посредством открытия порта 1433 только для локальной подсети, нужно ввести
netsh firewall add portopening tcp
1433 sql enable subnet
А чтобы открыть порт 1433 только для сетей C-класса, начинающихся с 4.0.0.0, подсетей B-класса, начинающихся с 10.0.0.0, и локальной подсети, требуется ввести
netsh firewall add portopening tcp 1433 sql enable custom 4.0.0.0/24, 10.0.0.1/255.255.0.0,subnet
Как я уже говорил, SP2 несколько расширяет список текущих дел. Но в конечном счете это ценное изменение.
Марк Минаси