
Scripts de PowerShell para crear automáticamente reglas para el Firewall de Windows

Una solución completamente automatizada para el firewall de Windows con PowerShell
Windows Firewall Ruleset configura el firewall de Windows automáticamente y aplica reglas de firewall restrictivas específicas para el sistema objetivo y el software instalado en el sistema.
El estado de este proyecto sigue siendo alfa, haga clic en la insignia "status" arriba para obtener más información.
Este proyecto consta de dos partes principales, reglas de firewall y marco de trabajo del firewall, como se indica a continuación:
Reglas de firewall de Windows organizadas en scripts individuales de PowerShell según:
Como, por ejemplo:
El marco de trabajo del firewall consta de varios módulos, scripts y documentación de PowerShell utilizados para recopilar información del entorno relevante para construir y desplegar un firewall especializado para el sistema objetivo, como:
Por lo tanto, este repositorio es un buen punto de partida para ampliar fácilmente su firewall e incluir más reglas y funcionalidades según se desee.
Actualmente hay más de 800 reglas de firewall, más de 10 módulos con más de 100 funciones, varios scripts y una buena cantidad de documentación útil.
Puede elegir interactivamente qué reglas desea e implementar solo esas, o puede automatizar el proceso e implementar todas las reglas y configuraciones necesarias en su firewall.
La configuración detallada del firewall es un proceso que consume tiempo, requiere mucha solución de problemas, los cambios requieren pruebas y auditoría de seguridad, y empeora si necesita implementar el firewall en cientos o miles de equipos remotos, por ejemplo, no todos los equipos pueden tener el mismo software o requisitos de restricción.
A diferencia de las reglas de firewall en el panel de control, estas reglas se cargan en el firewall GPO (Política de grupo local), lo que significa que los cambios en la configuración del sistema o programas aleatorios que instalan reglas como parte de su proceso de instalación no tendrán efecto en el firewall a menos que haga una excepción explícitamente.
Las reglas basadas en programas y servicios verificarán la firma digital del archivo ejecutable especificado y se escanearán en VirusTotal si falta la firma digital; por razones de seguridad, la regla no se crea ni se carga en el firewall si esta verificación falla. (se puede forzar)
La salida predeterminada es "bloquear" a menos que haya una regla que permita el tráfico de red; en la mayoría de los firewalls esto no es posible a menos que mantenga reglas para cada programa o servicio posible; gracias a esta colección de reglas, establecer la salida predeterminada en bloquear requiere muy poco o ningún trabajo adicional.
A diferencia del escenario habitual, sabrá qué reglas ya no tienen efecto o son redundantes debido, por ejemplo, a un programa desinstalado, un servicio del sistema que ya no existe, un ejecutable renombrado después de una actualización de Windows y razones similares.
A diferencia de las reglas predefinidas del firewall de Windows, estas reglas son más restrictivas, como estar vinculadas a cuentas de usuario explícitas, aplicarse a puertos específicos, interfaces de red, ejecutables específicos, servicios, etc., todo lo cual se aprende automáticamente del sistema objetivo.
Actualizar, filtrar o buscar reglas y atributos como puertos, direcciones y similares es mucho más fácil ya que estas reglas están en scripts; puede usar herramientas de editor como regex, multicursor o CTRL + F para realizar operaciones masivas en sus reglas; hacer esto en cualquier interfaz de usuario del firewall no es posible debido a las limitaciones de la interfaz de usuario.
Una buena parte del código está dedicada a proporcionar una solución automatizada para construir y definir un firewall especializado para el sistema y los usuarios objetivo, minimizando la necesidad de hacer algo manualmente, ahorrándole así mucho tiempo valioso de administración.
Este proyecto Windows Firewall Ruleset está licenciado bajo la licencia MIT.
Algunos scripts, archivos o módulos no tienen licencia MIT o pueden tener sus propios titulares de derechos de autor; por esta razón, los avisos de licencia y derechos de autor se mantienen "por archivo".
La siguiente tabla enumera los sistemas operativos en los que se ha probado Windows Firewall Ruleset
| SO | Edición | Versión | Arquitectura |
|---|---|---|---|
| Windows 10 | Pro | 1809 - 22H2 | x64 |
| Windows 10 | Pro Education | 20H2 | x64 |
| Windows 10 | Enterprise | 1809 - 20H2 | x64 |
| Windows 10 | Education | 20H2 - 22H2 | x64 |
| Windows 11 | Pro Education | 21H2 | x64 |
| Windows 11 | Pro | 22H2 - 23H2 | x64 |
| Windows 11 | Enterprise | 22H2 | x64 |
| Windows Server 2019 | Essentials | 1809 | x64 |
| Windows Server 2019 | Standard | 1809 | x64 |
| Windows Server 2019 | Datacenter | 1809 | x64 |
| Windows Server 2022 | Standard | 21H2 | x64 |
| Windows Server 2022 | Datacenter | 21H2 | x64 |
sigcheck64.exe (Altamente recomendado) Descargar sigcheckTodos los sistemas Windows 10.0 (Major 10, Minor 0) y superiores, excepto las ediciones Home, son compatibles, pero solo las ediciones enumeradas en la tabla anterior han sido probadas.
La columna "Versión" enumera las versiones probadas; sin embargo, solo las compilaciones más recientes del sistema operativo continúan siendo probadas.
Una lista de otros sistemas y características compatibles pero no probados se encuentra en El futuro
PowerShell Core no está integrado en Windows; deberá instalarlo por separado o usar Windows PowerShell que es parte del sistema operativo.
Se requiere .NET Framework versión mínima 4.5 si se usa Windows PowerShell (edición de escritorio) en lugar de PowerShell Core.
Windows 10 incluye como mínimo .NET 4.6 (que incluye .NET 4.5), y Windows 11 incluye como mínimo .NET 4.8
sigcheck64.exe (o sigcheck.exe de 32 bits) es una herramienta de verificación de firmas digitales que puede descargar del sitio de Microsoft y debe colocarse en el directorio C:\tools o en la variable de entorno %PATH%.
Windows Firewall Ruleset lo usará para realizar un análisis de malware en línea basado en hash en VirusTotal para cada ejecutable que no tenga firma digital antes de crear una regla de firewall para ese ejecutable.
Esto es solo una recomendación; si no hay sigcheck64.exe en PATH, se le ofrecerá descargarlo y, si declina, no se realizará ningún análisis de malware.
Al usar esta funcionalidad, acepta los Términos de servicio de VirusTotal, la Política de privacidad de VirusTotal y los Términos de licencia de software de Sysinternals
Es posible que desee tener git para buscar actualizaciones, cambiar fácilmente entre ramas o contribuir con código.
VS Code es el editor preferido y recomendado para navegar por el código y/o editar scripts para sus propias necesidades o contribuciones.
Si obtiene VSCode, también necesitará la extensión de PowerShell para la navegación del código y las características del lenguaje PowerShell.
Para navegar y editar código con VSCode, se recomienda encarecidamente PSScriptAnalyzer; de lo contrario, la experiencia de edición puede comportarse de manera extraña debido a varias configuraciones del repositorio.
No hay requisitos de hardware, pero si planea escribir y depurar código, se recomienda un mínimo de 8 GB de memoria y una unidad SSD para trabajar cómodamente en el proyecto; de lo contrario, para simplemente implementar reglas en su firewall personal, menos que eso funcionará bien.
Por el momento, este firewall está probado y diseñado para los sistemas de escritorio/servidores de Windows más recientes y se sabe que funciona; para usarlo en sistemas más antiguos se requiere trabajo adicional.
Las pruebas se realizan en Windows de 64 bits; una pequeña fracción de las reglas no funcionará en sistemas de 32 bits y necesita ajuste; la funcionalidad completa para sistemas de 32 bits está en proceso.
Por ahora, puede cargar reglas en sistemas de 32 bits sin problemas, con la excepción de algunas reglas que probablemente no sean relevantes para su configuración.
Para obtener información sobre cómo usar este firewall en sistemas Windows más antiguos, como Windows 7 o Windows Server 2008, consulte Soporte heredado
Las siguientes son advertencias y avisos breves que el usuario primerizo debe conocer antes de implementar el firewall.
Es posible que pierda conectividad a Internet para algunos de sus programas o, en casos raros, incluso pierda la conectividad a Internet por completo; si eso sucede, puede permitir temporalmente la red de salida en GPO o ejecutar
.\Scripts\Reset-Firewall.ps1 -Remoting -Service para restablecer el firewall GPO a los valores predeterminados del sistema, eliminar todas las reglas y restaurar WinRM y los servicios modificados a los valores predeterminados del sistema. (después se requiere reiniciar PowerShell)
Dentro del directorio docs hay un archivo ResetFirewall.md, una guía sobre cómo hacerlo manualmente, si por alguna razón no puede ejecutar el script o el script no resuelve sus problemas.
Sus reglas existentes no se eliminarán a menos que tenga reglas en GPO con exactamente los mismos nombres de grupo que las reglas de este conjunto; sin embargo, esto no aplica a Scripts\Reset-Firewall.ps1, que borrará completamente las reglas GPO y dejará solo aquellas en el panel de control.
Si quiere estar 100% seguro, exporte sus reglas GPO como se explica en Exportar\Importar reglas
Se le preguntará qué reglas cargar (si selecciona implementación interactiva, ver más adelante); para minimizar problemas de conectividad a Internet, debe implementar al menos todas las reglas genéricas de red y relacionadas con el sistema operativo llamadas "CoreNetworking", "ICMP", "WindowsSystem", "WindowsServices", "Multicast", incluidas todas las reglas para los programas que tenga instalados en el sistema; tampoco ignore IPv6, Windows necesita IPv6 incluso si está en una red IPv4.
Será fácil eliminar lo que no necesite en GPO, en lugar de tener que buscar más tarde en el código lo que haya omitido.
La configuración predeterminada establecerá un comportamiento global del firewall que no se puede configurar en GPO, como Stateful FTP y PPTP o configuraciones globales de IPSec; si necesita una configuración específica, visite Scripts\Complete-Firewall.ps1 y mire Set-NetFirewallSetting.
Tenga en cuenta que Scripts\Complete-Firewall.ps1 es llamado automáticamente por Scripts\Deploy-Firewall.ps1
Algunos scripts requieren que (el adaptador de red) esté conectado a la red, por ejemplo, para determinar la dirección de difusión IPv4. (De lo contrario, pueden generarse errores)
Todo en el sistema debe estar actualizado, ya que de lo contrario algunas reglas pueden omitirse o ser incorrectas; esto incluye actualizaciones de Windows, aplicaciones de la Tienda Microsoft y cualquier otro software.
Cargar reglas en una GPO vacía debería ser muy rápido; sin embargo, cargar en una GPO que ya contiene reglas será significativamente más lento (depende del número de reglas existentes en la GPO)
Todos los errores y advertencias se guardarán en el directorio Logs; puede revisar estos registros más tarde si desea solucionar algún problema; la mayoría de las advertencias e incluso algunos errores se pueden ignorar de manera segura; en ciertos casos, es posible que desee resolver los errores si es posible.
Cualquier regla que resulte en "Acceso denegado" al cargarse debe recargarse ejecutando el script específico nuevamente; consulte Preguntas frecuentes para obtener más información sobre por qué puede suceder esto.
Si el repositorio se descargó manualmente, se transfirió desde otro equipo o medio, entonces debe desbloquear todos los archivos del repositorio primero para evitar preguntas spam de SÍ/NO por cada script ejecutado, ejecutando Scripts\Unblock-Project.ps1.
El script maestro Scripts\Deploy-Firewall.ps1 hace esto en caso de que lo olvide, pero las preguntas iniciales de SÍ/NO aún estarán presentes en ese caso.
Si tiene habilitada la "Protección contra ransomware" (en Windows Defender), asegúrese de incluir en la lista blanca pwsh.exe (edición Core) o powershell.exe (edición de escritorio) o ambos; de lo contrario, ocurren errores en el modo de desarrollo durante la instalación de módulos.
Si el código del repositorio se descarga a una carpeta bajo protección contra ransomware, cualquier cosa puede ser bloqueada.
Es posible que sea necesario reiniciar la consola de PowerShell para que los cambios en el "Acceso controlado a carpetas" surtan efecto.
Por defecto, las reglas se crean para el grupo Users, mientras que para el grupo Administrators solo si es necesario; se recomienda tener una cuenta de usuario estándar para el uso diario por razones de seguridad.
Si es administrador y no está dispuesto a crear una cuenta estándar en su equipo, deberá modificar la variable DefaultGroup en Config\ProjectSettings.ps1 y especificar Administrators.
Consulte SecurityAndPrivacy.md para obtener más información sobre por qué no se recomienda usar una cuenta de administrador por razones de seguridad.
Su cuenta administrativa utilizada para implementar el firewall debe tener una contraseña establecida.
Las actualizaciones de software o Windows pueden renombrar ejecutables o sus ubicaciones; también las cuentas de usuario pueden ser renombradas por el administrador; por lo tanto, es importante recargar reglas específicas de vez en cuando según sea necesario para actualizar el firewall para los cambios del sistema que pueden ocurrir en cualquier momento. Este comportamiento se llama Regresión de software
Antes de implementar el firewall, se recomienda actualizar los programas del sistema y del usuario en el equipo de destino, incluidas las aplicaciones de la Tienda Windows, especialmente si el sistema está recién instalado, porque actualizar más tarde puede requerir recargar algunas reglas.
Si no tiene claves SSH y otra configuración necesaria para clonar mediante SSH, clone con HTTPS o simplemente descargue el archivo zip de la versión desde Lanzamientos, y luego, para la última versión en "assets", descargue el archivo zip.
Estos pasos aquí asumen que ha descargado un archivo zip de la sección "assets" en "Lanzamientos".
Extraiga el archivo descargado en algún lugar; estos pasos asumen que ha extraído el archivo zip (directorio raíz del repositorio) directamente en la unidad raíz C:\.
Si desea usar Windows PowerShell, consulte Cómo abrir Windows PowerShell.
De lo contrario, el procedimiento tanto para PowerShell Core como para Windows PowerShell es similar:
Abra la carpeta extraída, haga clic derecho en un espacio vacío y verá una opción para ejecutar PowerShell Core como Administrador (asume que habilitó el menú contextual durante la instalación de PowerShell Core); si no, ábralo manualmente.
Si no tiene el menú contextual de PowerShell, muévase a la unidad raíz C:\ ejecutando las siguientes dos líneas (escriba o copie/pegue los comandos y presione Enter para cada uno); aquí es donde extrajo el archivo zip descargado
c:
cd \
cd a la carpeta descargada:
cd WindowsFirewallRuleset*
Para ver la política de ejecución actual, escriba el siguiente comando y presione Enter:
(pista: puede usar la tecla TAB para autocompletar mientras escribe)
Get-ExecutionPolicy
Recuerde la salida del comando anterior; tenga en cuenta que PowerShell Core usa por defecto RemoteSigned mientras que Windows PowerShell usa por defecto Restricted en ediciones que no son servidor.
Establezca la política de ejecución en unrestricted para poder desbloquear los archivos del proyecto.
(Tenga en cuenta que RemoteSigned funcionará solo una vez que los scripts estén desbloqueados)
Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy Unrestricted
Es posible que se le solicite aceptar el cambio de política de ejecución; si es así, escriba Y y presione Enter para aceptar.
Para obtener más información, consulte Acerca de las políticas de ejecución
En este punto, debe "desbloquear" todos los archivos del repositorio primero ejecutando un script llamado
Scripts\Unblock-Project.ps1; por cierto, los archivos del repositorio fueron bloqueados por Windows para evitar que los usuarios ejecuten código de script no confiable descargado de Internet:
.\Scripts\Unblock-Project.ps1
Si se le pregunta, asegúrese de que su respuesta sea R, es decir, [R] Ejecutar una vez, tantas veces como sea necesario para desbloquear el proyecto. (aproximadamente hasta 8 veces)
Una vez que los archivos del repositorio estén desbloqueados, cambie la política de ejecución a RemoteSigned:
Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy RemoteSigned
Es posible que se le solicite nuevamente aceptar el cambio de política de ejecución; escriba Y y presione Enter para aceptar.
Las reglas para programas como su navegador web, juegos, etc., dependen de variables de instalación.
La mayoría de las rutas se buscan automáticamente y las variables se actualizan de manera transparente; de lo contrario, recibe una advertencia y una descripción de cómo solucionar el problema.
Si es necesario, puede encontrar estas variables de instalación en scripts individuales dentro del directorio Rules.
Se recomienda cerrar todas las consolas de administración MMC como gpedit.msc o secpol.msc antes de ejecutar el script maestro en el siguiente paso.
Regrese a la consola de PowerShell y ejecute uno de los dos comandos Deploy-Firewall a continuación:
Para implementar el firewall automáticamente con la menor cantidad de preguntas posible, ejecute:
.\Scripts\Deploy-Firewall.ps1 -Force
De lo contrario, para que se le pregunte interactivamente qué reglas cargar, ejecute:
.\Scripts\Deploy-Firewall.ps1
```Pulse Enter y se le harán preguntas sobre qué tipo de reglas desea.\
Si necesita ayuda para decidir si ejecutar algún conjunto de reglas o no, escriba ? cuando se le solicite ejecutar
el conjunto de reglas y presione Enter para obtener más información.
Si por alguna razón desea interrumpir y abortar la implementación (por ejemplo, para comenzar una nueva), presione
CTRL + C en su teclado mientras PowerShell está en foco y reinicie la consola de PowerShell.
Siga la salida de las indicaciones (ej. presione Enter para aceptar la acción predeterminada), le tomará unos 15 minutos de su atención.
NOTA: Si la cuenta de Administrador está usando una cuenta de Microsoft para iniciar sesión en la computadora, se le solicitarán credenciales, que deben ser el correo electrónico y la contraseña de Microsoft, independientemente de si está usando Windows Hello o no; especificar un PIN no funcionará y otros métodos de autenticación de Windows Hello no son compatibles.
Si se proporcionan credenciales inválidas, recibirá un error que dice Access is denied.
Si esto sucede, deberá reiniciar la consola de PowerShell e intentar de nuevo.
Para obtener más información sobre por qué es necesario esto, consulte FAQ
Si encuentra errores, puede ignorarlos o actualizar el script que produjo el error y luego volver a ejecutar ese script específico más tarde.
Cuando haya terminado, es posible que desee ajustar algunas de las reglas en la Directiva de grupo local;
no todas las reglas están habilitadas por defecto o es posible que desee cambiar el comportamiento predeterminado de Permitir/Bloquear.
Es posible que las reglas no cubran todos los programas instalados en su sistema, en cuyo caso será necesario
crear las reglas faltantes.
Ahora proceda a probar su conexión a Internet (ej. con un navegador web o algún otro programa). Si no puede conectarse a Internet después de implementar estas reglas, tiene varias opciones:
docs para obtener más opciones de solución de problemas y documentaciónComo requisito previo para implementar el firewall, algunos servicios del sistema se han iniciado y configurado para
inicio automático; dentro del directorio Logs encontrará Services_<DATE>.log para ayudarle a restaurar estos
servicios a su estado predeterminado si lo desea.
Por ejemplo, el servicio Windows Remote Management no debería ejecutarse si no es necesario
(el valor predeterminado es "Manual")
La siguiente sección proporciona algunos consejos para gestionar el firewall con facilidad
El script Deploy-Firewall.ps1 admite varios parámetros para permitirle personalizar la automatización de la implementación
de la siguiente manera:
- Para ir paso a paso y recibir una solicitud de confirmación sobre qué conjuntos de reglas cargar y para intentar resolver problemas sobre la marcha, ejecute:```powershell
.\Scripts\Deploy-Firewall.ps1 -Interactive
Deploy-Firewall sin ningún parámetro:```powershell
.\Scripts\Deploy-Firewall.ps1Para aprender el significado de los parámetros y poder combinarlos por tu cuenta, consulta el comentario del script `Deploy-Firewall.ps1` o ejecuta el siguiente comando:```powershell
Get-Help .\Scripts\Deploy-Firewall.ps1 -Detailed
Hay dos métodos para gestionar reglas GPO:
Usando la Directiva de Grupo Local, este método te da libertad limitada sobre lo que puedes hacer con las reglas de este repositorio, como deshabilitarlas, cambiar algunos atributos o agregar nuevas reglas.
Para más información ver: Manage GPO Firewall
Editando scripts de PowerShell, este método te da control total, puedes cambiar o eliminar reglas existentes sin restricciones o agregar nuevas.
Sea cual sea tu plan o configuración, seguramente querrás realizar trabajo adicional como personalizar reglas, o agregar nuevas reglas para programas aún no cubiertos por este cortafuegos.
Las reglas se cargan en la directiva de grupo local. Si durante la configuración del cortafuegos aceptaste crear un acceso directo a la consola de gestión de cortafuegos personalizada, puedes ejecutar el acceso directo; de lo contrario, sigue los pasos mencionados en Manage GPO Firewall
Para más información sobre GPO ver: Configure security policy settings
Si deseas desplegar solo reglas específicas, hay dos formas de hacerlo:
Ejecuta Scripts\Deploy-Firewall.ps1 y elige Yes solo para los conjuntos de reglas que desees; de lo contrario, elige No y presiona Enter para omitir el conjunto de reglas actual.
En la consola de PowerShell, navega con cd al directorio que contiene el script del conjunto de reglas deseado y ejecuta el script individual.
Por ejemplo cd .\Rules\IPv4\Outbound\Software seguido de .\Adobe.ps1 para cargar reglas para Adobe.
Puede que quieras ejecutar Scripts\Complete-Firewall.ps1 después para aplicar el comportamiento predeterminado del cortafuegos si aún no está establecido, o puedes hacerlo manualmente en GPO pero con poder limitado.
"poder limitado" significa que Scripts\Complete-Firewall.ps1 configura algunos parámetros del cortafuegos que no se pueden ajustar en la GUI del cortafuegos.
En ambos casos, todas las reglas que coincidan con el grupo del conjunto de reglas, DisplayGroup, se eliminarán antes de cargar las reglas en GPO.
Por el momento hay tres opciones para eliminar reglas de cortafuegos:
La forma más fácil es seleccionar todas las reglas que quieras eliminar en GPO, hacer clic derecho y eliminar.
Para eliminar reglas según un archivo, existe una función para este propósito, ubicada en:
Modules\Ruleset.Firewall\Public\Remove-FirewallRule.ps1
sin embargo, primero debes exportar el cortafuegos a un archivo antes de usarla.
Para revertir a tu estado anterior del cortafuegos (el del panel de control), necesitarás eliminar todas las reglas de GPO y establecer todas las propiedades en Not configured después de hacer clic derecho en el nodo:
Windows Defender Firewall with Advanced Security - Local Group Policy Object
Eliminar todas las reglas o revertir al estado anterior también se puede hacer con Scripts\Reset-Firewall.ps1
Ten en cuenta que también necesitarás reimportar tus reglas GPO exportadas si las tenías.
Si deseas exportar reglas de GPO, hay dos métodos disponibles:
Exportar en la directiva de grupo local haciendo clic en el menú Export Policy..., después de hacer clic derecho en el nodo:
Windows Defender Firewall with Advanced Security - Local Group Policy Object
Para exportar usando PowerShell, ejecuta Scripts\Backup-Firewall.ps1
Si deseas personalizar tu exportación, consulta la función Export-RegistryRule ubicada en el módulo Ruleset.Firewall, que te permite personalizar tu exportación de casi cualquier forma.
Si deseas importar reglas, importar usando GPO es igual que para exportar, y para importar con PowerShell solo ejecuta Scripts\Restore-Firewall.ps1, que tomará tus archivos de exportación anteriores.
Para personalizar tu exportación/importación, echa un vistazo a Modules\Ruleset.Firewall\Public, donde encontrarás la descripción de cómo usar las funciones del módulo de exportación/importación.
NOTA: La función Export-FirewallRule es realmente lenta; se recomienda ejecutar la función Export-RegistryRule en su lugar, que es lo más rápida posible.
Esta sección y funcionalidad es actualmente experimental y no está completamente completa; por el momento se admite el despliegue a un solo equipo remoto.

