Detecta e bloqueia tentativa de acesso ao SSH

Publicado por Fábio Flores 18/09/2006

[ Hits: 10.729 ]

Download detecta_bloqueia_ssh.sh




Este script detecta tentativas de acesso por força bruta no SSH e gera regras de IPTables bloqueando o IP do host que está efetuando a tentativa de ataque, verificando antes se o IP do host atacante já foi bloqueado. Esse script foi criado pelo Mastah e aprimorado e adapatado por mim para uso em no meu firewall.

  



Esconder código-fonte

Antes de utilizar o script, verifique se o seu sistema possui o pacote gawk, caso não possua podera baixar o pacote em: ftp://ftp.gnu.org/gnu/gawk/gawk-3.1.5.tar.gz

Define o arquivo do script como executável:

<b>:~$ su</b>
Como super usuário, utilize o comando:
<b>:~# chmod +x detecta_bloqueia_ssh.sh</b>
 
Caso queira deixar o script em modo automático, mova-o para
o diretório /etc/cron.hourly/,com o comando:

<b>:~# mv detecta_bloqueia_ssh.sh /etc/cron.hourly</b>

Lembre de deixar o arquivo como executável

Para alterar o tempo do crontab, edite o arquivo root que fica dentro de:
<b>:~# vi /var/spool/cron/crontabs/root </b>
e altere o tempo de acordo com o que achar mais conveniente

OBS: este script é utilizado na distribuição slackware, caso queira utilizar em outra distro, faça as alterações necessárias.

---------------------------------------------------------------------------------------------------------------
# Script para bloquear os corriqueiros bruteforce probes
# feitos para a porta do ssh. Pega as ultimas 60 tentativas ilegais na porta do ssh.
# Verifica se você ja bloqueou o "invasor" se voce quer adicionar na regra do iptables.
# Caso queira usar no crontab, e so mudar o valor da var $MODE pra "AUTO". 

MODE="AUTO"
#MODE="MANUAL"

if [ -f /var/log/messages ] ; then
   ips=$(cat -n /var/log/messages | tail -n 60 | grep -i Failed | grep -i sshd | awk -F" " {'print $14'})

   attempts=1

   for ip in $ips ; do
      
      lastip=$ip

      if [ "$lastip" == "$ip" ] ; then
         attempts=$(expr $attempts + 1)
         if [ $attempts -ge 5 ] ; then
            echo "Ataque de Força Bruta SSHD detectada de $ip"
            attempts=1
            lastip=""
            blocked=$(iptables -L INPUT | grep -i $ip | grep -i DROP)
                   if [ "$blocked" ] ; then
               echo "> IP Ja Bloqueado. Continuando com scan"
               echo " "
            else
               if [ $MODE == "MANUAL" ] ; then
                  echo "> Você quer adicionar este IP para INPUT DROP em IPTABLES regras? (s/n)"
                  read resp
                  if [ "$resp" == "s" ] ; then
                     iptables -A INPUT -s $ip -j DROP
                     echo "> IP $ip ADICIONADO PARA IPTABLES INPUT DROP ruleset"
                     echo " "
                  fi
               else
                  iptables -A INPUT -s $ip -j DROP
                  echo "> IP $ip ADICIONADAO TO IPTABLES INPUT DROP ruleset"
                  echo " "
               fi
            fi
         fi
      fi

   done

fi

#Fim do script
---------------------------------------------------------------------------------------------------------------
Bom uso
Abraços, colaboração de:
Fábio "Cyberwolf" Flores

Scripts recomendados

Rsync.conf

Cadastrar usuario Squid

Script contra ataques de Brutal Force por SSH.

Script para iniciar programas instalados no wine

Realizar backup automático no HD externo


  

Comentários
[1] Comentário enviado por cyberwolf em 20/07/2006 - 14:53h

Caros, na visualização do script ignore as tags html <b> e </b>..
Valeu


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts