Hardening Perimetral · Metodología NIST SP 800-41 para firewalls MikroTik y Windows Server en empresas de Medellín, Bogotá y Colombia.
Solicitar Pentest
Inicio Blog Hardening WAN
Guía Técnica NIST/CIS

Hardening WAN Avanzado: Cerrar Puertos en MikroTik y Windows Server según NIST SP 800-41

Metodología de hardening perimetral basada en NIST SP 800-41 (Guidelines on Firewalls and Firewall Policy), CIS Controls v8, y experiencia en pentesting de infraestructuras colombianas. Scripts de producción para MikroTik RouterOS 7.x y Windows Server 2022/2025.

5 de marzo, 2026 22 min lectura Medellín, Colombia Ing. Pedro Velásquez

Hardening Perimetral

Protección de superficie de ataque en el perímetro WAN según estándares internacionales de seguridad.

NIST SP 800-41 CIS Controls v8 ISO 27001

La exposición de puertos de gestión a Internet es una de las vulnerabilidades más críticas detectadas en auditorías de penetración en Colombia. Durante 2025, el 73% de las PYMES escaneadas en Medellín y Bogotá tenían al menos un puerto de administración (Winbox, SSH, RDP, HTTP) expuesto directamente a WAN sin restricción de origen.

Esta guía implementa los controles especificados en NIST SP 800-41 Rev. 1 (Guidelines on Firewalls and Firewall Policy) y CIS Control 8 (Audit Log Management) para reducir la superficie de ataque perimetral en entornos empresariales colombianos.

NIST SP 800-41 Rev. 1 - Sección 4.2.1

"Los firewalls deben configurarse con una política de denegación por defecto (default deny). Solo el tráfico explícitamente autorizado debe ser permitido, y todas las reglas deben documentar el propósito de negocio."

National Institute of Standards and Technology, "Guidelines on Firewalls and Firewall Policy", SP 800-41 Rev. 1

1. Metodología de Análisis: Superficie de Ataque WAN

Antes de implementar reglas de firewall, es obligatorio realizar un inventario de puertos expuestos. Según CIS Control 7 (Continuous Vulnerability Management), las organizaciones deben escanear continuamente su perímetro.

1.1 Escaneo desde Externo con Nmap

Nunca escanee su IP pública desde dentro de la red (Hairpin NAT/Loopback genera falsos resultados). Use una VPS externa o conexión 4G aislada:

nmap - VPS Externa (Ubuntu 22.04)
# Escaneo completo de puertos TCP con detección de servicio
sudo nmap -sS -sV -p- -T4 --min-rate 1000 \
    --max-retries 2 $TARGET_IP -oN scan_results.txt

# Escaneo de puertos UDP comunes (DNS, SNMP, NTP)
sudo nmap -sU --top-ports 100 $TARGET_IP

# Detección de vulnerabilidades con NSE scripts
sudo nmap -sV --script vuln $TARGET_IP

1.2 Consulta en Shodan y Censys

Los motores de búsqueda de dispositivos expuestos indexan banners de servicios. Verifique si su organización aparece:

Shodan Dorks - Detección de Exposición
# MikroTik con Winbox expuesto en Colombia
port:8291 country:CO os:"MikroTik RouterOS"

# Windows RDP expuesto en Antioquia
port:3389 region:"Antioquia" has_screenshot:true

# Servidores web en Medellín con puertos sospechosos
city:"Medellin" port:8080,8443,8888,9999"

# Búsqueda por organización específica
org:"Tu Empresa" net:190.XXX.XXX.0/24

CIS Control 13 - Data Protection

Si su IP pública aparece en Shodan con capturas de pantalla de RDP o banners de versión, ya ha sido indexada. Cambie puertos después del hardening y solicite eliminación en Shodan via opt-out.

2. Puertos Críticos a Cerrar en Perúmetro WAN

Según el análisis de incidentes en Colombia durante 2024-2026, estos son los puertos más atacados:

