Share via


Windows 방화벽 규칙

대부분의 경우 관리자를 위한 첫 번째 단계는 방화 벽 규칙을 사용하여 방화벽 프로필을 사용자 지정하여 애플리케이션 또는 다른 유형의 소프트웨어로 작업할 수 있도록 하는 것입니다. 예를 들어 관리자 또는 사용자는 프로그램을 수용하거나, 포트 또는 프로토콜을 열거나, 미리 정의된 유형의 트래픽을 허용하는 규칙을 추가하도록 선택할 수 있습니다.

이 문서에서는 방화벽 규칙을 만들고 관리하기 위한 개념 및 권장 사항을 설명합니다.

인바운드 규칙의 규칙 우선 순위

대부분의 경우 애플리케이션이 네트워크에서 작동하려면 특정 유형의 인바운드 트래픽을 허용해야 합니다. 관리자는 인바운드 예외를 구성할 때 다음 규칙 우선 순위 동작을 염두에 두어야 합니다.

  1. 명시적으로 정의된 허용 규칙이 기본 블록 설정보다 우선합니다.
  2. 명시적 블록 규칙이 충돌하는 허용 규칙보다 우선합니다.
  3. 2에 언급된 명시적 블록 규칙이 있는 경우를 제외하고 보다 구체적인 규칙이 덜 구체적인 규칙보다 우선합니다. 예를 들어 규칙 1의 매개 변수에 IP 주소 범위가 포함되어 있는 반면 규칙 2의 매개 변수에 단일 IP 호스트 주소가 포함된 경우 규칙 2가 우선합니다.

1과 2 때문에 정책 집합을 디자인할 때 실수로 겹칠 수 있는 다른 명시적 블록 규칙이 없도록 해야 하므로 허용하려는 트래픽 흐름을 방지해야 합니다.

참고

Windows 방화벽은 관리자가 할당한 가중치 규칙 순서 지정을 지원하지 않습니다. 예상되는 동작이 있는 효과적인 정책 집합은 설명된 대로 몇 가지 일관되고 논리적인 규칙 동작을 염두에 두고 만들 수 있습니다.

애플리케이션 규칙

처음 설치되면 네트워크 애플리케이션 및 서비스는 제대로 작동하는 데 필요한 프로토콜/포트 정보를 지정하는 수신 대기 호출 을 실행합니다. Windows 방화벽에는 기본 블록 작업이 있으므로 트래픽을 허용하는 인바운드 예외 규칙을 만들어야 합니다. 앱 또는 앱 설치 관리자 자체에서 이 방화벽 규칙을 추가하는 것이 일반적입니다. 그렇지 않으면 사용자(또는 사용자를 대신하여 방화벽 관리자)가 수동으로 규칙을 만들어야 합니다.

활성 애플리케이션 또는 관리자 정의 허용 규칙이 없는 경우 대화 상자는 앱이 처음 시작되거나 네트워크에서 통신을 시도할 때 애플리케이션의 패킷을 허용하거나 차단하라는 메시지를 사용자에게 표시합니다.

  • 사용자에게 관리자 권한이 있는 경우 메시지가 표시됩니다. 아니요로 응답하거나 프롬프트를 취소하면 차단 규칙이 만들어집니다. 일반적으로 TCP 및 UDP 트래픽에 대해 각각 하나씩 두 개의 규칙이 만들어집니다.
  • 사용자가 로컬 관리자가 아닌 경우 메시지가 표시되지 않습니다. 대부분의 경우 블록 규칙이 만들어집니다.

Microsoft Teams를 허용하는 UAC(사용자 계정 컨트롤) 프롬프트를 보여 주는 스크린샷

이러한 시나리오 중 하나에서 규칙이 추가되면 프롬프트를 다시 생성하려면 규칙을 삭제해야 합니다. 그렇지 않은 경우 트래픽이 계속 차단됩니다.

참고

방화벽의 기본 설정은 보안을 위해 설계되었습니다. 기본적으로 모든 인바운드 연결을 허용하면 네트워크가 다양한 위협을 받습니다. 따라서 Microsoft가 아닌 소프트웨어에서 인바운드 연결에 대한 예외를 만드는 것은 신뢰할 수 있는 앱 개발자, 사용자 또는 사용자를 대신하여 관리자가 결정해야 합니다.

WDAC 태그 지정 정책

