Skip to content

Instantly share code, notes, and snippets.

@nullx5
Created March 13, 2026 04:02
Show Gist options
  • Select an option

  • Save nullx5/6daac4768be889954e3b69fb5b2b3424 to your computer and use it in GitHub Desktop.

Select an option

Save nullx5/6daac4768be889954e3b69fb5b2b3424 to your computer and use it in GitHub Desktop.

script para reportar IP a abuseipdb

sudo nvim setup_abuseipdb.sh

#!/bin/bash

# --- CONFIGURACIÓN ---
# Reemplaza con tu API Key real entre las comillas
API_KEY="TU_API_KEY_AQUI"

# Verificar si se ejecuta como root
if [ "$EUID" -ne 0 ]; then 
  echo "Por favor, ejecuta el script con sudo."
  exit
fi

echo "--- Iniciando configuración de Fail2Ban + AbuseIPDB ---"

# 1. Instalar Fail2Ban y UFW si no están
apt update && apt install fail2ban ufw -y

# 2. Configurar la acción de AbuseIPDB
echo "Configurando la API Key en la acción de AbuseIPDB..."
cat <<EOF > /etc/fail2ban/action.d/abuseipdb.conf
[Definition]
abuseipdb_apikey = $API_KEY
# Categorías: 14 (PortScan), 18 (Brute-Force), 22 (SSH)
abuseipdb_category = 14,18,22

actionban = curl --fail --user-agent "Fail2Ban" \
            --data-urlencode "key=<abuseipdb_apikey>" \
            --data-urlencode "remoteAddress=<ip>" \
            --data-urlencode "categories=<abuseipdb_category>" \
            --data-urlencode "comment=Ataque detectado por Fail2Ban: <failures> intentos fallidos." \
            https://api.abuseipdb.com/api/v2/report
EOF

# 3. Crear filtro para escaneo de puertos (Portscan)
echo "Creando filtro para detectar escaneo de puertos en UFW..."
cat <<EOF > /etc/fail2ban/filter.d/portscan-fw.conf
[Definition]
failregex = \[UFW BLOCK\] IN=.* SRC=<HOST>
ignoreregex =
EOF

# 4. Configurar el archivo jail.local
echo "Configurando Jails (SSH y PortScan)..."
cat <<EOF > /etc/fail2ban/jail.local
[DEFAULT]
# Tu IP local o de confianza aquí para no bloquearte a ti mismo
ignoreip = 127.0.0.1/8 ::1

[sshd]
enabled = true
port    = ssh
logpath = %(sshd_log)s
backend = %(sshd_backend)s
maxretry = 5
bantime  = 24h
action = %(action_mw)s
         abuseipdb

[portscan]
enabled  = true
filter   = portscan-fw
logpath  = /var/log/ufw.log
maxretry = 3
findtime = 1h
bantime  = 48h
action   = %(action_mw)s
           abuseipdb
EOF

# 5. Asegurar que los logs de UFW estén activos
ufw logging medium

# 6. Reiniciar Fail2Ban
systemctl restart fail2ban

echo "--- Configuración completada con éxito ---"
echo "Puedes ver los reportes en tiempo real con: tail -f /var/log/fail2ban.log"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment