Notificação Fail2ban pelo Telegram

Este artigo ensina como integrar o Telegram com Fail2Ban, para o serviço de mensagens. Com esta integração, a notificação do Fail2Ban será enviado através de serviços do Telegram. A instalação foi feita no Ubuntu 14.04.4 LTS.

[ Hits: 3.904 ]

Por: Rondinelle Lima Bispo em 09/08/2016


Instalação



Bom galera, vamos primeiramente fazer a atualização do sistema:

sudo apt-get update

Em seguida, o upgrade:

sudo apt-get upgrade

Agora vamos fazer a instalação do Fail2Ban:

sudo apt-get install fail2ban

Instalado com sucesso. Agora, vamos baixar o telegram-cli:

cd /opt
sudo wget https://dl.dropboxusercontent.com/u/10090428/telegram-cli_1.0.6-1_amd64.deb

Instalando as dependências:

sudo apt-get -y install libjansson4

Instalando o telegram-cli:

sudo dpkg -i telegram-cli_1.0.6-1_amd64.deb

Depois de instalado, vamos registrar o nosso telegram-cli, com o nosso número. Digitando:

sudo telegram-cli
Telegram-cli version 1.3.3, Copyright (C) 2013-2015 Vitaly Valtman
Telegram-cli comes with ABSOLUTELY NO WARRANTY; for details type `show_license'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show_license' for details.
Telegram-cli uses libtgl version 2.0.3
Telegram-cli includes software developed by the OpenSSL Project
for use in the OpenSSL Toolkit. (http://www.openssl.org/)
Telegram-cli uses libpython version 2.7.6
I: config dir=[/var/lib/telegram-cli/.telegram-cli]
phone number: 55929XXXXXXXX # numero do celular que será registrado o telegram.
code ('CALL' for phone code): 55278 # Código enviado ao número registrado acima.

> contact_list # digitar o comando para ser listado os contatos salvos na agenda do telegram
ContatoTeste # exemplo de um contato salvo na agenda do telegram

> msg ContatoTeste "Mensagem de Teste" # enviando uma mensagem de teste para o contato.

> safe_quit # comando para sair do telegram, caso não saia, digite somente quit sem o safe_ para sair.


Configurando o Fail2Ban com o Telegram

Depois de instalar telegrama-cli e suas dependências, agora vamos adicionar telegram.conf.config em /etc/fail2ban/action.d.

Arquivo para download:
sudo nano /etc/fail2ban/action.d/telegram.conf

#
# Author: Mohammad Hafiz bin
# Modified by: Rondinelle Lima Bispo <rondinellepqd@gmail.com>
#
# $Revision$
#

[Definition]

# Option:  actionstart
# Notes.:  command executed once at the start of Fail2Ban.
# Values:  CMD
#
actionstart = /usr/share/fail2ban/fail2ban-telegram.sh start

# Option:  actionstop
# Notes.:  command executed once at the end of Fail2Ban
# Values:  CMD
#
actionstop = /usr/share/fail2ban/fail2ban-telegram.sh stop

# Option:  actioncheck
# Notes.:  command executed once before each actionban command
# Values:  CMD
#
actioncheck =

# Option:  actionban
# Notes.:  command executed when banning an IP. Take care that the
#          command is executed with Fail2Ban user rights.
# Tags:      IP address
#            number of failures
#           # Values:  CMD
#
actionban = /usr/share/fail2ban/fail2ban-telegram.sh ban

# Option:  actionunban
# Notes.:  command executed when unbanning an IP. Take care that the
#          command is executed with Fail2Ban user rights.
# Tags:      IP address
#            number of failures
#           # Values:  CMD
#
actionunban = /usr/share/fail2ban/fail2ban-telegram.sh unban

[Init]

init = 'Fail2Ban Telegram plugins activated"

## FIM DO ARQUIVO TELEGRAM.CONF ##

Ctrl+x para sair e Y para salvar o arquivo, para quem vai usar o editor nano.

Script

Agora vamos precisar criar o script que será chamado pelo nosso plugin Telegram.

Arquivo para download:
sudo nano /usr/share/fail2ban/fail2ban-telegram.sh

#!/bin/bash

# Sends text messages using telegram api
# to alert server administrator of ip banning.
#
# Requires one argument, one of the following:
#  start
#  stop
#  ban
#  unban
#
# Optional second argument: IP for ban/unban

#replace this with your own telegram contact

to=ContatoTeste  #contato que recebera as notificações pelo telegram

# Display usage information
function show_usage {
  echo "Usage: $0 action <ip>"
  echo "Where action is start, stop, ban, unban"
  echo "and ip is optional passed to ban, unban"
  exit
}

# Actually send telegram message
# Expects the telegram  content (body) to be passed
# as argument.
function send_telegram {

  msg="[`date -Iminutes`] - `hostname`:  Notice: $1 "
  echo "$msg" >> /var/log/fail2ban-telegram.log
 (echo "contact_list";sleep 30;echo "msg $to $msg"; echo "safe_quit") | telegram-cli
  exit
}

# Check for script arguments
if [ $# -lt 1 ]
then
  show_usage
fi

# Take action depending on argument
if [ "$1" = 'start' ]
then
  message="Fail2ban just started."
  send_telegram "$message"
elif [ "$1" = 'stop' ]
then
  message="Fail2ban just stopped."
  send_telegram "$message"
elif [ "$1" = 'ban' ]
then
  message=$([ "$2" != '' ] && echo "Fail2ban just banned $2" || echo 'Fail2ban just banned an ip.' )
  send_telegram "$message"
elif [ "$1" = 'unban' ]
then
  message=$([ "$2" != '' ] && echo "Fail2ban just unbanned $2" || echo "Fail2ban just unbanned an ip." )
  send_telegram "$message"
else
  show_usage
fi

### FIM DO ESCRIPT ###

Ctrl+x para sair e Y para salvar o arquivo. Para quem vai usar o editor nano.

Depois disso, vamos precisar dar permissão de execução para o nosso script. Digitando:

sudo chmod a+rwx /usr/share/fail2ban/fail2ban-telegram.sh

Precisamos editar o arquivo /etc/fail2ban/jail.conf para ligar o plugin ao evento que será chamada ação telegram, usaremos como exemplo SSH.

Primeiro, vamos fazer copiar o jail.conf para jail.local:

sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local

Agora vamos editar o arquivo /etc/fail2ban/jail.local:

sudo nano /etc/fail2ban/jail.local

Em seguida, encontre as linhas e altere conforme abaixo:

De:

mta = sendmail

Para:

mta = mail  

Caso não tenha o mail instalado, instale digitando:

sudo apt-get install mailutils

De:

action = %(action_)s

Para:

action = %(action_mw)s

[ssh]
enabled  = true
port     = ssh
filter   = sshd
logpath  = /var/log/auth.log
maxretry = 3
action = mail-whois-lines[name=SSHD, dest=coloqueaquiseuemail@seudominio]
telegram

Ctrl+x para sair e Y para salvar o arquivo. Para quem vai usar o editor nano.

Concluído, vamos reiniciar o serviço Fail2Ban:

sudo service fail2ban restart

Após a reinicialização do servidor Fail2Ban e se você acompanhou os passos acima, estará recebendo a mensagem do Telegram e e-mail de notificação sobre a inicialização Fail2Ban.

Parabéns! E obrigado.

   

Páginas do artigo
   1. Instalação
Outros artigos deste autor
Nenhum artigo encontrado.
Leitura recomendada

Aspecto de segurança para uma arquitetura web

Analisando arquivos de registro (log)

Personalizando o HLBR - IPS invisível

Não precisamos de antivírus, eles sim

Segurança para iniciantes

  
Comentários
[1] Comentário enviado por SuperSlackware em 11/08/2016 - 08:43h

Parabêns otimo artigo


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts