PowerShell에는 Windows 방화벽을 손쉽게 구성할 수 있는 NetSecurity 모듈이 기본으로 포함되어 있습니다. 이 모듈의 New-NetFirewallRule 함수를 활용하면 별도의 프로그램 설치 없이 명령어 한 줄로 특정 IP 주소나 웹사이트를 차단할 수 있습니다. 이 함수는 새로운 인바운드(inbound) 또는 아웃바운드(outbound) 방화벽 규칙을 생성하여 대상 컴퓨터에 즉시 적용해 줍니다.

PowerShell로 IP 또는 웹사이트 차단하기
IP 대역 차단은 비교적 간단하고 확실하게 작동하지만, 웹사이트나 도메인 자체를 차단하는 것은 다소 까다롭습니다. 그 이유는 하나의 도메인에 여러 개의 IP 주소가 연결될 수 있고, DNS 리졸버가 조회할 때마다 서로 다른 IP를 반환할 수 있기 때문입니다. 또한 동일한 IP를 관련된 다른 서비스들이 함께 사용하는 경우도 있어, 해당 IP를 차단하면 의도치 않게 다른 서비스까지 접근이 막힐 수 있습니다.
이 글에서 다룰 두 가지 방법은 다음과 같습니다.
- 로컬 또는 인터넷 IP 주소 차단하기
- 웹사이트 또는 도메인 이름 차단하기
아래 명령어들을 실행하려면 관리자 권한이 필요합니다. PowerShell을 반드시 '관리자 권한으로 실행'한 뒤 진행하세요.
1] PowerShell로 IP 주소 또는 IP 대역 차단하기

아래 명령어를 사용하면 단일 IP 주소뿐만 아니라 CIDR 표기법으로 된 IP 대역도 한 번에 차단할 수 있습니다. PowerShell에서 다음 명령어를 실행합니다.
New-NetFirewallRule -DisplayName "Block XYZ.com IP address" -Direction Outbound –LocalPort Any -Protocol TCP -Action Block -RemoteAddress 146.185.220.0/23
-DisplayName 값인 "Block XYZ.com IP address"는 나중에 규칙을 쉽게 식별할 수 있도록 원하는 이름으로 자유롭게 변경하면 됩니다. 명령어 끝부분의 -RemoteAddress 옵션에 지정된 IP 주소가 실제로 차단되는 대상이며, 해당 IP로 연결되는 모든 웹사이트나 서비스는 접근이 차단됩니다. 만약 차단하려는 IP가 내부 네트워크(로컬) 주소라면, -RemoteAddress 대신 -LocalAddress 옵션으로 교체해서 사용하면 됩니다.

명령 실행이 정상적으로 완료되면 "The rule was parsed successfully from the store. (65536)"이라는 상태 메시지가 표시됩니다. 이후 Windows 방화벽 설정(고급 보안이 포함된 Windows Defender 방화벽)을 열어 해당 규칙이 정상적으로 등록되었는지 확인하세요. 등록이 확인되면 같은 방식으로 PowerShell을 통해 추가 규칙을 계속 생성할 수 있습니다.
2] PowerShell로 웹사이트 또는 도메인 차단하기

안타깝게도 New-NetFirewallRule 함수는 URL이나 도메인 이름 기반의 직접적인 차단을 지원하지 않습니다. 따라서 다음 두 가지 방법 중 하나를 선택해야 합니다.
- 첫 번째 방법: 해당 도메인에 연결 가능한 모든 IP 주소를 조회한 후 전부 차단합니다.
- 두 번째 방법: 해당 서비스가 공개한 공식 IP 대역을 찾아서 차단합니다.
일반적으로 두 번째 방법이 첫 번째 방법보다 다른 서비스를 실수로 함께 차단할 가능성이 낮습니다. 다만 도메인 차단이 꼭 필요하다면 hosts 파일 수정이나 전문 차단 프로그램을 활용하는 것이 더 확실한 대안이 될 수 있습니다.
먼저 다음 명령어로 도메인의 IP 주소를 조회합니다.
Resolve-DnsName "facebook.com"
조회 결과로 나온 IP 주소를 메모해 둔 뒤, 앞서 소개한 첫 번째 방법의 명령어에 적용합니다.
New-NetFirewallRule -DisplayName "Block XYZ.com IP address" -Direction Outbound –LocalPort Any -Protocol TCP -Action Block -RemoteAddress 146.185.220.0/23
다만 이 방법에는 한계가 있습니다. 실제 테스트 결과, YouTube는 직접 IP를 차단했음에도 불구하고 차단이 제대로 되지 않았지만, Facebook은 성공적으로 차단되었습니다. 즉, 하나의 웹사이트가 여러 IP 주소로 확인(resolve)되는 구조라면 이 방법만으로는 완전한 차단이 어렵습니다.
차단 규칙 삭제하기
PowerShell 명령어 사용법은 명령 프롬프트(cmd)와 마찬가지로 매우 직관적입니다. 위 방법들을 통해 Windows에서 IP 주소나 웹사이트를 성공적으로 차단하셨기를 바랍니다. 나중에 차단을 해제하고 싶을 때는 Windows 방화벽 GUI에서 해당 규칙을 삭제하거나, 다음 명령어로 간편하게 제거할 수 있습니다.
Remove-NetFirewallRule -DisplayName "Block XYZ.com IP address"
