Служба Windows Firewall - это персональный брандмауэр для
каждого узла, включенный в операционные системы Windows Server 2003 и
Windows XP Service Pack 2 (SP2). Вы можете применять средство 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 \\fileserver\FirewallExceptions