. Вы можете применять средство Netsh для аудита настроек службы Windows Firewall посредством перечисления настроенных исключений (правил брандмауэра) на компьютерах пользователей. Но прежде чем я покажу, как выполняется такой аудит, давайте рассмотрим ситуации, в которых он может пригодиться.

Специальные правила для отдельных пользователей

Служба Windows Firewall популярна благодаря тому, что является бесплатной, и ею можно управлять централизованно с помощью политики Group Policy. Служба Windows Firewall поддерживает два профиля. Операционная система использует профиль домена, если компьютер подключен к сети компании (предполагается, что компания имеет домены), и стандартный профиль, если компьютер подключен к любой другой сети. Обычно администраторы создают для профиля домена большой набор правил доступа и блокируют стандартный профиль.

Некоторые привилегированные пользователи или пользователи, которые регулярно подключаются к внешним сетям, могут потребовать индивидуальных уровней доступа, что в общем случае подразумевает большее количество открытых портов или разрешенных приложений. У вас может быть возможность создать объект Group Policy Object (GPO), разрешающий эти индивидуальные уровни доступа, если у вас небольшая компания или если дополнительные уровни требуются сравнительно небольшому количеству пользователей. Однако у многих компаний нет технических или стратегических возможностей поддерживать каждый удаленный компьютер в закрытом состоянии, используя централизованно задаваемые правила, и им приходится выделять определенным пользователям права администратора, чтобы эти пользователи могли создавать собственные исключения. Например, некоторым разработчикам необходимо продемонстрировать web-проекты или другие сетевые услуги на сайтах клиентов. Можно выделить таким разработчиком права, необходимые для создания собственных правил, чтобы они могли позволить клиентам подключиться к Web-службе, размещенной на компьютерах разработчиков. Такая ситуация возникает гораздо чаще, чем может показаться. Если подобная гибкость необходима для вашего бизнеса, можно использовать службу Netsh для настройки процессов службы безопасности, чтобы согласовывать данное отклонение и выполнять аудит правил брандмауэра, созданные этими пользователями.

Начало работы

Служба Netsh - средство командной строки, которое можно использовать для выполнения различных задач по настройке сети. Доступ к основным функциям осуществляется через окружение. Окружение - группа команд, определенная для сетевого компонента, такого как DHCP, RAS или WINS. В системах Windows 2003 SP1 и XP SP2 служба Netsh добавляет окружение брандмауэра для настройки и анализа службы Windows Firewall.

Для запуска службы Netsh в диалоговом режиме введите
Netsh
в командную строку. Для входа в окружение брандмауэра введите
firewall

Отсюда можно исполнять команды брандмауэра. Например, можно ввести
show state
для просмотра статуса брандмауэра данного компьютера. В любой момент можно ввести
/?

Для вызова справки
или ввести
..
для возврата на предыдущий уровень. Средство использует иерархический принцип организации команд.

Ввод по одной команде прекрасно подходит для изучения возможностей средства или в случае, если нужно вручную получить из компьютера данные по настройке сети. Однако при автоматизации службы Netsh с помощью сценария или запланированной задачи целесообразно объединить команды. Например, в командной строке можно ввести:
netsh firewall show state

Эта комбинация запустит службу Netsh и выведет в консоль состояние брандмауэра. Однако вы вернетесь из интерфейса службы Netsh в режим командной строки.

Служба Netsh запускает окружение брандмауэра локально, то есть необходимо запустить команду Netsh на том компьютере, аудит которого требуется провести. Если вы хотите настроить окружение брандмауэра для удаленного компьютера, следует включить удаленный протокол удаленного доступа (например, RDP) для сеанса служб рабочей станции или сеанса Telnet и специально запустить эти команды. С другой стороны, вы можете добавить эти команды в сценарий загрузки компьютера или сценарий авторизации пользователя, так, чтобы они выполнялись при каждом запуске компьютера или при каждой авторизации пользователя. Далее я покажу, как использовать сценарий авторизации для проверки настройки и сохранения информации в центральном хранилище. Если вы используете программные средства управления, такие как Microsoft Systems Management Server (SMS) или LANDesk от LANDesk Software, вы можете настроить задачу регулярного запуска службы Netsh на удаленных компьютерах.

Поиск исключений