Puerto Servicio Riesgo Acción Requerida
8291 MikroTik Winbox CRÍTICO Cerrar a WAN, usar VPN o Port Knocking
3389 Windows RDP CRÍTICO Restringir por IP source, usar RD Gateway
22 SSH CRÍTICO Key-based auth, fail2ban, IP whitelist
445 SMB CRÍTICO Nunca exponer a Internet
80/443 HTTP/HTTPS MEDIO WAF reverse proxy, hardening web server
3306 MySQL/MariaDB CRÍTICO Bind a localhost, usar túnel SSH
21 FTP MEDIO Migrar a SFTP, nunca FTP anónimo
23 Telnet CRÍTICO Deshabilitar completamente

3. Hardening MikroTik RouterOS 7.x - Input Chain

La cadena input controla el tráfico destinado al propio router. Según NIST SP 800-41, solo los servicios necesarios para operación deben ser accesibles.

3.1 Política de Firewall Stateful Completa

MikroTik RouterOS 7.x - Terminal
# ============================================================
# HARDENING INPUT CHAIN - NIST SP 800-41 COMPLIANT
# Autor: Ing. Pedro Velásquez - CiberTechSolucion
# Fecha: Marzo 2026
# ============================================================

# 1. Definir lista de IPs de administración (WhiteList)
/ip firewall address-list
add list=ADMIN_WHITELIST address=192.168.1.0/24 comment="Red LAN Oficina Principal"
add list=ADMIN_WHITELIST address=10.10.0.0/24 comment="Red VPN WireGuard"
add list=ADMIN_WHITELIST address=190.158.XXX.XXX comment="IP Estática Ing. Pedro"

# 2. Lista de IPs bloqueadas (BlackList dinámica)
/ip firewall address-list
add list=BLACKLIST_WAN address=0.0.0.0 comment="Placeholder - se pobla dinámicamente"

# 3. Reglas de filtrado Input Chain
/ip firewall filter

# 3.1 Aceptar tráfico establecido y relacionado (Stateful)
add chain=input connection-state=established,related \
    action=accept comment="[NIST] Accept Established/Related - Stateful Inspection"

# 3.2 Dropear paquetes inválidos inmediatamente
add chain=input connection-state=invalid \
    action=drop log=yes log-prefix="[INVALID_DROP]" \
    comment="[NIST] Drop Invalid - RFC 793 Compliance"

# 3.3 Bloquear IPs en blacklist
add chain=input src-address-list=BLACKLIST_WAN \
    action=drop log=yes log-prefix="[BLACKLIST]" \
    comment="Drop Blacklisted IPs"

# 3.4 Permitir ICMP limitado (Monitoreo)
add chain=input protocol=icmp icmp-options=8:0 \
    limit=5,10:packet action=accept \
    comment="[NIST] Rate-limited ICMP Echo Request"

# 3.5 Acceso Winbox SOLO desde WhiteList
add chain=input dst-port=8291 protocol=tcp \
    src-address-list=ADMIN_WHITELIST action=accept \
    comment="[CRITICAL] Winbox - Admin Only"

# 3.6 Acceso SSH SOLO desde WhiteList
add chain=input dst-port=22 protocol=tcp \
    src-address-list=ADMIN_WHITELIST action=accept \
    comment="[CRITICAL] SSH - Admin Only"

# 3.7 API REST (si se usa) - Puerto 443/8080
add chain=input dst-port=443 protocol=tcp \
    src-address-list=ADMIN_WHITELIST action=accept \
    comment="REST API - Admin Only"

# 3.8 REGISTRO de intentos de acceso denegados
add chain=input dst-port=8291,22,80,443,3389 protocol=tcp \
    action=add-src-to-address-list address-list=SCANNERS \
    address-list-timeout=1d log=yes log-prefix="[SCAN_DETECT]" \
    comment="[CIS] Log unauthorized access attempts"

# 3.9 Drop final - Default Deny Policy
add chain=input in-interface-list=WAN action=drop \
    log=yes log-prefix="[DEFAULT_DENY]" \
    comment="[NIST] Default Deny - Explicit Drop WAN Input"

