Computer >> 컴퓨터 >  >> 체계 >> Windows 10

PowerShell로 Windows Defender 방화벽에서 도메인이나 웹사이트를 어떻게 차단하나요?

타사 도구를 사용하지 않고 Windows에서 특정 웹사이트, 도메인 이름, URL 또는 IP 주소에 대한 액세스를 차단하는 몇 가지 방법을 고려해 보겠습니다. 우리의 경우 기본 제공 Windows 10 도구 및 PowerShell 자동화 기능을 사용하여 특정 웹 사이트를 차단하려고 합니다.

일반적으로 네트워크 라우터(인터넷에 액세스하는 데 사용하는 스위치 또는 Wi-Fi 액세스 포인트) 또는 타사 소프트웨어(콘텐츠 필터, DNS 필터 등)를 사용하여 웹사이트를 차단하는 것이 더 쉽습니다.

Windows에서 호스트 파일을 사용하여 웹사이트 차단

Windows에서 특정 웹사이트를 차단하는 가장 일반적인 방법은 호스트를 수정하는 것입니다. 파일. 일반적으로 %windir%\system32\drivers\etc\에 있습니다. 예배 규칙서. 호스트 파일에는 확장자가 없습니다.

호스트가 포함된 디렉토리 경로 파일은 DataBasePath에 설정됩니다. 레지스트리 키 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters 아래의 매개변수 . 기본적으로 %SystemRoot%\System32\drivers\etc입니다. PowerShell로 Windows Defender 방화벽에서 도메인이나 웹사이트를 어떻게 차단하나요?

호스트 파일은 IP 주소와 DNS 이름 간의 매핑을 수동으로 할당하는 데 사용됩니다. 이름을 확인할 때 호스트는 네트워크 연결 설정에서 지정한 DNS 서버보다 우선 순위가 높습니다.

특정 웹사이트(예:facebook.com)를 차단하려면 호스트 파일(관리자 권한으로)을 열고 다음과 같은 문자열을 추가합니다.

127.0.0.1 facebook.com
127.0.0.1 www.facebook.com

PowerShell로 Windows Defender 방화벽에서 도메인이나 웹사이트를 어떻게 차단하나요?

파일을 저장하고 컴퓨터를 다시 시작합니다(또는 ipconfig /flushdns 명령을 사용하여 DNS 캐시를 지웁니다. ).

그런 다음 모든 브라우저에서 facebook.com을 열려고 하면 "페이지를 찾을 수 없음" / "페이지를 사용할 수 없음"이라는 메시지가 표시됩니다.

다음과 같은 .bat 파일을 사용하여 웹사이트 URL이 포함된 새 줄을 호스트 파일에 추가할 수 있습니다.

@echo off
set hostspath=%windir%\System32\drivers\etc\hosts
echo 127.0.0.1 www.facebook.com >> %hostspath%
echo 127.0.0.1 facebook.com >> %hostspath%
exit

또는 다음 PowerShell 기능을 사용하여 호스트 파일에서 특정 웹사이트를 자동으로 차단할 수 있습니다.

Function BlockSiteHosts ( [Parameter(Mandatory=$true)]$Url) {
$hosts = 'C:\Windows\System32\drivers\etc\hosts'
$is_blocked = Get-Content -Path $hosts |
Select-String -Pattern ([regex]::Escape($Url))
If(-not $is_blocked) {
$hoststr="127.0.0.1 ” + $Url
Add-Content -Path $hosts -Value $hoststr
}
}

Function UnBlockSiteHosts ( [Parameter(Mandatory=$true)]$Url) {
$hosts = 'C:\Windows\System32\drivers\etc\hosts'
$is_blocked = Get-Content -Path $hosts |
Select-String -Pattern ([regex]::Escape($Url))
If($is_blocked) {
$newhosts = Get-Content -Path $hosts |
Where-Object {
$_ -notmatch ([regex]::Escape($Url))
}
Set-Content -Path $hosts -Value $newhosts
}
}

PowerShell로 Windows Defender 방화벽에서 도메인이나 웹사이트를 어떻게 차단하나요?

차단된 URL 목록에 웹사이트를 추가하려면 다음 명령을 실행하기만 하면 됩니다.

BlockSiteHosts ("twitter.com")

웹사이트 차단을 해제하려면 다음을 실행하십시오:

UnBlockSiteHosts ("twitter.com")

DNS 필터링을 사용하여 웹사이트 차단

클라이언트가 동일한 DNS 서버를 사용하는 경우 동일한 방식으로 해당 DNS에 DNS 항목을 만들고 127.0.0.1과 같은 항목을 지정하여 특정 웹사이트를 차단할 수 있습니다. 그런데 대부분의 상용 DNS 콘텐츠 필터(OpenDNS, SafeDNS, Cisco Umbrella 등)는 동일한 원칙을 사용합니다.

Windows Defender 방화벽에서 웹사이트 IP 주소를 차단하는 방법

또한 내장된 Windows Defender 방화벽을 사용하여 일부 웹 사이트를 차단할 수 있습니다. 이 방법의 가장 큰 단점은 차단 규칙에 도메인 이름이나 웹사이트 URL을 사용할 수 없다는 것입니다. Windows Defender 방화벽을 사용하면 IP 주소 또는 서브넷만 원본/대상으로 지정할 수 있습니다.
먼저 차단하려는 웹사이트의 IP 주소를 가져와야 합니다. nslookup을 사용하면 더 쉽습니다. 명령:

