A veces, el Firewall de Windows Defender puede ser un verdadero fastidio, bloqueando las conexiones de red de ciertos programas o servicios. Pero desactivarlo simplemente no es buena idea; eso solo deja el sistema más vulnerable. En cambio, una mejor estrategia es registrar lo que pasa, ver qué se descarta o permite, y luego ajustar las reglas. De esta manera, se obtiene una visión más clara de lo que sucede en segundo plano y se pueden crear reglas de permiso precisas sin comprometer la seguridad.
En este tutorial, aprenderá a habilitar el registro en el Firewall de Windows, analizar los registros con PowerShell y consultarlos en el Visor de eventos. Es un poco complicado, pero vale la pena si intenta solucionar problemas de red inusuales o averiguar por qué una aplicación específica no se conecta. Una vez configurado, verá exactamente qué tráfico se bloquea, qué está permitido y dónde se encuentran los puntos problemáticos. Y además, es bastante satisfactorio echar un vistazo tras las cortinas de la seguridad de red de Windows.
Cómo habilitar y usar el registro del Firewall de Windows
Habilitar el registro en el Firewall de Windows
Habilitar el registro puede parecer intimidante, como «¿dónde encuentro estas opciones?».Pero en realidad no es tan complicado. Te recomendamos explorar el Firewall de Windows Defender con Seguridad Avanzada ( MMC wf.msc), ya que ahí es donde ocurre la verdadera magia. Desde allí, haz clic derecho en el nodo raíz y selecciona Propiedades. Esto abre la configuración específica del perfil para redes de dominio, privadas o públicas.
Si no sabes qué perfil se aplica a tu conexión actual, abre un símbolo del sistema o una ventana de PowerShell y ejecuta: Get-NetConnectionProfile. Esto te indicará si estás en modo privado, público o de dominio, lo cual es muy útil porque cada perfil puede tener sus propias reglas.
Ahora, en la pestaña Propiedades de tu perfil de red, haz clic en el botón Personalizar en la sección Registro. Aquí verás opciones para ajustar la ubicación del archivo de registro, el límite de tamaño y los datos que se registran.
- Archivo de registro: por defecto, es
%systemroot%\system32\LogFiles\Firewall\pfirewall.log. Si falta este archivo o desea que cada perfil registre por separado, puede cambiar el nombre del archivo a algo comopfirewall_domain.log,pfirewall_private.logopfirewall_public.log. - Límite de tamaño: auméntalo de 4 MB a al menos 20 MB (configurar en
20480KB).Algunos registros se llenan rápidamente con mucho tráfico, y no querrás perder datos por su pequeño tamaño. - Registrar paquetes descartados: habilite esta opción si desea ver lo que bloquea el firewall, que suele ser la información clave durante la resolución de problemas.
- Registrar conexiones exitosas: opcional, pero tenga en cuenta que puede generar registros masivos si lo activa para todo. Ideal para análisis profundos, quizás excesivo para comprobaciones rápidas.
Se recomienda habilitar el registro por separado para cada perfil para que pueda ver qué sucede con claridad según el contexto de la red. Por ejemplo, si un programa funciona en su red privada pero no en la pública, tener registros separados puede ayudarle a identificar el problema con mayor eficacia.
Si lo prefiere, también puede configurar todo esto mediante PowerShell, que es más rápido una vez que se familiarice. Pruebe este comando para configurar el registro del perfil público:
Set-NetFirewallProfile -Profile Public -LogBlocked True -LogMaxSize 20480 -LogFileName "%systemroot%\system32\LogFiles\Firewall\pfirewall.log" -Verbose
Y para comprobar la configuración actual:
Get-NetFirewallProfile | Select-Object Name, Enabled, *Log*
Consejo: Las opciones de registro del Firewall de Windows también se pueden administrar a través de la Política de grupo si está en un dominio o desea un control más centralizado.
Análisis de registros de firewall con PowerShell
Ahora que los registros están habilitados, querrás interpretar los datos sin procesar. Los registros son archivos de texto sin formato, generalmente bastante grandes, por lo que la búsqueda manual se vuelve tediosa rápidamente. Por suerte, PowerShell puede ser de ayuda.
Por ejemplo, si estás buscando conexiones bloqueadas específicas, puedes usar este comando:
Get-Content C:\Windows\System32\LogFiles\Firewall\pfirewall.log -wait | Select-String -pattern "DROP.*TCP.*445"
Esto transmite constantemente el registro y filtra las entradas donde se descartó tráfico en el puerto TCP 445 (que gestiona SMB, causa frecuente de problemas de compartición de red).Es una forma práctica de ver qué está bloqueando el firewall en tiempo real sin tener que abrir el registro manualmente.
El formato del archivo de registro se parece a esto:
date time action protocol src-ip dst-ip src-port dst-port size tcpflags tcpsyn tcpack tcpwin icmptype icmpcode info path pid
Es un lío, pero una vez que lo dominas, puedes escribir scripts para analizar información relevante, como direcciones IP de origen o puertos específicos.
Si te interesa dar sentido a registros grandes, aquí tienes una pequeña función auxiliar que muestra los datos del registro en una tabla sencilla:
function Get-WindowsFirewallLog { param( [string] $LogFilePath = "$env:SystemRoot\System32\LogFiles\Firewall\pfirewall.log" ) $headerFields = @("date", "time", "action", "protocol", "src-ip", "dst-ip", "src-port", "dst-port", "size", "tcpflags", "tcpsyn", "tcpack", "tcpwin", "icmptype", "icmpcode", "info", "path") Get-Content $LogFilePath | ConvertFrom-Csv -Header $headerFields -Delimiter ' ' | Out-GridView } Get-WindowsFirewallLog
Al ejecutar esto, aparecerá una pequeña ventana con las entradas del registro, lo que facilitará la detección de patrones o conexiones bloqueadas específicas.
Visualización de registros en el Visor de eventos
Si revisar archivos de texto no es lo tuyo, también puedes enviar estos registros directamente al Visor de eventos de Windows. Para ello, necesitas habilitar políticas de auditoría específicas. Por suerte, solo son unos pocos comandos si prefieres usar la línea de comandos.
Auditpol /set /category:"System" /SubCategory:"Filtering Platform Packet Drop" /failure:enable
Esto hace que Windows registre los eventos de conexión bloqueados (EventID 5152) en el registro de seguridad. Puede consultarlos mediante el Visor de eventos.
Para filtrar estos eventos rápidamente, use PowerShell:
$destinationPort = "3388" $filterXml = @" "@ Get-WinEvent -FilterXml $filterXml | Select-Object TimeCreated, @{Name="Source";Expression={( [xml]$_. ToXml() ).Event. EventData. Data | Where-Object { $_. Name -eq 'SourceAddress' } | Select-Object -ExpandProperty '#text'}}
Este filtro filtra los intentos de conexión bloqueados a un puerto específico, presentando una práctica tabla con las direcciones de origen y las horas. Es una forma diferente de controlar lo que hace el firewall.
Habilitar y analizar los registros del firewall puede parecer un poco tedioso, pero suele ser la clave para resolver problemas de red misteriosos. Te ayuda a comprender exactamente qué está permitido o vetado, y por qué. Además, una vez configurado, se trata principalmente de observar e interpretar, no de adivinar.