이 가이드는 Windows 11에서 방화벽 로깅 활성화 및 로그 분석하는 방법에 대해 설명합니다.
Windows Defender 방화벽이 특정 프로그램이나 서비스의 네트워크 연결을 차단한다고 의심되는 경우, 방화벽을 완전히 비활성화하는 것도 하나의 방법이지만 권장하지 않습니다.
대신 Windows Defender 방화벽을 통과하는 모든 네트워크 트래픽을 기록하고, 필터링 또는 차단된 패킷을 식별하고, 포트와 출발 및 목적지 IP 주소를 확인하여 적절한 허용 규칙을 만드는 것이 좋습니다.
Windows 방화벽에서 네트워크 연결 로깅을 활성화하고 로그를 분석하는 방법은 다음과 같습니다.
Windows 11에서 방화벽 로깅 활성화 방법
Windows Defender 방화벽은 네트워크 연결에 성공하거나 차단된 모든 트래픽을 기록할 수 있습니다.
Domain 또는 Private, Public 등 각 네트워크 프로필에 대해 개별적으로 로깅 기능을 활성화할 수 있습니다.
01 활성 네트워크 프로필 확인 방법
Windows에서 활성 네트워크 인터페이스에 할당된 네트워크 프로필을 확인하려면 다음 단계를 수행합니다.

키보드 단축키 Win + R 키를 눌러 실행 대화 상자를 열고 wt 입력 후 Ctrl + Shift + Enter 키를 눌러 관리자 권한으로 터미널을 실행합니다.
다음 명령을 입력하고 Enter 키를 눌러 변경하려는 네트워크 프로필을 확인합니다.
Get-NetConnectionProfile
02 Windows 방화벽 로깅 활성화
기본적으로 Windows 방화벽에서 트래픽 로깅은 비활성화 되어 있습니다.
Windows 11에서 Windows Defender 방화벽의 트래픽 디버깅을 활성화하려면 다음 단계를 수행합니다.
Method 01. 고급 보안 스냅인 사용

키보드 단축키 Win + R 키를 눌러 실행 대화 상자를 열고 wf.msc 입력 후 Enter 키를 눌러 고급 보안이 포함된 Windows Defender 방화벽 스냅인을 실행합니다.

‘로컬 컴퓨터의 고급 보안’ 항목을 마우스 오른쪽 버튼으로 클릭하고 [속성(R)] 옵션을 선택합니다.

고급 보안 속성 창에서 로깅을 활성화하려는 네트워크 프로필(도메인 또는 개인, 공용) 탭으로 이동합니다.
선택한 프로필 탭에서 ‘로깅’ 섹션의 [사용자 지정(U)] 버튼을 클릭합니다.

프로필 로깅 설정 사용자 지정 창에서 다음 설정을 구성할 수 있습니다.
- 이름(N) : 기본값 %systemroot%\system32\LogFiles\Firewall\pfirewall.log
- 크기 제한(KB)(S) : 최대 로그 크기를 4MB에서 20MB로 늘릴 수 있습니다.
- 손실된 패킷 로그에 기록(D) : 패킷 손실 연결에 대한 기록 여부 선택.
- 성공적인 연결 로그에 기록(U) : 연결 성공에 대한 기록 여부 선택.

사용자 지정 창에서 로그 파일 크기 및 손실된 패킷 로그에 기록 옵션을 허용합니다.
모든 성공적인 네트워크 연결을 로깅하면 로그 파일 크기가 매우 커질 수 있습니다.
특정 네트워크 연결을 차단하거나 허용하는 네트워크 프로필을 효과적으로 모니터링하고 파악하려면 각 프로필에 대해 별도의 로그 파일을 구성하는 것이 좋습니다.
예를 들어 다음과 같이 방화벽에서 각 프로필의 활동을 별도의 로그 파일에 기록하도록 구성할 수 있습니다.
- 도메인 : %windir%\system32\logfiles\firewall\pfirewall_domain.log
- 개인 : %windir%\system32\logfiles\firewall\pfirewall_public.log
- 공용 : %windir%\system32\logfiles\firewall\pfirewall_private.log
Windows 방화벽 로깅 옵션은 PowerShell 명령을 통해서도 구성할 수 있습니다.
Method 02. Powershell 명령 사용

