Bloqueia ataques do tipo bruteforce
Publicado por Anonymous Misteryous 06/08/2007
[ Hits: 10.425 ]
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
Troca periódica de senhas para usuários
Liberar cliente SSH no firewall
Sincronização entre Servidores de Impressão
O Journal no Linux para a guarda e consulta de logs do sistema
A evolução do Linux e as mudanças que se fazem necessárias desde o seu lançamento
Maquina modesta - a vez dos navegadores ferrarem o usuario
Fscrypt: protegendo arquivos do seu usuário sem a lentidão padrão de criptograr o disco
Sway no Arch Linux: configuração Inicial sem enrolação
Resolvendo o bloqueio do Módulo Warsaw no Arch Linux (Porta 30900)
Continuando meus tópicos anteriores (0)
Saída de loop após teste de if. (2)
Governo da França vai trocar Windows por Linux (9)
Warsaw não é reconhecido no Google Chrome 147.0.7727.55 [RESOLVIDO] (9)









