Cómo configurar un firewall básico en Windows y Linux

Cómo configurar un firewall básico en Windows y Linux: Guía completa para estudiantes

En el mundo de la ciberseguridad, un firewall bien configurado es la primera línea de defensa contra acceso no autorizado, malware y fugas de datos. Esta guía exhaustiva te guiará desde los conceptos fundamentales hasta ejemplos prácticos en Windows Defender Firewall, UFW e iptables en Linux.

Índice


1. Introducción al firewall

Un firewall es un sistema (software o hardware) que filtra el tráfico de red entrante y saliente según reglas de firewall definidas. Actúa como un guardián digital que autoriza solo conexiones legítimas, bloqueando amenazas externas y reduciendo la superficie de ataque.

2. Tipos de firewall

  • Host-based: Protege un solo equipo (Windows Defender, UFW).
  • Network-based: Dispositivo dedicado que filtra todo el tráfico de red (appliance físico o virtual).
  • Packet filtering: Inspecciona cabeceras IP/puertos, decide en capa 3/4.
  • Stateful: Mantiene estado de conexiones, permite respuestas legítimas.
  • Application-level: Inspecciona contenido (HTTP/HTTPS), también llamado proxy firewall.
  • Next-Generation Firewall (NGFW): Combina filtrado de paquetes, IPS/IDS y control de aplicaciones.

3. Arquitectura y modelos de filtrado

En Windows Defender Firewall, hay tres perfiles de red: Dominio, Privado y Público, cada uno con políticas de entrada y salida. En Linux, el subsistema Netfilter implementa iptables (o nftables) mediante tablas (filter, nat, mangle) y cadenas (INPUT, OUTPUT, FORWARD).


4. Configuración en Windows Defender Firewall

4.1 Acceso y perfiles de red

Abre la consola avanzada con Win + R → wf.msc. Ajusta cada perfil según tu entorno:

  • Dominio: redes corporativas con control de Active Directory.
  • Privado: redes de confianza (oficina o casa).
  • Público: redes Wi-Fi abiertas o no confiables.

4.2 Reglas de entrada y salida (GUI)

  1. Selecciona Reglas de entrada o Reglas de salida en el panel izquierdo.
  2. Haz clic en Nueva regla… y elige Puerto, Programa o Personalizado.
  3. Define protocolo (TCP/UDP) y puertos (80, 443, 22, etc.).
  4. Selecciona Permitir la conexión o Bloquear la conexión.
  5. Asigna un nombre descriptivo y aplica a los perfiles necesarios.

4.3 Ejemplos prácticos

Permitir un servidor web y bloquear una aplicación de telemetría:

# Crear regla para HTTP/HTTPS
New-NetFirewallRule -DisplayName "Servidor Web" -Direction Inbound \
-LocalPort 80,443 -Protocol TCP -Action Allow
# Bloquear aplicación
New-NetFirewallRule -DisplayName "Bloquear Telemetría" \
-Direction Outbound -Program "C:\app\telemetry.exe" -Action Block

4.4 Uso avanzado con PowerShell

# Listar perfiles
Get-NetFirewallProfile | Format-Table Name, Enabled
# Bloquear una IP maliciosa
New-NetFirewallRule -DisplayName "Bloquear IP" \
-Direction Inbound -RemoteAddress 203.0.113.45 -Action Block
# Habilitar logging de conexiones denegadas
Set-NetFirewallProfile -Profile Public -LogBlocked True -LogFileName '%systemroot%\system32\LogFiles\Firewall\pfirewall.log'

5. Configuración en Linux

5.1 UFW: Uncomplicated Firewall

UFW simplifica iptables con comandos legibles:

# Instalar y verificar
sudo apt update && sudo apt install ufw
sudo ufw status verbose
# Políticas por defecto
sudo ufw default deny incoming
sudo ufw default allow outgoing
# Permitir SSH antes de habilitar
sudo ufw allow ssh
# HTTP/HTTPS
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
# Habilitar
sudo ufw enable

5.2 Reglas avanzadas en UFW

# Permitir desde IP concreta a SSH
sudo ufw allow from 192.168.1.50 to any port 22
# Denegar rango de puertos
sudo ufw deny 6000:6007/tcp
# Insertar regla al inicio (prioridad máxima)
sudo ufw insert 1 allow from 10.0.0.30 to any port 80

5.3 iptables: control granular

iptables ofrece total flexibilidad con tablas y cadenas:

# Limpiar reglas y definir políticas
sudo iptables -F
sudo iptables -P INPUT DROP
sudo iptables -P FORWARD DROP
sudo iptables -P OUTPUT ACCEPT
# Permitir loopback y conexiones establecidas
sudo iptables -A INPUT -i lo -j ACCEPT
sudo iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
# Permitir SSH, HTTP, HTTPS
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT
# Registrar paquetes denegados
sudo iptables -A INPUT -m limit --limit 5/min -j LOG --log-prefix "IPTables-DROP: "

5.4 nftables (sucesor de iptables)

nftables unifica y moderniza la sintaxis. Ejemplo básico:

sudo apt install nftables
sudo nft add table inet filter
sudo nft 'add chain inet filter input { type filter hook input priority 0; policy drop; }'
sudo nft add rule inet filter input ct state established,related accept
sudo nft add rule inet filter input iif lo accept
sudo nft add rule inet filter input tcp dport {22,80,443} accept

6. Buenas prácticas de seguridad

  • Principio de mínimo privilegio: denegar todo por defecto y permitir solo lo imprescindible.
  • Reglas específicas: restringe por IP, rango y puerto; evita comodines.
  • Auditoría periódica: revisa y elimina reglas obsoletas trimestralmente.
  • Automatización: versiona tus scripts de firewall con Git y despliega con Ansible o scripts CI/CD.
  • Defensa en profundidad: combina firewall con antivirus, IDS/IPS y políticas de parcheo.

7. Registro y monitoreo

  • Windows: revisa %systemroot%\System32\LogFiles\Firewall\pfirewall.log.
  • Linux UFW: /var/log/ufw.log.
  • iptables: utiliza dmesg o /var/log/kern.log para logs del módulo LOG.
  • Integración con SIEM o ELK para análisis centralizado.
  • Implementa fail2ban para bloquear IPs tras múltiples intentos fallidos.

8. Solución de problemas y errores comunes

  • Pérdida de SSH: siempre ejecuta sudo ufw allow ssh antes de ufw enable.
  • Orden de reglas: en iptables y nftables, las reglas se procesan secuencialmente; las más específicas deben ir arriba.
  • Firewall inactivo: verifica el estado con sudo ufw status o Get-NetFirewallProfile.
  • Rollback rápido:
    # Desactivar UFW
    sudo ufw disable
    # Resetear UFW
    sudo ufw --force reset
    # Guardar reglas iptables
    iptables-save > ~/iptables-backup.txt
    # Restaurar iptables
    iptables-restore < ~/iptables-backup.txt

9. Conclusión y lecturas recomendadas

Dominar la configuración de un firewall básico en Windows y Linux es un pilar indispensable en tu formación en seguridad de redes. Con esta guía dispones de los conocimientos teóricos, ejemplos prácticos y mejores prácticas para proteger tus sistemas de forma robusta.

Para profundizar:

Publicar un comentario

0 Comentarios