Bloqueia ataques do tipo bruteforce
Publicado por Anonymous Misteryous 06/08/2007
[ Hits: 10.304 ]
Script para bloqueio de ataques do tipo bruteforce em servidores ftp.
Atualmente para proftp slackware, mas, somente mudar o caminho onde o log se encontra.
Está comentado a parte do bloqueio do ip via iptables, somente envia email ao admin alertando.
Comentário são bem vindos sempre!
#!/bin/bash
#Danyllo Carvalho
#A ideia da expressao attemps eh do Mastah
#Aquele abraco
principal(){
echo ''
echo ''
echo -e '\e[33;1m Bloqueio de tentativas bruteforce em ftp \e[m'
echo -e '\e[33;1m Danyllo Carvalho\e[m'
echo -e '\e[33;1m Bruteforce_block.sh\e[m'
echo ''
echo ''
data=`date +%Y_%m_%d`
ips=$(cat /var/log/proftpd.log |grep -i "no such user found" | awk -F" " '{ print $15}')
attempts=1
if [ -z "$ips" ] ; then
exit
else
# fi
for ip in $ips;
do
lastip=$ip
if [ "$lastip" == "$ip" ] ; then
attempts=$(expr $attempts + 1)
#Eis a matada do Mastah, com certeza eu demoraria bem mais tempo pra sacar dessa forma
#Lista as ocorrencias e cria essa expressao como condicao, so vai printar se for maior ou igual a #15 ocorrencias
if [ $attempts -ge 15 ] ; then
echo "Possivel ataque por forca bruta detectado -------> $ip"
attempts=1
lastip=""
fi
fi
done
sleep 2
fi
enviar
}
enviar(){
maquina=`uname -n`
mensagem="Bom dia, Venho atraves deste informar-lhe que os seguintes enderecos estao tentando um ataque do tipo Brute Force no servidor $maquina, o seguinte endereco foi logado ($ip), o qual pode ser bloqueado manualmente no termino do script.Admin"
echo -en "\n\n\n"
echo -e '\e[33;1m Enviando Relatorio, por favor aguarde...\e[m'
echo -en "\n"
sleep 2
#Essas sao as variaveis que voce vai alterar de acordo com seu smtp, o #servidor que vai enviar as mensagens
(echo 'HELO localhost';sleep 1
echo 'MAIL FROM: admin@seuserver.com';sleep 1
echo 'RCPT TO: admin@seuserver.com';sleep 1
echo 'DATA';sleep 1
echo 'MIME-Version: 1.0';sleep 1
echo 'FROM: danyllo';
echo 'TO: Administrador <admin@seuserver.com>';
echo 'SUBJECT: Tentativa de ataque';
echo '';
echo '';
echo "$mensagem.";
echo '';
echo '';
echo '.';
echo 'QUIT'; ) | nc -t ip.seu.smtp. 25
#Limpo o log fazendo o backup do mesmo pela data em pt_br
cp /var/log/proftpd.log /var/log/proftpd.log_$data
cat /dev/null >/var/log/proftpd.log
exit
}
bloqueio()
{
echo -en "\n\n"
echo -e '\e[33;1m Ja foi enviado um email ao administrador, deseja bloquear o endereco de onde parte o ataque? (y/n).\e[m\n'
read resp
if [ "$resp" == "y" ] ; then
#iptables -A INPUT -s $ip -j DROP
echo "IP $ip foi pra lista de drop"
else
echo " RESPOSTA FOI NAO!"
fi
}
principal
Script para automatizar OpenVpn
Limpando cache do Squid (Baseado em Debian)
Cirurgia para acelerar o openSUSE em HD externo via USB
Void Server como Domain Control
Modo Simples de Baixar e Usar o bash-completion
Monitorando o Preço do Bitcoin ou sua Cripto Favorita em Tempo Real com um Widget Flutuante
[Resolvido] VirtualBox can't enable the AMD-V extension
Como verificar a saúde dos discos no Linux
Como instalar , particionar, formatar e montar um HD adicional no Linux?
Como automatizar sua instalação do Ubuntu para desenvolvimento de software.
Quais os códigos mais dificeis que vcs sabem fazer? (5)
Não consigo instalar distro antiga no virtualbox nem direto no hd (8)
Fiz uma pergunta no fórum mas não consigo localizar (14)
Upscaling com imagem cortada no monitor secundário ao usar iGPU Multi ... (1)
Servidor Ubuntu 24.04 HD 500 não tenho espaço na \home\adminis... [RES... (8)









