윈도우11 특정 방화벽 규칙 백업 및 복구 방법 : PowerShell로 규칙 개별 이전

🏷️ 윈도우11

윈도우11에서 특정 방화벽 규칙만 골라 백업하고 복구하려면 PowerShell의 Get-NetFirewallRule 명령어로 대상 규칙을 조회한 후 Firewall-Manager 모듈로 CSV·JSON 파일로 저장하는 방식을 사용합니다.

wf.msc 콘솔이나 netsh advfirewall export는 방화벽 정책 전체를 하나의 .wfw 파일로 묶는 구조라서, 특정 규칙 몇 개만 다른 PC로 옮기거나 나중에 되돌릴 스냅샷으로 저장하는 용도에는 맞지 않습니다.

레지스트리의 SharedAccess 경로에서 방화벽 규칙을 .reg 파일로 추출하는 방식도 인터넷에 소개되어 있지만, reg export 명령어가 키 단위로만 동작해 특정 규칙 하나만 골라 저장할 수 없고 규칙 데이터가 인코딩된 문자열이라 텍스트 편집으로 골라내는 작업도 비효율적입니다.

반면 Firewall-Manager는 PowerShell Gallery에 등록된 공식 모듈이며 CSV·JSON 형식으로 규칙을 개별 관리할 수 있어, 실무자, 개발자뿐 아니라 일반 사용자도 규칙 이름만 알면 손쉽게 개별 방화벽 정책에 대한 백업 및 복구 작업을 진행할 수 있습니다. 예를 들어 회사 VPN 클라이언트, 원격 데스크톱 포트, 로컬 개발 서버 포트 규칙만 골라 다른 PC로 옮길 때 이 방식이 적합합니다.

1. Get-NetFirewallRule로 백업 대상 PC에서 방화벽 규칙 조회하기

특정 규칙을 백업하려면, 먼저 백업 대상 규칙의 정확한 이름을 확인해야 합니다. 관리자 권한 PowerShell에서 아래 명령어를 실행하면 현재 PC의 모든 방화벽 규칙이 목록으로 표시됩니다.

파워쉘에서 Get-NetFirewallRule 명령어로 백업 대상 PC의 방화벽 규칙 전체 조회
Get-NetFirewallRule | Format-Table DisplayName, Direction, Action, Enabled -AutoSize

규칙이 수백 개 나오기 때문에 이름 일부로 필터링하는 방식이 실용적입니다. 예를 들어 원격 관련 규칙만 조회하려면 -DisplayName 파라미터에 와일드카드를 씁니다.

파워쉘 Get-NetFirewallRule 명령어에 DisplayName 파라미터 추가로 백업 대상 PC의 특정 방화벽 규칙만 조회
Get-NetFirewallRule -DisplayName "*원격*" | Format-Table DisplayName, Direction, Action, Enabled -AutoSize

방향(인바운드·아웃바운드), 동작(허용·차단), 활성화 상태로 규칙 조회 조건을 좁힐 수도 있습니다. -Direction Inbound -Action Allow -Enabled True처럼 조합하면 활성화된 인바운드 허용 규칙만 뽑을 수 있습니다.

Microsoft의 Get-NetFirewallRule 공식 문서는 이 명령어가 반환하는 규칙 객체에 PolicyStoreSource·PolicyStoreSourceType 속성이 포함된다고 명시합니다.

PolicyStoreSourceType 값이 GroupPolicy인 규칙은 도메인 정책으로 배포된 규칙이라 개별 PC에서 수정하거나 삭제할 수 없고, 다른 PC에 이관해도 도메인 정책 갱신 시 충돌이 발생할 수 있어 백업 대상에서 사용자가 직접 제외해야 합니다.

Get-NetFirewallRule과 Firewall-Manager 모듈은 기본적으로 ActiveStore를 대상으로 하기 때문에 GPO 규칙까지 결과에 포함되지만, wf.msc 콘솔이나 netsh advfirewall export로 만드는 .wfw 파일은 시스템적으로 GPO 규칙을 제외하고 로컬 정책만 저장합니다.

방화벽 정책 전체를 스냅샷으로 옮기고 싶다면 윈도우11 방화벽 백업 및 복구 방법에서 다루는 .wfw 방식이 GPO 필터링 부담이 없어 편리합니다. DisplayName으로 대상 규칙을 특정했다면, 다음 단계는 이 규칙을 파일로 내보내는 작업입니다.

