Buscar información sobre redes

Redes de computadoras - Google Noticias

Ejemplos de filtros específicos para detectar ataques de denegación de servicio (DoS)

 Le preguntamos a Gemini, la inteligencia artificial de Google, cuáles son los ejemplos de filtros específicos para detectar ataques de denegación de servicio (DoS) 

Filtros Específicos para Detectar y Mitigar Ataques de Denegación de Servicio (DoS) La detección y mitigación temprana de ataques de Denegación de Servicio (DoS) o denegación de servicio distribuida (DDoS) requiere el uso de herramientas capaces de aislar patrones anómalos en el tráfico de red.

A continuación, veremos ejemplos detallados utilizando tcpdump (para la captura e identificación en vivo) y reglas de iptables (para la mitigación directa en sistemas Linux).

1. Detección de Ataques SYN Flood (TCP SYN)

Un ataque SYN Flood busca saturar la tabla de conexiones del servidor enviando miles de solicitudes de apertura de conexión (SYN) sin completar jamás el protocolo de enlace de tres vías (ACK).

Identificación con tcpdump:

Para capturar únicamente paquetes TCP que tengan la bandera SYN activa (y no los paquetes ACK o RST), se utiliza una máscara de bits en el encabezado TCP:

Bash


tcpdump -nnvi eth0 'tcp[tcpflags] & (tcp-syn) != 0 and tcp[tcpflags] & (tcp-ack) == 0'

Qué buscar: Si ves miles de paquetes por segundo desde IPs aleatorias o repetitivas hacia el puerto 80/443 sin que aparezca la respuesta del cliente, estás ante un SYN Flood.

Mitigación con iptables (Protección SYN Proxy / Rate Limit):

Puedes limitar la tasa de nuevas conexiones aceptadas por segundo para evitar que el servidor colapse:

Bash

iptables -A INPUT -p tcp --syn -m limit --limit 1/s --limit-burst 3 -j ACCEPT

iptables -A INPUT -p tcp --syn -j DROP


2. Detección de Ataques UDP Flood

Los ataques UDP Flood inundan puertos aleatorios o específicos del servidor con paquetes UDP masivos, obligando al sistema a responder con un paquete ICMP Port Unreachable para cada uno, saturando el ancho de banda y la CPU.

Identificación con tcpdump:

Para capturar un volumen anómalo de tráfico UDP dirigido a un servicio o puerto específico (por ejemplo, DNS en el puerto 53):

Bash


tcpdump -nnvi eth0 'udp and port 53'

Si quieres ver qué IPs están generando más tráfico UDP de forma agresiva:

Bash


tcpdump -nnq -c 1000 -i eth0 udp | awk '{print $3}' | cut -d. -f1-4 | sort | uniq -c | sort -nr

Mitigación con iptables (Limitación de ráfagas UDP):

Puedes aplicar una regla para descartar paquetes UDP que superen un umbral determinado por segundo:

Bash

iptables -A INPUT -p udp -m limit --limit 50/s --limit-burst 100 -j ACCEPT

iptables -A INPUT -p udp -j DROP


3. Detección de Ataques ICMP Flood (Ping Flood)

Consiste en saturar la red con solicitudes de eco ICMP (ping), consumiendo todo el ancho de banda disponible del enlace de bajada/subida.

Identificación con tcpdump:

Para capturar y contar paquetes ICMP entrantes en tiempo real:

Bash

tcpdump -nnvi eth0 'icmp[icmptype] == icmp-echo'

Mitigación con iptables (Anti-Ping Flood):

Limitar la tasa de respuesta a pings externos protege el recurso de red:

Bash

iptables -A INPUT -p icmp --icmp-type echo-request -m limit --limit 2/s --limit-burst 5 -j ACCEPT

iptables -A INPUT -p icmp --icmp-type echo-request -j DROP


4. Detección de HTTP GET/POST Flood (Capa 7 DoS)

