Notificaciones de IP bloqueados por fail2ban a Telegram

notificaciones-telegram-fail2ban.jpg

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

mensaje-telegram-api.jpg

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

jail2ban-sshd.jpg

 

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

fail2ban-telegram.jpg

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

cuentame