-->

Configuración del Firewall del sistema operativo

Configuración del Firewall del sistema operativo: Crear reglas de entrada y salida en el cortafuegos integrado (Windows Defender Firewall o UFW en Linux) para permitir o bloquear puertos específicos (ej. bloquear puerto 80, permitir puerto 22).

Objetivo:

Configurar el cortafuegos integrado del sistema operativo (Windows Defender Firewall en Windows o UFW - Uncomplicated Firewall en GNU/Linux) mediante la creación de reglas personalizadas de entrada y salida para permitir o bloquear el tráfico de red dirigido a puertos específicos (por ejemplo, bloquear el tráfico HTTP en el puerto 80 y permitir el acceso SSH por el puerto 22).

Escenario:

  • Una máquina virtual o equipo físico con un sistema operativo Windows (PowerShell / Interfaz avanzada) o GNU/Linux (UFW).
  • Privilegios de administrador o superusuario (root) necesarios para aplicar y modificar reglas de filtrado en el cortafuegos del núcleo.

Instrucciones:

Opción A: Configuración de reglas en Windows Defender Firewall (PowerShell)

  1. Abre una terminal de PowerShell con privilegios de administrador.
  2. Bloquear un puerto de entrada (ej. puerto 80 HTTP): Ejecuta el cmdlet para crear una regla de bloqueo que impida el tráfico entrante por el puerto especificado:
    New-NetFirewallRule -DisplayName "Bloquear Puerto 80 HTTP" -Direction Inbound -Protocol TCP -LocalPort 80 -Action Block
  3. Permitir un puerto de entrada (ej. puerto 22 SSH): Crea una regla para permitir explícitamente conexiones entrantes hacia el servicio de administración remota:
    New-NetFirewallRule -DisplayName "Permitir Puerto 22 SSH" -Direction Inbound -Protocol TCP -LocalPort 22 -Action Allow
  4. Comprobación y eliminación de reglas: Para listar las reglas de firewall creadas o eliminar una regla concreta por su nombre:
    Get-NetFirewallRule -DisplayName "*Puerto*"
    Remove-NetFirewallRule -DisplayName "Bloquear Puerto 80 HTTP"

Opción B: Configuración de reglas en entornos GNU/Linux (UFW - Uncomplicated Firewall)

  1. Abre una terminal en tu distribución Linux con privilegios de superusuario.
  2. Verificación y activación inicial de UFW: Comprueba el estado actual del cortafuegos y asegúrate de que está habilitado aplicando las políticas por defecto (bloquear todo el tráfico entrante y permitir todo el saliente):
    sudo ufw default deny incoming
    sudo ufw default allow outgoing
    sudo ufw enable
  3. Permitir un puerto específico (ej. puerto 22 SSH): Abre el acceso al puerto de gestión remota de forma segura:
    sudo ufw allow 22/tcp
  4. Bloquear un puerto específico (ej. puerto 80 HTTP): Deniega explícitamente las conexiones a través del puerto web no seguro:
    sudo ufw deny 80/tcp
  5. Comprobación de reglas activas: Muestra el listado detallado y numerado de todas las reglas configuradas en el cortafuegos:
    sudo ufw status numbered

Verificación:

  • En Windows, abre el monitor de Firewall de Windows con seguridad avanzada (wf.msc) para comprobar visualmente que las reglas de entrada para los puertos 80 y 22 figuran como habilitadas con sus respectivas acciones de bloqueo y permiso.
  • En Linux, ejecuta sudo ufw status verbose para validar la directiva general del sistema y comprobar que las reglas de los puertos se aplican correctamente sobre las interfaces de red.

Preguntas de reflexión:

  1. ¿Por qué se establece por defecto una política estricta de denegación de todo el tráfico entrante (deny incoming) al activar un cortafuegos en un servidor expuesto a internet?
  2. ¿Qué diferencia operativa existe entre bloquear un puerto a nivel de cortafuegos local (Host Firewall) frente a hacerlo en un enrutador o cortafuegos perimetral de red?
  3. ¿Qué precauciones críticas debe tomar un administrador de sistemas antes de aplicar una regla de bloqueo de puertos en una sesión remota activa (como SSH o Escritorio Remoto)?
Haz clic aquí para ver las soluciones y explicaciones

1. ¿Por qué se establece por defecto denegar todo el tráfico entrante?

Sigue el principio de mínimo privilegio y seguridad por defecto. Un sistema operativo recién instalado puede mantener múltiples servicios de red escuchando en segundo plano de forma innecesaria. Bloquear todo el tráfico entrante por defecto garantiza que ningún servicio no autorizado sea accesible desde el exterior, obligando al administrador a abrir de forma explícita y controlada únicamente los puertos estrictamente necesarios para la operación del servidor.


2. ¿Qué diferencia hay entre un cortafuegos de host y uno perimetral?

El cortafuegos de host (como UFW o Windows Firewall) se ejecuta directamente en el propio sistema operativo y protege de manera granular a esa máquina específica frente a tráficos internos o externos. El cortafuegos perimetral (hardware o software dedicado en la pasarela de red) protege a toda la red corporativa o subred frente a amenazas externas antes de que los paquetes lleguen siquiera a los equipos individuales, actuando como primera línea de defensa de la organización.


3. ¿Qué precauciones se deben tomar antes de bloquear puertos en una sesión remota?

Es vital asegurarse de no bloquear por error el puerto de la propia sesión de administración remota activa (como el puerto 22 de SSH o el 3389 de RDP). Si se aplica una regla restrictiva general sin permitir previamente el puerto de conexión del administrador, la sesión se cerrará de inmediato y el equipo quedará incomunicado en remoto, obligando a requerir acceso físico a la consola del servidor para revertir el error.