En el post previo, describimos cómo instalar Fail2ban para proteger tu sistema. Ahora vamos a ir un paso más lejos para activar el reporte de actividad maliciosa en una lista negra global gestionada por la herramienta AbuseIPDB.

¿Qué es AbuseIPDB?

AbuseIPDB es un proyecto dedicado a ayudar a administradores de sistemas y webmasters a comprobar y reportar direcciones IP que están involucradas en actividades maliciosas como spamming, intentos de hacking, ataques de DDoS, o cualquier actividad abusiva en internet.

Esta herramienta proporciona una lista negra global para webmasters, administradores de sistemas y otros grupos interesados en reportar o buscar direcciones IPs que han estado asociadas con actividades maliciones online.

Puedes reportar manualmente una dirección IP que ha sido asociada con cualquier actividad maliciosa o comprobar en la caja de búsqueda de la página principal si una dirección IP ha sido previamente reportada.

También puedes encontrar un informe estadístico para tener un conocimiento general del estado de actividad maliciosa en Internet.

¿Por qué integrar AbuseIPDB con Fail2ban?

Fail2ban escanea los logs del sistema para detectar la actividad maliciosa y banea las direcciones IPs relacionadas. Podemos usar esta información para enriquecer la lista negra global que puede ser utilizada por gente que interesada. En este punto es donde AbuseIPDB es la herramienta perfecta para ser integrada con Fail2ban.

Prerrequisitos necesarios antes de la integración

sudo apt install curl                                           

Activar la acción de reporte de AbuseIPDB

Añadiendo la API Key en la configuración de Fail2ban

El primer paso es configurar la API Key creada previamente en el fichero de configuración. Fail2ban por defecto genera un fichero action para la acción de Fail2ban.

Para editar este fichero:

sudo vi /etc/fail2ban/action.d/abuseipdb.conf

Al final del fichero podrás encontrar el parámetro de configuración abuseipdb_apikey, en el que tendrás que añadir la API Key.

Debería de ser similar a esto:

abuseipdb_apikey = e1342b15a6a7e3d4dc798b65ae22068161ff526b48eb810bf5d4795f928aec516bf641d0f047a102

Añadiendo la acción de rporte a los jails

La acción de reportar una dirección IP a AbuseIPDB puede ser configurada en una o varias jails.

En nuestro caso vamos a añadir la acción en el jail sshd.

sudo vi /etc/fail2ban/jail.d/defaults-debian.conf

Y añadimos la linea %(action_abuseipdb)s[abuseipdb_category="18,22"] de esta manera:

[sshd]
enabled = true
bantime = 24h
findtime = 30
maxretry = 1

action = %(action_)s
         %(action_abuseipdb)s[abuseipdb_category="18,22"]

Es obligatorio meter al menos una categoría en la acción. En nuestro caso hemos elegido la categoría 18 (Brute-Force) y 22 (SSH). La lista de categorías están definidas en el fichero de acción de AbuseIPDB editado antes. Además, puedes encontrar las categorías en la web de categorías de AbuseIPDB con más detalle.

Las categorías definidas ahora son éstas:

# ID    Title   Description
# 3     Fraud Orders
# 4     DDoS Attack
# 9     Open Proxy
# 10    Web Spam
# 11    Email Spam
# 14    Port Scan
# 18    Brute-Force
# 19    Bad Web Bot
# 20    Exploited Host
# 21    Web App Attack
# 22    SSH
# 23    IoT Targeted

Recargar la configuración

Una vez hecha la configuración, es necesario recargarla.

sudo service fail2ban reload

Consideraciones finales

Como mejores prácticas, las consideraciones que debes de seguir están descritas en las Políticas de reporte de AbuseIPDB.

  • bantime: debe de ser 15 minutos o superior.
  • findtime: No debe de ser superior a 60 días.

También podrías crear API keys diferentes para máquinas distintas. Es una buena idea para separar los reportes y así obtener estadísticas de reportes diferenciadas.

Conclusión

Y esto es todo. Ahora una vez que tu sistema detecte actividad maliciosa de cualquier dirección IP, aparte de bloquearla, tu sistema también la reportará.


Fuente: https://www.abuseipdb.com/fail2ban.html