Detecta e bloqueia tentativa de acesso ao SSH
Publicado por Fábio Flores 18/09/2006
[ Hits: 10.746 ]
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
Player de música em Shell com Yad
Script para bloqueio MSN/SITE por horário/usuário
Obter ip a partir de um NO-IP ou DYNDNS e atualizar o endereço do MUNIN MESTRE em um nó linux.
Baixando e instalando o Asterisk
Usando netstat para verificar conexões e portas
Atualizando o Passado: Linux no Lenovo G460 em 2025
aaPanel - Um Painel de Hospedagem Gratuito e Poderoso
O macete do Warsaw no Linux Mint e cia
O que você quer para sua vida ao usar o Linux?
Visualizar arquivos em formato markdown (ex.: README.md) pelo terminal
Dando - teoricamente - um gás no Gnome-Shell do Arch Linux
Encontrar o comando completo de uma janela [RESOLVIDO] (2)
Instalação de Ubuntu em SSD (interno) como se fosse um dispositivo ext... (2)
Zorin OS - Virtual Box não consigo abrir maquinas virtuais (10)