Jak stwierdzić, która reguła zapory systemu Windows blokuje ruch


16

Próbuję skonfigurować komputer tak, aby akceptował cały ruch przychodzący, ale zezwalał tylko na ruch wychodzący do określonego adresu IP. Ustawiłem regułę „Zezwól na wszystkie” dla przychodzących i Zezwalaj, która określa adres IP jako jedyny dopuszczalny adres wychodzący. Ustawiłem także zasadę odmowy przyjęcia wszystkich reguł wychodzących, zakładając, że druga zasada będzie miała pierwszeństwo.

Problemem jest to, że cały ruch jest blokowany, nawet ruch do adresu IP, który określiłem jako dozwolony.

Szukam sposobu na śledzenie ruchu przez zaporę ogniową i zobaczenie dokładnie, jaka reguła blokuje ruch. Dziennik wygenerowany przez monitorowanie zapory mówi mi, że ruch został zmniejszony, ale nie która reguła go zablokowała.


Często też chciałem to zrobić, ale wydaje się, że wbudowana zapora systemu Windows nie ma wiele do zaoferowania w tym zakresie. Chciałbym wiedzieć, czy znajdziesz rozwiązanie pozwalające uzyskać bardziej szczegółowe rejestrowanie.
David Woodward

Zapora systemu Windows naprawdę chroni komputer przed siecią, a nie siecią przed komputerem. Sieć powinna mieć własną zaporę ogniową, aby ją chronić.
Ron Maupin

Odpowiedzi:


20

(Uwaga: dotyczy to systemu Windows 7 i może, ale nie musi działać z nowszymi wersjami).

Poniższe kroki doprowadzą Cię do reguły blokującej twoje połączenie:

  • Otwórz konsolę Windows (z uprawnieniami administracyjnymi), aby wprowadzić polecenia
  • Włącz audyt platformy filtrowania systemu Windows (WFP):
    • Uruchom polecenie:
      auditpol /set /subcategory:"Filtering Platform Packet Drop" /success:enable /failure:enable
    • Uruchom polecenie:
      auditpol /set /subcategory:"Filtering Platform Connection" /success:enable /failure:enable
  • (Może to utopić Cię w danych dziennika zdarzeń - włączenie tylko inspekcji błędów i możliwe, że tylko błędy połączenia zmniejszą liczbę wpisów w dzienniku. Wybieraj, co naprawdę potrzebujesz)
  • Odtwórz problem
  • Uruchom polecenie: netsh wfp show state(tworzy plik XML w bieżącym folderze)
  • Otwórz przeglądarkę zdarzeń: Uruchom ( Windows+ R)>eventvwr.msc
    • przejdź do „Dzienników Windows”> „Bezpieczeństwo”
    • na liście znajdź upuszczany dziennik pakietów (wskazówka: użyj funkcji wyszukiwania w prawym menu, wyszukując elementy (źródłowy adres IP, port docelowy itp.) specyficzne dla twojego problemu)
    • w szczegółach dziennika przewiń w dół i zanotuj identyfikator filtra użyty do zablokowania pakietu
  • Otwórz wygenerowany plik XML:
    • wyszukaj zanotowany identyfikator filtru i sprawdź nazwę reguły (element „displayData> nazwa” w odpowiednim węźle XML)

To da ci dobry początek do znalezienia reguły blokowania.

Kiedy skończysz, nie zapomnij wyłączyć audytu:

  • Uruchom polecenie:
    auditpol /set /subcategory:"Filtering Platform Packet Drop" /success:disable /failure:disable
  • Uruchom polecenie:
    auditpol /set /subcategory:"Filtering Platform Connection" /success:disable /failure:disable

Uwaga: w zależności od ustawienia języka systemu Windows usługa kontroli może używać różnych nazw innych niż angielskie. Aby znaleźć nazwy podkategorii, uruchom polecenie: auditpol /get /category:*i znajdź podkategorie, które odpowiadają „Filtrowaniu pakietów platformy” i „Filtrowaniu połączeń platformy” w języku systemowym.


1
Nigdzie nie dojdzie, jeśli masz włączone filtrowanie danych wychodzących w Zaporze systemu Windows, ponieważ wówczas wszystkie programy bez wyraźnej reguły zezwalającej będą domyślnie blokowane. Tak więc Twój program może w ogóle nie zostać zablokowany przez regułę zapory.
Alexandru Dicu,

2
To działało z Windows Server 2012 R2.
AresAvatar

W moim przypadku DisplayData-name mówi Default Outbound, więc przynajmniej jestem pewien, że moja reguła zezwalania jest ignorowana, więc jest to błąd zapory Microsoft.
metablaster
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.