Bloqueando ataque de força bruta em ssh através de script bash

Publicado por Ricardo Lino Olonca 25/07/2007

[ Hits: 10.380 ]

Homepage: ricardoolonca.blogspot.com.br

Download ids.sh




Como cuido de vários servidores em vários lugares, uso ssh para me conectar remotamente.

O problema é que, através de um ataque de força bruta, alguém pode invadir meus servidores. Uma forma de evitar isso é com um ids, mas também pode ser feito de uma forma simples através um script bash rodando via cron.

Esse script monitora os arquivos de log e bloqueia o ip de origem em um ataque de força bruta na porta ssh.

  



Esconder código-fonte

#!/bin/bash
# IDS feito por Ricardo Lino Olonca em 22/05/2007
# Versao 0

# Variaveis
log="/var/log/auth.log"
bloqueados="/var/log/ids.log"
linhas=`cat $bloqueados | wc -l` # Quantos ips ja foram bloqueados
h=`date +%H` # Hora`
d=`date +%e` # Dia`

# Aqui eu listo todos os ips que tentaram se conectar ao meu servidor. 
# O "head -1" pega apenas o que mais tentou. Mude esse valor conforme necessário
ip=`cat $log|grep "$d $h"|grep Illegal|cut -d: -f7|sort |uniq -c|sort -nr|awk '{print $2}' |head -1`

tip=1$ip
tmp="/tmp"
syslog="/var/log/syslog"
firewall="/etc/init.d/firewall" 

# Sistema 
rm -rf $tmp/ids.sh.*
if [ $tip <> 1 ] # Só entra no "if" se alguém tentou conectar meu servidor na última hora
then
   echo $ip >> $bloqueados
   sort $bloqueados | uniq > $tmp/ids.sh.$$
   rm -rf $bloqueados
   mv $tmp/ids.sh.$$ $bloqueados
   linhas2=`cat $bloqueados | wc -l`
   if [ $linhas -ne $linhas2 ] # Se o valor de ips aumentou, então o firewall deve ser restartado
   then
      $firewall
      echo "`date` - Firewall restartado pelo ids - ip $ip" >> $syslog
   fi
fi

# No script do firewall deve ter a seguinte linha (sem as "#", lógico)

# for i in `cat /var/log/ids.log`
# do
#    iptables -A INPUT -s $i -j DROP
# done

Scripts recomendados

Incluindo lista de IP's nos arquivos de bloqueio do Squid automaticamente

Xmount

Script para verificação do JAVA configurado no PATH

Instalação do Dropbox no Debian

Proftd com Banco de Dados


  

Comentários
[1] Comentário enviado por chmod000 em 27/07/2007 - 07:33h

interessante a sua idéia, e o script está bem escrito também.

Mas acho que é mais simples utilizar o módulo recent do iptables.



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts