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

Publicado por Ricardo Lino Olonca 25/07/2007

[ Hits: 10.154 ]

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

Embaralhando elementos de um vetor

Proteja sua rede com um simples script de firewall

Criar Script para apagar determinados arquivos

smbs

Identificando configuração de rede das máquinas


  

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