Как отслеживать активность брандмауэра с помощью журнала Windows Firewall

Быстрые ссылки
Почему и когда полезно журналирование брандмауэра
Как создать файл журнала
Как интерпретировать журнал Windows Firewall
Почему и когда полезно журналирование брандмауэра
Журналирование позволяет увидеть, как брандмауэр обрабатывает сетевой трафик. Это помогает при отладке правил, расследовании сбоев приложений и обнаружении подозрительной активности в сети. Ключевые случаи использования:
- Проверка работоспособности новых правил брандмауэра и поиск причин их неработоспособности.
- Поиск причин отказов приложений — например, закрытые порты или отклонённые пакеты с нестандартными TCP-флагами.
- Первичная помощь при обнаружении подозрительной активности внутри сети (лог показывает события, но не всегда помогает однозначно идентифицировать источник).
- Быстрая блокировка источников постоянных неудачных попыток доступа по IP или подсети.
- Обнаружение исходящих соединений с внутренних серверов, которые могут указывать на компрометацию.
Важно: журнал Windows Firewall даёт детальные сетевые данные, но не заменяет полные сетевые дампы или решения SIEM для долгосрочного мониторинга.
Как создать файл журнала
По умолчанию запись в журнал отключена. Чтобы включить её вручную:
- Нажмите Win + R, введите wf.msc и нажмите Enter. Откроется окно «Windows Firewall with Advanced Security».
- В правой части щёлкните Properties.

- На вкладке Private Profile нажмите Customize в разделе Logging.

- В открывшемся окне укажите максимальный размер журнала, путь к файлу и какие типы событий логировать: только dropped (отклонённые пакеты), только successful connections (успешные соединения) или оба варианта. Понимание терминов:
- Dropped packet — пакет, который брандмауэр заблокировал.
- Successful connection — соединение, которое прошло через брандмауэр (входящее или исходящее).

По умолчанию Windows Firewall записывает логи в файл:
%SystemRoot%\System32\LogFiles\Firewall\pfirewall.logи хранит только последние 4 MB данных. В продакшн-средах частая запись в журнал может повлиять на производительность, поэтому рекомендуют включать логирование только во время диагностики и отключать по завершении работ.
Повторите шаги для вкладки Public Profile, если нужно логирование и для публичных сетей.
На главном экране «Windows Firewall with Advanced Security» откройте раздел Monitoring. В панели Details, под Logging Settings, щёлкните путь рядом с File Name — журнал откроется в Блокноте.

Советы по просмотру:
- Журнал создаётся в расширяемом формате W3C (.log). Его удобно открывать в текстовом редакторе без переноса строк (word wrap off) или импортировать в таблицу, чтобы сохранить колонки.
- Один лог-файл может содержать тысячи записей — используйте фильтрацию и инструменты анализа.
Как интерпретировать журнал Windows Firewall
Журнал состоит из двух частей: заголовка и тела. Заголовок содержит статичную информацию о версии журнала и наборе полей; тело — это динамический список записей событий.

Структура и назначение полей (на основе документации Microsoft):
- Version — версия формата журнала.
- Software — программа, создавшая журнал.
- Time — указание, что штампы времени локальные.
- Fields — перечень полей, доступных в записях.
Основные поля записей:
- date — дата в формате YYYY-MM-DD.
- time — локальное время в формате HH:MM:SS (24 часа).
- action — действие (DROP, OPEN, CLOSE, OPEN-INBOUND, INFO-EVENTS-LOST).
- protocol — используемый протокол (TCP, UDP, ICMP и др.).
- src-ip — исходный IP-адрес (клиент, пробующий установить связь).
- dst-ip — адрес назначения (локальная машина или сервис).
- src-port — исходный порт.
- dst-port — целевой порт.
- size — размер пакета в байтах.
- tcpflags — TCP-флаги (например, SYN, ACK, RST и т. п.).
- tcpsyn — TCP sequence number.
- tcpack — TCP acknowledgement number.
- tcpwin — TCP window size.
- icmptype — тип ICMP-сообщения.
- icmpcode — код ICMP.
- info — дополнительная информация, зависит от action.
- path — направление: SEND, RECEIVE, FORWARD, UNKNOWN.
Как правило, для первичного анализа достаточно первых восьми полей (date, time, action, protocol, src-ip, dst-ip, src-port, dst-port).
Пример записи журнала
Ниже показан типичный пример строки (формат W3C, поля в порядке, соответствующем заголовку #Fields):
2023-07-01 12:34:56 DROP TCP 203.0.113.5 192.0.2.10 445 49720 60 SYN 0 0 0 - - - SEND
Разбор примера:
- Дата/время: 2023-07-01 12:34:56
- Действие: DROP — пакет заблокирован
- Протокол: TCP
- Исходный IP: 203.0.113.5
- Целевой IP: 192.0.2.10
- Целевой порт: 445 (часто SMB)
- Исходный порт: 49720
- tcpflags: SYN — попытка открыть соединение
Если вы видите много DROP на известных сервисных портах (80, 443, 445 и др.) с одинаковых src-ip, это повод проверить источник и поведение приложений.
Быстрые приёмы фильтрации и анализа
Ниже — несколько практических способов извлечь полезную информацию из журнала.
Простейшая фильтрация для поиска DROP (в PowerShell):
Select-String -Path "$env:SystemRoot\System32\LogFiles\Firewall\pfirewall.log" -Pattern " DROP " | Out-File -FilePath C:\temp\firewall-drop.txtФильтрация по IP:
Select-String -Path "$env:SystemRoot\System32\LogFiles\Firewall\pfirewall.log" -Pattern "203.0.113.5" | Out-File C:\temp\ip-events.txtИмпорт в таблицу (упрощённый пример на PowerShell) — скрипт читает заголовок #Fields и преобразует строки в объекты:
$log = Get-Content "$env:SystemRoot\System32\LogFiles\Firewall\pfirewall.log"
$fieldsLine = ($log | Where-Object { $_ -like '#Fields:*' }) -replace '^#Fields:\s*',''
$fields = $fieldsLine -split '\s+'
$dataLines = $log | Where-Object { $_ -and $_ -notmatch '^#' }
$objects = foreach ($line in $dataLines) {
$vals = $line -split '\s+'
$obj = [PSCustomObject]@{}
for ($i=0; $i -lt $fields.Count; $i++) { $obj | Add-Member -NotePropertyName $fields[$i] -NotePropertyValue $vals[$i] }
$obj
}
$objects | Where-Object { $_.action -eq 'DROP' } | Export-Csv C:\temp\drop-events.csv -NoTypeInformationПримечание: данный фрагмент упрощён; в реальном логе встречаются пустые поля, разные разделители и строки неверной длины. Всегда проверяйте корректность соответствия полей и значений.
Методология анализа подозрительных событий
- Сфокусируйтесь на action=DROP и событиях с повторяющимися src-ip.
- Сортируйте по dst-port — часто повторяющиеся обращения к служебным портам указывают на сканирование или попытки эксплуатации.
- Смотрите tcpflags: SYN без последующего ACK может быть сканированием; необычные комбинации (PUSH+URG) в большом количестве — подозрительны.
- Сверяйте время событий: всплески за короткий период указывают на автоматизированную атаку.
- Если src-ip — внутренний сервер и отправляет много исходящих соединений к разным внешним адресам, проверьте целостность сервера.
Когда лог не даёт ответа:
- Логи Windows Firewall показывают факт блокировки/открытия, но не дают полного сетевого контекста (например, транзитные устройства перед локальной машиной). В таких случаях используйте сетевой сниффер (tcpdump/WinPcap) или коллекции сетевых потоков на границе сети.
Рекомендации по производительности и хранению
- По умолчанию хранится 4 MB журнала; при длительном включении логирование может генерировать большой объём I/O. Включайте запись на время диагностики и периодически экспортируйте или ротаируйте логи.
- Для длительного мониторинга лучше настроить централизованный сбор логов (SIEM, syslog-коллектор) с фильтрацией и ротацией.
- Если логирование необходимо постоянно, храните логи на отдельном диске или перенаправляйте в сеть, чтобы исключить влияние на системный диск.
Рольовые чеклисты
Администратор сервера:
- Включил логирование временно для дебага.
- Сохранил копию pfirewall.log перед изменением правил.
- Провёл первичную фильтрацию по DROP и проверил повторяющиеся src-ip.
Аналитик SOC:
- Импортировал логи в SIEM и установил корреляции с другими событиями (аутентификация, EDR).
- Проверил совпадения src-ip с известными списками угроз.
- Подготовил рекомендации по блокировке/обратной связи с владельцами подсетей.
Разработчик приложения:
- Проверил логи на события DROP в диапазонах портов своего приложения.
- Убедился, что правило брандмауэра соответствует ожидаемым портам и интерфейсам.
План действий при инциденте
- Изолировать подозрительный хост (если возможно).
- Сохранить текущий журнал pfirewall.log в безопасное место для анализа.
- Отфильтровать события DROP, собрать связанные записи (время ±5 минут, src-ip, dst-port).
- Сопоставить с системными логами (Event Viewer), логами приложений и EDR.
- При подтверждении компрометации — выполнить процедуру восстановления/удаления и перетестировать доступы.
Критерии приёмки для расследования:
- Собранные логи охватывают период инцидента.
- Выявлены повторяющиеся src-ip/подсети и dst-port, подтверждающие подозрение.
- Приняты меры по блокировкам или восстановлению и задокументированы.
Примеры, когда журнал не помогает
- Если злоумышленник использует уже легитимное приложение и порт (например, HTTPS на 443), журнал покажет соединение, но не мотив или полезную нагрузку.
- Журнал не содержит payload-поведения трафика; для детального анализа нужен сниффер.
- Если IP-адрес спуфингован, одни только записи журналов могут ввести в заблуждение. Требуется сетевой уровень трассировки и дополнительная корреляция.
Конфиденциальность и соответствие требованиям
Журнал содержит IP-адреса и временные метки, которые в контексте персональных данных могут быть чувствительными. При передаче логов третьим лицам или в централизованные хранилища:
- Оценивайте правовую базу и требования конфиденциальности (например, GDPR) для вашего региона.
- Минимизируйте доступ и применяйте шифрование при переносе файлов.
- Храните логи в течение строго необходимого времени и удаляйте устаревшие копии по политике хранения данных.
Совместимость и миграция
Windows Firewall и формат pfirewall.log присутствуют во многих версиях Windows Server и Windows Client. Однако интерфейсы управления и некоторые поведенческие детали могут отличаться между версиями; проверяйте документацию для вашей версии ОС.
Факто-бокс
- По умолчанию лог хранит последние 4 MB.
- Стандартный путь файла: %SystemRoot%\System32\LogFiles\Firewall\pfirewall.log
- Формат: W3C/расширяемый текстовый лог.
Быстрые шаблоны и полезные команды
- Открыть журнал в Блокноте: откройте Monitoring → Logging Settings → File Name.
- Экспорт всех DROP в CSV (PowerShell): используйте фрагмент в разделе «Быстрые приёмы фильтрации и анализа».
- Импорт в Excel: откройте .log как текст с разделителем пробелом/табуляцией, используйте строку #Fields как заголовок.
Дерево принятия решения для включения логирования
flowchart TD
A[Есть проблема с доступом или подозрение на атаку?] -->|Да| B[Включить логирование]
A -->|Нет| C[Не включать журнал постоянно]
B --> D[Установить размер и путь журнала]
D --> E[Собирать и фильтровать DROP]
E --> F{Проверка результатов}
F -->|Подтверждено| G[Экспорт и расследование]
F -->|Ложный тревога| H[Отключить логирование]Заключение
Журнал Windows Firewall — простой и быстрый инструмент для первичной диагностики сетевых проблем и поиска подозрительной активности. Он не заменяет глубинного сетевого анализа или централизованные решения мониторинга, но при грамотном применении и временном включении помогает локализовать и понять проблему.
Сохраните копии логов до внесения изменений в правила, фильтруйте по action=DROP для первичного поиска, и при необходимости интегрируйте сбор логов в централизованный SIEM для долгосрочного анализа.
Важно: включайте журналирование только тогда, когда это необходимо для диагностики, и соблюдайте правила хранения и конфиденциальности данных.
Краткое резюме:
- Включайте запись в журнал через wf.msc → Properties → Customize → Logging.
- Анализируйте в первую очередь поля date, time, action, protocol, src-ip, dst-ip, src-port, dst-port.
- Экспортируйте DROP-записи и сверяйте с другими логами при расследовании.
Похожие материалы
Оптимизация страницы книги на Amazon
CMD + n в Safari: переключение вкладок
Как открыть Accounts Center в Facebook и Instagram
Добавить «Безопасный режим» в меню загрузки Windows
Восстановление удалённых Sticky Notes в Windows