Windows 방화벽은 방화벽 규칙에서 Windows Defender WDAC(애플리케이션 제어) AppID(애플리케이션 ID) 태그 사용을 지원합니다. 이 기능을 사용하면 절대 경로를 사용하거나 보안을 희생하지 않고 프로세스 태그를 참조하여 Windows 방화벽 규칙의 범위를 애플리케이션 또는 애플리케이션 그룹으로 지정할 수 있습니다. 이 구성에는 다음 두 단계가 있습니다.

  1. WDAC AppId 태그 지정 정책 배포: 프로세스 토큰에 PolicyAppId 태그를 적용하려면 개별 애플리케이션 또는 애플리케이션 그룹을 지정하는 Windows Defender Application Control 정책을 배포해야 합니다. 그런 다음 관리자는 일치하는 PolicyAppId로 태그가 지정된 모든 프로세스로 범위가 지정된 방화벽 규칙을 정의할 수 있습니다. 자세한 내용은 애플리케이션에 태그를 지정하는 AppID 정책을 만들고, 배포하고, 테스트하는 WDAC AppId 태그 지정 가이드 를 참조하세요.
  2. 다음 두 가지 방법 중 하나를 사용하여 PolicyAppId 태그를 사용하여 방화벽 규칙을 구성합니다.
    • 방화벽 CSP의 PolicyAppId 노드를 Microsoft Intune 같은 MDM 솔루션과 함께 사용합니다. Microsoft Intune 사용하는 경우 엔드포인트 보안>방화벽만들기 정책>Windows 10 Windows 11 및 Windows Server>Windows 방화벽> 규칙 경로 아래에 Microsoft Intune 관리 센터에서 규칙을 배포할 수 있습니다. 규칙을 만들 때 정책 앱 ID 설정에서 AppId 태그를 제공합니다.
    • PowerShell을 사용하여 로컬 방화벽 규칙 만들기: cmdlet을 New-NetFirewallRule 사용하고 매개 변수를 지정합니다 -PolicyAppId . 방화벽 규칙을 만드는 동안 한 번에 하나의 태그를 지정할 수 있습니다. 여러 사용자 ID가 지원됩니다.

로컬 정책 병합 및 애플리케이션 규칙

규칙 병합 정책 설정은 다양한 정책 원본의 규칙을 결합하는 방법을 제어합니다. 관리자는 도메인, 프라이빗퍼블릭 프로필에 대해 서로 다른 병합 동작을 구성할 수 있습니다.

규칙 병합 정책 설정은 로컬 관리자가 CSP 또는 GPO에서 가져온 규칙 외에도 자체 방화벽 규칙을 만들 수 있도록 허용하거나 방지합니다.

경로
CSP 도메인 프로필: ./Vendor/MSFT/Firewall/MdmStore/DomainProfile/AllowLocalPolicyMerge
프라이빗 프로필./Vendor/MSFT/Firewall/MdmStore/PrivateProfile/AllowLocalPolicyMerge
공개 프로필 ./Vendor/MSFT/Firewall/MdmStore/PublicProfile/AllowLocalPolicyMerge
Gpo 컴퓨터 구성>Windows 설정>보안 설정>고급 보안을 사용하여 방화벽 Windows Defender

관리자는 엔드포인트에 대한 엄격한 제어를 유지하기 위해 높은 보안 환경에서 LocalPolicyMerge 를 사용하지 않도록 설정할 수 있습니다. 이 설정은 설치 시 로컬 방화벽 정책을 자동으로 생성하는 일부 애플리케이션 및 서비스에 영향을 줄 수 있습니다.

중요

로컬 정책 병합을 사용하지 않도록 설정하면 인바운드 연결이 필요한 앱에 대해 중앙 집중식 규칙 배포가 필요합니다.

통신에 사용되는 네트워크 포트를 포함하여 이러한 앱 목록을 만들고 유지 관리하는 것이 중요합니다. 일반적으로 앱 웹 사이트에서 지정된 서비스에 대해 열려야 하는 포트를 찾을 수 있습니다. 더 복잡한 배포의 경우 네트워크 패킷 캡처 도구를 사용하여 철저한 분석이 필요할 수 있습니다.

일반적으로 최대 보안을 유지하기 위해 관리자는 합법적인 목적으로 결정된 앱 및 서비스에 대한 방화벽 예외만 배포해야 합니다.

참고

와 같은 C:\*\teams.exe 와일드카드 패턴의 사용은 애플리케이션 규칙에서 지원되지 않습니다. 애플리케이션의 전체 경로를 사용하여 규칙만 만들 수 있습니다.

방화벽 규칙 권장 사항

방화벽 규칙을 디자인할 때 권장 사항 목록은 다음과 같습니다.

  • 가능하면 기본 Windows 방화벽 설정을 유지 관리합니다. 설정은 대부분의 네트워크 시나리오에서 사용할 수 있도록 디바이스를 보호하도록 설계되었습니다. 한 가지 주요 예는 인바운드 연결에 대한 기본 블록 동작 입니다.
  • 세 프로필 모두에 규칙을 만들지만 시나리오에 맞는 프로필에서만 방화벽 규칙 그룹을 사용하도록 설정합니다. 예를 들어 프라이빗 네트워크에만 사용되는 공유 애플리케이션을 설치하는 경우 세 프로필 모두에 방화벽 규칙을 만들지만 프라이빗 프로필에 대한 규칙이 포함된 방화벽 규칙 그룹만 사용하도록 설정하는 것이 가장 좋습니다.
  • 규칙이 적용되는 프로필에 따라 방화벽 규칙에 대한 제한을 구성합니다. 홈 또는 소규모 비즈니스 네트워크 내의 디바이스에서만 액세스하도록 설계된 애플리케이션 및 서비스의 경우 로컬 서브넷 만 지정하도록 원격 주소 제한을 수정하는 것이 가장 좋습니다. 엔터프라이즈 환경에서 사용할 때 동일한 애플리케이션 또는 서비스에는 이 제한이 없습니다. 이 작업은 도메인 프로필에서 제한 없이 유지하면서 프라이빗 및 퍼블릭 프로필에 추가되는 규칙에 원격 주소 제한을 추가하여 수행할 수 있습니다. 이 원격 주소 제한은 글로벌 인터넷 연결이 필요한 애플리케이션 또는 서비스에는 적용되지 않아야 합니다.
  • 인바운드 규칙을 만들 때 권장되는 일반적인 보안 방법은 가능한 한 구체적이어야 합니다. 그러나 포트 또는 IP 주소를 사용하는 새 규칙을 만들어야 하는 경우 가능한 경우 개별 주소 또는 포트 대신 연속 범위 또는 서브넷을 사용하는 것이 좋습니다. 이 방법은 내부적으로 여러 필터를 만들지 않도록 방지하고 복잡성을 줄이며 성능 저하를 방지하는 데 도움이 됩니다.
  • 인바운드 또는 아웃바운드 규칙을 만들 때 앱 자체에 대한 세부 정보, 사용된 포트 범위 및 생성 날짜와 같은 중요한 메모를 지정해야 합니다. 사용자와 다른 관리자가 쉽게 검토할 수 있는 규칙을 잘 문서화해야 합니다.
  • 최대 보안을 유지하기 위해 관리자는 합법적인 목적으로 결정된 앱 및 서비스에 대한 방화벽 예외만 배포해야 합니다.

자동 규칙 만들기와 관련된 알려진 문제

네트워크에 대한 방화벽 정책 집합을 디자인할 때 호스트에 배포된 모든 네트워크 애플리케이션에 대해 허용 규칙을 구성하는 것이 좋습니다. 사용자가 애플리케이션을 처음 시작하기 전에 규칙을 적용하면 원활한 환경을 보장하는 데 도움이 됩니다.

이러한 단계적 규칙이 없다고 해서 결국 애플리케이션이 네트워크에서 통신할 수 없다는 의미는 아닙니다. 그러나 런타임 시 애플리케이션 규칙의 자동 생성과 관련된 동작에는 사용자 상호 작용 및 관리 권한이 필요합니다. 비관리 사용자가 디바이스를 사용해야 하는 경우 예기치 않은 네트워킹 문제를 방지하려면 애플리케이션이 처음 시작되기 전에 모범 사례를 따르고 이러한 규칙을 제공해야 합니다.

일부 애플리케이션이 네트워크에서 통신이 차단되는 이유를 확인하려면 다음 인스턴스에 대해 검사.

  1. 충분한 권한이 있는 사용자는 애플리케이션이 방화벽 정책을 변경해야 한다는 쿼리 알림을 받습니다. 프롬프트를 완전히 이해하지 못한 사용자는 프롬프트를 취소하거나 해제합니다.
  2. 사용자에게 충분한 권한이 없으므로 애플리케이션이 적절한 정책을 변경할 수 있도록 허용하라는 메시지가 표시되지 않습니다.
  3. 로컬 정책 병합 을 사용하지 않도록 설정하여 애플리케이션 또는 네트워크 서비스가 로컬 규칙을 만들지 못하도록 합니다.

관리자가 설정 앱 또는 정책 설정을 사용하여 런타임에 애플리케이션 규칙을 만드는 것도 금지할 수 있습니다.

아웃바운드 규칙 고려 사항

다음은 아웃바운드 규칙을 구성하기 위한 몇 가지 일반적인 지침입니다.

  • 아웃바운드 규칙을 차단으로 변경하는 것은 매우 안전한 특정 환경에서 고려할 수 있습니다. 그러나 기본적으로 모든 트래픽을 허용하는 방식으로 인바운드 규칙 구성을 변경해서는 안 됩니다.
  • organization 사용 편의성보다 엄격한 보안 제어를 선호하지 않는 한 앱 배포를 간소화하기 위해 대부분의 배포에 대해 기본적으로 아웃바운드를 허용하는 것이 좋습니다.
  • 높은 보안 환경에서는 모든 앱의 인벤토리를 기록 및 유지 관리해야 합니다. 레코드에는 사용된 앱에 네트워크 연결이 필요한지 여부가 포함되어야 합니다. 관리자는 네트워크 연결이 필요한 각 앱과 관련된 새 규칙을 만들고 GPO 또는 CSP를 통해 해당 규칙을 중앙에서 푸시해야 합니다.

다음 단계

Windows 방화벽 및 방화벽 규칙을 구성하는 도구에 대해 알아봅니다.

구성 도구 >