키보드 단축키 Win + R 키를 눌러 실행 대화 상자를 열고 wt 입력 후 Ctrl + Shift + Enter 키를 눌러 관리자 권한으로 터미널을 실행합니다.
다음 명령을 입력하고 Enter 키를 눌러 현재 방화벽 로깅 설정을 확인합니다.
Get-NetFirewallProfile| select Name, Enabled, Log*|ft

다음 명령을 입력하고 Enter 키를 눌러 특정 프로필에 대한 로깅을 활성화합니다.
Set-NetFireWallProfile -Profile Public -LogBlocked True -LogMaxSize 4096 -LogFileName "%systemroot%\system32\LogFiles\Firewall\pfirewall.log" -Verbose
예를 들어 위 명령 수행 시 ‘공용’ 네트워크 프로필에 대해 로깅 구성을 활성화합니다.
이때 앞서 언급한 것처럼 별도 로그 파일에 기록하도록 매개변수를 수정하여 구성할 수 있습니다.
- -LogFileName “%systemroot%\system32\LogFiles\Firewall\pfirewall_public.log”

모든 단계를 완료하면 해당 네트워크 프로필의 로깅 활성화 여부를 확인합니다.
Windows 11에서 방화벽 로그를 분석하는 방법
Windows 11에서 모든 네트워크 프로필 or 특정 프로필에 대해 로깅 구성을 완료하면, 모든 네트워크 연결은 Windows 방화벽에 의해 일반 텍스트 파일에 로그가 기록됩니다.
Method 01. Powershell 명령 사용 로그 분석
로그 파일을 수동으로 열거나 PowerShell을 사용하여 로그에서 특정 연결에 대한 기록을 검색할 수 있습니다.

다음 명령을 입력하고 Enter 키를 누르면 특정 TCP 포트에 대해 허용된 연결을 실시간으로 표시합니다.
Get-Content C:\Windows\System32\LogFiles\Firewall\pfirewall.log -wait | Select-String -pattern "ALLOW.*TCP.*443"
- Linux에서 흔히 사용하는 grep 및 tail 명령에 해당하는 cmdlet은 Select-String 입니다.

로그를 분석할 때 다음과 같이 PowerShell 함수를 사용하면 그래픽 테이블 형식으로 확인할 수 있습니다.
function Get-WindowsFirewallLog {
param(
[parameter(Position=0,Mandatory=$false)]
[ValidateScript({Test-Path $_})]
[string]$LogFilePath = "$env:SystemRoot\System32\LogFiles\Firewall\pfirewall.log"
)
$headerFields = @("date","time", "action","protocol","src-ip","dst-ip","src-port","dst-port","size", "tcpflags","tcpsyn", "tcpack","tcpwin","icmptype","icmpcode", "info","path")
$firewallLogs = Get-Content $LogFilePath | ConvertFrom-Csv -Header $headerFields -Delimiter ' '
$firewallLogs | Out-GridView
}
Get-WindowsFirewallLog

명령 실행 시 Out-GridView 그래픽 테이블 형식으로 로그를 확인할 수 있어 편리합니다.
Method 02. 이벤트 뷰어 사용 로그 분석
Windows 방화벽 로그를 텍스트 파일 대신 이벤트 뷰어에서 기록하는 것이 더 편리할 수도 있습니다.

키보드 단축키 Win + R 키를 눌러 실행 대화 상자를 열고 gpedit.msc 입력 후 Enter 키를 눌러 로컬 그룹 정책 편집기를 실행합니다.
GPO 편집기가 열리면 왼쪽 사이드바에서 다음과 같이 이동합니다.
컴퓨터 구성 > Windows 설정 > 보안 설정 > 고급 감사 정책 구성 > 시스템 감사 정책 - 로컬 그룹 정책 개체 > 개체 액세스
오른쪽 창에서 “필터링 플랫폼 패킷 삭제 감사” 정책을 사용하여 로그를 이벤트 뷰어로 전송할 수 있습니다.

