Detecta e bloqueia tentativa de acesso ao SSH
Publicado por Fábio Flores 18/09/2006
[ Hits: 10.736 ]
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.
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
Backup de Maquina Virtual (Vmware)
cpb - copia arquivos executáveis
Redundância de dois links de internet
Imspector - Manipular ACLS facilmente
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)
Zorin OS - Virtual Box não consigo abrir maquinas virtuais (1)
O que você está ouvindo agora? [2] (180)