Logo

Mi Blog con Emacs y Esteroides

Emacs, IA y Linux: Poder y Simplicidad en tu Flujo de Trabajo

mybloggingnotes@gmail.com


17/04/2025

Monitorización rápida de vulnerabilidades en Ubuntu desde Emacs (i)

Introducción

¿Quieres una forma sencilla y rápida de hacer un chequeo de seguridad a tu sistema desde tu entorno Emacs? Aquí tienes un script en bash que podrás ejecutar desde la terminal o Emacs usando `shell-command`, y que además genera un log y un archivo `.org` con los resultados.

PlantUML Diagram for "scanseguridad.sh" Workflow

This diagram represents the sequence of operations performed by the `scanseguridad.sh` script to monitor system security and generate logs and Org Mode reports.

scan_seguridad_diagram.png

Herramientas necesarias

Este script usará:

  • `nmap` (para escanear puertos locales)
  • `netstat` o `ss` (interfaces y conexiones)
  • `curl` (para detectar IP pública y posibles amenazas)
  • `whois`, `ip`, `free`, `top` o `ps`
  • `chkrootkit` o `rkhunter` (si los tienes instalados)
  • `fail2ban-client` (opcional)

Si alguna herramienta no está instalada, el script la sugerirá automáticamente.

Puedes instalar las básicas con:

sudo apt update && sudo apt install nmap curl whois net-tools chkrootkit -y

🚀 Script de análisis rápido

Guarda este archivo como scan_seguridad.sh y ejecútalo como superusuario:

#!/bin/bash
LOGFILE="$HOME/seguridad/logs/seguridad_$(date +%F_%H%M).log"
ORGFILE="$HOME/seguridad/reportes/seguridad_$(date +%F_%H%M).org"
mkdir -p "$(dirname "$LOGFILE")"
mkdir -p "$(dirname "$ORGFILE")"

echo "* Informe de seguridad generado el $(date)" > "$ORGFILE"
echo "------------------------------------------" > "$LOGFILE"

echo "** 🧠 Memoria y carga del sistema" | tee -a "$ORGFILE" >> "$LOGFILE"
free -h | tee -a "$LOGFILE" | sed 's/^/    /' >> "$ORGFILE"
uptime | tee -a "$LOGFILE" | sed 's/^/    /' >> "$ORGFILE"

echo "** 🌐 Interfaces de red activas" | tee -a "$ORGFILE" >> "$LOGFILE"
ip addr show | grep inet | tee -a "$LOGFILE" | sed 's/^/    /' >> "$ORGFILE"

echo "** 🔐 Puertos abiertos (localhost)" | tee -a "$ORGFILE" >> "$LOGFILE"
nmap -sT -p- 127.0.0.1 | tee -a "$LOGFILE" | sed 's/^/    /' >> "$ORGFILE"

echo "** 🕵️ Conexiones activas sospechosas" | tee -a "$ORGFILE" >> "$LOGFILE"
ss -tunap | grep -v "127.0.0.1" | tee -a "$LOGFILE" | sed 's/^/    /' >> "$ORGFILE"

echo "** 🚨 IP pública y análisis básico" | tee -a "$ORGFILE" >> "$LOGFILE"
IP=$(curl -s ifconfig.me)
echo "IP pública: $IP" | tee -a "$LOGFILE" | sed 's/^/    /' >> "$ORGFILE"
whois "$IP" | grep -iE "org|country|name" | tee -a "$LOGFILE" | sed 's/^/    /' >> "$ORGFILE"

echo "** 🔍 Análisis rootkits (chkrootkit si disponible)" | tee -a "$ORGFILE" >> "$LOGFILE"
if command -v chkrootkit &> /dev/null; then
    chkrootkit | tee -a "$LOGFILE" | sed 's/^/    /' >> "$ORGFILE"
else
    echo "chkrootkit no instalado. Instálalo con: sudo apt install chkrootkit" | tee -a "$LOGFILE" | sed 's/^/    /' >> "$ORGFILE"
fi

echo "** 📊 Procesos sospechosos (más consumo CPU)" | tee -a "$ORGFILE" >> "$LOGFILE"
ps aux --sort=-%cpu | head -n 10 | tee -a "$LOGFILE" | sed 's/^/    /' >> "$ORGFILE"

echo "** ✅ Recomendaciones generales" >> "$ORGFILE"
echo "- Verifica puertos abiertos innecesarios" >> "$ORGFILE"
echo "- Usa firewalld o ufw para cerrar conexiones" >> "$ORGFILE"
echo "- Revisa procesos con consumo elevado" >> "$ORGFILE"
echo "- Instala y configura fail2ban si es un servidor expuesto" >> "$ORGFILE"

✅ Cómo usarlo desde Emacs

Puedes ejecutar el script directamente desde Emacs con:

(shell-command "bash ~/scan_seguridad.sh")

O también añadirlo a una función interactiva personalizada.

📂 Logs generados

  • Archivo `.log` con todos los comandos ejecutados.
  • Archivo `.org` con formato limpio para visualizar y exportar desde Org Mode.

🚧 Futuras mejoras

  • Clasificación automática de amenazas
  • Exportación a HTML para informe web
  • Envío por correo o Telegram

¡La seguridad también se hace desde Emacs! 😉

Categoría: seguridad linux orgmode script tutoriales

Suscribirse al Feed RSS | Mapa del Sitio

© 2025 M.Castillo | Hecho con ❤️ en Emacs y org-static-blog

📊 Estadísticas Visit counter For Websites