Autenticación
Para acceder a los recursos de la API, debes incluir el encabezado de autorización Authkey en tus solicitudes.
Para acceder a los recursos de la API, debes incluir el encabezado de autorización Authkey en tus solicitudes.
Para obtener una regla específica, realiza una solicitud GET con el parámetro regla.
GET /fail2ban/?regla=NOMBRE_DE_LA_REGLA
sudo apt-get install fail2ban
sudo apt-get install jq
/etc/fail2ban/fc-update.sh
#!/bin/bash
# Configuración
API_URL="https://apis.fonsecantero.com/fail2ban"
TOKEN='TU_TOKEN'
NOMBRE_REGLA="NOMBRE_DE_LA_REGLA"
ARCHIVO_DESTINO="/etc/fail2ban/filter.d/badbots.local"
# Realizar la solicitud a la API
response=$(curl -s -H "Authkey: $TOKEN" "$API_URL/?regla=$NOMBRE_REGLA")
# Verificar si la solicitud fue exitosa
if curl_status=$?; [ $curl_status -eq 0 ]; then
# Analizar y obtener el contenido de la regla
contenido=$(echo "$response" | jq -r '.Contenido')
if [ "$contenido" != "null" ]; then
# Escribir la regla en el archivo destino
echo "$contenido" | sudo tee "$ARCHIVO_DESTINO" > /dev/null
echo "La regla se ha escrito en $ARCHIVO_DESTINO."
# Reinicia el servicio
systemctl restart fail2ban
else
echo "Error: No se pudo obtener la regla."
fi
else
echo "Error: Falló la solicitud a la API."
fi
chmod +x fc-update.sh
./fc-update.sh
nano /etc/fail2ban/jail.local
[badbots] enabled = true filter = badbots action = iptables-multiport[] logpath = /var/log/apache2/access.log maxretry = 1 bantime = 86400
No olvides comprobar que logpath apunte a tu archivo access.log
asegurate de ser super usuario con sudo su
ingresa a tus cronjobs crontab -e
Agrega al final el cron 0 10 * * * /etc/fail2ban/fc-update.sh esto actualizara la confiuración todos los dias a las 10 AM
badbots busca y bloquea al primer intento robots conocidos
experimental: fc-wordpress protege todos los sitios wordpress en un servidor de intentos de acceso, vulnerabilidades y abuso de recursos
Te recomendamos actualizar mas carceles para proteger otros servicios como mail, ssh, etc
para mas información no olvides consultar su repositorio https://github.com/fail2ban/fail2ban
[sshd] enabled = true filter = sshd maxretry = 3 bantime = 86400 findtime = 3600 action = iptables-multiport[] [postfix] enabled = true maxretry = 3 bantime = 86400 [apache-auth] enabled = true filter = apache-auth maxretry = 3 bantime = 86400 [dovecot] enabled = true maxretry = 3 bantime = 3600 [apache-badbots] enabled = true filter = apache-badbots maxretry = 3 bantime = 86400 [apache-common] enabled = true filter = apache-common maxretry = 3 bantime = 86400 [badbots] enabled = true filter = badbots action = iptables-multiport[] logpath = /var/log/apache2/access.log maxretry = 1 bantime = 86400