“필터링 플랫폼 패킷 삭제 감사” 정책을 두 번 클릭하여 속성 창을 엽니다.
“다음 감사 이벤트 구성(C)” 옵션을 선택하고 “실패(F)” 옵션을 활성화합니다.
⚠️ 주의 : "성공(S)" 옵션을 정책을 활성화하면 로그에 많은 이벤트가 기록될 수 있으므로, 이벤트 뷰어 로그를 최대 크기로 늘리는 것이 좋습니다.

그룹 정책 설정 후 Windows 방화벽에 의해 차단된 모든 연결을 이벤트 뷰어에서 확인할 수 있습니다.
이러한 이벤트 로그는 “EventID 5152 (Windows 필터링 플랫폼에서 패킷을 차단했습니다.)”로 기록됩니다.
이벤트 설명에서 자세한 정보를 확인하면 네트워크 패킷 정보(프로토콜 번호), IP 주소 및 대상/소스 포트, 송·수신 방향, 프로세스 이름 등을 확인할 수 있습니다.

PowerShell에서 Get-WinEvent 명령을 사용하여 이벤트 뷰어의 방화벽 이벤트를 검색하고 필터링 할 수 있습니다.
$destinationPort = "3388"
$filterXml = @"
<QueryList>
<Query Id="0" Path="Security">
<Select Path="Security">
*[System[(EventID=5152)]]
and
*[EventData[Data[@Name='DestPort'] and (Data='$destinationPort')]]
</Select>
</Query>
</QueryList>
"@
$FirewallLogs = @()
$events=Get-WinEvent -FilterXml $filterXml
foreach ($event in $events) {
$eventXml = [xml]$event.ToXml()
$SourceAddress = $eventXml.Event.EventData.Data | Where-Object { $_.Name -eq 'SourceAddress' } | Select-Object -ExpandProperty '#text'
$DestPort = $eventXml.Event.EventData.Data | Where-Object { $_.Name -eq 'DestPort' } | Select-Object -ExpandProperty '#text'
$FirewallLog = New-Object PSObject -Property @{
SourceAddress= $SourceAddress
Time=$event.TimeCreated
DestPort=$DestPort
}
$FirewallLogs += $FirewallLog
}
$FirewallLogs
스크립트 코드를 입력하면 포트 “3388”에서 Windows 방화벽에 의해 차단된 모든 연결 시도를 찾아 연결 시간 및 소스를 표 형식으로 출력합니다.
🔗 Windows 11에서 Windows 업데이트 로그 읽는 방법 (Get-WindowsUpdateLog)
마치며
Windows 11에서 방화벽 로깅을 활성화하면 어떤 연결이 허용되거나 차단되었을 때 실제 로그를 통해 확인할 수 있습니다.
특히 네트워크 연결 문제가 발생했을 때 방화벽 설정을 비활성화하는 것이 아닌 로그를 분석하여 원인을 보다 구체적으로 좁혀가고, 해당 규칙을 설정할 수 있습니다.
방화벽 로그는 평소에는 크게 신경을 쓰지 않아도 되지만, 특정 프로그램의 네트워크 연결이 차단되거나 예상하지 못한 통신이 발생했을 때 중요한 단서가 될 수 있습니다.
필요한 경우 방화벽 로깅을 활성화하여 문제가 발생한 시점의 로그를 확인하는 방식으로 활용하면 Windows 네트워크 문제를 보다 체계적으로 파악하는데 도움이 됩니다.
🔗 Windows 11에서 개별 방화벽 규칙 내보내고 가져오는 방법
🔗 Windows 11에서 Windows Defender 방화벽 설정 초기화 방법