Правила службы Windows Firewall, известные как исключения, классифицируются приложением (например, Windows Messenger) и портом (например, порт TCP 80). Для отображения списка исключений по всем программам или портам следует использовать команды
netsh firewall show allowedprogram
и
netsh firewall show portopening
соответственно. Как показано на Рисунке 1, эти две команды возвращают список настроенных исключений, как для доменного, так и для стандартного профиля. На рисунке 1 изображен список выходных данных команды «show allowedprogram», содержащий 4 программы компании Microsoft (а именно Remote Assistance, File Transfer Program, Internet Explorer и Windows Messenger) и две программы от независимых разработчиков (YAC и dsTermServ Module). Приложения от независимых разработчиков могут привлекать внимание, если они не внесены в список разрешенных программ.

Рисунок 1: Результаты запуска команд show allowedprogram и show portopening commands

Команда «show portopening» отображает список всех портов TCP и UDP, через которые разрешено устанавливать соединения с компьютером и с разрешенными программами. На Рисунке 1, настройки для доменного и стандартного профилей включают порты, используемые технологией разграничения доступа к файлам компании Microsoft. Однако наблюдательный читатель заметит, что открыт порт TCP 1214. Этот порт используется службой Kazaa, популярной программой передачи файлов в одноранговых сетях, которую действительно стоит внести в список разрешенных программ. Официальный список портов можно увидеть на сайте Internet Assigned Numbers Authority (IANA) по адресу http://www.iana.org/assignments/port-numbers. Однако на сайте IANA не приведены порты, используемые менее известными одноранговыми программами или незаконными продуктами. Чтобы получить более широкий список, можете выполнить поиск в Internet, используя в качестве ключевых слов TCP UDP ports.

Вы можете задействовать команды show allowedprogram и show portopening в сценарии авторизации для проведения аудита исключений, созданных каждым компьютером, авторизующимся в вашем домене. Например, сценарий авторизации, приведенный в Листинге 1, создает список исключений для каждого авторизующегося компьютера и копирует результаты в файл журнала в общей папке с именем FirewallExceptions на файловом сервере с именем fileserver. Чтобы упростить обработку проводки, файл журнала получает временной штамп и имя компьютера, создавшего отчет. Сценарий авторизации перезаписывает файлы журнала при каждом запуске. Поэтому, если вы хотите сохранить файлы журнала, необходимо переработать сценарий. Например, вы можете присоединить дату к имени файла, добавив переменную окружения %date% (например, %temp% %computername%-%date%-fwe.log).

После того, как сценарий авторизации создает файлы журнала, можно рассмотреть возможность использования в них шаблонов и заготовок, используя средство, такое как Windows Grep. Условно-бесплатная служба Grep доступна на сайте http://www.wingrep.com/. С другой стороны, вы можете использовать команду Windows FindStr. Параметр инвертирования найденных записей (-v) службы Grep позволяет фильтровать список, исключая строки и отображая только необходимые данные. Например, команда
grep -v NetBIOS *.log | grep Enable
просматривает все файлы журнала, отображает все разрешенные исключения, но убирает все строки, содержащие слово NetBIOS. На рисунке 2 показаны результаты выполнения этой команды.

Рисунок 2: Результаты исполнения команды grep -v NetBIOS

Как можно заметить, легко свести большие объемы информации к отображению уникальных или интересующих вас данных. Например, на Рисунке 2, отмечается, что пользователь компьютера с именем GENX создал исключение для игры Battlefield 2. Зная имя компьютера и исключение, вы можете принять меры в соответствии с вашей политикой.

Некоторые пользователи могут выполнять экстренные действия, при этом добавляя программу и удаляя ее сразу после использования. В таких случаях вы можете рассмотреть вопрос об отмене их администраторских прав или о принятии дисциплинарных мер. Вы могли бы применить политику Group Policy для лишения таких пользователей возможности настраивать службу Windows Firewall. Если вы это сделаете, вам, возможно, не придется использовать службу Netsh для отслеживания изменений в настройке брандмауэра.

Правила исключения рисков

Служба Windows Firewall повышает безопасность, но только если пользователи не создают правил, разрешающих работу в сети ненадежных приложений. В таких случаях можно использовать службы Netsh и Grep для аудита индивидуальных настроек пользователей.

Листинг 1: Элементарный сценарий авторизации

now > %temp%/%computername%-fwe.log
netsh firewall show allowedprogram >> %temp%\%computername%-fwe.log
netsh firewall show portopening >> %temp%\%computername%-fwe.log
copy /Y %temp%\%computername%-fwe.log fileserverFirewallExceptions