2. Firewall-Manager 모듈로 방화벽 특정 규칙 백업 및 복구하기

Windows에 내장된 netsh·Get-NetFirewallRule 명령어는 개별 규칙을 CSV·JSON 파일로 직접 export하는 기능을 제공하지 않습니다. PowerShell Gallery에 등록된 Firewall-Manager 모듈을 설치하면 Export-FirewallRules·Import-FirewallRules 두 명령어로 개별 규칙 백업과 복구를 처리할 수 있습니다.

모듈 설치하기

파워쉘에서 Firewall-Manager 모듈 설치하기

관리자 권한 PowerShell에서 아래 명령어로 Firewall-Manager 모듈을 설치합니다.

Install-Module -Name Firewall-Manager -Scope CurrentUser -Force

설치 중 NuGet provider 설치 확인 프롬프트가 뜨면 Y를 입력합니다. PowerShell 실행 정책이 Restricted로 설정돼 있으면 Firewall-Manager 모듈 로드가 차단되므로, 아래 명령어로 실행 정책을 RemoteSigned로 조정합니다.

Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy RemoteSigned

설치가 완료되면 Get-Module -ListAvailable Firewall-Manager 명령어로 모듈이 정상 등록됐는지 확인합니다.

특정 규칙만 CSV 파일로 백업하기

파워쉘 Firewall-Manager 모듈로 특정 방화벽 규칙만 골라내 csv로 백업하기

원격 관련 규칙만 백업하는 예시입니다. 관리자 권한 PowerShell에서 아래 명령어를 실행하면 이름에 원격이 포함된 모든 규칙이 CSV 파일 하나로 저장됩니다.

Export-FirewallRules -Name "*원격*" -CSVFile "C:\backup\firewall_remote_rules.csv"

인바운드 규칙만 골라 저장하려면 -Inbound 파라미터를 추가합니다. 아웃바운드 규칙은 -Outbound, 허용 규칙만은 -Allow, 차단 규칙만은 -Block으로 export 조건을 좁힙니다.

Export-FirewallRules -Name "*원격*" -Inbound -Allow -CSVFile "C:\backup\remote_inbound_allow.csv"

JSON 형식으로 저장하려면 -JSON 스위치를 붙이고 파일 확장자를 .json으로 지정합니다.

Export-FirewallRules -Name "*원격*" -JSONFile "C:\backup\firewall_remote_rules.json"

CSV 파일은 텍스트 편집기나 엑셀에서 직접 열 수 있어서, 여러 규칙을 한 번에 export한 후 CSV에서 불필요한 행을 삭제하는 방식으로 원하는 규칙만 골라 다른 PC로 옮기는 작업 흐름이 가능합니다.

다른 PC에서 복구하기

백업 파일을 대상 PC로 옮긴 후, 대상 PC의 관리자 권한 PowerShell에서 아래 명령어를 실행합니다. Firewall-Manager 모듈이 대상 PC에도 설치돼 있어야 합니다.

Import-FirewallRules -CSVFile "C:\backup\firewall_remote_rules.csv"

JSON 파일을 복구할 때는 -JSONFile 파라미터를 사용합니다.

Import-FirewallRules -JSONFile "C:\backup\firewall_remote_rules.json"

Import 시 대상 PC에 같은 DisplayName을 가진 규칙이 이미 존재하면 Import-FirewallRules 명령어가 기존 규칙을 덮어쓰기 방식으로 갱신합니다.

DisplayName이 겹치지 않으면 백업 파일의 규칙이 새 규칙으로 추가되며, 방화벽 정책 전체가 교체되는 .wfw import 방식과 달리 백업 파일에 담긴 개별 규칙만 대상 PC의 정책 저장소에 병합됩니다.

3. GPO, UWP 등 복구 예외 상황과 해결

특정 방화벽 규칙을 다른 PC로 옮길 때 예상과 다르게 동작하는 세 가지 상황이 있습니다.

상황원인해결
GPO로 배포된 규칙 이전 실패PolicyStoreSourceTypeGroupPolicy인 규칙은 로컬이 아닌 도메인 정책 저장소에 속함회사·학교 PC는 시스템 관리자에게 GPO 수정 요청
UWP 앱 규칙이 대상 PC에서 비활성화UWP 앱 규칙은 사용자 계정 SID와 결합돼 있어 대상 PC의 SID가 다르면 매칭 실패대상 PC에서 해당 앱을 재실행해 방화벽이 새 SID로 규칙을 자동 재생성하도록 유도
원본과 대상 PC의 윈도우 버전이 크게 다를 때 규칙 유실신버전에서 도입된 필터 속성(예: 동적 키워드)이 이전 버전의 CSV 스키마에 담기지 않음원본·대상 모두 같은 메이저 버전(윈도우10↔윈도우10, 윈도우11↔윈도우11)에서 이전

첫 번째 상황을 사전에 걸러내려면 export 단계에서 -PolicyStore ActiveStore 대신 -PolicyStore PersistentStore를 지정합니다. Firewall-Manager는 기본값으로 ActiveStore(모든 소스의 결과 집합)를 대상으로 하므로, PersistentStore로 지정하면 로컬 저장소에 저장된 규칙만 export할 수 있습니다.

두 번째 상황은 UWP 앱 특성상 완전히 회피할 수 없으므로 이관 후 대상 PC에서 앱을 한 번만 실행해 방화벽이 새 SID로 규칙을 재생성하도록 유도합니다.

방화벽 정책을 전체 스냅샷 형태로 옮기고 싶다면 개별 규칙 이전이 아니라 .wfw 파일 방식이 적합합니다.

마치며

특정 방화벽 규칙만 골라 백업하고 복구하는 작업은 Firewall-Manager 모듈의 Export-FirewallRules·Import-FirewallRules 두 명령어로 처리할 수 있습니다. 규칙이 CSV·JSON 파일로 저장되므로 텍스트 편집기에서 규칙을 다시 골라내거나, 여러 PC에 같은 규칙 세트를 배포하는 작업에 활용할 수 있습니다.

GPO로 배포된 규칙은 로컬로 이전이 불가능하므로 시스템 관리자에게 GPO 수정을 요청합니다. 규칙 개수가 많거나 방화벽 상태 전체를 그대로 옮겨야 하는 상황이라면 개별 규칙 이전 대신 .wfw 파일 방식으로 정책 전체를 저장합니다.

방화벽 규칙을 새로 만드는 절차는 윈도우11 방화벽에서 프로그램별, 포트별로 접근을 허용하는 방법에서 다룹니다.

FAQ

Firewall-Manager 모듈 없이 순수 PowerShell 명령어로 특정 규칙을 백업할 수 있나요?

Get-NetFirewallRule의 반환 객체를 CSV로 export하는 방식으로 가능하지만, 이 방법은 포트·주소 필터를 별도 조회해 InstanceID로 조인해야 하고 복구 시 New-NetFirewallRule로 규칙을 재생성하는 스크립트를 직접 작성해야 합니다. Firewall-Manager 모듈이 이 조회·복구 과정을 내부적으로 처리하므로 실무에서는 모듈을 사용합니다.

특정 규칙만 삭제하는 것도 CSV 파일로 가능한가요?

Firewall-Manager 모듈에는 Remove-FirewallRules -CSVFile <경로> 명령어가 함께 제공됩니다. Remove-FirewallRules 명령어가 CSV 파일에 명시된 규칙만 대상 PC에서 삭제하므로, 여러 대의 PC에 동일한 규칙 세트를 일괄 정리할 때 활용할 수 있습니다.

백업한 CSV 파일을 편집해 규칙 이름이나 포트를 바꿔서 import해도 되나요?

CSV 파일의 필드 값을 편집한 후 import하면 편집된 값으로 규칙이 생성됩니다. 다만 필드 이름과 데이터 타입은 원본 스키마를 유지해야 하며, Action이나 Direction 같은 필드는 지정된 값(Allow·Block·Inbound·Outbound)만 허용됩니다. 편집 전 원본 CSV를 별도로 보관하면 오류 발생 시 원본 파일로 되돌릴 수 있습니다.

Windows PC보호방화벽윈도우 방화벽파워쉘

저자

댓글

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

Fill out this field
Fill out this field
올바른 이메일 주소를 입력해주세요.

같은 카테고리 글