Este tipo de ataques simulan usuarios legítimos solicitando páginas web pesadas o ejecutando scripts repetitivos para agotar los procesos del servidor web (como Apache o Nginx).

Identificación con tcpdump:

Dado que el tráfico HTTP va en texto plano (puerto 80), puedes buscar cadenas específicas como métodos GET masivos:

Bash


tcpdump -nnvi eth0 -A 'tcp port 80 and (((ip[2:2] - ((ip[0]&0xf)<<2 -="" tcp="" xf0="">>2)) != 0)' | grep -i "GET /"

Mitigación con iptables (Protección de conexiones concurrentes por IP):

Puedes usar el módulo connlimit de iptables para evitar que una sola dirección IP abra demasiadas conexiones simultáneas al servidor web:

Bash

iptables -A INPUT -p tcp --dport 80 -m connlimit --connlimit-above 20 --connlimit-mask 32 -j REJECT

(Esta regla rechaza a cualquier IP individual que intente mantener más de 20 conexiones concurrentes abiertas al puerto 80).

Resumen de Buenas Prácticas de Mitigación

Uso de Rate Limiting: Nunca bloquees el tráfico por completo si es legítimo; en su lugar, utiliza los módulos de -m limit para estrangular el tráfico malicioso.

Inspección de Logs: Combina tcpdump con herramientas de análisis de registros para identificar si el ataque proviene de botnets distribuidas (DDoS) o de IPs fijas específicas (lo que facilitaría un bloqueo estático mediante iptables -A INPUT -s IP_ATACANTE -j DROP).

¿Te gustaría profundizar en cómo automatizar estas alertas utilizando scripts o en cómo configurar mecanismos de mitigación a nivel de hardware/routing con BPF avanzado (eBPF)?

TCPDUMP

Le pedimos a Gemini, la inteligencia artificial de Google que nos hable sobre TCPDUMP

Hablanos detalladamente sobre TCPDUMP

tcpdump es la herramienta de línea de comandos por excelencia para el análisis de red. Es un analizador de paquetes (sniffer) que permite capturar y mostrar en tiempo real el tráfico que entra o sale de una interfaz de red, o guardarlo en un archivo para un análisis posterior con herramientas como Wireshark.

En el contexto de VoIP y administración de redes Cisco que veníamos tratando, tcpdump es el "rayo X" que te permite ver si los marcadores QoS que configuraste realmente están viajando en los paquetes.

1. ¿Cómo funciona tcpdump?

tcpdump utiliza la biblioteca libpcap para capturar paquetes directamente de la capa de enlace de datos. Funciona bajo el principio de "promiscuidad": puede poner la tarjeta de red en modo promiscuo para ver todo el tráfico que pasa por el segmento, no solo el dirigido a la máquina local.

2. Sintaxis Básica y Opciones Esenciales

La estructura de un comando suele ser: tcpdump [opciones] [expresión_de_filtro]

-i [interfaz]: Define qué interfaz escuchar (ej. eth0, any, wlan0).

-n: No resuelve nombres de dominio (muestra IPs), lo que acelera el proceso y evita generar tráfico DNS adicional.

-v, -vv, -vvv: Niveles de verbosidad. A mayor nivel, más detalles del encabezado (como el valor TTL, ID, y lo más importante: los valores DSCP/ToS).

-w [archivo.pcap]: Guarda la captura en un archivo compatible con Wireshark.

-r [archivo.pcap]: Lee un archivo previamente capturado.

-s 0: (Snaplen) Captura el paquete completo. Por defecto, versiones antiguas cortaban el paquete a 68 o 96 bytes.

3. El Poder de los Filtros (Expresiones BPF)

tcpdump utiliza filtros BPF (Berkeley Packet Filter). Esto es vital para no saturar la terminal con tráfico basura.

Por Host: host 192.168.1.50

Por Red: net 10.0.0.0/24

Por Puerto: port 5060 (tráfico SIP estándar).

Por Protocolo: udp, tcp, icmp, arp.

