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.
https://panchito-kardashian.tar.mx/media/2021/10/notificaciones-telegram-fail2ban.jpg