Notificaciones de IP bloqueados por fail2ban a Telegram

Instalamos fail2ban en un servidor nuevo y a los 5 minutos ya teníamos algunas ips bloqueadas por el programa fail2ban. Desgraciados

El programa fail2ban es bastante útil para tratar de frenar ataques a servicios de una instalación de Linux, pero además te permite notificar a un programa, por correo o en este caso por medio de un bot, hacia Telegram. De esta forma puedes revisar si es necesario aumentar la seguridad y/o revisar, cuando un servidor está siendo atacado de forma recurrente.

Lo primero es instalar el programa, PHP y curl, que son las herramientas que usaremos para esto. 

sudo apt install fail2ban curl php-curl php-cli

Por supuesto que el programa a usar para la notificación puede ser un script en bash, python o lo que sea, en este caso es con PHP. Creamosi el archivo telegram.conf

/etc/fail2ban/action.d/telegram.conf

con el contenido de telegram.conf. Luego creamos el archivo telegram.php

sudo mkdir /etc/fail2ban/scripts/ ; touch  /etc/fail2ban/scripts/telegram.php; chmod 755 /etc/fail2ban/scripts/telegram.php

Es importante que el archivo tenga permisos de ejecución, ya que está creado en blanco le vacíamos el contenido similar a telegram.php. Es importante señalar que hay que establecer el CHAT_ID y el TOKEN, para obtener el chatid bastaría con revisar los últimos mensajes del bot, algo como 

curl -s POST https://api.telegram.org/botTOKEN_DEL_BOT/getUpdates

y daría un resultado similar a la imagen

Aquí hay que ya tener el bot hecho, esto se hace enviándole mensaje a @botfather en telegram, obtener el TOKEN, luego por ejemplo si queremos que notifique en un canal, añadimos como adminsitrador al bot en el canal de las notificaciones y eso debería bastar. Enviamos mensaje en el canal y con getUpdates obtenemos el mensaje para ver que CHATID es.

Por último, modificamos el archivo de configuración de fail2ban, ya sea que que hubiesemos hecho un jail.local o directo en la configuración del archivo principal

 /etc/fail2ban/jail.conf

Buscamos la sección [sshd] y añadimos:

# en dos líneas, es importante
action  = iptables[name=SSH, port=22, protocol=tcp]
            telegram

similar a como se muestra en la imagen

 

Eso es todo, si reiniciamos systemctl restart fail2ban el servicio, nos debería llegar una notificación al canal asignado.

Listo... ojalá que no te haga spam ;D. Aquí hay un post viejito de como enviar mensajes desde la consola a Telegram.

+ fotos / videos

Almacenado en Linux, Telegram, Bots

por Jorge Martínez Mauricio :)

blog / fotos / archivo

Notificaciones de IP bloqueados por fail2ban a Telegram

tar.mx es un blog sobre fotografía, tecnología y otras chunches

modificado jueves 14 de octubre de 2021, 13:24