Как определить, какое правило брандмауэра Windows блокирует трафик

16

Я пытаюсь настроить компьютер так, чтобы он принимал весь входящий трафик, но разрешал только исходящий трафик с определенного IP-адреса. Я установил правило «разрешить все» для «Входящего» и правило «Разрешить», в котором IP-адрес указывается в качестве единственного приемлемого исходящего адреса. Я также настроил запретить все исходящие правила, предполагая, что другое правило будет иметь приоритет.

У меня проблема в том, что весь трафик блокируется, даже трафик, идущий на IP-адрес, который я указал как разрешенный.

Я ищу способ отследить трафик через брандмауэр и точно узнать, какое правило блокирует трафик. Журнал, сгенерированный мониторингом брандмауэра, говорит мне, что трафик был отброшен, но не какое правило заблокировало его.

мистифицировать
источник
Я тоже часто хотел это сделать, но кажется, что встроенный брандмауэр Windows не может предложить в этом отношении что-то особенное. Мне было бы интересно узнать, если вы найдете решение для получения более подробной регистрации.
Дэвид Вудворд
Брандмауэр Windows действительно защищает ваш компьютер от сети, а не от компьютера. Сеть должна иметь свой собственный брандмауэр для его защиты.
Рон Мопин

Ответы:

20

(Примечание: это относится к Windows 7 и может работать, а может и не работать с более новыми версиями.)

Следующие шаги приведут вас к правилу, блокирующему ваше соединение:

  • Откройте консоль Windows (с правами администратора) для ввода команд
  • Включите аудит для платформы фильтрации Windows (WFP):
    • Команда Run:
      auditpol /set /subcategory:"Filtering Platform Packet Drop" /success:enable /failure:enable
    • Команда Run:
      auditpol /set /subcategory:"Filtering Platform Connection" /success:enable /failure:enable
  • (Это может утопить вас в данных журнала событий - включение только аудита сбоев, и, возможно, только сбои соединений уменьшат количество записей в журнале. Будьте внимательны к тому, что вам действительно нужно)
  • Воспроизведите проблему
  • Выполнить команду: netsh wfp show state(это создает файл XML в текущей папке)
  • Откройте средство просмотра событий: Выполнить ( Windows+ R)>eventvwr.msc
    • перейдите в «Журналы Windows»> «Безопасность»
    • в списке определите журнал сбрасываемых пакетов (подсказка: используйте функцию поиска в правом меню, ища элементы (IP-адрес источника, порт назначения и т. д.), относящиеся к вашей проблеме)
    • в деталях журнала прокрутите вниз и запишите идентификатор фильтра, используемый для блокировки пакета
  • Откройте сгенерированный файл XML:
    • найдите указанный идентификатор фильтра и проверьте имя правила (элемент «displayData> name» в соответствующем узле XML)

Это даст вам хорошее начало для поиска правила блокировки.

Когда вы закончите, не забудьте отключить аудит:

  • Команда Run:
    auditpol /set /subcategory:"Filtering Platform Packet Drop" /success:disable /failure:disable
  • Команда Run:
    auditpol /set /subcategory:"Filtering Platform Connection" /success:disable /failure:disable

Примечание. В зависимости от настроек языка Windows служба аудита может использовать разные неанглийские имена. Чтобы найти имена подкатегорий, выполните команду: auditpol /get /category:*и найдите подкатегории, которые соответствуют «Отбрасыванию пакетов платформы фильтрации» и «Соединению платформы фильтрации» на языке системы.

боб
источник
1
Это ни к чему не приведет, если в брандмауэре Windows включена фильтрация исходящих сообщений, поскольку тогда все программы без явного правила разрешения будут по умолчанию заблокированы. Таким образом, ваша программа может вообще не блокироваться правилом брандмауэра.
Александру Дику
2
Это работало с Windows Server 2012 R2.
AresAvatar
В моем случае DisplayData-name говорит Default Outbound, так что, по крайней мере, я уверен, что мое правило разрешения игнорируется, поэтому это ошибка брандмауэра Microsoft.
Метабластер