CIS Control 8 - Audit Log Management

Las reglas con log=yes generan entradas en el log del router. Configure envío de logs a servidor Syslog centralizado (Wazuh, Graylog) para correlación de eventos.

CIS Controls v8, Control 8: Audit Log Management

4. Port Knocking: Acceso de Emergencia

El Port Knocking es una técnica de (tocar la puerta) que permite abrir puertos dinámicamente tras una secuencia de conexiones predefinida. No es un reemplazo de autenticación, sino una capa adicional de ofuscación.

Advertencia de Seguridad

Port Knocking NO reemplaza autenticación fuerte. Es "security through obscurity" y debe usarse SOLO como capa adicional. Siempre combine con: (1) Contraseñas robustas, (2) Certificados/Keys, (3) VPN cuando sea posible.

4.1 Implementación de Secuencia Triple

MikroTik - Port Knocking Script
# ============================================================
# PORT KNOCKING - Secuencia: 7000 → 8000 → 9000
# Al completar secuencia, IP se agrega a ADMIN_WHITELIST por 1 hora
# ============================================================

/ip firewall filter

# KNOCK 1: Puerto 7000 → Agregar a lista temporal KNOCK_1
add chain=input dst-port=7000 protocol=tcp \
    action=add-src-to-address-list \
    address-list=KNOCK_1 address-list-timeout=15s \
    comment="[KNOCK] Step 1: 7000"

# KNOCK 2: Puerto 8000 (solo si está en KNOCK_1) → Avanzar a KNOCK_2
add chain=input dst-port=8000 protocol=tcp \
    src-address-list=KNOCK_1 \
    action=add-src-to-address-list \
    address-list=KNOCK_2 address-list-timeout=15s \
    comment="[KNOCK] Step 2: 8000"

# KNOCK 3: Puerto 9000 (solo si está en KNOCK_2) → ¡ÉXITO!
add chain=input dst-port=9000 protocol=tcp \
    src-address-list=KNOCK_2 \
    action=add-src-to-address-list \
    address-list=ADMIN_WHITELIST address-list-timeout=1h \
    log=yes log-prefix="[KNOCK_SUCCESS]" \
    comment="[KNOCK] Success - Add to Admin Whitelist"

# IMPORTANTE: Estas reglas deben ir ANTES del Drop final

4.2 Cliente Port Knocking (Linux/macOS/Windows)

Cliente Knock - Terminal
# Linux/macOS con knockd instalado
knock $ROUTER_IP 7000 8000 9000

# Sin knockd - usando nc (netcat)
nc -z $ROUTER_IP 7000 && \
nc -z $ROUTER_IP 8000 && \
nc -z $ROUTER_IP 9000

# Windows PowerShell
Test-NetConnection -ComputerName $ROUTER_IP -Port 7000
Test-NetConnection -ComputerName $ROUTER_IP -Port 8000
Test-NetConnection -ComputerName $ROUTER_IP -Port 9000

# Después de knocking, conectarse a Winbox/SSH
winbox $ROUTER_IP || ssh -p 22 admin@$ROUTER_IP

5. Hardening Windows Server: RDP Seguro

El protocolo RDP (Remote Desktop Protocol) es uno de los más atacados en Colombia. Según datos de CiberTechSolucion, el 67% de intentos de intrusión en 2025 iniciaron por RDP expuesto.

5.1 Restricción por IP Source con PowerShell

PowerShell - Windows Server 2022/2025
# ============================================================
# HARDENING RDP - Windows Server 2022/2025
# Ejecutar como Administrador
# ============================================================

# 1. Crear regla de firewall que permite RDP solo desde IPs autorizadas
New-NetFirewallRule -DisplayName "RDP - Solo IPs Autorizadas" `
    -Direction Inbound `
    -LocalPort 3389 `
    -Protocol TCP `
    -Action Allow `
    -RemoteAddress "192.168.1.0/24","10.10.0.0/24","190.158.XXX.XXX" `
    -Profile Any `
    -Enabled True `
    -Description "[NIST] RDP restricted to authorized IPs only"

# 2. Deshabilitar regla RDP por defecto (permite todo)
Disable-NetFirewallRule -DisplayGroup "Escritorio remoto"
Disable-NetFirewallRule -DisplayGroup "Remote Desktop"

# 3. Habilitar Network Level Authentication (NLA)
Set-ItemProperty -Path 'HKLM:\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp' `
    -Name "UserAuthentication" -Value 1

# 4. Configurar nivel de encriptación a FIPS 140
Set-ItemProperty -Path 'HKLM:\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp' `
    -Name "MinEncryptionLevel" -Value 4

# 5. Verificar configuración
Get-NetFirewallRule -DisplayName "RDP*" | Format-Table DisplayName, Enabled, Direction

# 6. Verificar IPs remotas permitidas
Get-NetFirewallRule -DisplayName "RDP - Solo IPs Autorizadas" | Get-NetFirewallAddressFilter

5.2 Hardening Adicional con Política de Grupo

GPO - Local Security Policy
# Configuración vía gpedit.msc o secpol.msc

# Ruta: Computer Configuration > Administrative Templates > Windows Components > Remote Desktop Services > Remote Desktop Session Host > Security

1. Require user authentication for remote connections by using Network Level AuthenticationEnabled

2. Set client connection encryption levelEnabledHigh Level (FIPS Compliant)

3. Require secure RPC communicationEnabled

4. Do not allow local administrators to customize permissionsEnabled

5. Set time limit for active Remote Desktop Services sessionsEnabled8 hours

6. Set time limit for disconnected sessionsEnabled1 hour

# Ruta: Computer Configuration > Windows Settings > Security Settings > Local Policies > User Rights Assignment

Allow log on through Remote Desktop ServicesRemove "Users" → Add only specific Admin group

6. Detección y Respuesta: Logging Centralizado

Según CIS Control 8, los logs de firewall deben enviarse a un servidor centralizado para correlación y análisis. MikroTik soporta envío a Syslog vía UDP/TCP.

6.1 Configurar Syslog en MikroTik

MikroTik - Syslog Configuration
# Configurar destino Syslog (Wazuh, Graylog, Splunk)
/system logging action
set remote remote=192.168.1.100 remote-port=514 \
    target=remote syslog-facility=local0 \
    syslog-severity=info syslog-time-format=bsd

# Configurar topics a enviar
/system logging
add action=remote topics=firewall prefix="[MT_FW]"
add action=remote topics=critical prefix="[MT_CRIT]"
add action=remote topics=error prefix="[MT_ERR]"

# Verificar envío de logs
/log print where topics~"firewall"

7. Checklist de Verificación Post-Hardening

Escaneo de validación externa

Ejecutar nmap desde VPS externa para confirmar que solo puertos autorizados están abiertos.

Verificación en Shodan/Censys

Confirmar que la IP pública ya no aparece indexada con puertos sensibles.

Prueba de acceso administrativo

Verificar que Winbox/SSH/RDP solo accesibles desde IPs autorizadas o VPN.

Logging centralizado operativo

Confirmar recepción de logs en servidor Syslog/SIEM.

Documentación de reglas

Cada regla de firewall tiene comentario explicando propósito de negocio.

Backup de configuración

Exportar configuración: /export file=hardening_backup

¿Tu infraestructura pasaría una prueba de penetración?

Nuestro equipo realiza pentesting de perímetro según metodología OWASP y NIST SP 800-115. Identificamos puertos expuestos, vulnerabilidades de configuración y entregamos reporte ejecutivo con plan de remediación.

PV

Ing. Pedro Velásquez

Especialista en Pentesting y Hardening de Infraestructura

Ingeniero de Sistemas con especialización en Ciberseguridad. Más de 50 auditorías de penetración realizadas en empresas de Medellín, Bogotá y el Eje Cafetero. Experiencia en hardening de infraestructura crítica según estándares NIST, CIS Controls e ISO 27001.

OSCP CEH MTCNA CCNP