Detecta e bloqueia tentativa de acesso ao SSH
Publicado por Fábio Flores 18/09/2006
[ Hits: 10.825 ]
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
Baixar flatpak para um arquivo local
Script p/ instalar modem onboards
Converter Imagens e Documentos para PDF
O que fazer após instalar o Debian 8 - versão em Shell Script
Script FIREWALL IPTABLES com 3 (três) interfaces (Int, Ext e DMZ)
Desktop Linux ganha fôlego enquanto distros refinam experiência e segurança
Wayland em alta, IA em debate e novos ventos para distros e devices
Qt 6.10 e Python 3.14 puxam o ritmo do software livre nesta quarta
Atualizações de Apps, Desktop e Kernel agitam o ecossistema Linux nesta terça-feira
Como mudar o nome de dispositivos Bluetooth via linha de comando
Adicionando o repositório backports no Debian 13 Trixie
Erro ao fazer remaster usando Penguin eggs (1)
Warcraft II Remastered no Linux? (0)
queria saber como instalar o android power tools igual ao winux no lin... (7)