En el despliegue remoto de cortafuegos hay al menos dos equipos involucrados: uno se llama equipo de gestión (cliente) y todos los demás se llaman equipos gestionados (servidores).
Los scripts son ejecutados por el administrador en el equipo de gestión, y el cortafuegos se despliega o configura en múltiples equipos servidores simultáneamente.
Para detalles de implementación, consulta el módulo Modules\Ruleset.Remote
NOTA: La funcionalidad de remoting no es exclusiva del despliegue remoto de cortafuegos; el despliegue a localhost por diseño también requiere una configuración funcional de WinRM y PS remoting.
Antes de que se pueda realizar el despliegue remoto, el equipo remoto (servidor) debe configurarse para aceptar conexiones. A continuación se muestra un ejemplo de cómo establecer una conexión SSL:
Para permitir la ejecución, configure el servicio WinRM y el registro remoto en el equipo servidor ejecutando:
NOTA: Si se usa PowerShell Core, omita -Protocol HTTPS de Enable-WinRMServer a continuación; esto habilitará tanto HTTP como HTTPS, lo cual es una solución temporal para que el módulo de compatibilidad funcione en la sesión remota.```powershell
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
Después de realizar estos pasos, dentro del directorio `\Exports` encontrará un archivo de certificado SSL (*.cer)
que debe copiarse a la computadora de administración también en el directorio `\Exports`.\
Por defecto, se crea un certificado SSL autofirmado si la computadora servidor no tiene uno.
**NOTA:** La configuración manual de la computadora servidor se realiza solo una vez para la configuración inicial,
no es necesario repetirla para implementaciones posteriores.
El siguiente paso es pasar a la computadora de administración y ejecutar los scripts según se desee, por ejemplo:```powershell
# On management computer
cd C:\Path\to\WindowsFirewallRuleset\Scripts
Deploy-Firewall -Domain "RemoteComputerName"
Ambos conjuntos de comandos anteriores deben ejecutarse en la misma edición de PowerShell, por ejemplo, si el servidor se configuró en PowerShell Core, entonces la computadora cliente también necesita PowerShell Core para la implementación.
Si el servidor o la computadora de administración es una estación de trabajo (por ejemplo, no es un servidor Windows ni parte de un dominio), entonces su perfil de red debe configurarse como privado.
La implementación remota se puede personalizar con gran detalle en las siguientes ubicaciones:
Modules\Ruleset.Remote\Scripts\WinRMSettings.ps1Modules\Ruleset.Remote\Scripts\*Firewall.psscModules\Ruleset.Remote\Public\Register-SslCertificate.ps1Modules\Ruleset.Remote\Scripts\SessionSettings.ps1Para obtener información adicional y consejos de solución de problemas, consulte también Ayuda de remoting
Para soporte, informes de problemas, sugerencias o personalización de este repositorio y métodos para actualizar periódicamente este cortafuegos, consulte SUPPORT.md
Las siguientes características son deseadas y podrían estar disponibles en algún momento en el futuro:
Administración remota del cortafuegos
Conjuntos completos de reglas de cortafuegos para ediciones de Windows Server y sistemas de puerta de enlace dedicados.
Escaneo del registro bajo demanda o programado para validar la integridad de la política de filtrado activa del cortafuegos y la configuración del cortafuegos
Funcionalidad completa para las siguientes ediciones aún no probadas de Windows 10.0
Funcionalidad para sistemas x86