Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
WindowsFirewallRuleset — Windows 방화벽 규칙을 자동으로 생성하는 PowerShell 스크립트 | Kitploit
도구/GitHubGitHub/metablaster/windowsfirewallruleset
Scripting & AutomationConfiguration AuditingNetwork SecurityArchived
GitHubmetablaster/windowsfirewallruleset

WindowsFirewallRuleset

Windows 방화벽 규칙을 자동으로 생성하는 PowerShell 스크립트

저장소 보기웹사이트
179411년 전Kitploit 검토 완료

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

Windows 방화벽 규칙 집합

대체 텍스트

목차

  • Windows 방화벽 규칙 집합
    • 목차
    • Windows 방화벽 규칙 집합 정보
      • 방화벽 규칙
      • 방화벽 프레임워크
    • 이 방화벽의 비전
    • 라이선스
    • 요구 사항
      • 요구 사항 세부 정보
      • 요구 사항을 충족하지 못하는 경우
    • 처음 사용자
      • 경고
      • 참고
      • 빠른 시작
    • 방화벽 관리
      • 자동 및 대화형 방화벽 배포
      • GPO 규칙 관리
      • 개별 규칙 집합 배포
      • 규칙 삭제
      • 규칙 내보내기/가져오기
    • 원격 방화벽 배포
    • 지원, 업데이트 및 문서
    • 미래

Windows 방화벽 규칙 집합 정보

알파 릴리스

PowerShell을 사용한 Windows 방화벽의 완전 자동화 솔루션

Windows Firewall Ruleset은 Windows 방화벽을 자동으로 구성하고 대상 시스템 및 시스템에 설치된 소프트웨어에 특화된 제한적인 방화벽 규칙을 적용합니다.

이 프로젝트의 상태는 아직 알파이며, 자세한 내용은 위의 "status" 배지를 클릭하십시오.
이 프로젝트는 다음과 같이 방화벽 규칙과 방화벽 프레임워크의 두 가지 주요 부분으로 구성됩니다.

방화벽 규칙

Windows 방화벽 규칙은 다음 기준에 따라 개별 PowerShell 스크립트로 정렬됩니다.

  • 규칙 그룹
  • 트래픽 방향(예: 인바운드, 아웃바운드 또는 IPSec)
  • 소프트웨어 유형 및 게시자
  • IP 버전(IPv4 / IPv6)

예를 들어:

  • ICMP 트래픽
  • 브라우저 규칙
  • OS 기본 제공 소프트웨어
  • 스토어 앱
  • Windows 서비스
  • 멀티플레이어 게임
  • Microsoft 프로그램
  • 타사 프로그램
  • 브로드캐스트 트래픽
  • 멀티캐스트 트래픽

방화벽 프레임워크

  • 방화벽 프레임워크는 대상 시스템에 특화된 방화벽을 구축 및 배포하는 데 관련된 환경 정보를 수집하는 여러 PowerShell 모듈, 스크립트 및 문서로 구성됩니다. 예:

    • 네트워크의 컴퓨터
    • 설치된 프로그램
    • IP 서브넷 계산
    • 원격 또는 로컬 시스템 사용자
    • 네트워크 구성
    • GPO 구성
    • 방화벽 관리
    • 패킷 추적 및 감사 로그의 빠른 분석
    • 다양한 문제 해결, 방화벽, 시스템 및 네트워크 유틸리티 함수
  • 따라서 이 저장소는 원하는 대로 더 많은 규칙과 기능을 포함하도록 방화벽을 쉽게 확장할 수 있는 좋은 시작점입니다.

  • 현재 약 800개 이상의 방화벽 규칙, 100개 이상의 함수를 포함하는 10개 이상의 모듈, 여러 스크립트 및 많은 양의 유용한 문서가 있습니다.

  • 원하는 규칙을 대화형으로 선택하여 배포하거나, 프로세스를 자동화하여 필요한 모든 규칙과 설정을 방화벽에 배포할 수 있습니다.

목차

이 방화벽의 비전

