Bloqueia ataques do tipo bruteforce
Publicado por Anonymous Misteryous 06/08/2007
[ Hits: 9.989 ]
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
Limpando cache do Squid (Baseado em Debian)
Instalando Nagios 4.0.8 - Debian 7
Player de música em Shell com Yad
Distribuindo arquivos para máquinas em rede
Script recolher log's servidor
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Como renomear arquivos de letras maiúsculas para minúsculas
Imprimindo no formato livreto no Linux
Vim - incrementando números em substituição
Efeito "livro" em arquivos PDF
Como resolver o erro no CUPS: Unable to get list of printer drivers
Não to conseguindo resolver este problemas ao instalar o playonelinux (1)
Excluir banco de dados no xampp (1)
[Python] Automação de scan de vulnerabilidades
[Python] Script para analise de superficie de ataque
[Shell Script] Novo script para redimensionar, rotacionar, converter e espelhar arquivos de imagem
[Shell Script] Iniciador de DOOM (DSDA-DOOM, Doom Retro ou Woof!)
[Shell Script] Script para adicionar bordas às imagens de uma pasta