Ejercicios de Seguridad en Redes y Automatización de Sistemas

  1. Mitigación de un ataque DOS en un entorno de producción

Para defenderse de ataques de denegación de servicio, se puede implementar un script que monitoree los registros de acceso web o las conexiones de red. Si una dirección IP supera un umbral específico de conexiones concurrentes o solicitudes en un corto período, se bloquea automáticamente utilizando iptables. La frecuencia de monitoreo se establece cada 5 minutos.

#!/bin/bash
# Script para bloquear IPs con actividad sospechosa
UMBRAL_CONEXIONES=100
ARCHIVO_REGISTRO=~/acceso_web.log

awk '{print $1}' $ARCHIVO_REGISTRO | sort | uniq -c | while read CONTEO DIRECCION_IP; do
  if [ $CONTEO -ge $UMBRAL_CONEXIONES ]; then
    iptables -A INPUT -s $DIRECCION_IP -j REJECT
    echo "$CONTEO  $DIRECCION_IP" >> /tmp/ips_bloqueadas.txt
  fi
done

Este script identifica IPs con un número excesivo de accesos y las rechaza en el firewall, registrando la acción.

  1. Descripción del proceso de intercambio de claves Diffie-Hellman

El intercambio de claves Diffie-Hellman permite a dos partes establecer una clave secreta compartida a través de un canal inseguro. A continuación se detalla el proceso con un ejemplo modificado para mayor claridad.

Supongamos que las partes A y B acuerdan dos números públicos: un generador (gen) y un módulo primo grande (mod). Cada parte genera un número secreto privado. Luego, intercambian valores calculados usando fórmulas exponenciales modulo el número primo.

# Valores públicos acordados
GEN=7
MOD=13

# Parte A: secreto claveA=3
# A calcula: (GEN ^ claveA) % MOD
echo "7^3 % 13" | bc  # Resultado: 5

# Parte B: secreto claveB=5
# B calcula: (GEN ^ claveB) % MOD
echo "7^5 % 13" | bc  # Resultado: 11

# Parte A recibe el resultado de B (11) y calcula: (11 ^ claveA) % MOD
echo "11^3 % 13" | bc  # Resultado: 5

# Parte B recibe el resultado de A (5) y calcula: (5 ^ claveB) % MOD
echo "5^5 % 13" | bc   # Resultado: 5

Ambas partes llegan al mismo valor secreto (5), que puede usarse como clave para cifrado simétrico, sin revelar los secretos privados durante el intercambio.

  1. Proceso de comunicación en HTTPS

HTTPS asegura la comunicación web mediante cifrado y autenticación. El flujo típico incluye los siguientes pasos:

  1. El cliente envía una solicitud de conexión HTTPS al servidor.

  2. El servidor responde con un paquete que contiene su certificado digital, el cual incluye su clave pública e información de autenticación.

  3. El cliente verifica el certificado; si es válido, genera un valor aleatorio, lo cifra con la clave pública del servidor y lo envía de vuelta.

  4. El servidor descifra el valor aleatorio usando su clave privada. A partir de este punto, ambas partes utilizan este valor como clave simétrica para cifrar y descifrar los datos transmitidos.

  5. Todos los datos subsecuentes se intercambian cifrados con la clave simétrica, garantizando confidencialidad e integridad.

  6. Extracción de datos con awk en Linux


La herramienta awk permite procesar archivos de texto delimitados. Para extraer la primera columna del archivo /etc/passwd, donde los campos están sepaardos por dos puntos, se utiliza el siguiente comando:

awk -F: '{print $1}' /etc/passwd

Este comando lee el archivo, establece el delimitador como dos puntos e imprime el primer campo de cada línea, que corresponde a los nombres de usuario.

Etiquetas: shell scripting iptables Diffie-Hellman HTTPS AWK

Publicado el 6-11 06:36