nslookup twitter.com

PowerShell로 Windows Defender 방화벽에서 도메인이나 웹사이트를 어떻게 차단하나요?

보시다시피 명령은 웹사이트에 할당된 여러 IP 주소를 반환했습니다. 모두 차단해야 합니다.

Windows Defender 방화벽 관리 스냅인 실행(제어판\모든 제어판 항목\Windows Defender 방화벽\고급 설정 또는 firewall.cpl 실행) ).

발신 규칙에서 섹션에서 다음 설정으로 새 규칙을 만듭니다. PowerShell로 Windows Defender 방화벽에서 도메인이나 웹사이트를 어떻게 차단하나요?

  • 규칙 유형 :맞춤
  • 프로그램 :모든 프로그램
  • 프로토콜 유형 :모든
  • 범위 :"이 규칙이 적용되는 원격 IP 주소는 무엇입니까?" 섹션에서 "이 IP 주소" -> 추가를 선택합니다. 다음 창에서 차단하려는 IP 주소, 서브넷 또는 IP 주소 범위를 입력합니다.

PowerShell로 Windows Defender 방화벽에서 도메인이나 웹사이트를 어떻게 차단하나요?

확인 -> 다음 -> 작업 -> 연결 차단을 클릭합니다. .

PowerShell로 Windows Defender 방화벽에서 도메인이나 웹사이트를 어떻게 차단하나요?

규칙이 적용되는 방화벽 프로필이 있는 창에 있는 모든 옵션을 그대로 둡니다. 그런 다음 규칙 이름을 지정하고 저장합니다.

그 후 Windows Defender 방화벽은 지정된 웹 사이트의 IP 주소로 나가는 모든 연결을 차단합니다. 차단된 사이트에 연결을 시도하면 브라우저에 다음 메시지가 나타납니다.

Unable to connect

또는

Your Internet access is blocked
Firewall or antivirus software may have blocked the connection
ERR_NETWORK_ACCESS_DENIED

AD 도메인에서 Windows 방화벽 정책을 배포하여 GPO를 사용하는 사용자 컴퓨터의 웹 사이트에 대한 액세스를 차단할 수 있습니다. 그러나 합리적이지 않습니다. 인터넷 액세스 라우터(게이트웨이)에서 웹사이트를 필터링하는 것이 좋습니다.

PowerShell을 사용하여 도메인 이름 또는 IP 주소로 웹사이트를 차단하는 방화벽 규칙 만들기

PowerShell을 사용하여 웹사이트에 대한 연결을 차단하는 방화벽 규칙을 만들 수도 있습니다.

New-NetFirewallRule -DisplayName "Block Site" -Direction Outbound –LocalPort Any -Protocol Any -Action Block -RemoteAddress 104.244.42.129, 104.244.42.0/24

PowerShell로 Windows Defender 방화벽에서 도메인이나 웹사이트를 어떻게 차단하나요?

"규칙이 저장소에서 성공적으로 구문 분석되었습니다"라는 문자열은 새 방화벽 규칙이 성공적으로 적용되었음을 의미합니다. Windows Defender 방화벽의 그래픽 인터페이스에서 찾을 수 있습니다.

PowerShell로 Windows Defender 방화벽에서 도메인이나 웹사이트를 어떻게 차단하나요?

웹사이트 이름을 수동으로 IP 주소로 확인하지 않으려면 Resolve-DnsName을 사용할 수 있습니다. 웹사이트 IP 주소를 가져오는 PowerShell cmdlet:

Resolve-DnsName "twitter.com"| Select-Object -ExpandProperty IPAddress

PowerShell로 Windows Defender 방화벽에서 도메인이나 웹사이트를 어떻게 차단하나요?

따라서 웹 사이트 이름을 해당 IP 주소로 변환하고 방화벽 설정에 차단 규칙을 추가할 수 있습니다.

$IPAddress = Resolve-DnsName "twitter.com"| Select-Object -ExpandProperty IPAddress
New-NetFirewallRule -DisplayName "Block Site" -Direction Outbound –LocalPort Any -Protocol Any -Action Block -RemoteAddress $IPAddress

이제 한 번에 여러 웹사이트에 대한 차단 규칙을 Windows 방화벽에 추가할 수 있습니다.

$SitesToBlock = "facebook.com","instagram.com","youtube.com"
$IPAddress = $SitesToBlock | Resolve-DnsName -NoHostsFile | Select-Object -ExpandProperty IPAddress
New-NetFirewallRule -DisplayName "Block Web Sites" -Direction Outbound –LocalPort Any -Protocol Any -Action Block -RemoteAddress $IPAddress

–NoHostsFile을 추가했습니다. 확인을 위해 호스트 파일을 사용하지 않도록 매개변수를 Resolve-DnsName cmdlet에 추가합니다.

Windows 방화벽 콘솔에 차단 아웃바운드 규칙이 표시되는지 확인합시다.

PowerShell로 Windows Defender 방화벽에서 도메인이나 웹사이트를 어떻게 차단하나요?

이 기사는 대부분 두뇌 훈련 운동입니다. 기업 네트워크에서는 인터넷 액세스 게이트웨이, 라우터 또는 프록시 서버에서 웹사이트 필터링을 사용해야 합니다. 호스트 수준 차단은 그다지 효과적이지 않습니다.