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