Combinaciones Lógicas: and (&&), or (||), not (!).

Ejemplo: src 192.168.1.100 and udp port 5060 (Captura solo el tráfico SIP que sale de esa IP específica).

4. Uso de tcpdump en Entornos VoIP y QoS

Si quieres verificar si tu configuración de QoS en el router Cisco está funcionando, puedes usar tcpdump para inspeccionar el campo TOS (Type of Service) o DSCP.

Comprobar paquetes SIP con prioridad:

Bash


tcpdump -v -ni eth0 udp port 5060

En la salida, busca el campo tos. Si configuraste DSCP EF (Expedited Forwarding), deberías ver algo como tos 0xb8 (que es el valor hexadecimal para EF).

Capturar tráfico RTP (Audio):

El audio suele ir por puertos UDP aleatorios. Un truco es capturar todo el tráfico UDP entre dos terminales:

Bash

tcpdump -ni eth0 udp and host 192.168.1.20

5. Interpretación de la Salida

Una línea típica de tcpdump se ve así: 11:23:01.123456 IP 192.168.1.50.5060 > 192.168.1.1.5060: UDP, length 542

Timestamp: Hora exacta del paquete.

Protocolo de Capa de Red: IP en este caso.

Origen > Destino: IP y puerto de origen seguidos de la dirección de destino.

Info del Protocolo: Indica que es UDP y el tamaño de la carga útil (payload).

6. Consejos Pro para Solución de Problemas

Ver el contenido en ASCII:
Si quieres leer el mensaje SIP (para ver quién llama a quién), usa -A: tcpdump -ni eth0 -A port 5060

Capturar solo paquetes entrantes: tcpdump -i eth0 incoming

Rotación de archivos: Si vas a dejar capturando mucho tiempo, usa -C [tamaño] para que cree archivos nuevos cada X Megabytes y no llene el disco.

tcpdump es la herramienta definitiva porque está presente en casi cualquier sistema Linux/Unix (incluyendo el shell de muchos routers y firewalls modernos). Es el paso previo antes de pasar a una interfaz gráfica como Wireshark.

¿Te gustaría que te diera ejemplos de filtros específicos para detectar ataques de denegación de servicio (DoS) o para inspeccionar otros protocolos como ICMP o HTTP?

Cuales son los comandos específicos para configurar web estas reglas en una zona DMZ para un servidor en un router de alguna marca específica como Cisco ?

Le pedimos a Gemini, la inteligencia artificial de Google, nos explique cuales son los comandos específicos para configurar web estas reglas en una zona DMZ para un servidor en un router de alguna marca específica como Cisco ?

Explicanos detalladamente cuales son los comandos específicos para configurar  web estas reglas en una  zona DMZ para un servidor en un router de alguna marca específica como Cisco ?

Configurar una zona DMZ en un router Cisco (como las series ISR o routers de borde con Cisco IOS) para proteger y publicar un servidor web requiere el uso de Listas de Control de Acceso (ACLs) y NAT estático (Port Forwarding).

A diferencia de los sistemas operativos basados en iptables, Cisco maneja el filtrado de paquetes mediante ACLs estándar o extendidas aplicadas directamente sobre las interfaces de red, evaluando el tráfico según entra o sale de ellas.

Para este ejemplo, asumiremos el siguiente escenario de red:

GigabitEthernet0/0 (WAN): Conectada a Internet con una IP pública estática (203.0.113.10).

GigabitEthernet0/1 (LAN): Conectada a la red privada interna (192.168.1.0/24).

GigabitEthernet0/2 (DMZ): Conectada a la red de la zona desmilitarizada (192.168.2.0/24), donde reside el servidor web con la IP 192.168.2.10.

1. Configuración de Direcciones IP en las Interfaces

Primero, asegúrate de que cada interfaz tenga su respectiva dirección IP y máscara de subred configuradas:

Plaintext

enable

configure terminal



interface GigabitEthernet0/0

 description WAN - Internet

 ip address 203.0.113.10 255.255.255.248

 ip nat outside

 no shutdown



interface GigabitEthernet0/1

 description LAN - Red Privada

 ip address 192.168.1.1 255.255.255.0

 ip nat inside

 no shutdown



interface GigabitEthernet0/2

 description DMZ - Servidor Web

 ip address 192.168.2.1 255.255.255.0

 ip nat inside

 no shutdown

2. Configuración de NAT (Publicar el Servidor Web hacia Internet)

Para que las peticiones del exterior (puertos 80 y 443) lleguen al servidor web ubicado en la DMZ, utilizaremos NAT estático de puertos (Port Forwarding). También configuraremos el NAT de salida (Overload) para que los equipos de la LAN y la DMZ puedan salir a internet.

Plaintext

! Redirigir tráfico HTTP (80) y HTTPS (443) hacia la IP del servidor en la DMZ

ip nat translation timeout 3600

ip nat inside source static tcp 192.168.2.10 80 interface GigabitEthernet0/0 80 extendable

ip nat inside source static tcp 192.168.2.10 443 interface GigabitEthernet0/0 443 extendable



! Permitir que las redes internas y DMZ salgan a Internet mediante la IP pública de la WAN

ip access-list standard NAT_ACL

permit 192.168.1.0 0.0.0.255

permit 192.168.2.0 0.0.0.255



ip nat inside source list NAT_ACL interface GigabitEthernet0/0 overload


3. Creación de Reglas de Filtrado (ACLs de Seguridad para la DMZ)

En Cisco, las listas de acceso extendidas permiten controlar con precisión milimétrica qué tráfico puede atravesar el router (tráfico de tipo FORWARD). Crearemos una ACL llamada DMZ_POLICY para aislar la DMZ.

Plaintext

ip access-list extended DMZ_POLICY

! 1. Permitir que las conexiones ya establecidas respondan sin problemas

evaluate TCP_REF



! 2. Permitir el tráfico de Internet entrante dirigido estrictamente a los puertos web del servidor

permit tcp any host 192.168.2.10 eq 80

permit tcp any host 192.168.2.10 eq 443



! 3. Permitir que la red LAN administre o acceda al servidor web en la DMZ

permit ip 192.168.1.0 0.0.0.255 host 192.168.2.10



! 4. Permitir que el servidor web salga a Internet (por ejemplo, para actualizaciones de software)

permit ip host 192.168.2.10 any



! 5. BLOQUEAR explícitamente cualquier intento de la DMZ de iniciar tráfico hacia la red LAN interna

deny ip 192.168.2.0 0.0.0.255 192.168.1.0 0.0.0.255



! 6. Denegar y registrar cualquier otro intento de movimiento lateral no autorizado

deny ip 192.168.2.0 0.0.0.255 any log

permit ip any any


4. Aplicación de las ACLs a las Interfaces

Una vez creada la lista de acceso, debe aplicarse a la interfaz correspondiente. Para proteger la red interna de posibles ataques provenientes de la DMZ, se aplica de entrada (in) en la interfaz física de la DMZ:

Plaintext

interface GigabitEthernet0/2

ip access-group DMZ_POLICY in


Resumen del Flujo de Seguridad en Cisco

Entrada WAN: Solo se traducen y permiten los paquetes destinados a los puertos web (80 y 443) del servidor DMZ mediante las reglas de ip nat inside source static.

Aislamiento: La regla deny ip 192.168.2.0 ... 192.168.1.0 ... dentro de la ACL asegura que, si el servidor web sufre una brecha de seguridad, el atacante no podrá alcanzar los equipos de la oficina o casa (LAN).

Inspección de Estado: El uso de características de seguridad complementarias o el orden lógico de las reglas permite que las respuestas legítimas fluyan de regreso sin exponer los puertos internos del router.

¿Qué te gustaría hacer a continuación?

Configurar ZBFW en Cisco

Verificar reglas con comandos show

Entradas populares

Ads by gets Your Guide