VSCode에서 관리 PowerShell

  1. 세부 방화벽 구성은 시간이 많이 소요되는 프로세스이며, 많은 문제 해결이 필요하고, 변경 사항은 테스트와 보안 감사가 필요하며, 수백 또는 수천 대의 원격 컴퓨터에 방화벽을 배포해야 하는 경우 상황은 더욱 악화됩니다. 예를 들어 모든 컴퓨터가 동일한 소프트웨어나 제한 요구 사항을 가지고 있지 않을 수 있습니다.

  2. 제어판의 방화벽 규칙과 달리, 이러한 규칙은 GPO 방화벽(로컬 그룹 정책)에 로드됩니다. 즉, 시스템 설정 변경이나 설치 과정의 일부로 규칙을 설치하는 임의의 프로그램은 명시적으로 예외를 만들지 않는 한 방화벽에 영향을 미치지 않습니다.

  3. 프로그램 및 서비스 기반 규칙은 지정된 실행 파일의 디지털 서명이 확인되고, 디지털 서명이 없는 경우 VirusTotal에서 검사됩니다. 보안상의 이유로 이 확인에 실패하면 규칙이 생성되거나 방화벽에 로드되지 않습니다. (강제 가능)

  4. 기본 아웃바운드는 네트워크 트래픽을 허용하는 규칙이 없는 경우 "차단"입니다. 대부분의 방화벽에서는 모든 가능한 프로그램 또는 서비스에 대한 규칙을 유지하지 않는 한 이 기능을 사용할 수 없습니다. 이 규칙 모음 덕분에 기본 아웃바운드를 차단으로 설정하는 데 추가 작업이 거의 또는 전혀 필요하지 않습니다.

  5. 일반적인 시나리오와 달리, 더 이상 효과가 없거나 중복되는 규칙(예: 제거된 프로그램, 더 이상 존재하지 않는 시스템 서비스, Windows 업데이트 후 이름이 변경된 실행 파일 등)을 알 수 있습니다.

  6. 미리 정의된 Windows 방화벽 규칙과 달리, 이러한 규칙은 명시적 사용자 계정에 연결되고, 특정 포트, 네트워크 인터페이스, 특정 실행 파일, 서비스 등에 적용되며, 이 모든 것이 대상 시스템에서 자동으로 학습됩니다.

  7. 규칙 및 포트, 주소 등의 속성을 업데이트, 필터링 또는 검색하는 것이 훨씬 쉽습니다. 이러한 규칙은 스크립트에 있으므로 regex, multicursor 또는 CTRL + F와 같은 편집기 도구를 사용하여 규칙에 대한 대량 작업을 수행할 수 있습니다. 방화벽 UI에서는 사용자 인터페이스 제한으로 인해 이 작업이 불가능합니다.

  8. 코드의 상당 부분은 대상 시스템 및 사용자에 특화된 방화벽을 구축하고 정의하는 자동화된 솔루션을 제공하는 데 전념하여 수동 작업의 필요성을 최소화하고 귀중한 관리 시간을 절약합니다.

목차

라이선스

MIT 라이선스

이 프로젝트 Windows Firewall Ruleset은 MIT 라이선스에 따라 라이선스가 부여됩니다.

일부 스크립트, 파일 또는 모듈은 MIT 라이선스가 아니거나 자체 저작권 보유자가 있을 수 있으므로 라이선스 및 저작권 표시는 "파일별로" 유지됩니다.

요구 사항

Windows

다음 표는 Windows Firewall Ruleset이 테스트된 운영 체제를 보여줍니다.


  1. Windows PowerShell 5.1 또는 PowerShell Core 7.3.x PowerShell Core 다운로드
  2. .NET Framework 4.5 (Windows PowerShell만 해당) Net Framework 다운로드
  3. sigcheck64.exe (강력 권장) sigcheck 다운로드
  4. Git (선택 사항) Git 다운로드
  5. Visual Studio Code (권장) VSCode 다운로드
  6. VSCode용 PowerShell 지원 (권장) 확장 다운로드
  7. PSScriptAnalyzer (권장) PSScriptAnalyzer 다운로드

목차

요구 사항 세부 정보

  • 모든 Windows 10.0 시스템(주 버전 10, 부 버전 0) 이상 중 Home 에디션을 제외한 시스템이 지원되지만, 위 표에 나열된 에디션만 테스트되었습니다.
    "버전" 열은 테스트된 릴리스를 나열하지만, 최신 OS 빌드만 계속 테스트됩니다.
    테스트되지 않았지만 지원되는 기타 시스템 및 기능 목록은 미래를 참조하십시오.

  • PowerShell Core는 Windows에 내장되어 있지 않으므로 별도로 설치하거나 운영 체제의 일부인 Windows PowerShell을 사용해야 합니다.

  • .NET Framework 최소 버전 4.5는 PowerShell Core 대신 Windows PowerShell(데스크톱 에디션)을 사용하는 경우 필요합니다.
    Windows 10은 최소 .NET 4.6(.NET 4.5 포함)과 함께 제공되며, Windows 11은 최소 .NET 4.8과 함께 제공됩니다.

  • sigcheck64.exe(또는 32비트 sigcheck.exe)는 Microsoft 사이트에서 다운로드할 수 있는 디지털 서명 확인 도구이며, C:\tools 디렉토리나 %PATH% 환경 변수에 배치해야 합니다.
    Windows Firewall Ruleset은 이 도구를 사용하여 디지털 서명되지 않은 모든 실행 파일에 대해 VirusTotal에서 해시 기반 온라인 악성 코드 분석을 수행한 후 해당 실행 파일에 대한 방화벽 규칙을 만듭니다.
    이는 권장 사항일 뿐이며, PATH에 sigcheck64.exe가 없으면 다운로드하라는 메시지가 표시되고 거부하면 악성 코드 분석이 수행되지 않습니다.
    이 기능을 사용함으로써 , 및 에 동의하게 됩니다.

