¿Cómo bloquear un dominio o sitio web en el Firewall de Windows Defender con PowerShell?

Consideremos algunas formas de bloquear el acceso a sitios web específicos, nombres de dominio, URL o direcciones IP en Windows sin utilizar herramientas de terceros. En nuestro caso, intentaremos bloquear ciertos sitios web utilizando las herramientas integradas de Windows 10 y las funciones de automatización de PowerShell.

Por lo general, es más fácil bloquear sitios web en su enrutador de red (conmutador o punto de acceso Wi-Fi que está usando para acceder a Internet) o usando software de terceros (filtros de contenido, filtros DNS, etc.).

Bloqueo de sitios web mediante el archivo Hosts en Windows

El método más popular para bloquear un sitio web específico en Windows es editar el Hospedadores expediente. Por lo general, se encuentra en % windir% system32 drivers etc directorio. Tenga en cuenta que el archivo de hosts no tiene extensión.

La ruta al directorio que contiene Hospedadores el archivo está configurado en el DataBasePath parámetro bajo la clave de registro HKEY_LOCAL_MACHINE SYSTEM CurrentControlSet Services Tcpip Parameters. Por defecto es% SystemRoot% System32 drivers etc. hosts ruta del archivo en el registro

El archivo de hosts se utiliza para asignar asignaciones manualmente entre direcciones IP y nombres DNS. Al resolver nombres, los hosts tienen mayor prioridad que los servidores DNS especificados en la configuración de la conexión de red.

Para bloquear un sitio web específico (por ejemplo, facebook.com), abra el archivo de hosts (con los privilegios de administrador) y agregue las cadenas como estas:

127.0.0.1 facebook.com
127.0.0.1 www.facebook.com

usando archivos de hosts en Windows para bloquear dominios y sitios

Guarde el archivo y reinicie su computadora (o borre la caché de DNS con el comando: ipconfig /flushdns).

Después de eso, al intentar abrir facebook.com en cualquier navegador, verá el mensaje «Página no encontrada» / «Página no disponible».

Puede agregar nuevas líneas que contengan las URL del sitio web a su archivo de hosts utilizando un archivo .bat de este tipo:

@echo off
set hostspath=%windir%System32driversetchosts
echo 127.0.0.1 www.facebook.com >> %hostspath%
echo 127.0.0.1 facebook.com >> %hostspath%
exit

O puede usar las siguientes funciones de PowerShell para bloquear automáticamente sitios web específicos en su archivo de hosts.

Function BlockSiteHosts ( [Parameter(Mandatory=$true)]$Url) {
$hosts="C:WindowsSystem32driversetchosts"
$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:WindowsSystem32driversetchosts"
$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
}
}

bloquear sitios web en archivos hosts usando powershell

Para agregar un sitio web a la lista de URL bloqueadas, simplemente ejecute el comando:

BlockSiteHosts ("twitter.com")

Para desbloquear el sitio web, ejecute:

UnBlockSiteHosts ("twitter.com")

Bloquear sitios web mediante filtrado de DNS

Si sus clientes usan el mismo servidor DNS, de la misma manera puede bloquear ciertos sitios web creando una entrada DNS en ese DNS y especificando algo como 127.0.0.1 en él. Por cierto, la mayoría de los filtros de contenido DNS comerciales (OpenDNS, SafeDNS, Cisco Umbrella, etc.) utilizan el mismo principio.

¿Cómo bloquear la dirección IP del sitio web en el Firewall de Windows Defender?

Además, puede bloquear algunos sitios web utilizando el Firewall integrado de Windows Defender. La principal desventaja de este método es que no podrá utilizar el nombre de un dominio o la URL de un sitio web en la regla de bloqueo. El Firewall de Windows Defender le permite especificar solo una dirección IP o una subred como origen / destino.
En primer lugar, debe obtener la dirección IP del sitio web que desea bloquear. Es más fácil hacerlo usando el nslookup mando:

nslookup twitter.com

nslookup obtiene la dirección IP por nombre de dominio

Como puede ver, el comando ha devuelto varias direcciones IP asignadas al sitio web. Tienes que bloquearlos a todos.

Ejecute el complemento de administración del Firewall de Windows Defender (Panel de control Todos los elementos del Panel de control Firewall de Windows Defender Configuración avanzada o ejecutando firewall.cpl).

En el Reglas de salida sección, cree una nueva regla con la siguiente configuración: crear una nueva regla de salida en el firewall de Windows

  • Tipo de regla: Personalizado
  • Programa: Todos los programas
  • Tipo de protocolo: Alguna
  • Alcance: En la sección «¿A qué direcciones IP remotas se aplica esta regla?» seleccione «Estas direcciones IP» -> Agregar. En la siguiente ventana, ingrese las direcciones IP, subredes o un rango de direcciones IP que desea bloquear.

regla de salida agregar direcciones IP

Haga clic en Aceptar -> Siguiente -> Acción -> Bloquear la conexión.

conexión de bloque de firewall de Windows

Deje todas las opciones como están en la ventana con los perfiles de Firewall a los que se aplica la regla. Luego especifique el nombre de la regla y guárdelo.

Después de eso, el Firewall de Windows Defender bloqueará todas las conexiones salientes a las direcciones IP del sitio web especificado. El siguiente mensaje aparecerá en su navegador cuando intente conectarse al sitio bloqueado:

Unable to connect

O

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

En su dominio de AD, puede implementar una política de Firewall de Windows para bloquear el acceso a un sitio web en las computadoras de los usuarios que usan GPO. Sin embargo, no es racional. Es mejor filtrar sitios web en su enrutador de acceso a Internet (puerta de enlace).

Uso de PowerShell para crear una regla de firewall para bloquear un sitio web por nombre de dominio o dirección IP

También puede crear una regla de firewall que bloquee la conexión al sitio web mediante PowerShell:

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

New-NetFirewallRule: crear regla de bloqueo

La cadena «La regla se analizó correctamente desde la tienda» significa que la nueva regla de Firewall se ha aplicado correctamente. Puede encontrarlo en la interfaz gráfica de su Firewall de Windows Defender.

bloquear direcciones IP en el firewall de Windows defender

Para no resolver los nombres de sitios web en direcciones IP manualmente, puede utilizar el Resolve-DnsName Cmdlet de PowerShell para obtener las direcciones IP del sitio web:

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

Resolve-DnsName: uso de powershell para convertir el nombre de dominio en una dirección IP

Por lo tanto, puede convertir el nombre del sitio web en sus direcciones IP y agregar una regla de bloqueo a la configuración del firewall:

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

Por lo tanto, ahora puede agregar una regla de bloqueo a su Firewall de Windows para varios sitios web a la vez:

$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

He agregado el –NoHostsFile al cmdlet Resolve-DnsName para no usar el archivo hosts para resolver.

Asegurémonos de que haya aparecido una regla de bloqueo de salida en la consola del Firewall de Windows.

regla de firewall de Windows para bloquear sitios web por nombre de dominio

Este artículo es principalmente un ejercicio de entrenamiento cerebral. En una red corporativa, debe utilizar el filtrado de sitios web en su puerta de enlace de acceso a Internet, enrutador o servidor proxy. El bloqueo a nivel de host no es muy efectivo.

Artículos Interesantes