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: 5.687 ]

Por: RLB 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

Intrusão simples com Metasploit

Backup de sua instalação em .iso bootável

Proteção utilizando fail2ban contra ataques do tipo

Ubuntu pendrive TrueCrypt

Segurança no SSH via plugins da PAM

  
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

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts