Bloqueando ataque de força bruta em ssh através de script bash
Publicado por Ricardo Lino Olonca 25/07/2007
[ Hits: 10.461 ]
Homepage: ricardoolonca.blogspot.com.br
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.
#!/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
S-phoenix desliga/reinicia, quantos estão logado no PC, tempo ligado
Script de data e hora do sistema
Copiando um arquivo matriz para vários outros com nomes diferentes...
Remoção de arquivos multimídia
Aprenda a Gerenciar Permissões de Arquivos no Linux
Como transformar um áudio em vídeo com efeito de forma de onda (wave form)
Como aprovar Pull Requests em seu repositório Github via linha de comando
Visualizar arquivos em formato markdown (ex.: README.md) pelo terminal
Dando - teoricamente - um gás no Gnome-Shell do Arch Linux
Como instalar o Google Cloud CLI no Ubuntu/Debian
Mantenha seu Sistema Leve e Rápido com a Limpeza do APT!
Procurando vídeos de YouTube pelo terminal e assistindo via mpv (2025)
Alguém já usou o framework Avalonia para desenvolver interfaces de usu... (4)
Ajuda Pra Melhoria do NFTABLES. (8)
Sinto uma leve lentidão ao arrastar, miniminizar e restauras as janela... (2)
Pastas da raiz foram para a área de trabalho [RESOLVIDO] (7)