목차

요구 사항을 충족하지 못하는 경우

현재 이 방화벽은 가장 최신의 Windows 데스크톱/서버에서 테스트 및 설계되었으며 작동이 확인되었습니다. 이전 시스템에서 사용하려면 추가 작업이 필요합니다.

테스트는 64비트 Windows에서 수행되었으며, 소수의 규칙은 32비트 시스템에서 작동하지 않으며 조정이 필요합니다. 32비트 시스템에 대한 전체 기능은 작업 중입니다.
지금은 귀하의 구성과 관련이 없을 몇 가지 규칙을 제외하고 32비트 시스템에서 규칙을 정상적으로 로드할 수 있습니다.

Windows 7 또는 Windows Server 2008과 같은 이전 Windows 시스템에서 이 방화벽을 사용하는 방법에 대한 정보는 레거시 지원을 참조하십시오.

목차

처음 사용자

다음은 방화벽을 배포하기 전에 처음 사용자가 알아야 할 간단한 경고 및 주의 사항입니다.

경고

  • 일부 프로그램의 인터넷 연결이 끊어지거나 드문 경우 완전히 인터넷 연결이 끊어질 수 있습니다. 이런 경우 GPO에서 아웃바운드 네트워크를 일시적으로 허용하거나
    .\Scripts\Reset-Firewall.ps1 -Remoting -Service를 실행하여 GPO 방화벽을 시스템 기본값으로 재설정하고 모든 규칙을 제거하며 WinRM 및 수정된 서비스를 시스템 기본값으로 복원할 수 있습니다. (이후 PowerShell 재시작 필요)

  • docs 디렉토리 안에는 스크립트를 실행할 수 없거나 스크립트로 문제가 해결되지 않는 경우 수동으로 재설정하는 방법에 대한 안내인 ResetFirewall.md가 있습니다.

  • 이 규칙 집합의 규칙과 정확히 동일한 그룹 이름을 가진 GPO 규칙이 없는 한 기존 규칙은 삭제되지 않습니다. 단, 이는 GPO 규칙을 완전히 지우고 제어판의 규칙만 남기는 Scripts\Reset-Firewall.ps1에는 적용되지 않습니다.

  • 100% 확실하게 하려면 내보내기/가져오기 규칙에 설명된 대로 GPO 규칙을 내보내십시오.

  • 로드할 규칙을 묻는 메시지가 표시됩니다(대화형 배포 선택 시, 나중에 참조). 인터넷 연결 문제를 최소화하려면 "CoreNetworking", "ICMP", "WindowsSystem", "WindowsServices", "Multicast"를 포함한 모든 일반 네트워킹 및 OS 관련 규칙과 시스템에 설치된 프로그램에 대한 모든 규칙을 최소한 배포해야 합니다. 또한 IPv6를 무시하지 마십시오. IPv4 네트워크에서도 Windows에는 IPv6가 필요합니다.
    GPO에서 필요하지 않은 규칙을 삭제하는 것은 나중에 코드를 뒤져서 놓친 것을 찾는 것보다 쉽습니다.

  • 기본 구성은 GPO에서 구성할 수 없는 전역 방화벽 동작(예: Stateful FTP 및 PPTP 또는 전역 IPSec 설정)을 설정합니다. 특정 설정이 필요한 경우 Scripts\Complete-Firewall.ps1을 방문하여 Set-NetFirewallSetting을 확인하십시오. 은 에 의해 자동으로 호출됩니다.

목차

참고

  • 빈 GPO에 규칙을 로드하는 것은 매우 빠릅니다. 그러나 이미 규칙이 포함된 GPO에 로드하는 것은 상당히 느립니다(기존 GPO 규칙 수에 따라 다름).

  • 모든 오류 및 경고는 Logs 디렉토리에 저장됩니다. 문제를 해결하려면 나중에 이 로그를 검토할 수 있습니다. 대부분의 경고 및 일부 오류는 무시해도 안전하지만, 가능하면 오류를 해결하는 것이 좋습니다.

  • 로드 중 "액세스가 거부되었습니다" 오류가 발생하는 규칙은 해당 스크립트를 다시 실행하여 다시 로드해야 합니다. 자세한 내용은 FAQ를 참조하십시오.

  • 저장소를 수동으로 다운로드했거나 다른 컴퓨터나 미디어에서 전송한 경우, 먼저 저장소의 모든 파일 차단을 해제해야 스크립트 실행 시 YES/NO 스팸 메시지를 피할 수 있습니다. Scripts\Unblock-Project.ps1을 실행하십시오.
    마스터 스크립트 Scripts\Deploy-Firewall.ps1은 잊어버린 경우 이 작업을 수행하지만, 그 경우에도 초기 YES/NO 질문은 여전히 나타납니다.

  • "랜섬웨어 보호"가 활성화된 경우(Windows Defender에서) pwsh.exe(Core 에디션) 또는 powershell.exe(Desktop 에디션) 또는 둘 다를 허용 목록에 추가해야 합니다. 그렇지 않으면 개발 모드에서 모듈 설치 중 오류가 발생합니다.
    저장소 코드가 랜섬웨어 보호 아래 폴더에 다운로드된 경우 모든 것이 차단될 수 있습니다.
    "제어된 폴더 액세스" 변경 사항을 적용하려면 PowerShell 콘솔을 다시 시작해야 할 수 있습니다.

  • 기본적으로 규칙은 Users 그룹에 대해 만들어지며, 필요한 경우에만 Administrators 그룹에 대해 만들어집니다. 보안상의 이유로 일상적인 컴퓨팅에 표준 사용자 계정을 사용하는 것이 좋습니다.
    관리자이고 컴퓨터에 표준 계정을 만들 의사가 없는 경우 Config\ProjectSettings.ps1에서 DefaultGroup 변수를 수정하고 를 지정해야 합니다.

목차

빠른 시작

  1. SSH를 통해 클론하는 데 필요한 SSH 키 및 기타 설정이 없는 경우 HTTPS로 클론하거나 릴리스에서 릴리스된 zip 파일을 다운로드한 다음, 최신 릴리스의 "assets" 아래에서 zip 파일을 다운로드하십시오.
    여기서의 단계는 "Releases"의 "assets" 섹션에서 zip 파일을 다운로드했다고 가정합니다.

  2. 다운로드한 아카이브를 적절한 위치에 추출합니다. 이 단계에서는 zip 파일(저장소 루트 디렉토리)을 C:\ 루트 드라이브에 직접 추출했다고 가정합니다.

  3. Windows PowerShell을 사용하려면 Windows PowerShell 여는 방법을 참조하십시오.
    그렇지 않으면 PowerShell Core와 Windows PowerShell의 절차는 비슷합니다:
    추출된 폴더를 열고 빈 공간을 마우스 오른쪽 버튼으로 클릭하면 PowerShell Core를 관리자로 실행하는 옵션이 있습니다(PowerShell Core 설치 중에 상황에 맞는 메뉴를 활성화했다고 가정). 그렇지 않은 경우 수동으로 여십시오.

  4. PowerShell 상황에 맞는 메뉴가 없는 경우 다음 두 줄을 실행하여 C:\ 루트 드라이브로 이동하십시오(각 줄을 입력하거나 복사하여 붙여넣고 Enter 키를 누르십시오). 여기는 다운로드한 zip 파일을 추출한 위치입니다.

    root@kitploit:~
    c:
    cd \
    
  5. 다운로드한 폴더로 cd:

    root@kitploit:~
    cd WindowsFirewallRuleset*
    
  6. 현재 실행 정책을 보려면 다음 명령을 입력하고 Enter 키를 누르십시오:
    (힌트: 입력하는 동안 TAB 키를 사용하여 자동 완성할 수 있습니다)

    root@kitploit:~
    Get-ExecutionPolicy
    

    위 명령의 출력을 기억하십시오. PowerShell Core는 기본적으로 RemoteSigned이고, Windows PowerShell은 서버가 아닌 에디션에서 기본적으로 Restricted입니다.

일부 규칙 세트를 실행할지 결정하는 데 도움이 필요하면, 규칙 세트 실행 프롬프트에서 ?를 입력하고 Enter 키를 누르세요.
어떤 이유로든 배포를 중단하고 중단하려는 경우(예: 새로 시작), PowerShell이 포커스에 있는 동안 키보드에서 CTRL + C를 누르고 PowerShell 콘솔을 다시 시작하세요.

  1. 프롬프트 출력을 따릅니다(예: 기본 작업을 수락하려면 Enter 키를 누름). 약 15분 정도 주의가 필요할 수 있습니다.

    참고: 관리자 계정이 Microsoft 계정을 사용하여 컴퓨터에 로그인하는 경우 자격 증명을 묻는 메시지가 표시됩니다. Windows Hello를 사용하든 아니든 Microsoft 이메일과 비밀번호를 입력해야 하며, PIN을 지정하면 작동하지 않고 다른 Windows Hello 인증 방법은 지원되지 않습니다.

    잘못된 자격 증명이 제공되면 Access is denied 오류가 발생합니다.
    이 경우 PowerShell 콘솔을 다시 시작하고 다시 시도해야 합니다.

    이 작업이 필요한 이유에 대한 자세한 내용은 FAQ를 참조하세요.

  2. 오류가 발생하면 무시하거나 오류를 발생시킨 스크립트를 업데이트한 후 나중에 해당 특정 스크립트를 다시 실행할 수 있습니다.

  3. 완료되면 로컬 그룹 정책에서 일부 규칙을 조정할 수 있습니다. 기본적으로 모든 규칙이 활성화되어 있지 않거나 기본 허용/차단 동작을 전환할 수 있습니다.
    규칙이 시스템에 설치된 모든 프로그램을 다루지 않을 수 있으며, 이 경우 누락된 규칙을 만들어야 합니다.

  4. 이제 인터넷 연결을 테스트하세요(예: 웹 브라우저 또는 다른 프로그램 사용). 이러한 규칙을 배포한 후 인터넷에 연결할 수 없는 경우 몇 가지 옵션이 있습니다.

    • GPO에서 아웃바운드 방화벽을 일시적으로 열거나 방화벽 비활성화
    • 문제 해결: 네트워크 문제 해결 상세 가이드
    • 이전 상태로 방화벽 재설정
    • 추가 문제 해결 및 문서는 docs 디렉터리를 확인하세요.
  5. 방화벽 배포의 전제 조건으로 일부 시스템 서비스가 시작되고 자동 시작으로 설정되어 있습니다. Logs 디렉터리 안에 원하는 경우 이러한 서비스를 기본값으로 복원하는 데 도움이 되는 Services_<DATE>.log 파일이 있습니다.
    예를 들어 Windows Remote Management 서비스는 필요하지 않은 경우 실행되지 않아야 합니다(기본값은 "수동" 시작).

목차

방화벽 관리

다음 섹션에서는 방화벽을 쉽게 관리할 수 있는 몇 가지 팁을 제공합니다.

자동화된 대화형 방화벽 배포

Deploy-Firewall.ps1 스크립트는 여러 매개변수를 지원하여 배포 자동화를 다음과 같이 사용자 정의할 수 있습니다.

  • 시스템에 존재하는 프로그램에 대해서만 프롬프트 없이 모든 규칙을 자동으로 실행하고 간결한 출력을 얻으려면 다음을 실행합니다:```powershell .\Scripts\Deploy-Firewall.ps1 -Force -Quiet
root@kitploit:~
- 단계별로 진행하면서 로드할 규칙 세트에 대한 확인을 요청받고, 실행 중 문제를 해결하려면 다음을 실행하십시오:```powershell
.\Scripts\Deploy-Firewall.ps1 -Interactive
  • 규칙 세트 선택에 대해서만 프롬프트를 표시하려면 매개변수 없이 Deploy-Firewall을 실행하세요:```powershell .\Scripts\Deploy-Firewall.ps1
root@kitploit:~
매개변수의 의미를 배워서 직접 조합할 수 있으려면 `Deploy-Firewall.ps1` 스크립트 주석을 보거나 다음 명령어를 실행하세요:```powershell
Get-Help .\Scripts\Deploy-Firewall.ps1 -Detailed

GPO 규칙 관리

GPO 규칙을 관리하는 두 가지 방법이 있습니다:

  1. 로컬 그룹 정책 사용: 이 방법은 이 저장소의 규칙을 비활성화하거나 일부 특성을 변경하거나 새 규칙을 추가하는 등 규칙에 대해 수행할 수 있는 작업에 제한된 자유를 제공합니다.
    자세한 내용은 다음을 참조하십시오: GPO 방화벽 관리

  2. PowerShell 스크립트 편집: 이 방법은 완전한 제어권을 제공하며, 기존 규칙을 제한 없이 변경 또는 제거하거나 새 규칙을 추가할 수 있습니다.

어떤 계획이나 설정을 선택하든, 방화벽에서 아직 다루지 않는 프로그램에 대한 규칙을 사용자 지정하거나 새 규칙을 추가하는 등 추가 작업을 수행해야 할 것입니다.

규칙은 로컬 그룹 정책에 로드됩니다. 방화벽 설정 중 개인화된 방화벽 관리 콘솔에 대한 바로 가기 만들기를 수락했다면 해당 바로 가기를 실행할 수 있고, 그렇지 않으면 GPO 방화벽 관리에 언급된 단계를 따르십시오.

GPO에 대한 자세한 내용은 다음을 참조하십시오: 보안 정책 설정 구성

목차로 돌아가기

개별 규칙 집합 배포

특정 규칙만 배포하려면 두 가지 방법이 있습니다:

  1. Scripts\Deploy-Firewall.ps1을 실행하고 원하는 규칙 집합에 대해서만 예를 선택하고, 그렇지 않으면 아니요를 선택한 후 Enter를 눌러 현재 규칙 집합을 건너뜁니다.

  2. PowerShell 콘솔에서 cd로 원하는 규칙 집합 스크립트가 있는 디렉터리로 이동한 후 개별 스크립트를 실행합니다.
    예를 들어 cd .\Rules\IPv4\Outbound\Software를 실행한 후 .\Adobe.ps1을 실행하여 Adobe에 대한 규칙을 로드합니다.

