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
- Fail2ban debe de estar instalado y funcionando en el sistema. Puedes seguir el tutorial que hice para proteger tu sistema con Fail2ban.
- Tener una cuenta en AbuseIPDB, y tener una API Key. Si no tienes una cuenta de AbuseIPDB, puedes registrarte en esta URL. Después puedes crear una API Key. Esta API Key es gratuita.
- Es necesario tener
curl
instalado para usar el API de AbuseIPDB. Para hacerlo, ejecuta:
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á.