- 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.
- 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.
- 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:
-
El cliente envía una solicitud de conexión HTTPS al servidor.
-
El servidor responde con un paquete que contiene su certificado digital, el cual incluye su clave pública e información de autenticación.
-
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.
-
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.
-
Todos los datos subsecuentes se intercambian cifrados con la clave simétrica, garantizando confidencialidad e integridad.
-
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.