이후에 기본 방화벽 동작이 아직 설정되지 않은 경우 Scripts\Complete-Firewall.ps1을 실행하여 적용하는 것이 좋습니다. 또는 GPO에서 수동으로 수행할 수 있지만 제한된 권한으로 가능합니다. "제한된 권한"이란 Scripts\Complete-Firewall.ps1이 방화벽 GUI에서는 조정할 수 없는 일부 방화벽 매개변수를 구성한다는 의미입니다.

두 경우 모두 규칙 집합 그룹(DisplayGroup)과 일치하는 모든 규칙이 GPO에 로드되기 전에 삭제됩니다.

목차로 돌아가기

규칙 삭제

현재 방화벽 규칙을 삭제하는 세 가지 옵션이 있습니다:

  1. 가장 쉬운 방법은 GPO에서 삭제하려는 모든 규칙을 선택하고 마우스 오른쪽 버튼을 클릭한 후 삭제하는 것입니다.

  2. 파일에 따라 규칙을 삭제하려면 이 목적을 위한 함수가 다음 위치에 있습니다:
    Modules\Ruleset.Firewall\Public\Remove-FirewallRule.ps1
    단, 사용하기 전에 방화벽을 파일로 내보내야 합니다.

  3. 이전 방화벽 상태(제어판의 상태)로 되돌리려면 GPO에서 모든 규칙을 삭제하고, 다음 노드를 마우스 오른쪽 버튼으로 클릭한 후 모든 속성을 구성되지 않음으로 설정해야 합니다:
    고급 보안이 포함된 Windows Defender 방화벽 - 로컬 그룹 정책 개체

모든 규칙을 삭제하거나 이전 상태로 되돌리는 작업은 Scripts\Reset-Firewall.ps1로도 수행할 수 있습니다.
내보낸 GPO 규칙이 있었다면 다시 가져와야 합니다.

목차로 돌아가기

규칙 내보내기/가져오기

GPO에서 규칙을 내보내려면 두 가지 방법이 있습니다:

  1. 다음 노드를 마우스 오른쪽 버튼으로 클릭한 후 정책 내보내기... 메뉴를 클릭하여 로컬 그룹 정책에서 내보내기:
    고급 보안이 포함된 Windows Defender 방화벽 - 로컬 그룹 정책 개체

  2. PowerShell을 사용하여 내보내려면 Scripts\Backup-Firewall.ps1을 실행하십시오.
    내보내기를 사용자 지정하려면 Ruleset.Firewall 모듈에 있는 Export-RegistryRule 함수를 참조하십시오. 이 함수를 사용하면 거의 모든 방식으로 내보내기를 사용자 지정할 수 있습니다.

규칙을 가져오려면 GPO를 사용하는 방법은 내보내기와 동일하며, PowerShell로 가져오려면 Scripts\Restore-Firewall.ps1을 실행하면 이전 내보내기 파일을 자동으로 선택합니다.

내보내기/가져오기를 사용자 지정하려면 Modules\Ruleset.Firewall\Public을 살펴보십시오. 여기에서 내보내기/가져오기 모듈 함수 사용 방법에 대한 설명을 찾을 수 있습니다.

참고: Export-FirewallRule 함수는 매우 느리므로, 대신 가능한 한 빠른 Export-RegistryRule 함수를 실행하는 것이 좋습니다.

목차로 돌아가기

원격 방화벽 배포

이 섹션과 기능은 현재 실험적이며 완전히 완료되지 않았습니다. 현재는 단일 원격 컴퓨터로의 배포가 지원됩니다.

공사 중

원격 방화벽 배포에는 최소 두 대의 컴퓨터가 관련됩니다.
하나는 관리 컴퓨터(클라이언트)라고 하고 나머지는 모두 관리 대상 컴퓨터(서버)라고 합니다.

스크립트는 관리 컴퓨터에서 관리자가 실행하며, 방화벽은 여러 서버 컴퓨터에 동시에 배포 또는 구성됩니다.

구현 세부 정보는 Modules\Ruleset.Remote 모듈을 참조하십시오.

참고: 원격 기능은 원격 방화벽 배포에만 국한되지 않습니다. 로컬 호스트로의 배포도 설계상 작동하는 WinRM 및 PS 원격 구성을 필요로 합니다.

원격 배포를 수행하기 전에 원격 컴퓨터(서버)가 연결을 수락하도록 구성되어야 합니다. SSL 연결 설정 방법 예시는 다음과 같습니다:

실행을 허용하려면 서버 컴퓨터에서 WinRM 서비스 및 원격 레지스트리를 다음을 실행하여 구성하십시오:

참고: PowerShell Core를 사용하는 경우 아래의 Enable-WinRMServer에서 -Protocol HTTPS를 생략하십시오. 이렇게 하면 HTTP와 HTTPS가 모두 활성화되며, 이는 호환성 모듈이 원격 세션에서 작동하기 위한 임시 해결 방법입니다.```powershell

On server computer

Set-ExecutionPolicy -Scope LocalMachine RemoteSigned Set-Location C:\Path\to\WindowsFirewallRuleset Import-Module .\Modules\Ruleset.Remote Enable-WinRMServer -Protocol HTTPS -KeepDefault -Confirm:$false Enable-RemoteRegistry -Confirm:$false

root@kitploit:~
이 단계를 수행한 후, `\Exports` 디렉터리 안에 SSL 인증서(*.cer) 파일이 있습니다. 이 파일을 관리 컴퓨터의 `\Exports` 디렉터리에도 복사해야 합니다.\
기본적으로 서버 컴퓨터에 이미 자체 서명된 SSL 인증서가 없는 경우 자체 서명된 SSL 인증서가 생성됩니다.

**참고:** 서버 컴퓨터를 수동으로 구성하는 것은 초기 설정 시에만 한 번 수행됩니다.
이후 배포에서는 반복할 필요가 없습니다.

다음 단계는 관리 컴퓨터로 이동하여 원하는 대로 스크립트를 실행하는 것입니다. 예를 들어:```powershell
# On management computer
cd C:\Path\to\WindowsFirewallRuleset\Scripts
Deploy-Firewall -Domain "RemoteComputerName"

Both sets of commands above need to be run in same edition of PowerShell, ex. if server was configured in PowerShell Core then client computer also needs PowerShell core for deployment.
If either the server or management computer is a workstation (ex. not Windows server or part of domain) then it's network profile must be set to private profile.

Remote deployment can be customized in a great detail in the following locations:

  • To customize WinRM service see: Modules\Ruleset.Remote\Scripts\WinRMSettings.ps1
  • To customize WSMan session configuration see: Modules\Ruleset.Remote\Scripts\*Firewall.pssc
  • To customize self signed SSL certificate see: Modules\Ruleset.Remote\Public\Register-SslCertificate.ps1
  • To customize PS and CIM session configuration see: Modules\Ruleset.Remote\Scripts\SessionSettings.ps1

For additional information and troubleshooting tips see also Remoting help

Table of Contents

Support, updates and documentation

For support, issue reports, suggestions or customization of this repository and methods to periodically update this firewall please refer to SUPPORT.md

Table of Contents

The future

The following features are desired and might be available at some point in the future:

  1. Remote firewall administration

    • Deploying firewall configuration to multiple remote computers on domain or home networks
  2. Comprehensive firewall rulesets for Windows Server editions and dedicated gateway systems.

  3. On demand or scheduled registry scan to validate integrity of active firewall filtering policy and firewall settings

    • Any firewall rule or setting in the registry that is not part of this repository is reported for review.
    • Because, malware, hackers and even trusted software can attempt to bypass firewall at any time
  4. Full functionality for the following not yet tested editions of Windows 10.0

    • Windows 10 & 11 Pro for Workstations
    • Windows 10 & 11 IoT Core Blast
    • Windows 10 & 11 IoT Enterprise
    • Windows 10 & 11 S
  5. Functionality for x86 systems

Table of Contents

