Як сказати, яке правило брандмауера Windows блокує трафік


16

Я намагаюся налаштувати комп'ютер, щоб він приймав увесь вхідний трафік, але дозволяв лише вихідний трафік до певної IP-адреси. Я встановив правило дозволу всіх для вхідних та дозволити правило, яке визначає IP-адресу як єдину прийнятну вихідну адресу. Я також створив правило заперечення всіх вихідних правил, припускаючи, що інше правило матиме перевагу.

Проблема, яку я маю, полягає в тому, що весь трафік блокується, навіть трафік, що йде до IP, який я вказав як дозволений.

Я шукаю спосіб простежити трафік через брандмауер і точно зрозуміти, яке правило блокує трафік. Журнал, згенерований моніторингом брандмауера, повідомляє мені, що трафік був упущений, але не те правило, яке його блокувало.


Мені часто хотілося це зробити, але, схоже, вбудований брандмауер Windows не може багато чого запропонувати в цьому плані. Мені буде цікаво дізнатися, чи знайдете ви рішення для отримання більш детальної реєстрації даних.
Девід Вудвард

Брандмауер Windows дійсно захищає ваш ПК від мережі, а не мережу від вашого ПК. Мережа повинна мати власний брандмауер для її захисту.
Рон Моупін

Відповіді:


20

(Примітка. Це стосується Windows 7 і може працювати або не працювати з новішими версіями.)

Наступні кроки призведуть до того, що правило блокує ваше з'єднання:

  • Відкрийте консоль Windows (з правами адміністратора) для введення команд
  • Увімкніть аудит для платформи фільтрування Windows (WFP):
    • запустити команду:
      auditpol /set /subcategory:"Filtering Platform Packet Drop" /success:enable /failure:enable
    • запустити команду:
      auditpol /set /subcategory:"Filtering Platform Connection" /success:enable /failure:enable
  • (Це може заглушити вас у даних журналу подій - якщо лише перевірки помилок, і, можливо, лише збої в з’єднанні зменшать кількість записів журналу. Будьте вибіркові щодо того, що вам насправді потрібно)
  • Відтворити випуск
  • Запустити команду: netsh wfp show state(це створює XML-файл у поточній папці)
  • Відкрийте програму перегляду подій: запустіть ( Windows+ R)>eventvwr.msc
    • перейдіть до "Журнали Windows"> "Безпека"
    • у списку визначте журнал видалення пакетів (підказка: скористайтеся функцією "Пошук" у правій меню, шукаючи елементи (вихідний IP, порт призначення тощо), характерні для вашої проблеми)
    • в реквізитах журналу прокрутіть униз і зазначте ідентифікатор фільтра, який використовується для блокування пакету
  • Відкрийте створений XML-файл:
    • пошук поміченого filterID та перевірте ім'я правила (елемент "displayData> name" у відповідному вузлі XML)

Це дозволить вам добре почати пошук правила блокування.

Коли ви закінчите, не забудьте вимкнути аудит:

  • запустити команду:
    auditpol /set /subcategory:"Filtering Platform Packet Drop" /success:disable /failure:disable
  • запустити команду:
    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.
метабластер
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.