도구 다운로드
OS에디션버전아키텍처
Windows 10Pro1809 - 22H2x64
Windows 10Pro Education20H2x64
Windows 10Enterprise1809 - 20H2x64
Windows 10Education20H2 - 22H2x64
Windows 11Pro Education21H2x64
Windows 11Pro22H2 - 23H2x64
Windows 11Enterprise22H2x64
Windows Server 2019Essentials1809x64
Windows Server 2019Standard1809x64
Windows Server 2019Datacenter1809x64
Windows Server 2022Standard21H2x64
Windows Server 2022Datacenter21H2x64
VirusTotal 서비스 약관
VirusTotal 개인정보 보호정책
Sysinternals 소프트웨어 사용권 약관
  • 업데이트 확인, 분기 간 전환 또는 코드 기여를 위해 git을 사용하는 것이 좋습니다.

  • VS Code는 코드 탐색 및/또는 필요에 따라 스크립트 편집 또는 기여를 위해 선호되고 권장되는 편집기입니다.

  • VSCode를 설치하는 경우 코드 탐색 및 PowerShell 언어 기능을 위해 PowerShell 확장도 필요합니다.

  • VSCode로 코드를 탐색하고 편집하려면 PSScriptAnalyzer를 강력히 권장합니다. 그렇지 않으면 다양한 저장소 설정으로 인해 편집 환경이 비정상적으로 작동할 수 있습니다.

  • 하드웨어 요구 사항은 없지만, 코드를 작성하고 디버그하려면 최소 8GB 메모리와 SSD 드라이브를 권장합니다. 그렇지 않고 개인 방화벽에 규칙을 배포하기만 하면 더 적은 사양으로도 충분합니다.


  • Scripts\Complete-Firewall.ps1
    Scripts\Deploy-Firewall.ps1
  • 일부 스크립트는 네트워크에 연결되어 있어야 합니다(네트워크 어댑터). 예를 들어 IPv4 브로드캐스트 주소를 확인하기 위해 필요합니다. (그렇지 않으면 오류가 발생할 수 있습니다)

  • 시스템의 모든 것이 최신 상태여야 합니다. 그렇지 않으면 일부 규칙이 건너뛰거나 올바르지 않을 수 있습니다. 여기에는 Windows 업데이트, Microsoft Store 앱 및 기타 모든 소프트웨어가 포함됩니다.

  • Administrators

    보안상의 이유로 관리자 계정 사용을 권장하지 않는 이유에 대한 자세한 내용은 SecurityAndPrivacy.md를 참조하십시오.
    방화벽 배포에 사용하는 관리 계정에는 암호가 설정되어 있어야 합니다.

  • 소프트웨어나 Windows 업데이트는 실행 파일이나 해당 위치의 이름을 바꿀 수 있으며, 사용자 계정도 관리자에 의해 이름이 변경될 수 있습니다. 따라서 언제든지 발생할 수 있는 시스템 변경 사항에 대해 방화벽을 업데이트하기 위해 필요에 따라 특정 규칙을 다시 로드하는 것이 중요합니다.
    이 동작을 소프트웨어 회귀라고 합니다.

  • 방화벽을 배포하기 전에 대상 컴퓨터의 시스템 및 사용자 프로그램(Windows Store 앱 포함)을 업데이트하는 것이 좋습니다. 특히 시스템을 새로 설치한 경우 나중에 업데이트하면 일부 규칙을 다시 로드해야 할 수 있기 때문입니다.

  • 프로젝트 파일의 차단을 해제할 수 있도록 실행 정책을 unrestricted로 설정하십시오.
    (참고: RemoteSigned는 스크립트 차단이 해제된 후에만 작동합니다)

    root@kitploit:~
    Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy Unrestricted
    

    실행 정책 변경을 수락하라는 메시지가 표시될 수 있습니다. 그렇다면 Y를 입력하고 Enter 키를 눌러 수락하십시오.
    자세한 내용은 실행 정책 정보를 참조하십시오.

  • 이 시점에서 먼저 Scripts\Unblock-Project.ps1이라는 스크립트를 실행하여 모든 저장소 파일의 차단을 해제해야 합니다. 참고로 저장소 파일은 사용자가 인터넷에서 다운로드한 신뢰할 수 없는 스크립트 코드를 실행하지 못하도록 Windows에 의해 차단되었습니다.

    root@kitploit:~
    .\Scripts\Unblock-Project.ps1
    

    메시지가 표시되면 R([R] Run once)을 선택하여 프로젝트 차단을 해제하는 데 필요한 만큼 여러 번 실행하십시오. (약 최대 8회)

  • 저장소 파일 차단이 해제되면 실행 정책을 RemoteSigned로 변경하십시오:

    root@kitploit:~
    Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy RemoteSigned
    

    실행 정책 변경을 수락하라는 메시지가 다시 표시될 수 있습니다. Y를 입력하고 Enter 키를 눌러 수락하십시오.

  • 웹 브라우저, 게임 등의 프로그램에 대한 규칙은 설치 변수에 따라 다릅니다.
    대부분의 경로는 자동으로 검색되며 변수는 투명하게 업데이트됩니다. 그렇지 않으면 문제를 해결하는 방법에 대한 경고와 설명이 표시됩니다.
    필요한 경우 이러한 설치 변수는 Rules 디렉토리 내의 개별 스크립트에서 찾을 수 있습니다.
    다음 단계에서 마스터 스크립트를 실행하기 전에 gpedit.msc 또는 secpol.msc와 같은 모든 MMC 관리 콘솔을 닫는 것이 좋습니다.

  • PowerShell 콘솔로 돌아가서 아래 두 Deploy-Firewall 명령 중 하나를 실행하십시오:

    최소한의 프롬프트로 방화벽을 자동으로 배포하려면 다음을 실행하십시오:

    root@kitploit:~
    .\Scripts\Deploy-Firewall.ps1 -Force
    

    그렇지 않으면 로드할 규칙을 대화형으로 선택하려면 다음을 실행하십시오:

    root@kitploit:~
    .\Scripts\Deploy-Firewall.ps1
    ```Enter 키를 누르면 어떤 종류의 규칙 세트를 원하는지 질문이 표시됩니다.\